{"version":3,"sources":["./src/api-authorization/login-menu/login-menu.component.html","./src/api-authorization/login/login.component.html","./src/api-authorization/logout/logout.component.html","./src/app/app.component.html","./src/app/i18n/containers/language-selector/language-selector.component.html","./src/app/initial-routing/initial-routing.component.html","./src/app/layout/management/management-header/management-header.component.html","./src/app/layout/management/management-layout/management-layout.component.html","./src/app/management/admin/credit/add-credit/add-credit.component.html","./src/app/management/shared/components/appointment-notification/appointment-notification.component.html","./src/app/management/shared/components/appointment/appointment-details/appointment-details.component.html","./src/app/management/shared/components/appointment/appointment-edit/appointment-edit.component.html","./src/app/management/shared/components/appointment/appointment-list/appointment-list.component.html","./src/app/management/shared/components/appointment/appointment.component.html","./src/app/management/shared/components/bootstrap/time-picker/time-picker.component.html","./src/app/management/shared/components/calendars/calendar-with-time-slots/calendar-with-time-slots.component.html","./src/app/management/shared/components/calendars/calendar/calendar.component.html","./src/app/management/shared/components/calendars/date-picker-icon/date-picker-icon.component.html","./src/app/management/shared/components/calendars/date-picker/date-picker.component.html","./src/app/management/shared/components/calendars/scheduler/calendar-header/calendar-header.component.html","./src/app/management/shared/components/calendars/scheduler/day-view-scheduler/day-view-scheduler.component.html","./src/app/management/shared/components/calendars/scheduler/scheduler.component.html","./src/app/management/shared/components/calendars/time-slots-calendar/time-slots-calendar.component.html","./src/app/management/shared/components/client/client-edit/client-edit.component.html","./src/app/management/shared/components/client/client-list/client-list.component.html","./src/app/management/shared/components/client/client.component.html","./src/app/management/shared/components/color-pickers/color-picker-sketch/color-picker-sketch.component.html","./src/app/management/shared/components/color-pickers/colors-picker/colors-picker.component.html","./src/app/management/shared/components/credit/transaction-list/transaction-list.component.html","./src/app/management/shared/components/dialogs/appointment/appointment.component.html","./src/app/management/shared/components/dialogs/calendar-with-time-slots/calendar-with-time-slots.component.html","./src/app/management/shared/components/dialogs/calendar/calendar.component.html","./src/app/management/shared/components/dialogs/client/client.component.html","./src/app/management/shared/components/dialogs/confirmation/confirmation.component.html","./src/app/management/shared/components/dialogs/custom-fields/custom-fields.component.html","./src/app/management/shared/components/dialogs/exception-days-calendar/exception-days-calendar.component.html","./src/app/management/shared/components/dialogs/exception-days-calendar/exceptions-by-day/exceptions-by-day.component.html","./src/app/management/shared/components/dialogs/exception-days/exception-days.component.html","./src/app/management/shared/components/dialogs/html-info/html-info.component.html","./src/app/management/shared/components/dialogs/info/info.component.html","./src/app/management/shared/components/dialogs/list-info/list-info.component.html","./src/app/management/shared/components/exception-days/exception-days.component.html","./src/app/management/shared/components/filter-grid/filter-grid.component.html","./src/app/management/shared/components/keywords/keywords.component.html","./src/app/management/shared/components/layout/layout.component.html","./src/app/management/shared/components/notification-settings/notification-settings.component.html","./src/app/management/shared/components/office/operators-working-hours/operators-working-hours.component.html","./src/app/management/shared/components/office/operators-working-hours/services-working-hours/services-working-hours.component.html","./src/app/management/shared/components/office/working-hours/weekday-working-hours/weekday-working-hours.component.html","./src/app/management/shared/components/office/working-hours/working-hours.component.html","./src/app/management/shared/components/selections/multiple-selection-all-checkbox/multiple-selection-all-checkbox.component.html","./src/app/management/shared/components/selections/multiple-selection/multiple-selection.component.html","./src/app/management/shared/components/selections/single-selection-country/single-selection-country.component.html","./src/app/management/shared/components/selections/single-selection-with-image/single-selection-with-image.component.html","./src/app/management/shared/components/selections/single-selection/single-selection.component.html","./src/app/management/shared/components/sidenav-menu/sidenav-menu.component.html","./src/app/management/shared/components/sidenav-modules/sidenav-modules.component.html","./src/app/management/shared/components/time-picker/time-picker.component.html","./src/app/management/shared/components/time-slots/time-slots.component.html","./src/app/management/shared/components/users/manage-user/edit/edit.component.html","./src/app/management/shared/components/users/manage-user/list/list.component.html","./src/app/management/shared/components/users/settings/settings.component.html","./src/$_lazy_route_resource lazy namespace object","./src/api-authorization/api-authorization.constants.ts","./src/api-authorization/api-authorization.module.ts","./src/api-authorization/authorize.interceptor.ts","./src/api-authorization/authorize.service.ts","./src/api-authorization/login-menu/login-menu.component.scss","./src/api-authorization/login-menu/login-menu.component.ts","./src/api-authorization/login/login.component.css","./src/api-authorization/login/login.component.ts","./src/api-authorization/logout/logout.component.css","./src/api-authorization/logout/logout.component.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/i18n/actions/index.ts","./src/app/i18n/actions/language.actions.ts","./src/app/i18n/containers/i18n.component.ts","./src/app/i18n/containers/language-selector/language-selector.component.scss","./src/app/i18n/containers/language-selector/language-selector.component.ts","./src/app/i18n/i18n.module.ts","./src/app/i18n/reducers/index.ts","./src/app/i18n/reducers/language.reducer.ts","./src/app/initial-routing/initial-routing.component.ts","./src/app/layout/layout.module.ts","./src/app/layout/management/management-header/management-header.component.scss","./src/app/layout/management/management-header/management-header.component.ts","./src/app/layout/management/management-layout/management-layout.component.scss","./src/app/layout/management/management-layout/management-layout.component.ts","./src/app/management/admin/credit/add-credit-form.service.ts","./src/app/management/admin/credit/add-credit/add-credit.component.scss","./src/app/management/admin/credit/add-credit/add-credit.component.ts","./src/app/management/core/constants/calendar.constants.ts","./src/app/management/core/constants/crud.constants.ts","./src/app/management/core/constants/custom-fields.constants.ts","./src/app/management/core/constants/exception-day.constants.ts","./src/app/management/core/constants/filter-operator-type.ts","./src/app/management/core/constants/period-type.constants.ts","./src/app/management/core/constants/shared.constants.ts","./src/app/management/core/constants/src.constants.ts","./src/app/management/core/datasource/customer/appointment-notification-datasource.ts","./src/app/management/core/datasource/customer/appointment.datasource.ts","./src/app/management/core/datasource/customer/client.datasource.ts","./src/app/management/core/datasource/customer/customer-credit-transaction-datasource.ts","./src/app/management/core/datasource/customer/exception-day.datasource.ts","./src/app/management/core/datasource/users/user.datasource.ts","./src/app/management/core/functions/date-function.ts","./src/app/management/core/functions/file-function.ts","./src/app/management/core/functions/translate-function.ts","./src/app/management/core/functions/validator-function.ts","./src/app/management/core/services/common/agenda.service.ts","./src/app/management/core/services/common/notification-settings.service.ts","./src/app/management/core/services/customer/appointment-notification.service.ts","./src/app/management/core/services/customer/appointment.service.ts","./src/app/management/core/services/customer/client.service.ts","./src/app/management/core/services/customer/credit.service.ts","./src/app/management/core/services/customer/exception-day.service.ts","./src/app/management/core/services/customer/keyword.service.ts","./src/app/management/core/services/customer/office.service.ts","./src/app/management/core/services/customer/operator.service.ts","./src/app/management/core/services/customer/service.service.ts","./src/app/management/core/services/customer/settings.service.ts","./src/app/management/core/services/customer/status.service.ts","./src/app/management/core/services/users/user.service.ts","./src/app/management/shared/components/appointment-notification/appointment-notification.component.scss","./src/app/management/shared/components/appointment-notification/appointment-notification.component.ts","./src/app/management/shared/components/appointment/appointment-details/appointment-details.component.scss","./src/app/management/shared/components/appointment/appointment-details/appointment-details.component.ts","./src/app/management/shared/components/appointment/appointment-edit/appointment-edit.component.scss","./src/app/management/shared/components/appointment/appointment-edit/appointment-edit.component.ts","./src/app/management/shared/components/appointment/appointment-form.service.ts","./src/app/management/shared/components/appointment/appointment-list/appointment-list.component.scss","./src/app/management/shared/components/appointment/appointment-list/appointment-list.component.ts","./src/app/management/shared/components/appointment/appointment-loader.service.ts","./src/app/management/shared/components/appointment/appointment.component.scss","./src/app/management/shared/components/appointment/appointment.component.ts","./src/app/management/shared/components/bootstrap/time-picker/time-picker.component.scss","./src/app/management/shared/components/bootstrap/time-picker/time-picker.component.ts","./src/app/management/shared/components/calendars/calendar-with-time-slots/calendar-with-time-slots.component.scss","./src/app/management/shared/components/calendars/calendar-with-time-slots/calendar-with-time-slots.component.ts","./src/app/management/shared/components/calendars/calendar/calendar.component.scss","./src/app/management/shared/components/calendars/calendar/calendar.component.ts","./src/app/management/shared/components/calendars/date-picker-icon/date-picker-icon.component.scss","./src/app/management/shared/components/calendars/date-picker-icon/date-picker-icon.component.ts","./src/app/management/shared/components/calendars/date-picker/date-picker.component.scss","./src/app/management/shared/components/calendars/date-picker/date-picker.component.ts","./src/app/management/shared/components/calendars/scheduler/calendar-header/calendar-header.component.scss","./src/app/management/shared/components/calendars/scheduler/calendar-header/calendar-header.component.ts","./src/app/management/shared/components/calendars/scheduler/day-view-scheduler/day-view-scheduler.component.ts","./src/app/management/shared/components/calendars/scheduler/scheduler.component.scss","./src/app/management/shared/components/calendars/scheduler/scheduler.component.ts","./src/app/management/shared/components/calendars/time-slots-calendar/time-slots-calendar.component.scss","./src/app/management/shared/components/calendars/time-slots-calendar/time-slots-calendar.component.ts","./src/app/management/shared/components/client/client-edit/client-edit.component.scss","./src/app/management/shared/components/client/client-edit/client-edit.component.ts","./src/app/management/shared/components/client/client-form.service.ts","./src/app/management/shared/components/client/client-list/client-list.component.scss","./src/app/management/shared/components/client/client-list/client-list.component.ts","./src/app/management/shared/components/client/client-loader.service.ts","./src/app/management/shared/components/client/client.component.scss","./src/app/management/shared/components/client/client.component.ts","./src/app/management/shared/components/color-pickers/color-picker-sketch/color-picker-sketch.component.scss","./src/app/management/shared/components/color-pickers/color-picker-sketch/color-picker-sketch.component.ts","./src/app/management/shared/components/color-pickers/colors-picker/colors-picker.component.scss","./src/app/management/shared/components/color-pickers/colors-picker/colors-picker.component.ts","./src/app/management/shared/components/credit/transaction-list/transaction-list.component.scss","./src/app/management/shared/components/credit/transaction-list/transaction-list.component.ts","./src/app/management/shared/components/custom-date-adapter.ts","./src/app/management/shared/components/dialogs/appointment/appointment.component.scss","./src/app/management/shared/components/dialogs/appointment/appointment.component.ts","./src/app/management/shared/components/dialogs/calendar-with-time-slots/calendar-with-time-slots.component.scss","./src/app/management/shared/components/dialogs/calendar-with-time-slots/calendar-with-time-slots.component.ts","./src/app/management/shared/components/dialogs/calendar/calendar.component.scss","./src/app/management/shared/components/dialogs/calendar/calendar.component.ts","./src/app/management/shared/components/dialogs/client/client.component.scss","./src/app/management/shared/components/dialogs/client/client.component.ts","./src/app/management/shared/components/dialogs/confirmation/confirmation.component.scss","./src/app/management/shared/components/dialogs/confirmation/confirmation.component.ts","./src/app/management/shared/components/dialogs/custom-fields/custom-fields.component.scss","./src/app/management/shared/components/dialogs/custom-fields/custom-fields.component.ts","./src/app/management/shared/components/dialogs/exception-days-calendar/exception-days-calendar.component.scss","./src/app/management/shared/components/dialogs/exception-days-calendar/exception-days-calendar.component.ts","./src/app/management/shared/components/dialogs/exception-days-calendar/exceptions-by-day/exceptions-by-day-form.service.ts","./src/app/management/shared/components/dialogs/exception-days-calendar/exceptions-by-day/exceptions-by-day-loader.service.ts","./src/app/management/shared/components/dialogs/exception-days-calendar/exceptions-by-day/exceptions-by-day.component.scss","./src/app/management/shared/components/dialogs/exception-days-calendar/exceptions-by-day/exceptions-by-day.component.ts","./src/app/management/shared/components/dialogs/exception-days/exception-days.component.scss","./src/app/management/shared/components/dialogs/exception-days/exception-days.component.ts","./src/app/management/shared/components/dialogs/html-info/html-info.component.scss","./src/app/management/shared/components/dialogs/html-info/html-info.component.ts","./src/app/management/shared/components/dialogs/info/info.component.scss","./src/app/management/shared/components/dialogs/info/info.component.ts","./src/app/management/shared/components/dialogs/list-info/list-info.component.scss","./src/app/management/shared/components/dialogs/list-info/list-info.component.ts","./src/app/management/shared/components/exception-days/exception-days.component.scss","./src/app/management/shared/components/exception-days/exception-days.component.ts","./src/app/management/shared/components/filter-grid/filter-grid-form.service.ts","./src/app/management/shared/components/filter-grid/filter-grid.component.scss","./src/app/management/shared/components/filter-grid/filter-grid.component.ts","./src/app/management/shared/components/keywords/keywords-form.service.ts","./src/app/management/shared/components/keywords/keywords-loader.service.ts","./src/app/management/shared/components/keywords/keywords.component.scss","./src/app/management/shared/components/keywords/keywords.component.ts","./src/app/management/shared/components/layout/layout.component.scss","./src/app/management/shared/components/layout/layout.component.ts","./src/app/management/shared/components/notification-settings/notification-settings-form.service.ts","./src/app/management/shared/components/notification-settings/notification-settings-loader.service.ts","./src/app/management/shared/components/notification-settings/notification-settings.component.scss","./src/app/management/shared/components/notification-settings/notification-settings.component.ts","./src/app/management/shared/components/office/operators-working-hours/operators-working-hours-form.service.ts","./src/app/management/shared/components/office/operators-working-hours/operators-working-hours-loader.service.ts","./src/app/management/shared/components/office/operators-working-hours/operators-working-hours.component.scss","./src/app/management/shared/components/office/operators-working-hours/operators-working-hours.component.ts","./src/app/management/shared/components/office/operators-working-hours/services-working-hours/services-working-hours-form.service.ts","./src/app/management/shared/components/office/operators-working-hours/services-working-hours/services-working-hours-loader.service.ts","./src/app/management/shared/components/office/operators-working-hours/services-working-hours/services-working-hours.component.scss","./src/app/management/shared/components/office/operators-working-hours/services-working-hours/services-working-hours.component.ts","./src/app/management/shared/components/office/working-hours/weekday-working-hours/weekday-working-hours-form.service.ts","./src/app/management/shared/components/office/working-hours/weekday-working-hours/weekday-working-hours-loader.service.ts","./src/app/management/shared/components/office/working-hours/weekday-working-hours/weekday-working-hours.component.scss","./src/app/management/shared/components/office/working-hours/weekday-working-hours/weekday-working-hours.component.ts","./src/app/management/shared/components/office/working-hours/working-hours-form.service.ts","./src/app/management/shared/components/office/working-hours/working-hours-loader.service.ts","./src/app/management/shared/components/office/working-hours/working-hours.component.scss","./src/app/management/shared/components/office/working-hours/working-hours.component.ts","./src/app/management/shared/components/paginator-intl.ts","./src/app/management/shared/components/selections/multiple-selection-all-checkbox/multiple-selection-all-checkbox.component.scss","./src/app/management/shared/components/selections/multiple-selection-all-checkbox/multiple-selection-all-checkbox.component.ts","./src/app/management/shared/components/selections/multiple-selection/multiple-selection.component.scss","./src/app/management/shared/components/selections/multiple-selection/multiple-selection.component.ts","./src/app/management/shared/components/selections/single-selection-country/single-selection-country.component.scss","./src/app/management/shared/components/selections/single-selection-country/single-selection-country.component.ts","./src/app/management/shared/components/selections/single-selection-with-image/single-selection-with-image.component.scss","./src/app/management/shared/components/selections/single-selection-with-image/single-selection-with-image.component.ts","./src/app/management/shared/components/selections/single-selection/single-selection.component.scss","./src/app/management/shared/components/selections/single-selection/single-selection.component.ts","./src/app/management/shared/components/sidenav-menu/sidenav-menu.component.scss","./src/app/management/shared/components/sidenav-menu/sidenav-menu.component.ts","./src/app/management/shared/components/sidenav-modules/sidenav-modules.component.scss","./src/app/management/shared/components/sidenav-modules/sidenav-modules.component.ts","./src/app/management/shared/components/time-picker/time-picker.component.scss","./src/app/management/shared/components/time-picker/time-picker.component.ts","./src/app/management/shared/components/time-slots/time-slots.component.scss","./src/app/management/shared/components/time-slots/time-slots.component.ts","./src/app/management/shared/components/users/manage-user/edit/edit.component.scss","./src/app/management/shared/components/users/manage-user/edit/edit.component.ts","./src/app/management/shared/components/users/manage-user/edit/user-form.service.ts","./src/app/management/shared/components/users/manage-user/edit/user-loader.service.ts","./src/app/management/shared/components/users/manage-user/list/list.component.scss","./src/app/management/shared/components/users/manage-user/list/list.component.ts","./src/app/management/shared/components/users/settings/settings-form.service.ts","./src/app/management/shared/components/users/settings/settings-loader.service.ts","./src/app/management/shared/components/users/settings/settings.component.scss","./src/app/management/shared/components/users/settings/settings.component.ts","./src/app/management/shared/shared.module.ts","./src/app/reducers/index.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["export default \"
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{ userName | async }}\\r\\n
\\r\\n\\r\\n
\\r\\n {{loginMenu.creditInfoLabel}}: {{loginMenu.currentCredit}}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","export default \"

{{ message | async }}

\"","export default \"

{{ message | async }}

\"","export default \"\\r\\n \\r\\n\\r\\n\"","export default \"
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","export default \"\\r\\n\"","export default \"
\\r\\n \\r\\n
\\r\\n\\r\\n\"","export default \"\\r\\n
\\r\\n \\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{ 'credit.list.add' | translate }}\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'credit.list.addEmail' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'credit.transactions.amount' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ 'credit.list.warningCredit' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'credit.transactions.addDetails' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","export default \"\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n {{'list.channel' | translate}}\\r\\n \\r\\n \\r\\n {{item.text}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'list.receiver' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.receiver }} \\r\\n {{ 'list.sender' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.sender }} \\r\\n {{ 'list.price' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.price }} \\r\\n {{ 'list.date' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.sentOnUtc | date:'dd-MM-yyyy HH:mm'}} {{ 'list.status' | translate | uppercase }}\\r\\n\\r\\n {{element.statusLabel}}\\r\\n {{element.statusLabel}}\\r\\n {{ 'list.actions' | translate | uppercase }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\"","export default \"
\\n

\\n {{ 'details.title' | translate | uppercase }}\\n

\\n\\n
\\n {{ appointment.office.name }} ({{ appointment.office.address }})\\n
\\n\\n
\\n {{ appointment.service.name }}\\n
\\n\\n
\\n {{ appointment.operator.firstName }} {{ appointment.operator.lastName }}\\n
\\n\\n
\\n {{ appointment.status.name }}\\n
\\n\\n
\\n {{ appointment.date | date:'y-MM-dd' }} {{ appointment.startHour }} - {{ appointment.endHour }}\\n
\\n\\n
\\n {{ appointment.client.firstName }} {{ appointment.client.lastName }}\\n
\\n\\n
\\n {{ appointment.notes }}\\n
\\n
\\n\"","export default \"\\r\\n\\r\\n\"","export default \"\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'list.created' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.createdOnUtc | date:'y-MM-dd' }} \\r\\n {{ 'list.uniqueCode' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.uniqueCode }} \\r\\n {{ 'list.date' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.date | date:'y-MM-dd' }} \\r\\n {{ 'list.service' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.service.name }} \\r\\n {{ 'list.serviceDuration' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.service.appointmentDuration }} min \\r\\n {{ 'list.startHour' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.startHour }} \\r\\n {{ 'list.clientFirstName' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.client.firstName }} \\r\\n {{ 'list.clientName' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.client.firstName }} {{ element.client.lastName }} \\r\\n {{ 'list.status' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.status.name }} {{ 'list.actions' | translate | uppercase }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n
\\r\\n \\r\\n

\\r\\n {{ 'edit.appointmentDetails' | translate }}\\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n {{ 'edit.clientDetails' | translate }}\\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n  \\r\\n {{ 'edit.goBack' | translate }}\\r\\n \\r\\n \\r\\n  \\r\\n {{ 'edit.goBack' | translate }}\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

\\r\\n {{ 'edit.createSuccess' | translate }}\\r\\n {{ 'edit.updateSuccess' | translate }}\\r\\n

\\r\\n

\\r\\n {{ 'edit.notFound' | translate: { 'id': id } }}\\r\\n

\\r\\n \\r\\n   {{ 'edit.backToManagement' | translate }}\\r\\n \\r\\n
\\r\\n\"","export default \"
\\r\\n {{ title }}   \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n {{ 'agenda.appointmentDuration' | translate }}: {{ appointmentDuration }}\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n {{'confirmation.durationExceeded' | translate}}!\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ item.startHour }}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ item.startHour }}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ item.startHour }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n  \\r\\n {{ 'confirmation.cancel' | translate }}\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n\"","export default \"
\\n \\n \\n
\\n\"","export default \"\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\"","export default \"\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'calendar-header.day' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'calendar-header.week' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'calendar-header.month' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

\\r\\n {{ viewDate | calendarDate: view + 'ViewTitle': locale: weekStartsOn }}\\r\\n\\r\\n ({{ operatorName }})\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'calendar-header.previous' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'calendar-header.today' | translate }}\\r\\n
\\r\\n
\\r\\n {{ 'calendar-header.next' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n {{ user.text }}\\r\\n
\\r\\n
\\r\\n
0\\\"\\r\\n mwlDroppable\\r\\n (dragEnter)=\\\"dragEnter('allDay')\\\"\\r\\n (dragLeave)=\\\"dragLeave('allDay')\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\\\">\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
0\\\"\\r\\n #dayColumns>\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n 0\\\"\\r\\n [tooltipDelay]=\\\"tooltipDelay\\\"\\r\\n [customTemplate]=\\\"eventTemplate\\\"\\r\\n [eventTitleTemplate]=\\\"eventTitleTemplate\\\"\\r\\n [eventActionsTemplate]=\\\"eventActionsTemplate\\\"\\r\\n [column]=\\\"column\\\"\\r\\n (eventClicked)=\\\"\\r\\n eventClicked.emit({\\r\\n event: timeEvent.event,\\r\\n sourceEvent: $event.sourceEvent\\r\\n })\\r\\n \\\">\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n 7?'fit-content-width':''\\\"\\r\\n class=\\\"day-view-height\\\"\\r\\n [viewDate]=\\\"viewDate\\\"\\r\\n [events]=\\\"events\\\"\\r\\n [users]=\\\"operators\\\"\\r\\n [dayStartHour]=\\\"dayStartHour\\\"\\r\\n [dayStartMinute]=\\\"dayStartMinute\\\"\\r\\n [dayEndHour]=\\\"dayEndHour\\\"\\r\\n [dayEndMinute]=\\\"dayEndMinute\\\"\\r\\n [locale]=\\\"locale\\\"\\r\\n [refresh]=\\\"refresh\\\"\\r\\n [currentTimeMarkerTemplate]=\\\"currentTimeMarkerTemplate\\\"\\r\\n (eventClicked)=\\\"eventClicked($event)\\\"\\r\\n (hourSegmentClicked)=\\\"hourSegmentClicked($event)\\\"\\r\\n (beforeViewRender)=\\\"beforeDayViewRender($event)\\\">\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n 0\\\">{{ day.badgeTotal }}\\r\\n {{ day.date | calendarDate:'monthViewDayNumber':locale }}\\r\\n
\\r\\n
\\r\\n \\r\\n {{ group[1].length }}\\r\\n \\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n\\r\\n
\\r\\n
\\r\\n minDate\\\" id=\\\"previous\\\" class=\\\"icofont-simple-left icofont-1x\\\" (click)=\\\"previous()\\\">\\r\\n\\r\\n \\r\\n {{ selectedDate | calendarDate: view + 'ViewTitle': locale: weekStartsOn }}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n\\r\\n\"","export default \"\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'clients.list.firstName' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.firstName }}\\r\\n {{ 'clients.list.lastName' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.lastName }}\\r\\n {{ 'clients.list.phone' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.phone }} \\r\\n {{ 'clients.list.email' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.email }} {{ 'clients.list.actions' | translate | uppercase }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n
\\r\\n \\r\\n

{{ 'clients.edit.generalInfo' | translate }}

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'clients.edit.warningFirstName' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'clients.edit.warningLastName' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'clients.edit.warningPhone' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'clients.edit.warningEmail' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n  \\r\\n {{ 'clients.edit.goBack' | translate }}\\r\\n \\r\\n \\r\\n  \\r\\n {{ 'clients.edit.goBack' | translate }}\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

\\r\\n {{ 'clients.edit.createSuccess' | translate }}\\r\\n {{ 'clients.edit.updateSuccess' | translate }}\\r\\n

\\r\\n

\\r\\n {{ 'clients.edit.notFound' | translate: { 'id': id } }}\\r\\n

\\r\\n \\r\\n   {{ 'clients.edit.backToManagement' | translate }}\\r\\n \\r\\n
\\r\\n\"","export default \"

\\r\\n {{ title }}  \\r\\n

\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\"","export default \"
\\r\\n
{{ title }}  
\\r\\n\\r\\n \\r\\n
\\r\\n\"","export default \"\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{'credit.transactions.code' | translate | uppercase }}:  {{customerCode}}\\r\\n
\\r\\n
\\r\\n {{'credit.transactions.email' | translate | uppercase }}:  {{email}}\\r\\n
\\r\\n
\\r\\n {{'credit.transactions.credit' | translate | uppercase }}:  {{currentCredit | number : '1.3-5' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'credit.transactions.amount' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.amount }} \\r\\n {{ 'credit.transactions.date' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{ element.createdOnUtc | date:'dd-MM-yyyy HH:mm:ss'}} {{ 'credit.transactions.details' | translate | uppercase }}\\r\\n {{element.details}}\\r\\n {{ 'credit.transactions.method' | translate | uppercase }}\\r\\n {{element.paymentMethodLabel}}\\r\\n {{ 'credit.transactions.status' | translate | uppercase }}\\r\\n {{element.statusLabel}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n   \\r\\n \\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n\"","export default \"\\r\\n\\r\\n\"","export default \"\\r\\n\\r\\n\"","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

{{ message }}

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n  \\r\\n {{ 'confirmation.cancel' | translate }}\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"

{{ 'custom-fields.customFields' | translate }}

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{field.name}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n

{{ 'exception-days.edit.title' | translate | uppercase }}

\\r\\n
{{ 'exception-days.edit.officeDescription' | translate | uppercase }}
\\r\\n
{{ 'exception-days.edit.operatorDescription' | translate | uppercase }}
\\r\\n\\r\\n
\\r\\n
\\r\\n
{{ 'exception-days.edit.titleCalendar' | translate }}:
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n  \\r\\n {{ 'exception-days.edit.cancel' | translate }}\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n
{{ 'exception-days.edit.titleWorkingHours' | translate }}:
\\r\\n\\r\\n
\\r\\n \\r\\n {{ 'exception-days.edit.allDay' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n {{ title }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","export default \"
\\r\\n {{ info }}\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n

\\r\\n {{ title }}: {{ titleName }}\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n

{{ 'exception-days.list.title' | translate }}

\\r\\n
{{ 'exception-days.list.officeDescription' | translate }}
\\r\\n
{{ 'exception-days.list.operatorDescription' | translate }}
\\r\\n\\r\\n
{{ 'exception-days.list.officeInfo' | translate }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'exception-days.list.date' | translate | uppercase }}\\r\\n \\r\\n \\r\\n \\r\\n {{ element.date | date:'y-MM-dd' }}\\r\\n \\r\\n {{ 'exception-days.list.time' | translate | uppercase }}\\r\\n \\r\\n {{ 'exception-days.list.allDay' | translate }}\\r\\n {{ element.startHour }} - {{ element.endHour }}\\r\\n \\r\\n {{ 'exception-days.list.actions' | translate | uppercase }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'filter.selectOperator' | translate }}\\r\\n \\r\\n \\r\\n {{ operator.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{ 'filter.available' | translate }}\\r\\n {{ 'filter.unavailable' | translate }}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ 'filter.chooseDate' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ 'keywords.title' | translate }}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{ 'keywords.empty' | translate }}\\r\\n
\\r\\n\\r\\n
\\r\\n {{ 'keywords.duplicates' | translate }}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","export default \"
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","export default \"
\\n
{{ 'notification-settings.title' | translate }}
\\n\\n
\\n
\\n
\\n {{ 'notification-settings.byEmail' | translate }}\\n
\\n
\\n
\\n \\n \\n \\n {{ 'register.warningEmail' | translate }}\\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n {{ 'notification-settings.bySms' | translate }}\\n
\\n
\\n
\\n \\n \\n \\n {{ 'register.warningPhone' | translate }}\\n \\n \\n
\\n
\\n\\n
{{ 'notification-settings.info' | translate }}
\\n
\\n\"","export default \"
\\n
\\n \\n
\\n

{{ 'op-serv.operators.title' | translate }}

\\n\\n
\\n
\\n
\\n \\n\\n
\\n {{ item.value.operator.firstName }} {{ item.value.operator.lastName }}\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n

{{ 'op-serv.services.title' | translate }}

\\n
{{ 'op-serv.operators.alertSelect' | translate }}
\\n
\\n
\\n
\\n \\n

{{ 'working-hours.title' | translate }}

\\n
{{ 'op-serv.services.alertSelect' | translate }}
\\n
\\n
\\n
\\n\"","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n

{{ 'op-serv.services.titleWithOperator' | translate }}: {{ operator.firstName }} {{ operator.lastName }}

\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ item.value.name }}
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

{{ 'working-hours.titleWithService' | translate }}: {{ selectedItem.serviceName }}

\\r\\n
{{ 'op-serv.services.infoSelect' | translate }}
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n

{{ 'working-hours.title' | translate }}

\\r\\n
{{ 'op-serv.services.alertSelect' | translate }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'working-hours.monday' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n {{ 'working-hours.unavailable' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'working-hours.tuesday' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n {{ 'working-hours.unavailable' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'working-hours.wednesday' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n {{ 'working-hours.unavailable' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'working-hours.thursday' | translate }}\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n {{ 'working-hours.unavailable' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'working-hours.friday' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n {{ 'working-hours.unavailable' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'working-hours.saturday' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n {{ 'working-hours.unavailable' | translate }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ 'working-hours.sunday' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n {{ 'working-hours.unavailable' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n \\r\\n 0 && itemMultiCtrl.value.length < allItemsSize\\\"\\r\\n [toggleAllCheckboxChecked]=\\\"itemMultiCtrl.value.length === allItemsSize\\\"\\r\\n (toggleAll)=\\\"toggleSelectAll($event)\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.text}}\\r\\n \\r\\n \\r\\n\\r\\n\"","export default \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.text}}\\r\\n \\r\\n \\r\\n\\r\\n\"","export default \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\\"flag\\\"\\r\\n \\r\\n\\r\\n \\r\\n \\\"img\\\"  {{ item.text }}\\r\\n \\r\\n\\r\\n\"","export default \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\\"img\\\"  {{ item.text }}\\r\\n \\r\\n \\r\\n\\r\\n\"","export default \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ item.text }}\\r\\n \\r\\n \\r\\n\\r\\n\"","export default \"
\\r\\n

{{ title }}

\\r\\n \\r\\n
\\r\\n\"","export default \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n {{ title }}  \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n {{ item.startHour }}\\r\\n
\\r\\n\\r\\n
\\r\\n {{ item.startHour }}\\r\\n
\\r\\n\\r\\n
\\r\\n {{ item.startHour }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n {{'confirmation.durationExceeded' | translate}}!\\r\\n
\\r\\n\\r\\n\\r\\n\"","export default \"
\\r\\n\\r\\n
\\r\\n

\\r\\n {{ 'edit.userInformation' | translate }}\\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningFirstName' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningLastName' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningPhone' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningEmail' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningPassword' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningRetypePassword' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n {{ 'edit.apiAuthorization' | translate }}\\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningCustomerCode' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningWebApiKey' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningCustomerCodeDillo' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningWebApiKeyDillo' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n {{ 'edit.accountValidity' | translate }}\\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.warningAccountExpiresOnUtc' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'edit.isActivated' | translate }}\\r\\n \\r\\n \\r\\n {{ 'edit.isLicenceAccepted' | translate }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n

\\r\\n {{ 'edit.phoneBooking' | translate }}\\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n  \\r\\n {{ 'edit.goBack' | translate }}\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

\\r\\n {{ 'edit.createSuccess' | translate }}\\r\\n {{ 'edit.updateSuccess' | translate }}\\r\\n

\\r\\n

\\r\\n {{ 'edit.notFound' | translate: { 'id': id } }}\\r\\n

\\r\\n \\r\\n   {{ 'edit.backToManagement' | translate }}\\r\\n \\r\\n
\\r\\n\"","export default \"\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'list.email' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{element.email}} \\r\\n {{ 'list.firstName' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{element.firstName}} \\r\\n {{ 'list.lastName' | translate | uppercase }}\\r\\n \\r\\n \\r\\n {{element.lastName}} {{ 'list.actions' | translate | uppercase }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","export default \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n  \\r\\n {{ 'edit.goBack' | translate }}\\r\\n \\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

\\r\\n {{ 'edit.saveSuccess' | translate }}\\r\\n

\\r\\n

\\r\\n {{ 'edit.notFound' | translate: { 'customerCode': customerCode } }}\\r\\n

\\r\\n \\r\\n   {{ 'edit.backToManagement' | translate }}\\r\\n \\r\\n
\\r\\n\"","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","export const ApplicationName = 'AppointmentApp.Website';\r\n//export const ApplicationRoot: string = 'AppointmentApp'; //UNCOMMENT ON PUBLISH\r\nexport const ApplicationRoot: string = ''; //COMMENT ON PUBLISH\r\n\r\nexport const ReturnUrlType = 'returnUrl';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: ReturnUrlType,\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nlet applicationPaths: ApplicationPathsType = {\r\n DefaultLoginRedirectPath: '/',\r\n //ApiAuthorizationClientConfigurationUrl: `/${ApplicationRoot}/_configuration/${ApplicationName}`, // UNCOMMENT ON PUBLISH\r\n ApiAuthorizationClientConfigurationUrl: `/_configuration/${ApplicationName}`, //COMMENT ON PUBLISH\r\n Login: `authentication/${LoginActions.Login}`,\r\n LoginFailed: `authentication/${LoginActions.LoginFailed}`,\r\n LoginCallback: `authentication/${LoginActions.LoginCallback}`,\r\n Register: `authentication/${LoginActions.Register}`,\r\n Profile: `authentication/${LoginActions.Profile}`,\r\n LogOut: `authentication/${LogoutActions.Logout}`,\r\n LoggedOut: `authentication/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `authentication/${LogoutActions.LogoutCallback}`,\r\n LoginPathComponents: [],\r\n LoginFailedPathComponents: [],\r\n LoginCallbackPathComponents: [],\r\n RegisterPathComponents: [],\r\n ProfilePathComponents: [],\r\n LogOutPathComponents: [],\r\n LoggedOutPathComponents: [],\r\n LogOutCallbackPathComponents: [],\r\n IdentityRegisterPath: `/${ApplicationRoot}/Identity/Account/Register`,\r\n IdentityManagePath: `/${ApplicationRoot}/Identity/Account/Manage`\r\n};\r\n\r\napplicationPaths = {\r\n ...applicationPaths,\r\n LoginPathComponents: applicationPaths.Login.split('/'),\r\n LoginFailedPathComponents: applicationPaths.LoginFailed.split('/'),\r\n RegisterPathComponents: applicationPaths.Register.split('/'),\r\n ProfilePathComponents: applicationPaths.Profile.split('/'),\r\n LogOutPathComponents: applicationPaths.LogOut.split('/'),\r\n LoggedOutPathComponents: applicationPaths.LoggedOut.split('/'),\r\n LogOutCallbackPathComponents: applicationPaths.LogOutCallback.split('/')\r\n};\r\n\r\ninterface ApplicationPathsType {\r\n readonly DefaultLoginRedirectPath: string;\r\n readonly ApiAuthorizationClientConfigurationUrl: string;\r\n readonly Login: string;\r\n readonly LoginFailed: string;\r\n readonly LoginCallback: string;\r\n readonly Register: string;\r\n readonly Profile: string;\r\n readonly LogOut: string;\r\n readonly LoggedOut: string;\r\n readonly LogOutCallback: string;\r\n readonly LoginPathComponents: string [];\r\n readonly LoginFailedPathComponents: string [];\r\n readonly LoginCallbackPathComponents: string [];\r\n readonly RegisterPathComponents: string [];\r\n readonly ProfilePathComponents: string [];\r\n readonly LogOutPathComponents: string [];\r\n readonly LoggedOutPathComponents: string [];\r\n readonly LogOutCallbackPathComponents: string [];\r\n readonly IdentityRegisterPath: string;\r\n readonly IdentityManagePath: string;\r\n}\r\n\r\nexport const ApplicationPaths: ApplicationPathsType = applicationPaths;\r\n\r\nexport const UserRoles = {\r\n Admin: \"Admin\",\r\n Customer: \"Customer\",\r\n Client: \"Client\",\r\n Operator:\"Operator\"\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoginMenuComponent } from './login-menu/login-menu.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { LogoutComponent } from './logout/logout.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ApplicationPaths } from './api-authorization.constants';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { MatMenuModule } from '@angular/material';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n MatMenuModule,\r\n RouterModule.forChild(\r\n [\r\n { path: ApplicationPaths.Register, component: LoginComponent },\r\n { path: ApplicationPaths.Profile, component: LoginComponent },\r\n { path: ApplicationPaths.Login, component: LoginComponent },\r\n { path: ApplicationPaths.LoginFailed, component: LoginComponent },\r\n { path: ApplicationPaths.LoginCallback, component: LoginComponent },\r\n { path: ApplicationPaths.LogOut, component: LogoutComponent },\r\n { path: ApplicationPaths.LoggedOut, component: LogoutComponent },\r\n { path: ApplicationPaths.LogOutCallback, component: LogoutComponent }\r\n ]\r\n )\r\n ],\r\n declarations: [LoginMenuComponent, LoginComponent, LogoutComponent],\r\n exports: [LoginMenuComponent, LoginComponent, LogoutComponent]\r\n})\r\nexport class ApiAuthorizationModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthorizeService } from './authorize.service';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthorizeInterceptor implements HttpInterceptor {\r\n constructor(private authorize: AuthorizeService) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return this.authorize.getAccessToken()\r\n .pipe(mergeMap(token => this.processRequestWithToken(token, req, next)));\r\n }\r\n\r\n // Checks if there is an access_token available in the authorize service\r\n // and adds it to the request in case it's targeted at the same origin as the\r\n // single page application.\r\n private processRequestWithToken(token: string, req: HttpRequest, next: HttpHandler) {\r\n if (!!token && this.isSameOriginUrl(req)) {\r\n req = req.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n });\r\n }\r\n\r\n return next.handle(req);\r\n }\r\n\r\n private isSameOriginUrl(req: any) {\r\n // It's an absolute url with the same origin.\r\n if (req.url.startsWith(`${window.location.origin}/`)) {\r\n return true;\r\n }\r\n\r\n // It's a protocol relative url with the same origin.\r\n // For example: //www.example.com/api/Products\r\n if (req.url.startsWith(`//${window.location.host}/`)) {\r\n return true;\r\n }\r\n\r\n // It's a relative url like /api/Products\r\n if (/^\\/[^\\/].*/.test(req.url)) {\r\n return true;\r\n }\r\n\r\n // It's an absolute or protocol relative url that\r\n // doesn't have the same origin.\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { User, UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { BehaviorSubject, concat, from, Observable } from 'rxjs';\r\nimport { filter, map, mergeMap, take, tap } from 'rxjs/operators';\r\nimport { ApplicationPaths, ApplicationName } from './api-authorization.constants';\r\n\r\nexport type IAuthenticationResult =\r\n SuccessAuthenticationResult |\r\n FailureAuthenticationResult |\r\n RedirectAuthenticationResult;\r\n\r\nexport interface SuccessAuthenticationResult {\r\n status: AuthenticationResultStatus.Success;\r\n state: any;\r\n}\r\n\r\nexport interface FailureAuthenticationResult {\r\n status: AuthenticationResultStatus.Fail;\r\n message: string;\r\n}\r\n\r\nexport interface RedirectAuthenticationResult {\r\n status: AuthenticationResultStatus.Redirect;\r\n}\r\n\r\nexport enum AuthenticationResultStatus {\r\n Success,\r\n Redirect,\r\n Fail\r\n}\r\n\r\nexport interface IUser {\r\n name: string;\r\n userRole?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthorizeService {\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n\r\n private popUpDisabled = true;\r\n private userManager: UserManager;\r\n private userSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n public isAuthenticated(): Observable {\r\n return this.getUser().pipe(map(u => !!u));\r\n }\r\n\r\n public getUser(): Observable {\r\n return concat(\r\n this.userSubject.pipe(take(1), filter(u => !!u)),\r\n this.getUserFromStorage().pipe(filter(u => !!u), tap(u => this.userSubject.next(u))),\r\n this.userSubject.asObservable());\r\n }\r\n\r\n public getAccessToken(): Observable {\r\n return from(this.ensureUserManagerInitialized())\r\n .pipe(mergeMap(() => from(this.userManager.getUser())),\r\n map(user => user && user.access_token));\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n public async signIn(state: any): Promise {\r\n await this.ensureUserManagerInitialized();\r\n let user: User = null;\r\n try {\r\n user = await this.userManager.signinSilent(this.createArguments());\r\n this.userSubject.next(user.profile);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log('Silent authentication error: ', silentError);\r\n\r\n try {\r\n if (this.popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'authorize.service.ts:AuthorizeService.popupDisabled\\' to false to enable it.');\r\n }\r\n user = await this.userManager.signinPopup(this.createArguments());\r\n this.userSubject.next(user.profile);\r\n return this.success(state);\r\n } catch (popupError) {\r\n if (popupError.message === 'Popup window closed') {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error('The user closed the window.');\r\n } else if (!this.popUpDisabled) {\r\n console.log('Popup authentication error: ', popupError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n //console.log(\"signinRedirect return url\", state);\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log('Redirect authentication error: ', redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public async completeSignIn(url: string, fromManagement=true): Promise {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.userSubject.next(user && user.profile);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n //return this.error('There was an error signing in.');\r\n const user = await this.userManager.getUser();\r\n if (user != null) {\r\n this.userSubject.next(user && user.profile);\r\n return this.success(user && user.state);\r\n }\r\n //error on read Token\r\n console.log(\"error on read token url=\", url)\r\n if (fromManagement && url.indexOf(\"apointments/\")==-1) {\r\n return this.completeSignOut(\"/authentication/login\");\r\n }\r\n else {\r\n return this.completeSignOut(url);\r\n }\r\n }\r\n }\r\n\r\n public async signOut(state: any): Promise {\r\n try {\r\n if (this.popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'authorize.service.ts:AuthorizeService.popupDisabled\\' to false to enable it.');\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.userSubject.next(null);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log('Popup signout error: ', popupSignOutError);\r\n try {\r\n\r\n //call logout from server\r\n var returnUrl:string = state.returnUrl;\r\n if (!returnUrl.startsWith('/')){\r\n returnUrl = `/${returnUrl}`;\r\n }\r\n\r\n this.userSubject.next(null);\r\n await this.userManager.clearStaleState();\r\n await this.userManager.removeUser();\r\n \r\n localStorage.clear();\r\n\r\n var url = `/Identity/Account/CustomLogout?returnUrl=${returnUrl}`;\r\n window.location.href = url;\r\n \r\n //await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log('Redirect signout error: ', popupSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n public async completeSignOut(url: string): Promise {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const state = await this.userManager.signoutCallback(url);\r\n this.userSubject.next(null);\r\n return this.success(state && state.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n public getUserRole(): Observable {\r\n return from(this.ensureUserManagerInitialized())\r\n .pipe(mergeMap(() => from(this.userManager.getUser())),\r\n map(user => { /*console.log('user = ', user);*/ return user && user.profile.UserRole; }));\r\n }\r\n\r\n private createArguments(state?: any): any {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n private error(message: string): IAuthenticationResult {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n private success(state: any): IAuthenticationResult {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n private redirect(): IAuthenticationResult {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n private async ensureUserManagerInitialized(): Promise {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n const response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n const settings: any = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n this.userManager = new UserManager(settings);\r\n\r\n\r\n\r\n //this.userManager.events.addUserSignedOut(async () => {\r\n // await this.userManager.removeUser();\r\n // this.userSubject.next(null);\r\n //});\r\n }\r\n\r\n private getUserFromStorage(): Observable {\r\n return from(this.ensureUserManagerInitialized())\r\n .pipe(\r\n mergeMap(() => this.userManager.getUser()),\r\n map(u => u && u.profile));\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\na {\\n color: #8B9EA7;\\n}\\n\\na:hover, a:active, a:focus {\\n color: #FF4081;\\n}\\n\\n.align-center {\\n text-align: center;\\n}\\n\\n.mat-menu-item {\\n line-height: 20px;\\n height: 30px;\\n}\\n\\nhr {\\n margin-top: 0.5rem;\\n margin-bottom: 0.5rem;\\n}\\n\\n.mat-menu-item {\\n color: #2196F3;\\n}\\n\\n.mat-menu-item.credit-info {\\n color: #1897C3;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcGktYXV0aG9yaXphdGlvbi9sb2dpbi1tZW51L0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcc2Nzc1xcbWFuYWdlbWVudFxcX2NvbG9yLXNjaGVtZS5zY3NzIiwic3JjL2FwaS1hdXRob3JpemF0aW9uL2xvZ2luLW1lbnUvbG9naW4tbWVudS5jb21wb25lbnQuc2NzcyIsInNyYy9hcGktYXV0aG9yaXphdGlvbi9sb2dpbi1tZW51L0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBpLWF1dGhvcml6YXRpb25cXGxvZ2luLW1lbnVcXGxvZ2luLW1lbnUuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBO0VBQ0UsY0FqQk87QUNDVDs7QURtQkE7RUFDRSx5QkFyQk87QUNLVDs7QURtQkE7RUFDRSxjQXhCSztBQ1FQOztBRG1CQTtFQUNFLHlCQTVCSztBQ1lQOztBRG1CQTtFQUNFLGNBL0JXO0FDZWI7O0FEbUJBO0VBQ0UseUJBbkNXO0FDbUJiOztBRG1CQTtFQUNFLGNBckNVO0FDcUJaOztBRG1CQTtFQUNFLHlCQXpDVTtBQ3lCWjs7QURtQkE7RUFDRSxjQWxETTtBQ2tDUjs7QURtQkE7RUFDRSx5QkF0RE07QUNzQ1I7O0FEbUJBO0VBQ0UsY0FwRGM7QUNvQ2hCOztBRG1CQTtFQUNFLHlCQXhEYztBQ3dDaEI7O0FEbUJBO0VBQ0UsY0EzRGE7QUMyQ2Y7O0FEbUJBO0VBQ0UseUJBL0RhO0FDK0NmOztBRG1CQTtFQUNFLGNBckVVO0FDcURaOztBRG1CQTtFQUNFLHlCQW5FUTtBQ21EVjs7QURtQkE7RUFDRSx5QkF0RWE7QUNzRGY7O0FEbUJBO0VBQ0UsY0ExRWE7QUMwRGY7O0FEbUJBO0VBQ0UseUJBaEZhO0FDZ0VmOztBRG1CQTtFQUNFLGNBcEZhO0FDb0VmOztBRG1CQTtFQUNFLGNBekZNO0FDeUVSOztBRG1CQTtFQUNFLGNBeEZLO0FDd0VQOztBRG1CQTtFQUNFLHlCQTVGSztBQzRFUDs7QURtQkE7RUFDRSxjQS9GVTtBQytFWjs7QURtQkE7RUFDRSx5QkFuR1U7QUNtRlo7O0FDaEdBO0VBQ0UsY0ZFVTtBQ2lHWjs7QUNqR0U7RUFHRSxjRkZZO0FDbUdoQjs7QUM3RkE7RUFDRSxrQkFBQTtBRGdHRjs7QUM3RkE7RUFDRSxpQkFBQTtFQUNBLFlBQUE7QURnR0Y7O0FDN0ZBO0VBQ0Usa0JBQUE7RUFDQSxxQkFBQTtBRGdHRjs7QUMzRkE7RUFDSSxjRnRCVztBQ29IZjs7QUM1RkE7RUFDRSxjRnBCYTtBQ21IZiIsImZpbGUiOiJzcmMvYXBpLWF1dGhvcml6YXRpb24vbG9naW4tbWVudS9sb2dpbi1tZW51LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJHdoaXRlOiAjRkZGRkZGO1xyXG4kZGFya2VyOiAjMUMyNDI4O1xyXG4kZGFyazogIzM3NDc0RjtcclxuJGdyYXktbGlnaHQ6ICNFQkYxRjQ7XHJcbiRncmF5LW1lZGl1bTogI2UwZTBlMDtcclxuJGdyYXktZGFyazogIzhCOUVBNztcclxuJHByaW1hcnktY29sb3I6ICNGRjQwODE7XHJcbiRhY2NlbnQtY29sb3I6ICMyMTk2RjM7XHJcbiRhY2NlbnQtY29sb3ItMjogIzFBQzY3MztcclxuJGVycm9yOiAjRkY0MTAwO1xyXG4kYnVybnQtc2llbm5hOiAjRUU3RDVBO1xyXG4kc3BpbmRsZTogI0M4RTVFRjtcclxuJGVhc3Rlcm4tYmx1ZTogIzE4OTdDMztcclxuJHdpbGQtc3RyYXdiZXJyeTogI0ZGNDA4MTtcclxuJHdhcm46ICNmNDQzMzY7XHJcbiRkYXJrLWJsdWU6ICMyYTYzNzc7XHJcblxyXG4udGV4dC1kYXJrZXIge1xyXG4gIGNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4uYmtnLWRhcmtlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlcjtcclxufVxyXG5cclxuLnRleHQtZGFyayB7XHJcbiAgY29sb3I6ICRkYXJrO1xyXG59XHJcblxyXG4uYmtnLWRhcmsge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrO1xyXG59XHJcblxyXG4udGV4dC1saWdodGVyIHtcclxuICBjb2xvcjogJGdyYXktbGlnaHQ7XHJcbn1cclxuXHJcbi5ia2ctbGlnaHRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHQ7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0IHtcclxuICBjb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLmJrZy1saWdodCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLnRleHQtd2hpdGUge1xyXG4gIGNvbG9yOiAkd2hpdGU7XHJcbn1cclxuXHJcbi5ia2ctd2hpdGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLnRleHQtcHJpbWFyeSB7XHJcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG59XHJcblxyXG4uYmtnLXByaW1hcnkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1hY2NlbnQge1xyXG4gIGNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4uYmtnLWFjY2VudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudC1jb2xvcjtcclxufVxyXG5cclxuLnRleHQtZ3JheS1kYXJrIHtcclxuICBjb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLmJrZy1zcGluZGxlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BpbmRsZTtcclxufVxyXG5cclxuLmJrZy1lYXN0ZXJuLWJsdWUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRlYXN0ZXJuLWJsdWU7XHJcbn1cclxuXHJcbi50ZXh0LWVhc3Rlcm4tYmx1ZSB7XHJcbiAgY29sb3I6ICRlYXN0ZXJuLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctYnVybnQtc2llbm5hIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG59XHJcblxyXG4udGV4dC1idXJudC1zaWVubmEge1xyXG4gIGNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG59XHJcblxyXG4udGV4dC1lcnJvciB7XHJcbiAgY29sb3I6ICRlcnJvcjtcclxufVxyXG5cclxuLnRleHQtd2FybiB7XHJcbiAgY29sb3I6ICR3YXJuO1xyXG59XHJcblxyXG4uYmtnLXdhcm4ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3YXJuO1xyXG59XHJcblxyXG4udGV4dC1kYXJrLWJsdWUge1xyXG4gIGNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcblxyXG4uYmtnLWRhcmstYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmx1ZTtcclxufVxyXG4iLCIudGV4dC1kYXJrZXIge1xuICBjb2xvcjogIzFDMjQyODtcbn1cblxuLmJrZy1kYXJrZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUMyNDI4O1xufVxuXG4udGV4dC1kYXJrIHtcbiAgY29sb3I6ICMzNzQ3NEY7XG59XG5cbi5ia2ctZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzQ3NEY7XG59XG5cbi50ZXh0LWxpZ2h0ZXIge1xuICBjb2xvcjogI0VCRjFGNDtcbn1cblxuLmJrZy1saWdodGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VCRjFGNDtcbn1cblxuLnRleHQtbGlnaHQge1xuICBjb2xvcjogIzhCOUVBNztcbn1cblxuLmJrZy1saWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4QjlFQTc7XG59XG5cbi50ZXh0LXdoaXRlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG5cbi5ia2ctd2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuXG4udGV4dC1wcmltYXJ5IHtcbiAgY29sb3I6ICNGRjQwODE7XG59XG5cbi5ia2ctcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjQwODE7XG59XG5cbi50ZXh0LWFjY2VudCB7XG4gIGNvbG9yOiAjMjE5NkYzO1xufVxuXG4uYmtnLWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XG59XG5cbi50ZXh0LWdyYXktZGFyayB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLXNwaW5kbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzhFNUVGO1xufVxuXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODk3QzM7XG59XG5cbi50ZXh0LWVhc3Rlcm4tYmx1ZSB7XG4gIGNvbG9yOiAjMTg5N0MzO1xufVxuXG4uYmtnLWJ1cm50LXNpZW5uYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWJ1cm50LXNpZW5uYSB7XG4gIGNvbG9yOiAjRUU3RDVBO1xufVxuXG4udGV4dC1lcnJvciB7XG4gIGNvbG9yOiAjRkY0MTAwO1xufVxuXG4udGV4dC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5ia2ctd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi50ZXh0LWRhcmstYmx1ZSB7XG4gIGNvbG9yOiAjMmE2Mzc3O1xufVxuXG4uYmtnLWRhcmstYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYTYzNzc7XG59XG5cbmEge1xuICBjb2xvcjogIzhCOUVBNztcbn1cbmE6aG92ZXIsIGE6YWN0aXZlLCBhOmZvY3VzIHtcbiAgY29sb3I6ICNGRjQwODE7XG59XG5cbi5hbGlnbi1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tYXQtbWVudS1pdGVtIHtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGhlaWdodDogMzBweDtcbn1cblxuaHIge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLm1hdC1tZW51LWl0ZW0ge1xuICBjb2xvcjogIzIxOTZGMztcbn1cblxuLm1hdC1tZW51LWl0ZW0uY3JlZGl0LWluZm8ge1xuICBjb2xvcjogIzE4OTdDMztcbn0iLCJAaW1wb3J0ICcuLi8uLi9zY3NzL21hbmFnZW1lbnQvX2NvbG9yLXNjaGVtZS5zY3NzJztcclxuXHJcbmEge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG5cclxuICAmOmhvdmVyLFxyXG4gICY6YWN0aXZlLFxyXG4gICY6Zm9jdXMge1xyXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gIH1cclxufVxyXG5cclxuLmFsaWduLWNlbnRlciB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ubWF0LW1lbnUtaXRlbSB7XHJcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG59XHJcblxyXG5ociB7XHJcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxufVxyXG5cclxuXHJcblxyXG4ubWF0LW1lbnUtaXRlbXtcclxuICAgIGNvbG9yOiRhY2NlbnQtY29sb3I7XHJcbn1cclxuLm1hdC1tZW51LWl0ZW0uY3JlZGl0LWluZm8ge1xyXG4gIGNvbG9yOiAkZWFzdGVybi1ibHVlXHJcbn1cclxuIl19 */\"","import { Component, Input, OnInit, SimpleChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { UserRoles } from '../api-authorization.constants';\r\nimport { AuthorizeService } from '../authorize.service';\r\nimport { ILoginMenuObject } from '../../app/management/core/interfaces/customer/login-menu-object';\r\n\r\n@Component({\r\n selector: 'app-login-menu',\r\n templateUrl: './login-menu.component.html',\r\n styleUrls: ['./login-menu.component.scss']\r\n\r\n})\r\nexport class LoginMenuComponent implements OnInit {\r\n public isAuthenticated: Observable;\r\n public userName: Observable;\r\n public userRole: string;\r\n public creditInfoLabel: string = \"Credit\";\r\n public billingLabel: string=\"Billing\";\r\n public transactionLabel: string = \"Credit transactions\";\r\n public logoutLabel: string = \"Logout\";\r\n public isCustomer: boolean;\r\n public currentCredits: number = null;\r\n public loginMenuSbj: BehaviorSubject = new BehaviorSubject < ILoginMenuObject>(null);\r\n public loginMenu: ILoginMenuObject;\r\n\r\n @Input() info?: ILoginMenuObject;\r\n\r\n constructor(private authorizeService: AuthorizeService, private router: Router) { }\r\n\r\n ngOnInit() {\r\n //this.isAuthenticated = this.authorizeService.isAuthenticated();\r\n //this.userName = this.authorizeService.getUser().pipe(map(u => u && u.name));\r\n\r\n this.loginMenuSbj.subscribe(value => {\r\n if (value != null) {\r\n this.loginMenu = value;\r\n if (value.creditInfoLabel != null && value.creditInfoLabel != \"\") {\r\n this.creditInfoLabel = value.creditInfoLabel;\r\n }\r\n\r\n if (value.billingLabel != null && value.billingLabel != \"\") {\r\n this.billingLabel = value.billingLabel;\r\n }\r\n\r\n if (value.transactionsLabel != null && value.transactionsLabel != \"\") {\r\n this.transactionLabel = value.transactionsLabel;\r\n }\r\n\r\n if (value.logoutLabel != null && value.logoutLabel != \"\") {\r\n this.logoutLabel = value.logoutLabel;\r\n }\r\n }\r\n else {\r\n this.loginMenu = {\r\n currentCredit: null,\r\n billingLabel:this.billingLabel,\r\n creditInfoLabel: this.creditInfoLabel,\r\n transactionsLabel: this.transactionLabel,\r\n logoutLabel: this.logoutLabel\r\n };\r\n }\r\n })\r\n\r\n if (this.info != null) {\r\n this.loginMenuSbj.next(this.info);\r\n \r\n }\r\n\r\n this.isAuthenticated = this.authorizeService.isAuthenticated();\r\n this.userName = this.authorizeService.getUser().pipe(map(u => u && u.name));\r\n this.authorizeService.getUserRole().subscribe(y => {\r\n this.userRole = y.toLowerCase();\r\n if (y == UserRoles.Customer) {\r\n this.userRole = 'customer'\r\n this.isCustomer = true;\r\n }\r\n });\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n //console.log(\"ngOnChanges\", this.info, \"changes=\", changes.info);\r\n if (changes.info !== undefined) {\r\n this.loginMenuSbj.next(changes.info.currentValue);\r\n }\r\n\r\n }\r\n\r\n\r\n openBilling() {\r\n this.router.navigate([`management/customer/billing/`]);\r\n }\r\n\r\n openCreditTransactions() {\r\n this.router.navigate([`management/customer/credit/`]);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBpLWF1dGhvcml6YXRpb24vbG9naW4vbG9naW4uY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { AuthorizeService, AuthenticationResultStatus } from '../authorize.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { LoginActions, QueryParameterNames, ApplicationPaths, ReturnUrlType } from '../api-authorization.constants';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n public message = new BehaviorSubject(null);\r\n\r\n constructor(\r\n private authorizeService: AuthorizeService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router) { }\r\n\r\n async ngOnInit() {\r\n const action = this.activatedRoute.snapshot.url[1];\r\n var module = this.activatedRoute.pathFromRoot[1].snapshot.url[0].path;\r\n switch (action.path) {\r\n case LoginActions.Login:\r\n if (module == \"appointments\") {\r\n var suffix = this.activatedRoute.snapshot.url[0].toString();\r\n if (suffix == null) {\r\n //get from local storage\r\n suffix = localStorage.getItem(\"urlSuffix\");\r\n }\r\n else {\r\n localStorage.setItem(\"urlSuffix\", suffix);\r\n }\r\n var returnUrl = `${module}/${suffix}/profile`;\r\n await this.login(returnUrl);\r\n break;\r\n }\r\n await this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n await this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const message = this.activatedRoute.snapshot.queryParamMap.get(QueryParameterNames.Message);\r\n this.message.next(message);\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n\r\n private async login(returnUrl: string): Promise {\r\n const state: INavigationState = { returnUrl };\r\n const result = await this.authorizeService.signIn(state);\r\n this.message.next(undefined);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n await this.router.navigate(ApplicationPaths.LoginFailedPathComponents, {\r\n queryParams: { [QueryParameterNames.Message]: result.message }\r\n });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${(result as any).status}.`);\r\n }\r\n }\r\n\r\n private async processLoginCallback(): Promise {\r\n const url = window.location.href;\r\n const result = await this.authorizeService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as completeSignIn never redirects.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.message.next(result.message);\r\n break;\r\n }\r\n }\r\n\r\n private redirectToRegister(): any {\r\n this.redirectToApiAuthorizationPath(\r\n `${ApplicationPaths.IdentityRegisterPath}?returnUrl=${encodeURI('/' + ApplicationPaths.Login)}`);\r\n }\r\n\r\n private redirectToProfile(): void {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n private async navigateToReturnUrl(returnUrl: string) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n await this.router.navigateByUrl(returnUrl, {\r\n replaceUrl: true\r\n });\r\n }\r\n\r\n private getReturnUrl(state?: INavigationState): string {\r\n var module = this.activatedRoute.pathFromRoot[1].snapshot.url[0].path;\r\n if (module == \"appointments\") {\r\n var suffix = this.activatedRoute.snapshot.url[0].toString();\r\n if (suffix == null) {\r\n //get from local storage\r\n suffix = localStorage.getItem(\"urlSuffix\");\r\n }\r\n else {\r\n localStorage.setItem(\"urlSuffix\", suffix);\r\n }\r\n var returnUrl = `${module}/${suffix}/profile`;\r\n return returnUrl;\r\n }\r\n const fromQuery = (this.activatedRoute.snapshot.queryParams as INavigationState).returnUrl;\r\n // If the url is comming from the query string, check that is either\r\n // a relative url or an absolute url\r\n if (fromQuery &&\r\n !(fromQuery.startsWith(`${window.location.origin}/`) ||\r\n /\\/[^\\/].*/.test(fromQuery))) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error('Invalid return url. The return url needs to have the same origin as the current page.');\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n ApplicationPaths.DefaultLoginRedirectPath;\r\n }\r\n\r\n private redirectToApiAuthorizationPath(apiAuthorizationPath: string) {\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser they get sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n window.location.replace(redirectUrl);\r\n }\r\n}\r\n\r\ninterface INavigationState {\r\n [ReturnUrlType]: string;\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBpLWF1dGhvcml6YXRpb24vbG9nb3V0L2xvZ291dC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { AuthenticationResultStatus, AuthorizeService } from '../authorize.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { take } from 'rxjs/operators';\r\nimport { LogoutActions, ApplicationPaths, ReturnUrlType } from '../api-authorization.constants';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\n@Component({\r\n selector: 'app-logout',\r\n templateUrl: './logout.component.html',\r\n styleUrls: ['./logout.component.css']\r\n})\r\nexport class LogoutComponent implements OnInit {\r\n public message = new BehaviorSubject(null);\r\n\r\n constructor(\r\n private authorizeService: AuthorizeService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router) { }\r\n\r\n async ngOnInit() {\r\n const action = this.activatedRoute.snapshot.url[1];\r\n switch (action.path) {\r\n case LogoutActions.Logout:\r\n if (!!window.history.state.local) {\r\n await this.logout(this.getReturnUrl());\r\n } else {\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.message.next('The logout was not initiated from within the page.');\r\n }\r\n\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n await this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.message.next('You successfully logged out!');\r\n await this.navigateToReturnUrl('/authentication/login');\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n private async logout(returnUrl: string): Promise {\r\n returnUrl = '/authentication/login';\r\n\r\n const state: INavigationState = { returnUrl };\r\n const isauthenticated = await this.authorizeService.isAuthenticated().pipe(\r\n take(1)\r\n ).toPromise();\r\n if (isauthenticated) {\r\n const result = await this.authorizeService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.message.next(result.message);\r\n break;\r\n default:\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n } else {\r\n this.message.next('You successfully logged out!');\r\n }\r\n }\r\n\r\n private async processLogoutCallback(): Promise {\r\n const url = window.location.href;\r\n const result = await this.authorizeService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.message.next(result.message);\r\n break;\r\n default:\r\n throw new Error('Invalid authentication result status.');\r\n }\r\n }\r\n\r\n private async navigateToReturnUrl(returnUrl: string) {\r\n await this.router.navigateByUrl(returnUrl, {\r\n replaceUrl: true\r\n });\r\n }\r\n\r\n private getReturnUrl(state?: INavigationState): string {\r\n const fromQuery = (this.activatedRoute.snapshot.queryParams as INavigationState).returnUrl;\r\n // If the url is comming from the query string, check that is either\r\n // a relative url or an absolute url\r\n if (fromQuery &&\r\n !(fromQuery.startsWith(`${window.location.origin}/`) ||\r\n /\\/[^\\/].*/.test(fromQuery))) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error('Invalid return url. The return url needs to have the same origin as the current page.');\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n ApplicationPaths.LoggedOut;\r\n }\r\n}\r\n\r\ninterface INavigationState {\r\n [ReturnUrlType]: string;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\r\nimport { AuthorizeRoleGuard } from '../api-authorization/authorize-role.guard';\r\nimport { InitialRoutingComponent } from './initial-routing/initial-routing.component';\r\nimport { ManagementLayoutComponent } from './layout/management/management-layout/management-layout.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'management',\r\n component: ManagementLayoutComponent,\r\n loadChildren: () => import('./management/management.module').then(mod => mod.ManagementModule),\r\n //canActivate: [AuthorizeRoleGuard]\r\n },\r\n {\r\n path: 'appointments',\r\n loadChildren: () => import('./appointments/appointments.module').then(mod => mod.AppointmentsModule),\r\n },\r\n {\r\n path: 'external',\r\n loadChildren: () => import('./external/external.module').then(mod => mod.ExternalModule),\r\n },\r\n {\r\n path: '',\r\n pathMatch:'full',\r\n component:InitialRoutingComponent\r\n }\r\n]\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n RouterModule.forRoot(routes),\r\n NgxMaterialTimepickerModule\r\n ],\r\n exports: [\r\n RouterModule\r\n ]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent {\r\n title = 'app';\r\n}\r\n","import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { ApiAuthorizationModule } from 'src/api-authorization/api-authorization.module';\r\nimport { AuthorizeInterceptor } from 'src/api-authorization/authorize.interceptor';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { InitialRoutingComponent } from './initial-routing/initial-routing.component';\r\nimport { LayoutModule } from './layout/layout.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n InitialRoutingComponent\r\n ],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n HttpClientModule,\r\n FormsModule,\r\n LayoutModule,\r\n BrowserAnimationsModule,\r\n ApiAuthorizationModule,\r\n AppRoutingModule\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthorizeInterceptor, multi: true }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import * as LanguageActions from './language.actions';\r\n\r\nexport { LanguageActions };\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { Language } from '../models/language.model';\r\n\r\nexport const SET_LANGUAGE = \"[Language] Set\";\r\n\r\nexport const set = createAction(\r\n SET_LANGUAGE,\r\n props<{ language: Language }>()\r\n);\r\n\r\n\r\n\r\n\r\n","import { OnInit } from '@angular/core';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { Language } from '../models/language.model';\r\nimport * as fromI18n from '../reducers';\r\n\r\nexport class I18nComponent implements OnInit {\r\n currentLanguage$: Observable;\r\n translate: TranslateService;\r\n\r\n constructor(store: Store, translate: TranslateService, title: string = null) {\r\n this.translate = translate;\r\n this.currentLanguage$ = store.pipe(select(fromI18n.getCurrentLanguage));\r\n\r\n translate.setDefaultLang('en');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.currentLanguage$.subscribe(language => this.translate.use(language));\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n.mat-menu-item.selected {\\n color: #FF4081;\\n background-color: #2196F3;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvaTE4bi9jb250YWluZXJzL2xhbmd1YWdlLXNlbGVjdG9yL0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcc2Nzc1xcbWFuYWdlbWVudFxcX2NvbG9yLXNjaGVtZS5zY3NzIiwic3JjL2FwcC9pMThuL2NvbnRhaW5lcnMvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2kxOG4vY29udGFpbmVycy9sYW5ndWFnZS1zZWxlY3Rvci9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcaTE4blxcY29udGFpbmVyc1xcbGFuZ3VhZ2Utc2VsZWN0b3JcXGxhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTtFQUNFLGNBakJPO0FDQ1Q7O0FEbUJBO0VBQ0UseUJBckJPO0FDS1Q7O0FEbUJBO0VBQ0UsY0F4Qks7QUNRUDs7QURtQkE7RUFDRSx5QkE1Qks7QUNZUDs7QURtQkE7RUFDRSxjQS9CVztBQ2ViOztBRG1CQTtFQUNFLHlCQW5DVztBQ21CYjs7QURtQkE7RUFDRSxjQXJDVTtBQ3FCWjs7QURtQkE7RUFDRSx5QkF6Q1U7QUN5Qlo7O0FEbUJBO0VBQ0UsY0FsRE07QUNrQ1I7O0FEbUJBO0VBQ0UseUJBdERNO0FDc0NSOztBRG1CQTtFQUNFLGNBcERjO0FDb0NoQjs7QURtQkE7RUFDRSx5QkF4RGM7QUN3Q2hCOztBRG1CQTtFQUNFLGNBM0RhO0FDMkNmOztBRG1CQTtFQUNFLHlCQS9EYTtBQytDZjs7QURtQkE7RUFDRSxjQXJFVTtBQ3FEWjs7QURtQkE7RUFDRSx5QkFuRVE7QUNtRFY7O0FEbUJBO0VBQ0UseUJBdEVhO0FDc0RmOztBRG1CQTtFQUNFLGNBMUVhO0FDMERmOztBRG1CQTtFQUNFLHlCQWhGYTtBQ2dFZjs7QURtQkE7RUFDRSxjQXBGYTtBQ29FZjs7QURtQkE7RUFDRSxjQXpGTTtBQ3lFUjs7QURtQkE7RUFDRSxjQXhGSztBQ3dFUDs7QURtQkE7RUFDRSx5QkE1Rks7QUM0RVA7O0FEbUJBO0VBQ0UsY0EvRlU7QUMrRVo7O0FEbUJBO0VBQ0UseUJBbkdVO0FDbUZaOztBQ2hHQTtFQUNJLGNGR1k7RUVGWix5QkZHVztBQ2dHZiIsImZpbGUiOiJzcmMvYXBwL2kxOG4vY29udGFpbmVycy9sYW5ndWFnZS1zZWxlY3Rvci9sYW5ndWFnZS1zZWxlY3Rvci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiR3aGl0ZTogI0ZGRkZGRjtcclxuJGRhcmtlcjogIzFDMjQyODtcclxuJGRhcms6ICMzNzQ3NEY7XHJcbiRncmF5LWxpZ2h0OiAjRUJGMUY0O1xyXG4kZ3JheS1tZWRpdW06ICNlMGUwZTA7XHJcbiRncmF5LWRhcms6ICM4QjlFQTc7XHJcbiRwcmltYXJ5LWNvbG9yOiAjRkY0MDgxO1xyXG4kYWNjZW50LWNvbG9yOiAjMjE5NkYzO1xyXG4kYWNjZW50LWNvbG9yLTI6ICMxQUM2NzM7XHJcbiRlcnJvcjogI0ZGNDEwMDtcclxuJGJ1cm50LXNpZW5uYTogI0VFN0Q1QTtcclxuJHNwaW5kbGU6ICNDOEU1RUY7XHJcbiRlYXN0ZXJuLWJsdWU6ICMxODk3QzM7XHJcbiR3aWxkLXN0cmF3YmVycnk6ICNGRjQwODE7XHJcbiR3YXJuOiAjZjQ0MzM2O1xyXG4kZGFyay1ibHVlOiAjMmE2Mzc3O1xyXG5cclxuLnRleHQtZGFya2VyIHtcclxuICBjb2xvcjogJGRhcmtlcjtcclxufVxyXG5cclxuLmJrZy1kYXJrZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi50ZXh0LWRhcmsge1xyXG4gIGNvbG9yOiAkZGFyaztcclxufVxyXG5cclxuLmJrZy1kYXJrIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyaztcclxufVxyXG5cclxuLnRleHQtbGlnaHRlciB7XHJcbiAgY29sb3I6ICRncmF5LWxpZ2h0O1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0O1xyXG59XHJcblxyXG4udGV4dC1saWdodCB7XHJcbiAgY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi5ia2ctbGlnaHQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi50ZXh0LXdoaXRlIHtcclxuICBjb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4uYmtnLXdoaXRlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbn1cclxuXHJcbi50ZXh0LXByaW1hcnkge1xyXG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxufVxyXG5cclxuLmJrZy1wcmltYXJ5IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxufVxyXG5cclxuLnRleHQtYWNjZW50IHtcclxuICBjb2xvcjogJGFjY2VudC1jb2xvcjtcclxufVxyXG5cclxuLmJrZy1hY2NlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWdyYXktZGFyayB7XHJcbiAgY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi5ia2ctc3BpbmRsZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5kbGU7XHJcbn1cclxuXHJcbi5ia2ctZWFzdGVybi1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWFzdGVybi1ibHVlO1xyXG59XHJcblxyXG4udGV4dC1lYXN0ZXJuLWJsdWUge1xyXG4gIGNvbG9yOiAkZWFzdGVybi1ibHVlO1xyXG59XHJcblxyXG4uYmtnLWJ1cm50LXNpZW5uYSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJ1cm50LXNpZW5uYTtcclxufVxyXG5cclxuLnRleHQtYnVybnQtc2llbm5hIHtcclxuICBjb2xvcjogJGJ1cm50LXNpZW5uYTtcclxufVxyXG5cclxuLnRleHQtZXJyb3Ige1xyXG4gIGNvbG9yOiAkZXJyb3I7XHJcbn1cclxuXHJcbi50ZXh0LXdhcm4ge1xyXG4gIGNvbG9yOiAkd2FybjtcclxufVxyXG5cclxuLmJrZy13YXJuIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2FybjtcclxufVxyXG5cclxuLnRleHQtZGFyay1ibHVlIHtcclxuICBjb2xvcjogJGRhcmstYmx1ZTtcclxufVxyXG5cclxuLmJrZy1kYXJrLWJsdWUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuIiwiLnRleHQtZGFya2VyIHtcbiAgY29sb3I6ICMxQzI0Mjg7XG59XG5cbi5ia2ctZGFya2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFDMjQyODtcbn1cblxuLnRleHQtZGFyayB7XG4gIGNvbG9yOiAjMzc0NzRGO1xufVxuXG4uYmtnLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc0NzRGO1xufVxuXG4udGV4dC1saWdodGVyIHtcbiAgY29sb3I6ICNFQkYxRjQ7XG59XG5cbi5ia2ctbGlnaHRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQkYxRjQ7XG59XG5cbi50ZXh0LWxpZ2h0IHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEI5RUE3O1xufVxuXG4udGV4dC13aGl0ZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuXG4uYmtnLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cblxuLnRleHQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjRkY0MDgxO1xufVxuXG4uYmtnLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY0MDgxO1xufVxuXG4udGV4dC1hY2NlbnQge1xuICBjb2xvcjogIzIxOTZGMztcbn1cblxuLmJrZy1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xufVxuXG4udGV4dC1ncmF5LWRhcmsge1xuICBjb2xvcjogIzhCOUVBNztcbn1cblxuLmJrZy1zcGluZGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M4RTVFRjtcbn1cblxuLmJrZy1lYXN0ZXJuLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5N0MzO1xufVxuXG4udGV4dC1lYXN0ZXJuLWJsdWUge1xuICBjb2xvcjogIzE4OTdDMztcbn1cblxuLmJrZy1idXJudC1zaWVubmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU3RDVBO1xufVxuXG4udGV4dC1idXJudC1zaWVubmEge1xuICBjb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtZXJyb3Ige1xuICBjb2xvcjogI0ZGNDEwMDtcbn1cblxuLnRleHQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4uYmtnLXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuXG4udGV4dC1kYXJrLWJsdWUge1xuICBjb2xvcjogIzJhNjM3Nztcbn1cblxuLmJrZy1kYXJrLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmE2Mzc3O1xufVxuXG4ubWF0LW1lbnUtaXRlbS5zZWxlY3RlZCB7XG4gIGNvbG9yOiAjRkY0MDgxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xufSIsIkBpbXBvcnQgJy4uLy4uLy4uLy4uL3Njc3MvbWFuYWdlbWVudC9fY29sb3Itc2NoZW1lLnNjc3MnO1xyXG5cclxuLm1hdC1tZW51LWl0ZW0uc2VsZWN0ZWQge1xyXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudC1jb2xvcjtcclxufVxyXG5cclxuIl19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Store, select } from '@ngrx/store';\r\nimport * as fromI18n from '../../reducers' ;\r\nimport { Language } from '../../models/language.model';\r\nimport { LanguageActions } from '../../actions';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-language-selector',\r\n templateUrl: './language-selector.component.html',\r\n styleUrls: ['./language-selector.component.scss']\r\n})\r\nexport class LanguageSelectorComponent implements OnInit {\r\n\r\n currentLanguage$: Observable;\r\n\r\n constructor(private readonly store: Store) {\r\n this.currentLanguage$ = store.pipe(select(fromI18n.getCurrentLanguage));\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n setLanguage(language: Language) {\r\n this.store.dispatch(LanguageActions.set({ language }));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LanguageSelectorComponent } from './containers/language-selector/language-selector.component';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport * as fromI18n from './reducers';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n declarations: [\r\n LanguageSelectorComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n StoreModule.forFeature(fromI18n.i18nFeatureKey, fromI18n.reducers)\r\n ],\r\n exports: [\r\n LanguageSelectorComponent\r\n ]\r\n})\r\nexport class I18nModule { }\r\n","import * as fromLanguage from './language.reducer';\r\nimport * as fromRoot from '../../reducers';\r\nimport {\r\n combineReducers,\r\n Action,\r\n createFeatureSelector,\r\n createSelector\r\n} from '@ngrx/store';\r\n\r\nexport const i18nFeatureKey = 'i18n';\r\n\r\nexport interface I18nState {\r\n [fromLanguage.languageFeatureKey]: fromLanguage.State;\r\n}\r\n\r\nexport interface State extends fromRoot.State {\r\n [i18nFeatureKey]: I18nState;\r\n}\r\n\r\nexport function reducers(state: I18nState | undefined, action: Action) {\r\n return combineReducers({\r\n [fromLanguage.languageFeatureKey]: fromLanguage.reducer\r\n })(state, action);\r\n}\r\n\r\nexport const selectI18nState = createFeatureSelector(\r\n i18nFeatureKey\r\n);\r\n\r\nexport const selectLanguageState = createSelector(\r\n selectI18nState,\r\n (state: I18nState) => state.language\r\n);\r\n\r\nexport const getCurrentLanguage = createSelector(\r\n selectLanguageState,\r\n fromLanguage.getLanguage\r\n);\r\n","import { Action, createReducer, on } from '@ngrx/store';\r\nimport { Language } from '../models/language.model';\r\nimport { LanguageActions } from '../actions';\r\n\r\n\r\nexport const languageFeatureKey = 'language';\r\n\r\nexport interface State {\r\n currentLanguage: Language\r\n}\r\n\r\nexport const initialState: State = {\r\n currentLanguage: getUserLanguage() as Language\r\n};\r\n\r\n\r\nexport const reducer = createReducer(\r\n initialState,\r\n on(LanguageActions.set, (state, { language }) => ({\r\n ...state,\r\n currentLanguage: language\r\n }))\r\n);\r\n\r\nexport const getLanguage = (state: State) => state.currentLanguage;\r\n\r\nfunction getUserLanguage(): string {\r\n const navigatorLanguage = navigator.language.toLowerCase();\r\n\r\n if (navigatorLanguage.indexOf('en') > -1) {\r\n return 'en';\r\n }\r\n\r\n if (navigatorLanguage.indexOf('it') > -1) {\r\n return 'it';\r\n }\r\n\r\n if (navigatorLanguage.indexOf('ro') > -1) {\r\n return 'ro';\r\n }\r\n\r\n return 'en';\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthorizeService } from '../../api-authorization/authorize.service';\r\nimport { ClientService } from '../management/core/services/customer/client.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { UserRoles, ApplicationPaths, QueryParameterNames } from '../../api-authorization/api-authorization.constants';\r\n\r\n@Component({\r\n selector: 'app-initial-routing',\r\n templateUrl: './initial-routing.component.html',\r\n providers: [ClientService]\r\n})\r\nexport class InitialRoutingComponent implements OnInit {\r\n\r\n constructor(private authorizeService: AuthorizeService,\r\n private router: Router,\r\n clientService: ClientService) {\r\n \r\n authorizeService.getUserRole().subscribe({\r\n next: data => {\r\n //console.log(\"user role initial routing\", data);\r\n if (data != null && data == UserRoles.Client) {\r\n //console.log(\"is client\");\r\n clientService.getClientUrlSufix().subscribe({\r\n next: suffix => {\r\n // console.log(\"suffix=\", suffix);\r\n router.navigate([`appointments/${suffix}`]);\r\n }\r\n })\r\n \r\n }\r\n else {\r\n if (data != null) {\r\n //console.log(\"return to management\", data.toLowerCase());\r\n //redirect to management\r\n router.navigate([`/management/${data.toLowerCase()}`]);\r\n }\r\n else {\r\n //redirect to login\r\n localStorage.clear();\r\n //console.log(\"return to login\", ApplicationPaths.LoginPathComponents);\r\n setTimeout(async () => await this.navigateToReturnUrl('/authentication/login'), 300);\r\n \r\n }\r\n \r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n private async navigateToReturnUrl(returnUrl: string) {\r\n await this.router.navigateByUrl(returnUrl, {\r\n replaceUrl: true\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ManagementHeaderComponent } from './management/management-header/management-header.component';\r\nimport { ManagementLayoutComponent } from './management/management-layout/management-layout.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ApiAuthorizationModule } from '../../api-authorization/api-authorization.module';\r\nimport { MatMenuModule } from '@angular/material/menu'\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { I18nModule } from '../i18n/i18n.module';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { StoreRouterConnectingModule, RouterState } from '@ngrx/router-store';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { ROOT_REDUCERS, metaReducers } from '../reducers';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\r\nimport { Translate } from '../management/core/functions/translate-function';\r\nimport { SharedModule } from '../management/shared/shared.module';\r\nimport { MatButtonModule, MatDialogModule } from '@angular/material';\r\n\r\n//export function createTranslateLoader(http: HttpClient) {\r\n// return new TranslateHttpLoader(http, './assets/i18n/layout/', '.json');\r\n//}\r\n\r\nexport function createTranslateLoader(http: HttpClient) {\r\n return Translate(http, [\r\n \"/assets/i18n/layout/\",\r\n \"/assets/i18n/management/customer/appointments/\",\r\n \"/assets/i18n/appointments/booking/\",\r\n \"/assets/i18n/management/customer/clients/\",\r\n \"/assets/i18n/management/shared/selections/\",\r\n \"/assets/i18n/management/shared/confirmation/\",\r\n \"/assets/i18n/management/shared/time-picker/\",\r\n \"/assets/i18n/management/shared/calendars/\",\r\n \"/assets/i18n/management/shared/errors/\"\r\n ]);\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n ManagementLayoutComponent,\r\n ManagementHeaderComponent,],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n ApiAuthorizationModule,\r\n MatMenuModule,\r\n I18nModule,\r\n SharedModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n StoreModule.forRoot(ROOT_REDUCERS, { metaReducers }),\r\n StoreRouterConnectingModule.forRoot({\r\n routerState: RouterState.Minimal\r\n }),\r\n StoreDevtoolsModule.instrument({\r\n name: 'NgRx AppointmentApp'\r\n }),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: createTranslateLoader,\r\n deps: [HttpClient]\r\n },\r\n isolate: true\r\n })\r\n ],\r\n exports: [\r\n ManagementLayoutComponent,\r\n ManagementHeaderComponent\r\n ]\r\n})\r\nexport class LayoutModule { }\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n/*\\n =================================================================================================\\n general layout variables\\n =================================================================================================\\n*/\\n\\n/* main menu that contains the modules: console, sms, email, etc */\\n\\n/* secondary menu that contains the menu for each module */\\n\\nheader nav.fixed-top {\\n height: 60px;\\n z-index: 999;\\n width: calc(100% - 5rem) !important;\\n left: auto;\\n}\\n\\nheader nav.fixed-top a {\\n color: #FFFFFF;\\n}\\n\\nheader nav.fixed-top a:hover, header nav.fixed-top a:active, header nav.fixed-top a:focus {\\n color: #FF4081;\\n}\\n\\nheader h2 {\\n /*margin-left: $sidenav-modules-width + $sidenav-menu-width;*/\\n margin-bottom: 0;\\n padding: 0;\\n /*position: absolute;\\n z-index: 1001;*/\\n font-size: 1.25rem;\\n color: #EE7D5A;\\n}\\n\\nheader .navbar-brand-container {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 17rem;\\n height: 60px;\\n z-index: 998;\\n color: #FFFFFF;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n}\\n\\nheader .navbar-brand-container .navbar-brand {\\n color: #FFFFFF;\\n}\\n\\nheader .navbar-brand-container .navbar-brand:hover, header .navbar-brand-container .navbar-brand:active {\\n color: #FF4081;\\n}\\n\\n#top-menu::before {\\n content: \\\"\\\";\\n z-index: 1000;\\n position: absolute;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n margin: auto;\\n width: 0.02rem;\\n height: 30px;\\n background: #FFFFFF;\\n opacity: 0.5;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbGF5b3V0L21hbmFnZW1lbnQvbWFuYWdlbWVudC1oZWFkZXIvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfY29sb3Itc2NoZW1lLnNjc3MiLCJzcmMvYXBwL2xheW91dC9tYW5hZ2VtZW50L21hbmFnZW1lbnQtaGVhZGVyL21hbmFnZW1lbnQtaGVhZGVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9sYXlvdXQvbWFuYWdlbWVudC9tYW5hZ2VtZW50LWhlYWRlci9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXHNjc3NcXG1hbmFnZW1lbnRcXF92YXJpYWJsZXMuc2NzcyIsInNyYy9hcHAvbGF5b3V0L21hbmFnZW1lbnQvbWFuYWdlbWVudC1oZWFkZXIvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxhcHBcXGxheW91dFxcbWFuYWdlbWVudFxcbWFuYWdlbWVudC1oZWFkZXJcXG1hbmFnZW1lbnQtaGVhZGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTtFQUNFLGNBakJPO0FDQ1Q7O0FEbUJBO0VBQ0UseUJBckJPO0FDS1Q7O0FEbUJBO0VBQ0UsY0F4Qks7QUNRUDs7QURtQkE7RUFDRSx5QkE1Qks7QUNZUDs7QURtQkE7RUFDRSxjQS9CVztBQ2ViOztBRG1CQTtFQUNFLHlCQW5DVztBQ21CYjs7QURtQkE7RUFDRSxjQXJDVTtBQ3FCWjs7QURtQkE7RUFDRSx5QkF6Q1U7QUN5Qlo7O0FEbUJBO0VBQ0UsY0FsRE07QUNrQ1I7O0FEbUJBO0VBQ0UseUJBdERNO0FDc0NSOztBRG1CQTtFQUNFLGNBcERjO0FDb0NoQjs7QURtQkE7RUFDRSx5QkF4RGM7QUN3Q2hCOztBRG1CQTtFQUNFLGNBM0RhO0FDMkNmOztBRG1CQTtFQUNFLHlCQS9EYTtBQytDZjs7QURtQkE7RUFDRSxjQXJFVTtBQ3FEWjs7QURtQkE7RUFDRSx5QkFuRVE7QUNtRFY7O0FEbUJBO0VBQ0UseUJBdEVhO0FDc0RmOztBRG1CQTtFQUNFLGNBMUVhO0FDMERmOztBRG1CQTtFQUNFLHlCQWhGYTtBQ2dFZjs7QURtQkE7RUFDRSxjQXBGYTtBQ29FZjs7QURtQkE7RUFDRSxjQXpGTTtBQ3lFUjs7QURtQkE7RUFDRSxjQXhGSztBQ3dFUDs7QURtQkE7RUFDRSx5QkE1Rks7QUM0RVA7O0FEbUJBO0VBQ0UsY0EvRlU7QUMrRVo7O0FEbUJBO0VBQ0UseUJBbkdVO0FDbUZaOztBQ2xHQTs7OztDQUFBOztBQU04QixrRUFBQTs7QUFDRiwwREFBQTs7QUNIMUI7RUFDRSxZQUFBO0VBQ0EsWUFBQTtFQUNBLG1DQUFBO0VBQ0EsVUFBQTtBRndHSjs7QUV0R0k7RUFDRSxjSFhFO0FDbUhSOztBRXRHTTtFQUdFLGNIVlE7QUNnSGhCOztBRWpHRTtFQUNFLDZEQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0E7bUJBQUE7RUFFQSxrQkFBQTtFQUNBLGNIbEJXO0FDcUhmOztBRWhHRTtFQUNFLGVBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFlBQUE7RUFDQSxZRC9CWTtFQ2dDWixZQUFBO0VBQ0EsY0h0Q0k7RUd1Q0osYUFBQTtFQUNBLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtBRmtHSjs7QUVoR0k7RUFDRSxjSDdDRTtBQytJUjs7QUVoR007RUFFRSxjSDNDUTtBQzRJaEI7O0FFM0ZBO0VBQ0UsV0FBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLG1CSGpFTTtFR2tFTixZQUFBO0FGOEZGIiwiZmlsZSI6InNyYy9hcHAvbGF5b3V0L21hbmFnZW1lbnQvbWFuYWdlbWVudC1oZWFkZXIvbWFuYWdlbWVudC1oZWFkZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkd2hpdGU6ICNGRkZGRkY7XHJcbiRkYXJrZXI6ICMxQzI0Mjg7XHJcbiRkYXJrOiAjMzc0NzRGO1xyXG4kZ3JheS1saWdodDogI0VCRjFGNDtcclxuJGdyYXktbWVkaXVtOiAjZTBlMGUwO1xyXG4kZ3JheS1kYXJrOiAjOEI5RUE3O1xyXG4kcHJpbWFyeS1jb2xvcjogI0ZGNDA4MTtcclxuJGFjY2VudC1jb2xvcjogIzIxOTZGMztcclxuJGFjY2VudC1jb2xvci0yOiAjMUFDNjczO1xyXG4kZXJyb3I6ICNGRjQxMDA7XHJcbiRidXJudC1zaWVubmE6ICNFRTdENUE7XHJcbiRzcGluZGxlOiAjQzhFNUVGO1xyXG4kZWFzdGVybi1ibHVlOiAjMTg5N0MzO1xyXG4kd2lsZC1zdHJhd2JlcnJ5OiAjRkY0MDgxO1xyXG4kd2FybjogI2Y0NDMzNjtcclxuJGRhcmstYmx1ZTogIzJhNjM3NztcclxuXHJcbi50ZXh0LWRhcmtlciB7XHJcbiAgY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi5ia2ctZGFya2VyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4udGV4dC1kYXJrIHtcclxuICBjb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi5ia2ctZGFyayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0ZXIge1xyXG4gIGNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmJrZy1saWdodGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLnRleHQtbGlnaHQge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSB7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJrZy13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1wcmltYXJ5IHtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWFjY2VudCB7XHJcbiAgY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctYWNjZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1ncmF5LWRhcmsge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLXNwaW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzcGluZGxlO1xyXG59XHJcblxyXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLnRleHQtZWFzdGVybi1ibHVlIHtcclxuICBjb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLmJrZy1idXJudC1zaWVubmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWJ1cm50LXNpZW5uYSB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWVycm9yIHtcclxuICBjb2xvcjogJGVycm9yO1xyXG59XHJcblxyXG4udGV4dC13YXJuIHtcclxuICBjb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi5ia2ctd2FybiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi50ZXh0LWRhcmstYmx1ZSB7XHJcbiAgY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctZGFyay1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcbiIsIi50ZXh0LWRhcmtlciB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uYmtnLWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzI0Mjg7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cblxuLmJrZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0Rjtcbn1cblxuLnRleHQtbGlnaHRlciB7XG4gIGNvbG9yOiAjRUJGMUY0O1xufVxuXG4uYmtnLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMUY0O1xufVxuXG4udGV4dC1saWdodCB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhCOUVBNztcbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLmJrZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuLmJrZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbi5ia2ctYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuLnRleHQtZ3JheS1kYXJrIHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctc3BpbmRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEU1RUY7XG59XG5cbi5ia2ctZWFzdGVybi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn1cblxuLnRleHQtZWFzdGVybi1ibHVlIHtcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5ia2ctYnVybnQtc2llbm5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtYnVybnQtc2llbm5hIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWVycm9yIHtcbiAgY29sb3I6ICNGRjQxMDA7XG59XG5cbi50ZXh0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLmJrZy13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLnRleHQtZGFyay1ibHVlIHtcbiAgY29sb3I6ICMyYTYzNzc7XG59XG5cbi5ia2ctZGFyay1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNjM3Nztcbn1cblxuLypcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBnZW5lcmFsIGxheW91dCB2YXJpYWJsZXNcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuKi9cbi8qIG1haW4gbWVudSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGVzOiBjb25zb2xlLCBzbXMsIGVtYWlsLCBldGMgKi9cbi8qIHNlY29uZGFyeSBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1lbnUgZm9yIGVhY2ggbW9kdWxlICovXG5oZWFkZXIgbmF2LmZpeGVkLXRvcCB7XG4gIGhlaWdodDogNjBweDtcbiAgei1pbmRleDogOTk5O1xuICB3aWR0aDogY2FsYygxMDAlIC0gNXJlbSkgIWltcG9ydGFudDtcbiAgbGVmdDogYXV0bztcbn1cbmhlYWRlciBuYXYuZml4ZWQtdG9wIGEge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbmhlYWRlciBuYXYuZml4ZWQtdG9wIGE6aG92ZXIsIGhlYWRlciBuYXYuZml4ZWQtdG9wIGE6YWN0aXZlLCBoZWFkZXIgbmF2LmZpeGVkLXRvcCBhOmZvY3VzIHtcbiAgY29sb3I6ICNGRjQwODE7XG59XG5oZWFkZXIgaDIge1xuICAvKm1hcmdpbi1sZWZ0OiAkc2lkZW5hdi1tb2R1bGVzLXdpZHRoICsgJHNpZGVuYXYtbWVudS13aWR0aDsqL1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAwO1xuICAvKnBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDAxOyovXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5oZWFkZXIgLm5hdmJhci1icmFuZC1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDE3cmVtO1xuICBoZWlnaHQ6IDYwcHg7XG4gIHotaW5kZXg6IDk5ODtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuaGVhZGVyIC5uYXZiYXItYnJhbmQtY29udGFpbmVyIC5uYXZiYXItYnJhbmQge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbmhlYWRlciAubmF2YmFyLWJyYW5kLWNvbnRhaW5lciAubmF2YmFyLWJyYW5kOmhvdmVyLCBoZWFkZXIgLm5hdmJhci1icmFuZC1jb250YWluZXIgLm5hdmJhci1icmFuZDphY3RpdmUge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuI3RvcC1tZW51OjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB6LWluZGV4OiAxMDAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG4gIHdpZHRoOiAwLjAycmVtO1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIG9wYWNpdHk6IDAuNTtcbn0iLCIvKlxyXG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICBnZW5lcmFsIGxheW91dCB2YXJpYWJsZXNcclxuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiovXHJcbiRoZWFkZXItaGVpZ2h0OiA2MHB4O1xyXG4kc2lkZW5hdi1tb2R1bGVzLXdpZHRoOiA1cmVtOyAvKiBtYWluIG1lbnUgdGhhdCBjb250YWlucyB0aGUgbW9kdWxlczogY29uc29sZSwgc21zLCBlbWFpbCwgZXRjICovXHJcbiRzaWRlbmF2LW1lbnUtd2lkdGg6IDEycmVtOyAvKiBzZWNvbmRhcnkgbWVudSB0aGF0IGNvbnRhaW5zIHRoZSBtZW51IGZvciBlYWNoIG1vZHVsZSAqL1xyXG4kc2lkZW5hdi1jb250YWluZXItcGFkZGluZzogMXJlbSAwcmVtO1xyXG5cclxuJGJyZWFrcG9pbnQtdGFibGV0OiA3NjhweDtcclxuJGJyZWFrcG9pbnQtbGFwdG9wOiAxMDI0cHg7XHJcblxyXG4kc2Nyb2xsYmFyLXdpZHRoOiA1cHg7XHJcblxyXG4kYXBwcy1oZWFkZXItaGVpZ2h0OiA0cmVtO1xyXG4kYXBwcy1mb290ZXItbG9nby1oZWlnaHQ6IDJyZW07XHJcbiRhcHBzLWZvb3Rlci1saW5rLWhlaWdodDogMS41cmVtO1xyXG5cclxuJG9mZmljZS1pbmZvLWhlaWdodDogMjByZW07XHJcbiRvZmZpY2Utd29ya2luZy1ob3Vycy1oZWlnaHQ6IDQwcmVtO1xyXG4kb2ZmaWNlLW9wZXJhdG9ycy1zZXJ2aWNlcy1oZWlnaHQ6IDQwcmVtO1xyXG4iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi9zY3NzL21hbmFnZW1lbnQvX2NvbG9yLXNjaGVtZS5zY3NzJztcclxuQGltcG9ydCAnLi4vLi4vLi4vLi4vc2Nzcy9tYW5hZ2VtZW50L192YXJpYWJsZXMuc2Nzcyc7XHJcblxyXG5oZWFkZXIge1xyXG4gIG5hdi5maXhlZC10b3Age1xyXG4gICAgaGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcclxuICAgIHotaW5kZXg6IDk5OTtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRzaWRlbmF2LW1vZHVsZXMtd2lkdGh9KSAhaW1wb3J0YW50O1xyXG4gICAgbGVmdDogYXV0bztcclxuXHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICAgICY6aG92ZXIsXHJcbiAgICAgICY6YWN0aXZlLFxyXG4gICAgICAmOmZvY3VzIHtcclxuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGgyIHtcclxuICAgIC8qbWFyZ2luLWxlZnQ6ICRzaWRlbmF2LW1vZHVsZXMtd2lkdGggKyAkc2lkZW5hdi1tZW51LXdpZHRoOyovXHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIC8qcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB6LWluZGV4OiAxMDAxOyovXHJcbiAgICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgICBjb2xvcjogJGJ1cm50LXNpZW5uYTtcclxuICB9XHJcblxyXG4gIC5uYXZiYXItYnJhbmQtY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogJHNpZGVuYXYtbWVudS13aWR0aCArICRzaWRlbmF2LW1vZHVsZXMtd2lkdGg7XHJcbiAgICBoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xyXG4gICAgei1pbmRleDogOTk4O1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgIC5uYXZiYXItYnJhbmQge1xyXG4gICAgICBjb2xvcjogJHdoaXRlO1xyXG5cclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjphY3RpdmUge1xyXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuI3RvcC1tZW51OjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgei1pbmRleDogMTAwMDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIG1hcmdpbjogYXV0bztcclxuICB3aWR0aDogMC4wMnJlbTtcclxuICBoZWlnaHQ6IDAuNSAqICRoZWFkZXItaGVpZ2h0O1xyXG4gIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICBvcGFjaXR5OiAwLjU7XHJcbn1cclxuIl19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthorizeService } from '../../../../api-authorization/authorize.service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport * as fromI18n from '../../../i18n/reducers';\r\nimport { I18nComponent } from '../../../i18n/containers/i18n.component';\r\nimport { MatDialog } from '@angular/material';\r\nimport { AppointmentComponent } from '../../../management/shared/components/dialogs/appointment/appointment.component';\r\nimport { UserRoles } from '../../../../api-authorization/api-authorization.constants';\r\nimport { CreditService } from '../../../management/core/services/customer/credit.service';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\nimport { ILoginMenuObject } from '../../../management/core/interfaces/customer/login-menu-object';\r\nimport { th } from 'date-fns/esm/locale';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-management-header',\r\n templateUrl: './management-header.component.html',\r\n styleUrls: ['./management-header.component.scss'],\r\n providers: [CreditService]\r\n})\r\nexport class ManagementHeaderComponent extends I18nComponent {\r\n public userRole: string;\r\n public isCustomer: boolean;\r\n public isExpanded: boolean = false;\r\n public currentCredits: number;\r\n public loginObj: ILoginMenuObject;\r\n public loginObjSbj: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n constructor(readonly store: Store,\r\n readonly translate: TranslateService,\r\n private authorizeService: AuthorizeService,\r\n private router:Router,\r\n public titleService: Title, private creditService:CreditService,\r\n private dialog: MatDialog\r\n ) {\r\n super(store, translate);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.loginObjSbj.subscribe(value => {\r\n //console.log(\"loginObjSbj value=\", value);\r\n if (value != null) {\r\n this.loginObj = {\r\n currentCredit: value.currentCredit,\r\n billingLabel: value.billingLabel,\r\n creditInfoLabel: value.creditInfoLabel,\r\n transactionsLabel: value.transactionsLabel,\r\n logoutLabel: value.logoutLabel\r\n };\r\n }\r\n })\r\n\r\n this.authorizeService.getUserRole().subscribe({\r\n next: y => {\r\n this.userRole = y.toLowerCase();\r\n if (y == UserRoles.Customer || y == UserRoles.Operator) {\r\n this.userRole = y.toLowerCase();\r\n this.isCustomer = true;\r\n }\r\n }\r\n });\r\n this.getLoginMenu();\r\n }\r\n\r\n openAppointmentDialog() {\r\n const dialogRef= this.dialog.open(AppointmentComponent, {\r\n width: \"80rem\",\r\n minWidth: \"30rem\",\r\n data: null\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(x => {\r\n var url = this.router.url;\r\n if (x == true && `/management/${this.userRole.toLowerCase()}/appointments`) {\r\n window.location.reload();\r\n }\r\n })\r\n }\r\n\r\n toggle() {\r\n\r\n }\r\n\r\n getLoginMenu() {\r\n this.translate.get(\"menu.credit-info\").subscribe(x => {\r\n if (this.loginObj != null) {\r\n this.loginObj.creditInfoLabel = x;\r\n }\r\n else {\r\n this.loginObj = {\r\n currentCredit: 0,\r\n billingLabel: \"\",\r\n creditInfoLabel: x,\r\n transactionsLabel: \"\",\r\n logoutLabel: \"\"\r\n };\r\n this.loginObjSbj.next(this.loginObj);\r\n }\r\n \r\n });\r\n this.translate.get(\"menu.billingLabel\").subscribe(x => {\r\n if (this.loginObj != null) {\r\n this.loginObj.billingLabel = x;\r\n }\r\n else {\r\n this.loginObj = {\r\n currentCredit: 0,\r\n billingLabel: x,\r\n creditInfoLabel: \"\",\r\n transactionsLabel: \"\",\r\n logoutLabel: \"\"\r\n };\r\n this.loginObjSbj.next(this.loginObj);\r\n }\r\n });\r\n this.translate.get(\"menu.transactionLabel\").subscribe(x => {\r\n if (this.loginObj != null) {\r\n this.loginObj.transactionsLabel = x;\r\n }\r\n else {\r\n this.loginObj = {\r\n currentCredit: 0,\r\n billingLabel: \"\",\r\n creditInfoLabel: \"\",\r\n transactionsLabel: x,\r\n logoutLabel: \"\"\r\n };\r\n this.loginObjSbj.next(this.loginObj);\r\n }\r\n });\r\n\r\n this.creditService.getCurrentCredit().subscribe(x => {\r\n if (x == null) {\r\n return;\r\n }\r\n this.currentCredits = x.currentCredits;\r\n if (this.loginObj != null) {\r\n this.loginObj.currentCredit = x.currentCredits;\r\n this.loginObjSbj.next(this.loginObj);\r\n }\r\n else {\r\n this.loginObj = {\r\n currentCredit: this.currentCredits,\r\n billingLabel: \"\",\r\n creditInfoLabel: \"\",\r\n transactionsLabel: \"\",\r\n logoutLabel: \"\"\r\n };\r\n this.loginObjSbj.next(this.loginObj);\r\n }\r\n });\r\n\r\n this.translate.get(\"menu.logout\").subscribe(x => {\r\n if (this.loginObj != null) {\r\n this.loginObj.logoutLabel = x;\r\n }\r\n else {\r\n this.loginObj = {\r\n currentCredit: 0,\r\n billingLabel: \"\",\r\n creditInfoLabel: \"\",\r\n transactionsLabel: \"\",\r\n logoutLabel: x\r\n };\r\n this.loginObjSbj.next(this.loginObj);\r\n }\r\n });\r\n }\r\n}\r\n","export default \"/*\\n =================================================================================================\\n general layout variables\\n =================================================================================================\\n*/\\n/* main menu that contains the modules: console, sms, email, etc */\\n/* secondary menu that contains the menu for each module */\\n/* main layout */\\ndiv[role=main] {\\n height: 100%;\\n padding-top: 60px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbGF5b3V0L21hbmFnZW1lbnQvbWFuYWdlbWVudC1sYXlvdXQvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL2xheW91dC9tYW5hZ2VtZW50L21hbmFnZW1lbnQtbGF5b3V0L0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxsYXlvdXRcXG1hbmFnZW1lbnRcXG1hbmFnZW1lbnQtbGF5b3V0XFxtYW5hZ2VtZW50LWxheW91dC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbGF5b3V0L21hbmFnZW1lbnQvbWFuYWdlbWVudC1sYXlvdXQvbWFuYWdlbWVudC1sYXlvdXQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FBQTtBQU04QixrRUFBQTtBQUNGLDBEQUFBO0FDTDVCLGdCQUFBO0FBQ0E7RUFDRSxZQUFBO0VBQ0EsaUJBQUE7QUNNRiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9tYW5hZ2VtZW50L21hbmFnZW1lbnQtbGF5b3V0L21hbmFnZW1lbnQtbGF5b3V0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgZ2VuZXJhbCBsYXlvdXQgdmFyaWFibGVzXHJcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4qL1xyXG4kaGVhZGVyLWhlaWdodDogNjBweDtcclxuJHNpZGVuYXYtbW9kdWxlcy13aWR0aDogNXJlbTsgLyogbWFpbiBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1vZHVsZXM6IGNvbnNvbGUsIHNtcywgZW1haWwsIGV0YyAqL1xyXG4kc2lkZW5hdi1tZW51LXdpZHRoOiAxMnJlbTsgLyogc2Vjb25kYXJ5IG1lbnUgdGhhdCBjb250YWlucyB0aGUgbWVudSBmb3IgZWFjaCBtb2R1bGUgKi9cclxuJHNpZGVuYXYtY29udGFpbmVyLXBhZGRpbmc6IDFyZW0gMHJlbTtcclxuXHJcbiRicmVha3BvaW50LXRhYmxldDogNzY4cHg7XHJcbiRicmVha3BvaW50LWxhcHRvcDogMTAyNHB4O1xyXG5cclxuJHNjcm9sbGJhci13aWR0aDogNXB4O1xyXG5cclxuJGFwcHMtaGVhZGVyLWhlaWdodDogNHJlbTtcclxuJGFwcHMtZm9vdGVyLWxvZ28taGVpZ2h0OiAycmVtO1xyXG4kYXBwcy1mb290ZXItbGluay1oZWlnaHQ6IDEuNXJlbTtcclxuXHJcbiRvZmZpY2UtaW5mby1oZWlnaHQ6IDIwcmVtO1xyXG4kb2ZmaWNlLXdvcmtpbmctaG91cnMtaGVpZ2h0OiA0MHJlbTtcclxuJG9mZmljZS1vcGVyYXRvcnMtc2VydmljZXMtaGVpZ2h0OiA0MHJlbTtcclxuIiwiQGltcG9ydCAnLi4vLi4vLi4vLi4vc2Nzcy9tYW5hZ2VtZW50L192YXJpYWJsZXMuc2Nzcyc7XHJcblxyXG4vKiBtYWluIGxheW91dCAqL1xyXG5kaXZbcm9sZT1cIm1haW5cIl0ge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBwYWRkaW5nLXRvcDogJGhlYWRlci1oZWlnaHQ7XHJcbn1cclxuIiwiLypcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBnZW5lcmFsIGxheW91dCB2YXJpYWJsZXNcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuKi9cbi8qIG1haW4gbWVudSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGVzOiBjb25zb2xlLCBzbXMsIGVtYWlsLCBldGMgKi9cbi8qIHNlY29uZGFyeSBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1lbnUgZm9yIGVhY2ggbW9kdWxlICovXG4vKiBtYWluIGxheW91dCAqL1xuZGl2W3JvbGU9bWFpbl0ge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiA2MHB4O1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { I18nComponent } from '../../../i18n/containers/i18n.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as fromI18n from '../../../i18n/reducers';\r\nimport { Store } from '@ngrx/store';\r\n\r\n@Component({\r\n selector: 'app-management-layout',\r\n templateUrl: './management-layout.component.html',\r\n styleUrls: ['./management-layout.component.scss']\r\n})\r\nexport class ManagementLayoutComponent extends I18nComponent {\r\n\r\n constructor(readonly store: Store,\r\n readonly translate: TranslateService) {\r\n super(store, translate);\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { ICustomerCreditTransaction } from '../../core/interfaces/customer/customer-credit-transaction.interface';\r\n\r\n@Injectable()\r\nexport class AddCreditFormService {\r\n\r\n public form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.fb.group({\r\n credit: [null, Validators.required],\r\n email: [{ value: null, disabled: true }],\r\n details: null\r\n });\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n\r\n createTransactionDto(customerCode): ICustomerCreditTransaction {\r\n const data = this.form.getRawValue();\r\n var today = new Date();\r\n const transaction: ICustomerCreditTransaction = {\r\n id: null,\r\n customerCode: customerCode,\r\n details: data.details,\r\n amount: data.credit,\r\n amountWithVat: data.credit,\r\n isProcessed: false,\r\n createdOnUtc:new Date(today.toUTCString())\r\n };\r\n\r\n return transaction;\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n.dialog-header {\\n height: 30px;\\n margin-bottom: 1.5rem;\\n}\\n\\n.dialog-header .float-left {\\n padding-top: 10px;\\n}\\n\\n.dialog-header .float-left h4 {\\n color: #EE7D5A;\\n text-transform: uppercase;\\n}\\n\\ntextarea {\\n border: 1px solid #EBF1F4;\\n}\\n\\n.close-icon {\\n font-size: 20px;\\n font-weight: 700;\\n}\\n\\n.mat-dialog-content {\\n overflow: hidden;\\n margin-bottom: 15px;\\n padding-bottom: 5px;\\n}\\n\\n.custom-button {\\n padding: 0 20px;\\n}\\n\\n.submit {\\n background-color: #1897C3;\\n color: #ffffff;\\n}\\n\\n.cancel-button {\\n border: 2px solid #1897C3;\\n color: #1897C3;\\n}\\n\\n.cancel-button:hover {\\n color: #EE7D5A;\\n border: 2px solid #EE7D5A;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9hZG1pbi9jcmVkaXQvYWRkLWNyZWRpdC9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXHNjc3NcXG1hbmFnZW1lbnRcXF9jb2xvci1zY2hlbWUuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9hZG1pbi9jcmVkaXQvYWRkLWNyZWRpdC9hZGQtY3JlZGl0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tYW5hZ2VtZW50L2FkbWluL2NyZWRpdC9hZGQtY3JlZGl0L0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxhZG1pblxcY3JlZGl0XFxhZGQtY3JlZGl0XFxhZGQtY3JlZGl0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTtFQUNFLGNBakJPO0FDQ1Q7O0FEbUJBO0VBQ0UseUJBckJPO0FDS1Q7O0FEbUJBO0VBQ0UsY0F4Qks7QUNRUDs7QURtQkE7RUFDRSx5QkE1Qks7QUNZUDs7QURtQkE7RUFDRSxjQS9CVztBQ2ViOztBRG1CQTtFQUNFLHlCQW5DVztBQ21CYjs7QURtQkE7RUFDRSxjQXJDVTtBQ3FCWjs7QURtQkE7RUFDRSx5QkF6Q1U7QUN5Qlo7O0FEbUJBO0VBQ0UsY0FsRE07QUNrQ1I7O0FEbUJBO0VBQ0UseUJBdERNO0FDc0NSOztBRG1CQTtFQUNFLGNBcERjO0FDb0NoQjs7QURtQkE7RUFDRSx5QkF4RGM7QUN3Q2hCOztBRG1CQTtFQUNFLGNBM0RhO0FDMkNmOztBRG1CQTtFQUNFLHlCQS9EYTtBQytDZjs7QURtQkE7RUFDRSxjQXJFVTtBQ3FEWjs7QURtQkE7RUFDRSx5QkFuRVE7QUNtRFY7O0FEbUJBO0VBQ0UseUJBdEVhO0FDc0RmOztBRG1CQTtFQUNFLGNBMUVhO0FDMERmOztBRG1CQTtFQUNFLHlCQWhGYTtBQ2dFZjs7QURtQkE7RUFDRSxjQXBGYTtBQ29FZjs7QURtQkE7RUFDRSxjQXpGTTtBQ3lFUjs7QURtQkE7RUFDRSxjQXhGSztBQ3dFUDs7QURtQkE7RUFDRSx5QkE1Rks7QUM0RVA7O0FEbUJBO0VBQ0UsY0EvRlU7QUMrRVo7O0FEbUJBO0VBQ0UseUJBbkdVO0FDbUZaOztBQy9GQTtFQUNFLFlBQUE7RUFDQSxxQkFBQTtBRGtHRjs7QUNoR0U7RUFDRSxpQkFBQTtBRGtHSjs7QUNoR0k7RUFDRSxjRkRTO0VFRVQseUJBQUE7QURrR047O0FDN0ZBO0VBQ0kseUJBQUE7QURnR0o7O0FDN0ZBO0VBQ0ksZUFBQTtFQUNBLGdCQUFBO0FEZ0dKOztBQzdGQTtFQUNJLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtBRGdHSjs7QUM3RkE7RUFDSSxlQUFBO0FEZ0dKOztBQzdGQTtFQUNJLHlCRnpCVztFRTBCWCxjQUFBO0FEZ0dKOztBQzdGQTtFQUNFLHlCQUFBO0VBQ0EsY0YvQmE7QUMrSGY7O0FDN0ZBO0VBQ0UsY0ZyQ2E7RUVzQ2IseUJBQUE7QURnR0YiLCJmaWxlIjoic3JjL2FwcC9tYW5hZ2VtZW50L2FkbWluL2NyZWRpdC9hZGQtY3JlZGl0L2FkZC1jcmVkaXQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkd2hpdGU6ICNGRkZGRkY7XHJcbiRkYXJrZXI6ICMxQzI0Mjg7XHJcbiRkYXJrOiAjMzc0NzRGO1xyXG4kZ3JheS1saWdodDogI0VCRjFGNDtcclxuJGdyYXktbWVkaXVtOiAjZTBlMGUwO1xyXG4kZ3JheS1kYXJrOiAjOEI5RUE3O1xyXG4kcHJpbWFyeS1jb2xvcjogI0ZGNDA4MTtcclxuJGFjY2VudC1jb2xvcjogIzIxOTZGMztcclxuJGFjY2VudC1jb2xvci0yOiAjMUFDNjczO1xyXG4kZXJyb3I6ICNGRjQxMDA7XHJcbiRidXJudC1zaWVubmE6ICNFRTdENUE7XHJcbiRzcGluZGxlOiAjQzhFNUVGO1xyXG4kZWFzdGVybi1ibHVlOiAjMTg5N0MzO1xyXG4kd2lsZC1zdHJhd2JlcnJ5OiAjRkY0MDgxO1xyXG4kd2FybjogI2Y0NDMzNjtcclxuJGRhcmstYmx1ZTogIzJhNjM3NztcclxuXHJcbi50ZXh0LWRhcmtlciB7XHJcbiAgY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi5ia2ctZGFya2VyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4udGV4dC1kYXJrIHtcclxuICBjb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi5ia2ctZGFyayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0ZXIge1xyXG4gIGNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmJrZy1saWdodGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLnRleHQtbGlnaHQge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSB7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJrZy13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1wcmltYXJ5IHtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWFjY2VudCB7XHJcbiAgY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctYWNjZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1ncmF5LWRhcmsge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLXNwaW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzcGluZGxlO1xyXG59XHJcblxyXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLnRleHQtZWFzdGVybi1ibHVlIHtcclxuICBjb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLmJrZy1idXJudC1zaWVubmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWJ1cm50LXNpZW5uYSB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWVycm9yIHtcclxuICBjb2xvcjogJGVycm9yO1xyXG59XHJcblxyXG4udGV4dC13YXJuIHtcclxuICBjb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi5ia2ctd2FybiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi50ZXh0LWRhcmstYmx1ZSB7XHJcbiAgY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctZGFyay1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcbiIsIi50ZXh0LWRhcmtlciB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uYmtnLWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzI0Mjg7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cblxuLmJrZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0Rjtcbn1cblxuLnRleHQtbGlnaHRlciB7XG4gIGNvbG9yOiAjRUJGMUY0O1xufVxuXG4uYmtnLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMUY0O1xufVxuXG4udGV4dC1saWdodCB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhCOUVBNztcbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLmJrZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuLmJrZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbi5ia2ctYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuLnRleHQtZ3JheS1kYXJrIHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctc3BpbmRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEU1RUY7XG59XG5cbi5ia2ctZWFzdGVybi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn1cblxuLnRleHQtZWFzdGVybi1ibHVlIHtcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5ia2ctYnVybnQtc2llbm5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtYnVybnQtc2llbm5hIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWVycm9yIHtcbiAgY29sb3I6ICNGRjQxMDA7XG59XG5cbi50ZXh0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLmJrZy13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLnRleHQtZGFyay1ibHVlIHtcbiAgY29sb3I6ICMyYTYzNzc7XG59XG5cbi5ia2ctZGFyay1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNjM3Nztcbn1cblxuLmRpYWxvZy1oZWFkZXIge1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cbi5kaWFsb2ctaGVhZGVyIC5mbG9hdC1sZWZ0IHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59XG4uZGlhbG9nLWhlYWRlciAuZmxvYXQtbGVmdCBoNCB7XG4gIGNvbG9yOiAjRUU3RDVBO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG50ZXh0YXJlYSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFQkYxRjQ7XG59XG5cbi5jbG9zZS1pY29uIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ubWF0LWRpYWxvZy1jb250ZW50IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLmN1c3RvbS1idXR0b24ge1xuICBwYWRkaW5nOiAwIDIwcHg7XG59XG5cbi5zdWJtaXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5N0MzO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLmNhbmNlbC1idXR0b24ge1xuICBib3JkZXI6IDJweCBzb2xpZCAjMTg5N0MzO1xuICBjb2xvcjogIzE4OTdDMztcbn1cblxuLmNhbmNlbC1idXR0b246aG92ZXIge1xuICBjb2xvcjogI0VFN0Q1QTtcbiAgYm9yZGVyOiAycHggc29saWQgI0VFN0Q1QTtcbn0iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9zY3NzL21hbmFnZW1lbnQvX2NvbG9yLXNjaGVtZSc7XHJcblxyXG5cclxuLmRpYWxvZy1oZWFkZXIge1xyXG4gIGhlaWdodDogMzBweDtcclxuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcblxyXG4gIC5mbG9hdC1sZWZ0IHtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG5cclxuICAgIGg0IHtcclxuICAgICAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbnRleHRhcmVhe1xyXG4gICAgYm9yZGVyOjFweCBzb2xpZCAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmNsb3NlLWljb257XHJcbiAgICBmb250LXNpemU6MjBweDtcclxuICAgIGZvbnQtd2VpZ2h0OjcwMDtcclxufVxyXG5cclxuLm1hdC1kaWFsb2ctY29udGVudHtcclxuICAgIG92ZXJmbG93OmhpZGRlbjtcclxuICAgIG1hcmdpbi1ib3R0b206MTVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOjVweDtcclxufVxyXG5cclxuLmN1c3RvbS1idXR0b257XHJcbiAgICBwYWRkaW5nOjAgMjBweDtcclxufVxyXG5cclxuLnN1Ym1pdHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6JGVhc3Rlcm4tYmx1ZTtcclxuICAgIGNvbG9yOiNmZmZmZmY7XHJcbn1cclxuXHJcbi5jYW5jZWwtYnV0dG9uIHtcclxuICBib3JkZXI6IDJweCBzb2xpZCAkZWFzdGVybi1ibHVlO1xyXG4gIGNvbG9yOiAkZWFzdGVybi1ibHVlO1xyXG59XHJcblxyXG4uY2FuY2VsLWJ1dHRvbjpob3ZlciB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbiAgYm9yZGVyOiAycHggc29saWQgJGJ1cm50LXNpZW5uYTtcclxufVxyXG5cclxuXHJcbiJdfQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AddCreditFormService } from '../add-credit-form.service';\r\nimport { CreditService } from '../../../core/services/customer/credit.service';\r\n\r\n@Component({\r\n selector: 'app-add-credit',\r\n templateUrl: './add-credit.component.html',\r\n styleUrls: ['./add-credit.component.scss'],\r\n providers: [AddCreditFormService, CreditService]\r\n})\r\nexport class AddCreditComponent implements OnInit {\r\n private customerEmail: string = \"\";\r\n public customerCode: string = \"\";\r\n public errorMessage = \"\";\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any | null,\r\n private formService: AddCreditFormService,\r\n private creditService: CreditService) {\r\n\r\n this.customerEmail = data.email;\r\n this.customerCode = data.customerCode;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.email.setValue(this.customerEmail);\r\n }\r\n\r\n get form() {\r\n return this.formService.form;\r\n }\r\n\r\n get email() {\r\n return this.formService.getFormControl(\"email\");\r\n }\r\n\r\n get credit() {\r\n return this.formService.getFormControl(\"credit\");\r\n }\r\n\r\n cancel() {\r\n this.dialogRef.close({ saved: false, transaction: null });\r\n }\r\n\r\n submit() {\r\n let transaction = this.formService.createTransactionDto(this.customerCode);\r\n\r\n this.creditService.addTransaction(transaction).subscribe(x => {\r\n if (x == null) {\r\n this.errorMessage = \"The transaction could not pe processed!\";\r\n\r\n return;\r\n }\r\n\r\n transaction.id = x;\r\n\r\n this.dialogRef.close({ saved: true, transaction: transaction });\r\n })\r\n }\r\n\r\n}\r\n","export const WeekDaysList: { [key: number]: string } = {\n [0]: 'sunday',\n [1]: 'monday',\n [2]: 'tuesday',\n [3]: 'wednesday',\n [4]: 'thursday',\n [5]: 'friday',\n [6]: 'saturday'\n}\n\nexport const MonthNames: string[] = [\"january\", \"february\", \"march\", \"april\", \"may\", \"june\",\n \"july\", \"august\", \"september\", \"october\", \"november\", \"december\"\n]\n","export const CRUD = {\r\n Create: 'Create',\r\n Read: 'Read',\r\n Update: 'Update',\r\n Delete: 'Delete'\r\n};\r\n","import { ICustomField } from \"../interfaces/common/custom-field\";\r\n\r\nexport const CustomFieldsType = {\r\n Client: 'Client',\r\n Appointment: 'Appointment',\r\n Office: 'Office',\r\n Service: 'Service',\r\n Operator: 'Operator'\r\n};\r\n\r\nexport const CustomFieldsTypeList = [\r\n CustomFieldsType.Client,\r\n CustomFieldsType.Appointment,\r\n CustomFieldsType.Office,\r\n CustomFieldsType.Service,\r\n CustomFieldsType.Operator\r\n]\r\n\r\nexport const ClientCustomFieldsCodes = {\r\n ClientFirstName: '#[ClientFirstName]',\r\n ClientLastName: '#[ClientLastName]',\r\n ClientPhone: '#[ClientPhone]',\r\n ClientEmail: '#[ClientEmail]'\r\n};\r\n\r\nexport const AppointmentCustomFieldsCodes = {\r\n AppointmentDate: '#[AppointmentDate]',\r\n AppointmentStartHour: '#[AppointmentStartHour]',\r\n AppointmentEndHour: '#[AppointmentEndHour]',\r\n AppointmentNote: '#[AppointmentNote]',\r\n AppointmentCancelUrl: '#[AppointmentCancelUrl]',\r\n AppointmentUniqueCode: '#[AppointmentUniqueCode]'\r\n};\r\n\r\nexport const OfficeCustomFieldsCodes = {\r\n OfficeName: '#[OfficeName]',\r\n OfficeAddress: '#[OfficeAddress]',\r\n OfficePhone: '#[OfficePhone]',\r\n OfficeDescription: '#[OfficeDescription]',\r\n OfficeEmail: '#[OfficeEmail]'\r\n};\r\n\r\nexport const ServiceCustomFieldsCodes = {\r\n ServiceName: '#[ServiceName]',\r\n ServiceDuration: '#[ServiceDuration]',\r\n ServicePrice: '#[ServicePrice]',\r\n ServiceDescription: '#[ServiceDescription]'\r\n};\r\n\r\nexport const OperatorCustomFieldsCodes = {\r\n OperatorFirstName: '#[OperatorFirstName]',\r\n OperatorLastName: '#[OperatorLastName]',\r\n OperatorEmail: '#[OperatorEmail]',\r\n OperatorPhone: '#[OperatorPhone]'\r\n};\r\n\r\nexport const ClientCustomFields: ICustomField[] = [\r\n { code: ClientCustomFieldsCodes.ClientFirstName, translateCode: 'client.firstName', name: 'Client first name' },\r\n { code: ClientCustomFieldsCodes.ClientLastName, translateCode: 'client.lastName', name: 'Client last name' },\r\n { code: ClientCustomFieldsCodes.ClientPhone, translateCode: 'client.phone', name: 'Client phone' },\r\n { code: ClientCustomFieldsCodes.ClientEmail, translateCode: 'client.email', name: 'Client email' }\r\n]\r\n\r\nexport const AppointmentCustomFields: ICustomField[] = [\r\n { code: AppointmentCustomFieldsCodes.AppointmentDate, translateCode: 'appointment.date', name: 'Appointment date' },\r\n { code: AppointmentCustomFieldsCodes.AppointmentStartHour, translateCode: 'appointment.startHour', name: 'Appointment start hour' },\r\n { code: AppointmentCustomFieldsCodes.AppointmentEndHour, translateCode: 'appointment.endHour', name: 'Appointment end hour' },\r\n { code: AppointmentCustomFieldsCodes.AppointmentNote, translateCode: 'appointment.note', name: 'Appointment note' },\r\n { code: AppointmentCustomFieldsCodes.AppointmentCancelUrl, translateCode: 'appointment.cancelUrl', name: 'Appointment cancel url' },\r\n { code: AppointmentCustomFieldsCodes.AppointmentUniqueCode, translateCode: 'appointment.uniqueCode', name: 'Appointment unique code' }\r\n]\r\n\r\nexport const OfficeCustomFields: ICustomField[] = [\r\n { code: OfficeCustomFieldsCodes.OfficeName, translateCode: 'office.name', name: 'Office name' },\r\n { code: OfficeCustomFieldsCodes.OfficeAddress, translateCode: 'office.address', name: 'Office address' },\r\n { code: OfficeCustomFieldsCodes.OfficePhone, translateCode: 'office.phone', name: 'Office phone' },\r\n { code: OfficeCustomFieldsCodes.OfficeEmail, translateCode: 'office.email', name: 'Office email' },\r\n { code: OfficeCustomFieldsCodes.OfficeDescription, translateCode: 'office.description', name: 'Office description' }\r\n]\r\n\r\nexport const ServiceCustomFields: ICustomField[] = [\r\n { code: ServiceCustomFieldsCodes.ServiceName, translateCode: 'service.name', name: 'Service name' },\r\n { code: ServiceCustomFieldsCodes.ServiceDuration, translateCode: 'service.duration', name: 'Service duration' },\r\n { code: ServiceCustomFieldsCodes.ServicePrice, translateCode: 'service.price', name: 'Service price' },\r\n { code: ServiceCustomFieldsCodes.ServiceDescription, translateCode: 'service.description', name: 'Service description' }\r\n]\r\n\r\nexport const OperatorCustomFields: ICustomField[] = [\r\n { code: OperatorCustomFieldsCodes.OperatorFirstName, translateCode: 'operator.firstName', name: 'Operator first name' },\r\n { code: OperatorCustomFieldsCodes.OperatorLastName, translateCode: 'operator.lastName', name: 'Operator last name' },\r\n { code: OperatorCustomFieldsCodes.OperatorEmail, translateCode: 'operator.email', name: 'Operator email' },\r\n { code: OperatorCustomFieldsCodes.OperatorPhone, translateCode: 'operator.phone', name: 'Operator phone' }\r\n]\r\n\r\nexport const CustomFields = [\r\n ClientCustomFields, AppointmentCustomFields, OfficeCustomFields, ServiceCustomFields, OperatorCustomFields\r\n]\r\n\r\nexport const CustomFieldsWithKey: { [key: string]: ICustomField[] } = {\r\n [CustomFieldsType.Client]: ClientCustomFields,\r\n [CustomFieldsType.Appointment]: AppointmentCustomFields,\r\n [CustomFieldsType.Office]: OfficeCustomFields,\r\n [CustomFieldsType.Service]: ServiceCustomFields,\r\n [CustomFieldsType.Operator]: OperatorCustomFields\r\n}\r\n\r\n\r\nexport const PhoneBookingCustomFieldsCodes = {\r\n ClientFirstName: '#[ClientFirstName]',\r\n ClientLastName: '#[ClientLastName]',\r\n ServiceName: '#[ServiceName]',\r\n OperatorFirstName: '#[OperatorFirstName]',\r\n OperatorLastName: '#[OperatorLastName]',\r\n OfficeAddress: '#[OfficeAddress]',\r\n OfficeName: '#[OfficeName]',\r\n AppointmentDate: '#[AppointmentDate]',\r\n AppointmentStartHour: '#[AppointmentStartHour]',\r\n AppointmentEndHour: '#[AppointmentEndHour]',\r\n AppointmentWeekDay: '#[AppointmentWeekDay]'\r\n};\r\n\r\nexport const PhoneBookingCustomFields: ICustomField[] = [\r\n { code: PhoneBookingCustomFieldsCodes.ClientFirstName, translateCode: 'client.firstName', name: 'Client first name' },\r\n { code: PhoneBookingCustomFieldsCodes.ClientLastName, translateCode: 'client.lastName', name: 'Client last name' },\r\n { code: PhoneBookingCustomFieldsCodes.ServiceName, translateCode: 'service.name', name: 'Service name' },\r\n { code: PhoneBookingCustomFieldsCodes.OperatorFirstName, translateCode: 'operator.firstName', name: 'Operator first name' },\r\n { code: PhoneBookingCustomFieldsCodes.OperatorLastName, translateCode: 'operator.lastName', name: 'Operator last name' },\r\n { code: PhoneBookingCustomFieldsCodes.OfficeAddress, translateCode: 'office.address', name: 'Office address' },\r\n { code: PhoneBookingCustomFieldsCodes.OfficeName, translateCode: 'office.name', name: 'Office name' },\r\n { code: PhoneBookingCustomFieldsCodes.AppointmentDate, translateCode: 'appointment.date', name: 'Appointment date' },\r\n { code: PhoneBookingCustomFieldsCodes.AppointmentStartHour, translateCode: 'appointment.startHour', name: 'Appointment start hour' },\r\n { code: PhoneBookingCustomFieldsCodes.AppointmentEndHour, translateCode: 'appointment.endHour', name: 'Appointment last hour' },\r\n { code: PhoneBookingCustomFieldsCodes.AppointmentWeekDay, translateCode: 'appointment.weekDay', name: 'Appointment week day' }\r\n]\r\n\r\nexport const PhoneBookingAgendaCustomFields: ICustomField[] = [\r\n { code: PhoneBookingCustomFieldsCodes.AppointmentDate, translateCode: 'appointment.date', name: 'Appointment date' },\r\n { code: PhoneBookingCustomFieldsCodes.AppointmentStartHour, translateCode: 'appointment.startHour', name: 'Appointment start hour' },\r\n { code: PhoneBookingCustomFieldsCodes.AppointmentEndHour, translateCode: 'appointment.endHour', name: 'Appointment last hour' },\r\n { code: PhoneBookingCustomFieldsCodes.AppointmentWeekDay, translateCode: 'appointment.weekDay', name: 'Appointment week day' }\r\n]\r\n","export const ExceptionDayType = {\n Office: 'Office',\n Operator: 'Operator'\n}\n","export const FilterOperatorType = {\n Number: 'Number',\n String: 'String',\n Boolean: 'Boolean',\n Date: 'Date',\n Timestamp: 'Timestamp'\n};\n\nexport const FilterGridOperatorList: { [key: string]: string[] } = {\n [FilterOperatorType.Number]: ['Equals', 'Greater Than', 'Greater Than Or Equals', 'Less Than', 'Less Than Or Equals', 'Not Equal'],\n [FilterOperatorType.String]: ['Equals', 'Starts With', 'End With', 'Contains', 'Not Equal'],\n [FilterOperatorType.Boolean]: ['Equals'],\n [FilterOperatorType.Date]: ['Equals', 'Greater Than', 'Greater Than Or Equals', 'Less Than', 'Less Than Or Equals', 'Not Equal'],\n [FilterOperatorType.Timestamp]: ['Equals', 'Greater Than', 'Greater Than Or Equals', 'Less Than', 'Less Than Or Equals', 'Not Equal']\n}\n","export const PeriodType = {\n Hours: 'Hours',\n Days: 'Days'\n}\n\nexport const AppointmentsPeriodType = {\n Future: 'Future',\n Past: 'Past'\n}\n","export const Modules = {\r\n Agenda: 'agenda',\r\n Appointments: 'appointments',\r\n Billing: 'billing',\r\n Categories: 'categories',\r\n Clients: 'clients',\r\n Offices: 'offices',\r\n Operators: 'operators',\r\n PhoneBooking: 'phone-booking',\r\n Services: 'services',\r\n Settings: 'settings',\r\n Statuses: 'statuses',\r\n Users: 'users',\r\n Credit: \"credit\",\r\n Notifications:\"notifications\"\r\n};\r\n\r\n//export const ApiBaseUrl = \"/AppointmentApp/api/\"; //UNCOMMENT ON PUBLISH\r\nexport const ApiBaseUrl = \"/api/\"; //COMMENT ON PUBLISH\r\n\r\nexport const MaxListLength = 20;\r\n","export const ImageSrcType = {\r\n Default: 'default',\r\n Clients: 'clients',\r\n Countries: 'countries',\r\n Operators:\"operators\"\r\n};\r\n\r\nexport const DefaultImageNames = {\r\n Users: 'users.png',\r\n Categories: 'categories.png',\r\n Services: 'services.png',\r\n ServiceDuration:\"service-duration.png\",\r\n Operators: 'operators.png',\r\n Offices: 'offices.png',\r\n Statuses: 'statuses.png',\r\n Clients: 'clients.png',\r\n Appointments: 'appointments.png',\r\n Agenda: 'agenda.png',\r\n Settings: 'settings.png',\r\n White: 'white.png',\r\n NoLogo: 'nologo.png',\r\n NoProfilePhoto: 'no-avatar.png',\r\n Success: 'success.png',\r\n PhoneBooking: 'phone-booking.png',\r\n Credit: \"credit-icon.png\",\r\n ReportNotifications: \"report-notification-icon.png\",\r\n ContactDetails: 'contact-details.png',\r\n FixApp: 'fixapp.png'\r\n};\r\n","import { MatTableDataSource } from \"@angular/material\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { IAppointmentNotification } from \"../../interfaces/customer/appointment-notification.interface\";\r\n\r\nexport class AppointmentNotificationDatasource extends MatTableDataSource {\r\n constructor(private subject: BehaviorSubject) {\r\n super();\r\n }\r\n\r\n connect(): BehaviorSubject {\r\n return this.subject;\r\n }\r\n\r\n disconnect() { }\r\n}\r\n\r\n","import { MatTableDataSource } from \"@angular/material\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { IAppointment } from \"../../interfaces/customer/appointment\";\r\n\r\nexport class AppointmentDataSource extends MatTableDataSource {\n constructor(private subject: BehaviorSubject) {\n super();\n }\n\n connect(): BehaviorSubject {\n return this.subject;\n }\n\n disconnect() { }\n}\n","import { MatTableDataSource } from \"@angular/material\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { IClient } from \"../../interfaces/customer/client\";\r\n\r\nexport class ClientDataSource extends MatTableDataSource {\r\n constructor(private subject: BehaviorSubject) {\r\n super();\r\n }\r\n\r\n connect(): BehaviorSubject {\r\n return this.subject;\r\n }\r\n\r\n disconnect() { }\r\n}\r\n","import { MatTableDataSource } from \"@angular/material\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { ICustomerCreditTransaction } from \"../../interfaces/customer/customer-credit-transaction.interface\";\r\n\r\nexport class CustomerCreditTransactionDatasource extends MatTableDataSource {\r\n constructor(private subject: BehaviorSubject) {\r\n super();\r\n }\r\n\r\n connect(): BehaviorSubject {\r\n return this.subject;\r\n }\r\n\r\n disconnect() { }\r\n}\r\n","import { MatTableDataSource } from \"@angular/material\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { IExceptionDay } from \"../../interfaces/customer/exception-day\";\r\n\r\nexport class ExceptionDayDataSource extends MatTableDataSource {\r\n constructor(private subject: BehaviorSubject) {\r\n super();\r\n }\r\n\r\n connect(): BehaviorSubject {\r\n return this.subject;\r\n }\r\n\r\n disconnect() { }\r\n}\r\n","import { BehaviorSubject } from \"rxjs\";\r\nimport { IUser } from \"../../interfaces/users/user\";\r\nimport { MatTableDataSource } from \"@angular/material\";\r\n\r\nexport class UserDataSource extends MatTableDataSource {\n constructor(private subject: BehaviorSubject) {\n super();\n }\n\n connect(): BehaviorSubject {\n return this.subject;\n }\n\n disconnect() { }\n}\n","import { Time } from \"@angular/common\";\r\nimport { MonthNames } from \"../constants/calendar.constants\";\r\nimport { ISelection } from \"../interfaces/common/selection\";\r\nimport { IService } from \"../interfaces/customer/service\";\r\n\r\nexport function GetNewDateFromDateAndTime(date: Date, time: string): Date {\r\n const timeArr = time.split(':');\r\n const hours = parseInt(timeArr[0]);\r\n const minutes = parseInt(timeArr[1]);\r\n\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), hours, minutes);\r\n}\r\n\r\nexport function GetNewTimeBasedOnTheService(service: IService, time: string, addMinutes: boolean): string {\r\n const arrTime = time.split(':');\r\n const timeHours = parseInt(arrTime[0]);\r\n const timeMinutes = parseInt(arrTime[1]);\r\n\r\n const appointmentDuration = service.appointmentDuration + service.intervalBeforeAppointment + service.intervalAfterAppointment;\r\n const allMinutes = addMinutes ? timeMinutes + appointmentDuration : timeMinutes - appointmentDuration;\r\n\r\n const newTimeHours = Math.floor(allMinutes / 60) + timeHours;\r\n const hours = newTimeHours.toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false });\r\n const newTimeMinutes = addMinutes ? allMinutes % 60 : -allMinutes % 60;\r\n const minutes = newTimeMinutes.toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false });\r\n\r\n return `${hours}:${minutes}`;\r\n}\r\n\r\nexport function GetTimeFromDate(date: Date): string {\r\n return (\"00\" + (date.getHours())).slice(-2) + \":\" + (\"00\" + date.getMinutes()).slice(-2);\r\n}\r\n\r\nexport function GetDisplayMonth(date: Date) {\r\n const month = date.getMonth() + 1;\r\n return month < 10 ? '0' + month : month;\r\n}\r\n\r\nexport function GetMonthsInterval(startDate: string, endDate: string, translations: string = null): ISelection[] {\r\n const start = startDate.split('-');\r\n const end = endDate.split('-');\r\n const startYear = parseInt(start[0]);\r\n const endYear = parseInt(end[0]);\r\n const dates = [];\r\n const monthsInterval: ISelection[] = [];\r\n\r\n for (let i = startYear; i <= endYear; i++) {\r\n const endMonth = i !== endYear ? 11 : parseInt(end[1]) - 1;\r\n const startMonth = i === startYear ? parseInt(start[1]) - 1 : 0;\r\n for (let j = startMonth; j <= endMonth; j = j > 12 ? j % 12 || 11 : j + 1) {\r\n const month = j + 1;\r\n const displayMonth = month < 10 ? '0' + month : month;\r\n\r\n dates.push([i, displayMonth, '01'].join('-'));\r\n }\r\n }\r\n\r\n for (let i = dates.length - 1; i >= 0; i--) {\r\n const value = dates[i];\r\n let text = '';\r\n\r\n if (translations !== null) {\r\n const date = new Date(value);\r\n const monthName = translations[`months.${MonthNames[date.getMonth()]}`];\r\n\r\n text = `${monthName} ${date.getFullYear()}`;\r\n }\r\n\r\n monthsInterval.push({\r\n value: value,\r\n text: text\r\n });\r\n }\r\n\r\n return monthsInterval;\r\n}\r\n\r\nexport function GetDayWithoutTime(d: Date) {\r\n const date: Date = new Date(d);\r\n\r\n const newDate = `${date.getFullYear()}-${(\"00\" + (date.getMonth() + 1)).slice(-2)}-${(\"00\" + date.getDate()).slice(-2)}`;\r\n\r\n return newDate;\r\n}\r\n\r\nexport function GetDayWithTime(d: Date, time: string) {\r\n const timeArr = time.split(':');\r\n const hours = parseInt(timeArr[0]);\r\n const minutes = parseInt(timeArr[1]);\r\n\r\n const date: Date = new Date(d);\r\n\r\n const newDate = `${date.getFullYear()}-${(\"00\" + (date.getMonth() + 1)).slice(-2)}-${(\"00\" + date.getDate()).slice(-2)} ${hours}:${minutes}`;\r\n\r\n return newDate;\r\n}\r\n\r\nexport function GetNextDay(date: Date, next: boolean = true) {\r\n if (next) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1, 0, 0);\r\n }\r\n\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, 0, 0);\r\n}\r\n","import { ApplicationRoot } from \"../../../../api-authorization/api-authorization.constants\";\r\nimport { ImageSrcType } from \"../constants/src.constants\";\r\n\r\nexport function GetImageSrc(type: string, fileName: string, customerCode?: string) {\r\n let src: string;\r\n\r\n //for publish on an subdomain\r\n //src = `/${ApplicationRoot}/assets/img/`; //UNCOMMENT ON PUBLISH\r\n\r\n //for localhost and publish without subdomain\r\n src = '../../../../../../assets/img/'; //COMMENT ON PUBLISH\r\n\r\n switch (type) {\r\n case ImageSrcType.Default:\r\n case ImageSrcType.Countries:\r\n src = src.concat(`${type}/${fileName}`);\r\n break;\r\n case ImageSrcType.Clients:\r\n src = src.concat(`${type}/${customerCode}/logo/${fileName}`);\r\n break;\r\n case ImageSrcType.Operators:\r\n src = src.concat(`${type}/${customerCode}/photo/${fileName}`);\r\n break;\r\n }\r\n\r\n return src;\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MultiTranslateHttpLoader } from \"ngx-translate-multi-http-loader\";\r\nimport { CustomFieldsTypeList, CustomFieldsWithKey, PhoneBookingAgendaCustomFields, PhoneBookingCustomFields } from \"../constants/custom-fields.constants\";\r\n\r\nexport function Translate(http: HttpClient, paths: string[]) {\r\n const translatedResource = paths.map(x => ({\r\n prefix: `.${x}`, suffix: \".json\"\r\n }));\r\n\r\n return new MultiTranslateHttpLoader(http, translatedResource);\r\n}\r\n\r\nexport function GetTranslatedName(item: string, translate: TranslateService) {\r\n let translatedItem: string;\r\n\r\n translate.get(item).subscribe(x => translatedItem = x);\r\n\r\n return translatedItem;\r\n}\r\n\r\nexport function TranslateCustomFields(translate: TranslateService) {\r\n translate\r\n .stream([\r\n \"custom-fields.client.firstName\",\r\n \"custom-fields.client.lastName\",\r\n \"custom-fields.client.phone\",\r\n \"custom-fields.client.email\",\r\n\r\n \"custom-fields.appointment.date\",\r\n \"custom-fields.appointment.startHour\",\r\n \"custom-fields.appointment.endHour\",\r\n \"custom-fields.appointment.note\",\r\n \"custom-fields.appointment.cancelUrl\",\r\n \"custom-fields.appointment.uniqueCode\",\r\n\r\n \"custom-fields.office.name\",\r\n \"custom-fields.office.address\",\r\n \"custom-fields.office.phone\",\r\n \"custom-fields.office.email\",\r\n \"custom-fields.office.description\",\r\n\r\n \"custom-fields.service.name\",\r\n \"custom-fields.service.duration\",\r\n \"custom-fields.service.price\",\r\n \"custom-fields.service.description\",\r\n\r\n \"custom-fields.operator.firstName\",\r\n \"custom-fields.operator.lastName\",\r\n \"custom-fields.operator.email\",\r\n \"custom-fields.operator.phone\"\r\n ])\r\n .subscribe(translations => {\r\n\r\n Object(CustomFieldsTypeList).forEach(type => {\r\n Object(CustomFieldsWithKey[type]).forEach(customField => {\r\n customField.name = translations[`custom-fields.${customField.translateCode}`];\r\n });\r\n });\r\n });\r\n}\r\n\r\nexport function TranslatePhoneBookingCustomFields(translate: TranslateService) {\r\n translate\r\n .stream([\r\n \"custom-fields.client.firstName\",\r\n \"custom-fields.client.lastName\",\r\n \"custom-fields.service.name\",\r\n \"custom-fields.operator.firstName\",\r\n \"custom-fields.operator.lastName\",\r\n \"custom-fields.office.address\",\r\n \"custom-fields.office.name\",\r\n \"custom-fields.appointment.date\",\r\n \"custom-fields.appointment.startHour\",\r\n \"custom-fields.appointment.endHour\",\r\n \"custom-fields.appointment.weekDay\"\r\n ])\r\n .subscribe(translations => {\r\n\r\n Object(PhoneBookingCustomFields).forEach(customField => {\r\n customField.name = translations[`custom-fields.${customField.translateCode}`];\r\n });\r\n\r\n Object(PhoneBookingAgendaCustomFields).forEach(customField => {\r\n customField.name = translations[`custom-fields.${customField.translateCode}`];\r\n });\r\n });\r\n}\r\n","import { FormGroup } from '@angular/forms';\n\n// custom validator to check that two fields match\nexport function MustMatch(controlName: string, matchingControlName: string) {\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n if (matchingControl.errors && !matchingControl.errors.mustMatch) {\n // return if another validator has already found an error on the matchingControl\n return;\n }\n\n // set error on matchingControl if validation fails\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n } else {\n matchingControl.setErrors(null);\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { ITimeSlot } from '../../interfaces/common/time-slot';\r\nimport { ITimeSlotParameters } from '../../interfaces/common/time-slot-parameters';\r\n\r\n@Injectable()\r\nexport class AgendaService {\r\n private _baseUrl: string = `${ApiBaseUrl}agenda`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getTimeSlots(timeSlotParameters: ITimeSlotParameters): Observable {\r\n return this.httpClient.post(`${this._baseUrl}`, timeSlotParameters);\r\n }\r\n\r\n selectTimeSlots(timeSlotParameters: ITimeSlotParameters): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/select`, timeSlotParameters);\r\n }\r\n\r\n getFirstAvailableDate(timeSlotParameters: ITimeSlotParameters): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/first-available-date`, timeSlotParameters);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { INotificationSettings } from '../../interfaces/common/notification-settings';\r\n\r\n@Injectable()\r\nexport class NotificationSettingsService {\r\n private _baseUrl: string = `${ApiBaseUrl}notificationsettings`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getNotificationSettings(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}`);\r\n }\r\n\r\n getNotificationSettingsByCustomerCode(customerCode: string): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/${customerCode}`);\r\n }\r\n\r\n update(notificationSettings: INotificationSettings): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update`, notificationSettings);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { IRequest } from '../../interfaces/common/request';\r\nimport { Observable } from 'rxjs';\r\nimport { DataSourceResponse } from '../../interfaces/data/datasource-response';\r\nimport { IAppointmentNotification } from '../../interfaces/customer/appointment-notification.interface';\r\n\r\n@Injectable()\r\nexport class AppointmentNotificationService {\r\n\r\n private _baseUrl: string = `${ApiBaseUrl}appointmentnotification`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n get(request: IRequest, channel:string): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}/requests/${channel}`, request);\r\n }\r\n\r\n \r\n}\r\n","import { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { IAppointment } from '../../interfaces/customer/appointment';\r\nimport { IRequest } from '../../interfaces/common/request';\r\nimport { DataSourceResponse } from '../../interfaces/data/datasource-response';\r\nimport { IResponseCall, IResponseCallWithId } from '../../interfaces/common/response-call.interface';\r\n\r\n@Injectable()\r\n\r\nexport class AppointmentService {\r\n private _baseUrl: string = `${ApiBaseUrl}appointment`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getAppointments(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}`);\r\n }\r\n\r\n getAppointmentsWithRequest(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}`, request);\r\n }\r\n\r\n getAppointment(id: any): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/${id}`);\r\n }\r\n\r\n create(appointment: IAppointment): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/create`, appointment);\r\n }\r\n\r\n update(appointment: IAppointment, crud: string): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update/${crud}`, appointment);\r\n }\r\n\r\n delete(appointment: IAppointment): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/delete`, appointment);\r\n }\r\n\r\n cancel(appointment: IAppointment): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/cancel`, appointment);\r\n }\r\n\r\n getMonthsInterval(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/getMonthsInterval`);\r\n }\r\n\r\n setMonthsInterval(monthsInterval: string): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/setMonthsInterval/${monthsInterval}`);\r\n }\r\n\r\n setEnableMonthsInterval(enableMonthsInterval: number): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/setEnableMonthsInterval/${enableMonthsInterval}`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { IClient } from '../../interfaces/customer/client';\r\nimport { IRequest } from '../../interfaces/common/request';\r\nimport { DataSourceResponse } from '../../interfaces/data/datasource-response';\r\nimport {IResponseCallWithId, IResponseCall } from '../../interfaces/common/response-call.interface';\r\n\r\n@Injectable()\r\nexport class ClientService {\r\n private _baseUrl: string = `${ApiBaseUrl}client`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getClients(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}`);\r\n }\r\n\r\n getClientsWithRequest(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}`, request);\r\n }\r\n\r\n getWithVerification(client: IClient): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/get-with-verify`, client);\r\n }\r\n\r\n getClient(id: any): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/${id}`);\r\n }\r\n\r\n getClientWithCustomerCode(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/withCustomerCode`);\r\n }\r\n\r\n create(client: IClient): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/create`, client);\r\n }\r\n\r\n createWithVerification(client: IClient): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/create-with-verify`, client);\r\n }\r\n\r\n update(client: IClient): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update`, client);\r\n }\r\n\r\n updateWithVerification(client: IClient): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update-with-verify`, client);\r\n }\r\n\r\n delete(client: IClient): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/delete`, client);\r\n }\r\n\r\n getClientUrlSufix(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/url-suffix`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { IRequest } from '../../interfaces/common/request';\r\nimport { Observable } from 'rxjs';\r\nimport { DataSourceResponse } from '../../interfaces/data/datasource-response';\r\nimport { ICustomerCredit } from '../../interfaces/customer/customer-credit.interface';\r\nimport { ICustomerCreditTransaction } from '../../interfaces/customer/customer-credit-transaction.interface';\r\n\r\n@Injectable()\r\nexport class CreditService {\r\n\r\n private _baseUrl: string = `${ApiBaseUrl}customercredit`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getCustomersCredit(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}/credit`, request);\r\n }\r\n\r\n getCustomerCreditTransactions(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}/transaction`, request);\r\n }\r\n\r\n addTransaction(transaction: ICustomerCreditTransaction): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/add-credit`, transaction);\r\n }\r\n\r\n getCurrentCredit(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/customer-credit`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { IRequest } from '../../interfaces/common/request';\r\nimport { IExceptionDay } from '../../interfaces/customer/exception-day';\r\nimport { DataSourceResponse } from '../../interfaces/data/datasource-response';\r\n\r\n@Injectable()\r\nexport class ExceptionDayService {\r\n private _baseUrl: string = `${ApiBaseUrl}exceptionday`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getExceptionDaysWithRequest(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}`, request);\r\n }\r\n\r\n createlist(exceptionDays: IExceptionDay[]): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/createlist`, exceptionDays);\r\n }\r\n\r\n deletelist(exceptionDays: IExceptionDay[]): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/deletelist`, exceptionDays);\r\n }\r\n\r\n delete(exceptionDay: IExceptionDay): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/delete`, exceptionDay);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { IKeyword } from '../../interfaces/common/keyword';\r\n\r\n@Injectable()\r\nexport class KeywordService {\r\n private _baseUrl: string = `${ApiBaseUrl}keyword`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getKeywordsByDiscriminator(parentDiscriminator: string): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/${parentDiscriminator}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { IOffice } from '../../interfaces/customer/office';\r\nimport { IOfficeOperatorService } from '../../interfaces/customer/office-operator-service';\r\nimport { IRequest } from '../../interfaces/common/request';\r\nimport { DataSourceResponse } from '../../interfaces/data/datasource-response';\r\nimport { IOfficeOperatorWorkSchedule } from '../../interfaces/customer/office-operator-work-schedule';\r\n\r\n@Injectable()\r\nexport class OfficeService {\r\n private _baseUrl: string = `${ApiBaseUrl}office`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getOffices(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}`);\r\n }\r\n\r\n getOfficesByCustomerCode(customerCode: string): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/withCustomerCode/${customerCode}`);\r\n }\r\n\r\n getOfficesWithRequest(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}`, request);\r\n }\r\n\r\n getOffice(id: any): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/${id}`);\r\n }\r\n\r\n create(office: IOffice): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/create`, office);\r\n }\r\n\r\n update(office: IOffice): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update`, office);\r\n }\r\n\r\n delete(office: IOffice): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/delete`, office);\r\n }\r\n\r\n getAllOfficeOperatorService(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/listOfficeOperatorService`);\r\n }\r\n\r\n getAllOfficeOperatorServiceByCustomerCode(customerCode: string): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/listOfficeOperatorService/withCustomerCode/${customerCode}`);\r\n }\r\n\r\n getAllOfficeOperatorServiceWithRequest(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}/listOfficeOperatorServiceWithRequest`, request);\r\n }\r\n\r\n getAllOfficeOperatorWorkSchedule(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/listOfficeOperatorWorkSchedule`);\r\n }\r\n\r\n getAllOfficeOperatorWorkScheduleWithRequest(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}/listOfficeOperatorWorkScheduleWithRequest`, request);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { IOperator } from '../../interfaces/customer/operator';\r\nimport { Observable } from 'rxjs';\r\nimport { IRequest } from '../../interfaces/common/request';\r\nimport { DataSourceResponse } from '../../interfaces/data/datasource-response';\r\nimport { IResponseCall } from '../../interfaces/common/response-call.interface';\r\n\r\n@Injectable()\r\nexport class OperatorService {\r\n private _baseUrl: string = `${ApiBaseUrl}operator`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getOperators(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}`);\r\n }\r\n\r\n getOperatorsByCustomerCode(customerCode: string): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/withCustomerCode/${customerCode}`);\r\n }\r\n\r\n getOperatorsWithRequest(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}`, request);\r\n }\r\n\r\n getOperator(id: any): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/${id}`);\r\n }\r\n\r\n getOperatorInfo(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/info`);\r\n }\r\n\r\n\r\n create(operator: IOperator): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/create`, operator);\r\n }\r\n\r\n update(operator: IOperator): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update`, operator);\r\n }\r\n\r\n delete(operator: IOperator): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/delete`, operator);\r\n }\r\n\r\n uploadFile(fd: FormData): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/upload`, fd);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { IService } from '../../interfaces/customer/service';\r\nimport { Observable } from 'rxjs';\r\nimport { IRequest } from '../../interfaces/common/request';\r\nimport { DataSourceResponse } from '../../interfaces/data/datasource-response';\r\n\r\n@Injectable()\r\nexport class ServiceService {\r\n private _baseUrl: string = `${ApiBaseUrl}service`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getServices(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}`);\r\n }\r\n\r\n getServicesByCustomerCode(customerCode: string): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/withCustomerCode/${customerCode}`);\r\n }\r\n\r\n getServicesWithRequest(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}`, request);\r\n }\r\n\r\n getService(id: any): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/${id}`);\r\n }\r\n\r\n create(service: IService): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/create`, service);\r\n }\r\n\r\n update(service: IService): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update`, service);\r\n }\r\n\r\n delete(service: IService): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/delete`, service);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { ICountry } from '../../interfaces/common/country';\r\nimport { IPhoneBookingMessage } from '../../interfaces/common/phone-booking-message';\r\nimport { IOrderStep } from '../../interfaces/customer/order-step';\r\nimport { ISettings } from '../../interfaces/customer/settings';\r\n\r\n@Injectable()\r\nexport class SettingsService {\r\n private _baseUrl: string = `${ApiBaseUrl}settings`;\r\n private _localizationUrl: string = `${ApiBaseUrl}localization`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getSettings(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}`);\r\n }\r\n\r\n getSettingsByCustomerCode(customerCode: string = null): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/${customerCode}`);\r\n }\r\n\r\n getSettingsByURLSuffix(urlSuffix: string): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/byURLSuffix/${urlSuffix}`);\r\n }\r\n\r\n getOrderSteps(customerCode: string, channel: string, withCascade:boolean=false): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/steps/${customerCode}/${channel}/${withCascade}`);\r\n }\r\n\r\n getPhoneBookingMessages(customerCode: string): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/messages/${customerCode}`);\r\n }\r\n\r\n updateSettings(settings: ISettings): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update`, settings);\r\n }\r\n\r\n updateOrderSteps(orderStep: IOrderStep[], channel: string): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update-steps/${channel}`, orderStep);\r\n }\r\n\r\n updatePhoneBookingMessages(messages: IPhoneBookingMessage[]): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update-messages`, messages);\r\n }\r\n\r\n uploadFile(fd: FormData): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/upload`, fd);\r\n }\r\n\r\n getCountries(): Observable {\r\n return this.httpClient.get(`${this._localizationUrl}`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { IStatus } from '../../interfaces/customer/status';\r\nimport { IRequest } from '../../interfaces/common/request';\r\nimport { DataSourceResponse } from '../../interfaces/data/datasource-response';\r\nimport { IStatusTemplate } from '../../interfaces/customer/status-template';\r\n\r\n@Injectable()\r\nexport class StatusService {\r\n private _baseUrl: string = `${ApiBaseUrl}status`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getStatuses(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}`);\r\n }\r\n\r\n getStatusesWithRequest(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}`, request);\r\n }\r\n\r\n getStatus(id: any): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/${id}`);\r\n }\r\n\r\n create(status: IStatus): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/create`, status);\r\n }\r\n\r\n update(status: IStatus): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update`, status);\r\n }\r\n\r\n delete(status: IStatus): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/delete`, status);\r\n }\r\n\r\n getStatusTemplates(statusId: any): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/templates/${statusId}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiBaseUrl } from '../../constants/shared.constants';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { IUser } from '../../interfaces/users/user';\r\nimport { IRequest } from '../../interfaces/common/request';\r\nimport { DataSourceResponse } from '../../interfaces/data/datasource-response';\r\nimport { IResponseCall } from '../../interfaces/common/response-call.interface';\r\n\r\n@Injectable()\r\nexport class UserService {\r\n private _baseUrl: string = `${ApiBaseUrl}customer`;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getUsers(): Observable {\r\n return this.httpClient.get(`${this._baseUrl}`);\r\n }\r\n\r\n getUsersWithRequest(request: IRequest): Observable> {\r\n return this.httpClient.post>(`${this._baseUrl}`, request);\r\n }\r\n\r\n getUser(id: any): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/${id}`);\r\n }\r\n\r\n getUserByCustomerCode(customerCode: string = null): Observable {\r\n return this.httpClient.get(`${this._baseUrl}/byCustomerCode/${customerCode}`);\r\n }\r\n\r\n create(user: IUser): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/create`, user);\r\n }\r\n\r\n delete(user: IUser): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/delete`, user);\r\n }\r\n\r\n update(user: IUser): Observable {\r\n return this.httpClient.post(`${this._baseUrl}/update`, user);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvYXBwb2ludG1lbnQtbm90aWZpY2F0aW9uL2FwcG9pbnRtZW50LW5vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { AppointmentNotificationDatasource } from '../../../core/datasource/customer/appointment-notification-datasource';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { IAppointmentNotification } from '../../../core/interfaces/customer/appointment-notification.interface';\r\nimport { IFilterGridData } from '../../../core/interfaces/common/filter-grid-data';\r\nimport { I18nComponent } from '../../../../i18n/containers/i18n.component';\r\nimport { FilterGridFormService } from '../filter-grid/filter-grid-form.service';\r\nimport { Store } from '@ngrx/store';\r\nimport * as fromI18n from '../../../../i18n/reducers';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatDialog } from '@angular/material';\r\nimport { AppointmentNotificationService } from '../../../core/services/customer/appointment-notification.service';\r\nimport { HtmlInfoComponent } from '../dialogs/html-info/html-info.component';\r\nimport { ISelection } from '../../../core/interfaces/common/selection';\r\nimport { GetMonthsInterval } from '../../../core/functions/date-function';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-appointment-notification',\r\n templateUrl: './appointment-notification.component.html',\r\n styleUrls: ['./appointment-notification.component.scss'],\r\n providers: [AppointmentNotificationService, FilterGridFormService ]\r\n})\r\nexport class AppointmentNotificationComponent extends I18nComponent {\r\n public dataSource: AppointmentNotificationDatasource | null;\r\n\r\n public listSbj: BehaviorSubject = new BehaviorSubject([]);\r\n\r\n public displayedColumns: string[] = [\"Receiver\", \"Sender\", \"Timestamp\", \"Price\", \"status\", \"actions\"];\r\n\r\n public loading: boolean = false;\r\n\r\n public page: number = 1;\r\n public pageSize: number = 20;\r\n public pageSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n public filterArray: IFilterGridData[] = [];\r\n public sortField: string = \"Timestamp\";\r\n public sortDirection: string = \"desc\";\r\n public totalItems: number;\r\n \r\n public selectedStartDate: string;\r\n public selectedEndDate: string;\r\n public filterDateLoaded: boolean = false;\r\n public channelsLoaded: boolean = false;\r\n public channels: ISelection[]=[];\r\n public selectedChannel: string;\r\n public dialogTitle: string;\r\n public selectedMonthsInterval: ISelection[] = [];\r\n public channel = new FormControl;\r\n\r\n constructor(readonly store: Store,\r\n readonly translate: TranslateService,\r\n private titleClient: Title,\r\n private requestService: AppointmentNotificationService,\r\n private dialog: MatDialog,\r\n private filterGridFormService: FilterGridFormService) {\r\n\r\n super(store, translate);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.translate.get(\"list.title\").subscribe(x => this.titleClient.setTitle(x));\r\n this.translate.get(\"list.dialogTitle\").subscribe(x => this.dialogTitle=x);\r\n\r\n const date = new Date();\r\n\r\n this.selectedStartDate = `${date.getFullYear()}-${date.getMonth() + 1}-01`;\r\n this.selectedEndDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\r\n this.selectedMonthsInterval = GetMonthsInterval(this.selectedStartDate, this.selectedEndDate);\r\n this.filterDateLoaded = true;\r\n\r\n this.channels.push({\r\n text: \"SMS\",\r\n value: 'Sms'\r\n });\r\n this.channels.push({\r\n text: \"Email\",\r\n value: 'Email'\r\n });\r\n this.channelsLoaded = true;\r\n\r\n this.dataSource = new AppointmentNotificationDatasource(this.listSbj);\r\n\r\n this.pageSubject.subscribe(p => {\r\n this.page = p;\r\n if (p == null) {\r\n return;\r\n }\r\n\r\n this.load();\r\n });\r\n\r\n this.channel.valueChanges.subscribe(value => {\r\n this.selectedChannel = value;\r\n this.totalItems = 0;\r\n this.listSbj.next([]);\r\n });\r\n }\r\n\r\n onEditedChannel(channel) {\r\n this.selectedChannel = channel.value;\r\n }\r\n\r\n search() {\r\n this.pageSubject.next(1);\r\n }\r\n\r\n load() {\r\n\r\n if (this.selectedChannel == null || this.selectedChannel == \"\") {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.page = this.page != null ? this.page : 1;\r\n\r\n \r\n const filterArray: IFilterGridData[] = [];\r\n filterArray.push(...this.filterArray);\r\n\r\n const startDateFilter = this.filterGridFormService.createFilter(\r\n 'Timestamp', 'CreatedTimestamp', 'Greater Than Or Equals', this.selectedStartDate);\r\n filterArray.push(startDateFilter);\r\n\r\n const endDateFilter = this.filterGridFormService.createFilter(\r\n 'Timestamp', 'CreatedTimestamp', 'Less Than Or Equals', this.selectedEndDate);\r\n filterArray.push(endDateFilter);\r\n\r\n let request = this.filterGridFormService.createRequest(true, null, filterArray, null, false,\r\n this.page, this.pageSize, this.sortDirection, this.sortField, this.selectedMonthsInterval);\r\n\r\n this.requestService.get(request, this.selectedChannel).subscribe({\r\n next: data => {\r\n if (data == null) {\r\n return\r\n }\r\n\r\n data.data.map(item => {\r\n this.translate.get(`list.${item.status}`).subscribe(x => item.statusLabel = x);\r\n\r\n item.errorMessageLabel = this.getErrorMessage(item.errorMessage);\r\n });\r\n\r\n this.listSbj.next(data.data);\r\n this.loading = false;\r\n\r\n if (request.page == 1) {\r\n this.totalItems = data.total;\r\n }\r\n\r\n }\r\n })\r\n }\r\n\r\n handlePage(e) {\r\n this.pageSubject.next(e.pageIndex + 1);\r\n }\r\n\r\n onEditedStartDateFilter(date: Date) {\r\n this.selectedStartDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\r\n this.selectedMonthsInterval = GetMonthsInterval(this.selectedStartDate, this.selectedEndDate);\r\n }\r\n\r\n onEditedEndDateFilter(date: Date) {\r\n this.selectedEndDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\r\n this.selectedMonthsInterval = GetMonthsInterval(this.selectedStartDate, this.selectedEndDate);\r\n }\r\n\r\n copyRequestId(element: IAppointmentNotification) {\r\n let selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = element.requestId;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n }\r\n\r\n viewContent(element:IAppointmentNotification) {\r\n const dialogRef = this.dialog.open(HtmlInfoComponent, {\r\n minWidth: \"25rem\",\r\n maxWidth: \"35rem\",\r\n minHeight: \"10rem\",\r\n data: {\r\n title: this.dialogTitle,\r\n content: element.content\r\n }\r\n });\r\n }\r\n\r\n addFilterComponent(event: IFilterGridData) {\r\n if (event.value == null) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName != event.propertyName);\r\n }\r\n else {\r\n const existingFilter = this.filterArray.filter(x => x.propertyName == event.propertyName);\r\n\r\n if (existingFilter.length > 0) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName != event.propertyName);\r\n }\r\n\r\n this.filterArray.push(event);\r\n\r\n }\r\n\r\n this.page = 1;\r\n this.load();\r\n }\r\n\r\n getErrorMessage(errorMessage: string): string {\r\n\r\n if (errorMessage === null || errorMessage == \"\") {\r\n return \"\";\r\n }\r\n\r\n let messageLabel: string = \"\";\r\n\r\n switch (errorMessage) {\r\n case \"CustomerNoAvailableCredits\": {\r\n this.translate.get(`list.${errorMessage}`).subscribe(x => messageLabel = x);\r\n break;\r\n }\r\n case \"CustomerInsufficientCredits\":{\r\n this.translate.get(`list.${errorMessage}`).subscribe(x => messageLabel = x);\r\n break;\r\n }\r\n default: {\r\n this.translate.get(`list.contactAdmin`).subscribe(x => messageLabel = x);\r\n break;\r\n }\r\n \r\n }\r\n return messageLabel;\r\n }\r\n\r\n sortData(event) {\r\n this.sortDirection = event.direction;\r\n this.sortField = event.active;\r\n\r\n this.page = 1;\r\n\r\n //call again the load method;\r\n this.load();\r\n }\r\n\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\nh4 {\\n margin-bottom: 0;\\n padding: 0;\\n font-size: 1.25rem;\\n color: #EE7D5A;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9hcHBvaW50bWVudC9hcHBvaW50bWVudC1kZXRhaWxzL0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcc2Nzc1xcbWFuYWdlbWVudFxcX2NvbG9yLXNjaGVtZS5zY3NzIiwic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL2FwcG9pbnRtZW50L2FwcG9pbnRtZW50LWRldGFpbHMvYXBwb2ludG1lbnQtZGV0YWlscy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9hcHBvaW50bWVudC9hcHBvaW50bWVudC1kZXRhaWxzL0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxzaGFyZWRcXGNvbXBvbmVudHNcXGFwcG9pbnRtZW50XFxhcHBvaW50bWVudC1kZXRhaWxzXFxhcHBvaW50bWVudC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTtFQUNFLGNBakJPO0FDQ1Q7O0FEbUJBO0VBQ0UseUJBckJPO0FDS1Q7O0FEbUJBO0VBQ0UsY0F4Qks7QUNRUDs7QURtQkE7RUFDRSx5QkE1Qks7QUNZUDs7QURtQkE7RUFDRSxjQS9CVztBQ2ViOztBRG1CQTtFQUNFLHlCQW5DVztBQ21CYjs7QURtQkE7RUFDRSxjQXJDVTtBQ3FCWjs7QURtQkE7RUFDRSx5QkF6Q1U7QUN5Qlo7O0FEbUJBO0VBQ0UsY0FsRE07QUNrQ1I7O0FEbUJBO0VBQ0UseUJBdERNO0FDc0NSOztBRG1CQTtFQUNFLGNBcERjO0FDb0NoQjs7QURtQkE7RUFDRSx5QkF4RGM7QUN3Q2hCOztBRG1CQTtFQUNFLGNBM0RhO0FDMkNmOztBRG1CQTtFQUNFLHlCQS9EYTtBQytDZjs7QURtQkE7RUFDRSxjQXJFVTtBQ3FEWjs7QURtQkE7RUFDRSx5QkFuRVE7QUNtRFY7O0FEbUJBO0VBQ0UseUJBdEVhO0FDc0RmOztBRG1CQTtFQUNFLGNBMUVhO0FDMERmOztBRG1CQTtFQUNFLHlCQWhGYTtBQ2dFZjs7QURtQkE7RUFDRSxjQXBGYTtBQ29FZjs7QURtQkE7RUFDRSxjQXpGTTtBQ3lFUjs7QURtQkE7RUFDRSxjQXhGSztBQ3dFUDs7QURtQkE7RUFDRSx5QkE1Rks7QUM0RVA7O0FEbUJBO0VBQ0UsY0EvRlU7QUMrRVo7O0FEbUJBO0VBQ0UseUJBbkdVO0FDbUZaOztBQ2hHQTtFQUNFLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsY0ZJYTtBQytGZiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvYXBwb2ludG1lbnQvYXBwb2ludG1lbnQtZGV0YWlscy9hcHBvaW50bWVudC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJHdoaXRlOiAjRkZGRkZGO1xyXG4kZGFya2VyOiAjMUMyNDI4O1xyXG4kZGFyazogIzM3NDc0RjtcclxuJGdyYXktbGlnaHQ6ICNFQkYxRjQ7XHJcbiRncmF5LW1lZGl1bTogI2UwZTBlMDtcclxuJGdyYXktZGFyazogIzhCOUVBNztcclxuJHByaW1hcnktY29sb3I6ICNGRjQwODE7XHJcbiRhY2NlbnQtY29sb3I6ICMyMTk2RjM7XHJcbiRhY2NlbnQtY29sb3ItMjogIzFBQzY3MztcclxuJGVycm9yOiAjRkY0MTAwO1xyXG4kYnVybnQtc2llbm5hOiAjRUU3RDVBO1xyXG4kc3BpbmRsZTogI0M4RTVFRjtcclxuJGVhc3Rlcm4tYmx1ZTogIzE4OTdDMztcclxuJHdpbGQtc3RyYXdiZXJyeTogI0ZGNDA4MTtcclxuJHdhcm46ICNmNDQzMzY7XHJcbiRkYXJrLWJsdWU6ICMyYTYzNzc7XHJcblxyXG4udGV4dC1kYXJrZXIge1xyXG4gIGNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4uYmtnLWRhcmtlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlcjtcclxufVxyXG5cclxuLnRleHQtZGFyayB7XHJcbiAgY29sb3I6ICRkYXJrO1xyXG59XHJcblxyXG4uYmtnLWRhcmsge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrO1xyXG59XHJcblxyXG4udGV4dC1saWdodGVyIHtcclxuICBjb2xvcjogJGdyYXktbGlnaHQ7XHJcbn1cclxuXHJcbi5ia2ctbGlnaHRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHQ7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0IHtcclxuICBjb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLmJrZy1saWdodCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLnRleHQtd2hpdGUge1xyXG4gIGNvbG9yOiAkd2hpdGU7XHJcbn1cclxuXHJcbi5ia2ctd2hpdGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLnRleHQtcHJpbWFyeSB7XHJcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG59XHJcblxyXG4uYmtnLXByaW1hcnkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1hY2NlbnQge1xyXG4gIGNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4uYmtnLWFjY2VudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudC1jb2xvcjtcclxufVxyXG5cclxuLnRleHQtZ3JheS1kYXJrIHtcclxuICBjb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLmJrZy1zcGluZGxlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BpbmRsZTtcclxufVxyXG5cclxuLmJrZy1lYXN0ZXJuLWJsdWUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRlYXN0ZXJuLWJsdWU7XHJcbn1cclxuXHJcbi50ZXh0LWVhc3Rlcm4tYmx1ZSB7XHJcbiAgY29sb3I6ICRlYXN0ZXJuLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctYnVybnQtc2llbm5hIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG59XHJcblxyXG4udGV4dC1idXJudC1zaWVubmEge1xyXG4gIGNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG59XHJcblxyXG4udGV4dC1lcnJvciB7XHJcbiAgY29sb3I6ICRlcnJvcjtcclxufVxyXG5cclxuLnRleHQtd2FybiB7XHJcbiAgY29sb3I6ICR3YXJuO1xyXG59XHJcblxyXG4uYmtnLXdhcm4ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3YXJuO1xyXG59XHJcblxyXG4udGV4dC1kYXJrLWJsdWUge1xyXG4gIGNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcblxyXG4uYmtnLWRhcmstYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmx1ZTtcclxufVxyXG4iLCIudGV4dC1kYXJrZXIge1xuICBjb2xvcjogIzFDMjQyODtcbn1cblxuLmJrZy1kYXJrZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUMyNDI4O1xufVxuXG4udGV4dC1kYXJrIHtcbiAgY29sb3I6ICMzNzQ3NEY7XG59XG5cbi5ia2ctZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzQ3NEY7XG59XG5cbi50ZXh0LWxpZ2h0ZXIge1xuICBjb2xvcjogI0VCRjFGNDtcbn1cblxuLmJrZy1saWdodGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VCRjFGNDtcbn1cblxuLnRleHQtbGlnaHQge1xuICBjb2xvcjogIzhCOUVBNztcbn1cblxuLmJrZy1saWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4QjlFQTc7XG59XG5cbi50ZXh0LXdoaXRlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG5cbi5ia2ctd2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuXG4udGV4dC1wcmltYXJ5IHtcbiAgY29sb3I6ICNGRjQwODE7XG59XG5cbi5ia2ctcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjQwODE7XG59XG5cbi50ZXh0LWFjY2VudCB7XG4gIGNvbG9yOiAjMjE5NkYzO1xufVxuXG4uYmtnLWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XG59XG5cbi50ZXh0LWdyYXktZGFyayB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLXNwaW5kbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzhFNUVGO1xufVxuXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODk3QzM7XG59XG5cbi50ZXh0LWVhc3Rlcm4tYmx1ZSB7XG4gIGNvbG9yOiAjMTg5N0MzO1xufVxuXG4uYmtnLWJ1cm50LXNpZW5uYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWJ1cm50LXNpZW5uYSB7XG4gIGNvbG9yOiAjRUU3RDVBO1xufVxuXG4udGV4dC1lcnJvciB7XG4gIGNvbG9yOiAjRkY0MTAwO1xufVxuXG4udGV4dC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5ia2ctd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi50ZXh0LWRhcmstYmx1ZSB7XG4gIGNvbG9yOiAjMmE2Mzc3O1xufVxuXG4uYmtnLWRhcmstYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYTYzNzc7XG59XG5cbmg0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBjb2xvcjogI0VFN0Q1QTtcbn0iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9zY3NzL21hbmFnZW1lbnQvX2NvbG9yLXNjaGVtZS5zY3NzJztcclxuXHJcbmg0IHtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xyXG4gIGNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG59XHJcbiJdfQ== */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { IAppointment } from '../../../../core/interfaces/customer/appointment';\r\n\n@Component({\n selector: 'app-appointment-details',\n templateUrl: './appointment-details.component.html',\n styleUrls: ['./appointment-details.component.scss']\n})\nexport class AppointmentDetailsComponent implements OnInit {\n public appointment: IAppointment = null;\n\n constructor(public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any | null) {\n\n this.appointment = data;\n }\n\n ngOnInit() {\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvYXBwb2ludG1lbnQvYXBwb2ludG1lbnQtZWRpdC9hcHBvaW50bWVudC1lZGl0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport * as fromI18n from '../../../../../i18n/reducers';\r\nimport { I18nComponent } from '../../../../../i18n/containers/i18n.component';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-appointment-edit',\r\n templateUrl: './appointment-edit.component.html',\r\n styleUrls: ['./appointment-edit.component.scss']\r\n})\r\nexport class AppointmentEditComponent extends I18nComponent {\r\n public id: any = null;\r\n\r\n constructor(\r\n readonly store: Store,\r\n readonly translate: TranslateService,\r\n private route: ActivatedRoute\r\n ) {\r\n super(store, translate);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.id = this.route.snapshot.paramMap.get(\"id\");\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { IAppointment } from '../../../core/interfaces/customer/appointment';\r\nimport { ISettings } from '../../../core/interfaces/customer/settings';\r\n\r\n@Injectable()\r\nexport class AppointmentFormService {\r\n public form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.fb.group({\r\n date: [null],\r\n startHour: [null, Validators.required],\r\n endHour: [null, Validators.required],\r\n notes: null,\r\n createdOnUtc: null,\r\n mainAppointmentId: null,\r\n clientAppointmentId: null,\r\n clientStartHour: null,\r\n clientEndHour: null,\r\n office: [null, Validators.required],\r\n service: [null, Validators.required],\r\n serviceDuration: [null, Validators.required],\r\n operator: [null, Validators.required],\r\n status: [null, Validators.required],\r\n client: [null, Validators.required],\r\n eventId: null,\r\n uniqueCode: null\r\n });\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n\r\n createAppointmentDto(id, editedAppoitment: IAppointment = null, settings: ISettings = null): IAppointment {\r\n const data = this.form.value;\r\n\r\n if (data.createdOnUtc==null) {\r\n data.createdOnUtc = new Date();\r\n }\r\n\r\n const appointment: IAppointment = {\r\n id: id,\r\n customerCode: null,\r\n date: data.date,\r\n startHour: data.startHour,\r\n endHour: data.endHour,\r\n notes: data.notes,\r\n createdOnUtc: id !== null ? data.createdOnUtc : new Date(),\r\n mainAppointmentId: data.mainAppointmentId,\r\n clientAppointmentId: data.clientAppointmentId,\r\n clientStartHour: data.clientStartHour,\r\n clientEndHour: data.clientEndHour,\r\n office: data.office,\r\n service: data.service,\r\n operator: data.operator,\r\n status: data.status,\r\n client: data.client,\r\n notificationSettings: editedAppoitment != null ? editedAppoitment.notificationSettings : null,\r\n settings: settings,\r\n eventId: data.eventId,\r\n uniqueCode: data.uniqueCode\r\n };\r\n\r\n return appointment;\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvYXBwb2ludG1lbnQvYXBwb2ludG1lbnQtbGlzdC9hcHBvaW50bWVudC1saXN0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component } from '@angular/core';\r\nimport { MatDialog, MatSnackBar } from '@angular/material';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, combineLatest } from 'rxjs';\r\nimport { AuthorizeService } from '../../../../../../api-authorization/authorize.service';\r\nimport { I18nComponent } from '../../../../../i18n/containers/i18n.component';\r\nimport * as fromI18n from '../../../../../i18n/reducers';\r\nimport { ApiBaseUrl } from '../../../../core/constants/shared.constants';\r\nimport { AppointmentDataSource } from '../../../../core/datasource/customer/appointment.datasource';\r\nimport { GetDayWithoutTime, GetMonthsInterval } from '../../../../core/functions/date-function';\r\nimport { IFilterGridData } from '../../../../core/interfaces/common/filter-grid-data';\r\nimport { ISelection } from '../../../../core/interfaces/common/selection';\r\nimport { IAppointment } from '../../../../core/interfaces/customer/appointment';\r\nimport { IOffice } from '../../../../core/interfaces/customer/office';\r\nimport { IOfficeOperatorService } from '../../../../core/interfaces/customer/office-operator-service';\r\nimport { IOperator } from '../../../../core/interfaces/customer/operator';\r\nimport { ISettings } from '../../../../core/interfaces/customer/settings';\r\nimport { AppointmentService } from '../../../../core/services/customer/appointment.service';\r\nimport { ClientService } from '../../../../core/services/customer/client.service';\r\nimport { OfficeService } from '../../../../core/services/customer/office.service';\r\nimport { OperatorService } from '../../../../core/services/customer/operator.service';\r\nimport { ServiceService } from '../../../../core/services/customer/service.service';\r\nimport { SettingsService } from '../../../../core/services/customer/settings.service';\r\nimport { StatusService } from '../../../../core/services/customer/status.service';\r\nimport { ConfirmationComponent } from '../../dialogs/confirmation/confirmation.component';\r\nimport { FilterGridFormService } from '../../filter-grid/filter-grid-form.service';\r\nimport { AppointmentDetailsComponent } from '../appointment-details/appointment-details.component';\r\nimport { AppointmentFormService } from '../appointment-form.service';\r\nimport tr from 'date-fns/esm/locale/tr/index.js';\r\n\r\n@Component({\r\n selector: 'app-appointment-list',\r\n templateUrl: './appointment-list.component.html',\r\n styleUrls: ['./appointment-list.component.scss'],\r\n providers: [\r\n AppointmentService,\r\n ServiceService,\r\n ClientService,\r\n StatusService,\r\n AppointmentFormService,\r\n FilterGridFormService,\r\n OfficeService,\r\n OperatorService,\r\n SettingsService\r\n ]\r\n})\r\nexport class AppointmentListComponent extends I18nComponent {\r\n\r\n public dataSource: AppointmentDataSource | null;\r\n\r\n public appointments: IAppointment[] = [];\r\n\r\n public appointmentSbj: BehaviorSubject = new BehaviorSubject([]);\r\n\r\n public displayedColumns: string[] = [\"CreatedOnUtc\", \"UniqueCode\", \"Date\", \"ServiceName\", 'ServiceAppointmentDuration', \"StartHour\", /*\"ClientFirstName\",*/ \"ClientLastName\", \"StatusName\", \"Actions\"];\r\n\r\n public loading: boolean = false;\r\n\r\n public page: number = 1;\r\n public pageSize: number = 20;\r\n public pageSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n public filterArray: IFilterGridData[] = [];\r\n public sortField: string = null;\r\n public sortDirection: string = null;\r\n public totalItems: number;\r\n\r\n public monthsInterval: ISelection[] = [];\r\n public selectedMonthsInterval: ISelection[] = [];\r\n public monthsIntervalLoaded: boolean = false;\r\n\r\n public selectedStartDate: string;\r\n public selectedEndDate: string;\r\n public filterDateLoaded: boolean = false;\r\n public userRole: string = \"customer\";\r\n public today = new Date();\r\n public allOfficeOperatorService: IOfficeOperatorService[] = [];\r\n\r\n public allOffices: IOffice[] = [];\r\n public offices: ISelection[] = [];\r\n public selectedOffice: ISelection = null;\r\n\r\n public allOperators: IOperator[] = [];\r\n public operators: ISelection[] = [];\r\n public selectedOperator: ISelection = null;\r\n private all: ISelection;\r\n private token: string = null;\r\n\r\n public settings: ISettings;\r\n\r\n public filtersLoaded: boolean = false;\r\n\r\n constructor(\r\n readonly store: Store,\r\n readonly translate: TranslateService,\r\n private appointmentService: AppointmentService,\r\n private officeService: OfficeService,\r\n private operatorService: OperatorService,\r\n private serviceService: ServiceService,\r\n private clientService: ClientService,\r\n private statusService: StatusService,\r\n private appointmentFormService: AppointmentFormService,\r\n private router: Router, private authorizeService: AuthorizeService,\r\n private route: ActivatedRoute,\r\n private titleAppointment: Title,\r\n private dialog: MatDialog,\r\n private filterGridFormService: FilterGridFormService,\r\n private matSnackBack: MatSnackBar,\r\n private settingsService: SettingsService\r\n ) {\r\n super(store, translate);\r\n\r\n const state = sessionStorage.getItem(\"filters\");\r\n\r\n if (state != null) {\r\n var filters = JSON.parse(state);\r\n\r\n if (filters != null) {\r\n this.selectedStartDate = filters.startDate;\r\n this.selectedEndDate = filters.endDate;\r\n this.selectedOffice = filters.office;\r\n this.selectedOperator = filters.operator;\r\n this.operators = filters.operators;\r\n }\r\n }\r\n\r\n this.router.events.subscribe({\r\n next: event => {\r\n if (event instanceof NavigationEnd) {\r\n if (!this.router.url.startsWith(`/management/${this.userRole}/appointments`)) {\r\n sessionStorage.setItem(\"filters\", null);\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.authorizeService.getAccessToken().subscribe(x => this.token = x);\r\n\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.translate.get(\"list.title\").subscribe(x => this.titleAppointment.setTitle(x));\r\n this.translate.get(\"edit.all\").subscribe(x => {\r\n this.all = {\r\n value: null,\r\n text: x\r\n }\r\n\r\n this.offices.unshift(this.all);\r\n this.operators.unshift(this.all);\r\n });\r\n\r\n this.authorizeService.getUserRole().subscribe({\r\n next: data => {\r\n this.userRole = data.toLowerCase();\r\n\r\n const requestWithAvailable = this.filterGridFormService.createRequest(false, null, [], null, true);\r\n\r\n if (this.userRole == \"customer\") {\r\n combineLatest(\r\n this.officeService.getOfficesWithRequest(requestWithAvailable),\r\n this.operatorService.getOperatorsWithRequest(requestWithAvailable),\r\n this.officeService.getAllOfficeOperatorService(),\r\n (offices, operators, allOfficeOperatorService) =>\r\n ({ offices, operators, allOfficeOperatorService })\r\n ).subscribe(pair => {\r\n this.allOffices = pair.offices.data;\r\n this.offices.push(...pair.offices.data.map(x => ({ value: x.id, text: x.name })));\r\n\r\n //this.offices = pair.offices.data.map(x => ({ value: x.id, text: x.name }));\r\n //this.offices.unshift(this.all);\r\n\r\n this.allOperators = pair.operators.data;\r\n if (this.operators.length == 0) {\r\n this.operators.push(...pair.operators.data.map(x => ({ value: x.id, text: `${x.firstName} ${x.lastName}` })));\r\n\r\n //this.operators = pair.operators.data.map(x => ({ value: x.id, text: `${x.firstName} ${x.lastName}` }));\r\n //this.operators.unshift(this.all);\r\n }\r\n\r\n this.allOfficeOperatorService = pair.allOfficeOperatorService;\r\n\r\n this.filtersLoaded = true;\r\n });\r\n }\r\n else {\r\n combineLatest(\r\n this.officeService.getOfficesWithRequest(requestWithAvailable),\r\n this.officeService.getAllOfficeOperatorService(),\r\n (offices, allOfficeOperatorService) =>\r\n ({ offices, allOfficeOperatorService })\r\n ).subscribe(pair => {\r\n this.allOffices = pair.offices.data;\r\n this.offices.push(...pair.offices.data.map(x => ({ value: x.id, text: x.name })));\r\n //this.offices = pair.offices.data.map(x => ({ value: x.id, text: x.name }));\r\n //this.offices.unshift(this.all);\r\n\r\n this.allOfficeOperatorService = pair.allOfficeOperatorService;\r\n\r\n this.filtersLoaded = true;\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.selectedEndDate == null || this.selectedStartDate == null) {\r\n const date = new Date();\r\n\r\n this.selectedStartDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\r\n\r\n var year = date.getFullYear();\r\n var month = date.getMonth();\r\n\r\n this.selectedEndDate = `${year}-${month + 1}-${date.getDate()}`;\r\n }\r\n\r\n this.selectedMonthsInterval = GetMonthsInterval(this.selectedStartDate, this.selectedEndDate);\r\n\r\n this.filterDateLoaded = true;\r\n\r\n this.dataSource = new AppointmentDataSource(this.appointmentSbj);\r\n\r\n this.pageSubject.subscribe(p => {\r\n this.page = p;\r\n if (p === null) {\r\n return;\r\n }\r\n\r\n this.loadAppointments();\r\n //this.checkMonthsInterval();\r\n });\r\n\r\n this.loadAppointments();\r\n //this.checkMonthsInterval();\r\n }\r\n\r\n checkMonthsInterval() {\r\n this.appointmentService.getMonthsInterval().subscribe(x => {\r\n if (x === null || x === '') {\r\n return;\r\n }\r\n\r\n this.selectedMonthsInterval = JSON.parse(x);\r\n\r\n this.loadAppointments();\r\n });\r\n }\r\n\r\n verifyDateTime(): boolean {\r\n var diffTime = Math.abs(Date.parse(this.selectedEndDate) - Date.parse(this.selectedStartDate));\r\n\r\n if (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) > 30) {\r\n this.displayMessage('edit.errorOnExceedingDatePeriod');\r\n return true;\r\n }\r\n\r\n if (Date.parse(this.selectedStartDate) > Date.parse(this.selectedEndDate)) {\r\n this.displayMessage('edit.errorStartGreaterThanEnd');\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n loadAppointments() {\r\n\r\n const invalid = this.verifyDateTime();\r\n if (invalid == true) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.page = this.page !== null ? this.page : 1;\r\n\r\n const filterArray: IFilterGridData[] = [];\r\n filterArray.push(...this.filterArray);\r\n\r\n const startDateFilter = this.filterGridFormService.createFilter(\r\n 'Timestamp', 'DateTimestamp', 'Greater Than Or Equals', this.selectedStartDate);\r\n filterArray.push(startDateFilter);\r\n\r\n const endDateFilter = this.filterGridFormService.createFilter(\r\n 'Timestamp', 'DateTimestamp', 'Less Than Or Equals', this.selectedEndDate);\r\n filterArray.push(endDateFilter);\r\n\r\n if (this.selectedOffice != null && this.selectedOffice.value != null) {\r\n const officeFilter = this.filterGridFormService.createFilter(\r\n 'Guid', 'OfficeId', 'Equals', this.selectedOffice.value);\r\n filterArray.push(officeFilter);\r\n }\r\n\r\n if (this.selectedOperator != null && this.selectedOperator.value != null) {\r\n const operatorFilter = this.filterGridFormService.createFilter(\r\n 'Guid', 'OperatorId', 'Equals', this.selectedOperator.value);\r\n filterArray.push(operatorFilter);\r\n }\r\n\r\n const request = this.filterGridFormService.createRequest(true, null, filterArray, null, false,\r\n this.page, this.pageSize, this.sortDirection, this.sortField, this.selectedMonthsInterval, true);\r\n\r\n this.appointmentService.getAppointmentsWithRequest(request).subscribe({\r\n next: data => {\r\n data.data.forEach(x => {\r\n x.startHour = x.startHour.toString().slice(0, 5);\r\n x.endHour = x.endHour.toString().slice(0, 5);\r\n });\r\n\r\n this.appointmentSbj.next(data.data);\r\n this.totalItems = data.total;\r\n this.loading = false;\r\n\r\n this.appointmentService.setEnableMonthsInterval(0).subscribe(x => { });\r\n }\r\n });\r\n }\r\n\r\n export() {\r\n\r\n const invalid = this.verifyDateTime();\r\n if (invalid == true) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n\r\n let office = this.selectedOffice != null && this.selectedOffice.value != null ? this.selectedOffice.value : \"\";\r\n let operator = this.selectedOperator != null && this.selectedOperator.value != null ? this.selectedOperator.value : \"\";\r\n\r\n this.currentLanguage$.subscribe(x => {\r\n if (!this.loading) {\r\n return;\r\n }\r\n\r\n const url = `${ApiBaseUrl}appointment/export?userToken=${this.token}\r\n &startDate=${this.selectedStartDate}&endDate=${this.selectedEndDate}\r\n &office=${office}&operatorName=${operator}&language=${x}`;\r\n\r\n window.location.href = url;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n handlePage(e) {\r\n this.pageSubject.next(e.pageIndex + 1);\r\n }\r\n\r\n addFilterComponent(event: IFilterGridData) {\r\n if (event.value === null) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName !== event.propertyName);\r\n }\r\n else {\r\n const existingFilter = this.filterArray.filter(x => x.propertyName === event.propertyName);\r\n\r\n if (existingFilter.length > 0) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName !== event.propertyName);\r\n }\r\n\r\n this.filterArray.push(event);\r\n }\r\n\r\n this.page = 1;\r\n this.loadAppointments();\r\n }\r\n\r\n sortData(event) {\r\n this.sortDirection = event.direction;\r\n this.sortField = event.active;\r\n\r\n this.page = 1;\r\n\r\n //call again the load method;\r\n this.loadAppointments();\r\n }\r\n\r\n onEditedMonthsInterval($event) {\r\n this.selectedMonthsInterval = $event;\r\n\r\n this.appointmentService.setMonthsInterval(JSON.stringify(this.selectedMonthsInterval)).subscribe(x => { });\r\n }\r\n\r\n onEditedStartDateFilter(date: Date) {\r\n var year = date.getFullYear();\r\n var month = date.getMonth();\r\n\r\n //client request 22.08.2023 to allow to select only one day\r\n this.selectedStartDate = `${year}-${month + 1}-${date.getDate()}`;\r\n\r\n this.selectedMonthsInterval = GetMonthsInterval(this.selectedStartDate, this.selectedEndDate);\r\n }\r\n\r\n onEditedEndDateFilter(date: Date) {\r\n var year = date.getFullYear();\r\n var month = date.getMonth();\r\n\r\n //client request 22.08.2023 to allow to select only one day\r\n this.selectedEndDate = `${year}-${month + 1}-${date.getDate()}`;\r\n\r\n this.selectedMonthsInterval = GetMonthsInterval(this.selectedStartDate, this.selectedEndDate);\r\n }\r\n\r\n onEditedOffice(selection: ISelection) {\r\n\r\n this.selectedOffice = this.offices.find(x => x.value == selection.value);\r\n\r\n if (selection.value == null) {\r\n //is all\r\n return;\r\n }\r\n\r\n const officeOperatorServices = this.allOfficeOperatorService.filter(x => x.officeId == selection.value);\r\n\r\n this.loadOperators(officeOperatorServices);\r\n }\r\n\r\n\r\n onEditedOperator(selection: ISelection) {\r\n\r\n this.selectedOperator = this.operators.find(x => x.value == selection.value);\r\n\r\n }\r\n\r\n loadOperators(officeOperatorServices: IOfficeOperatorService[]) {\r\n this.operators = [];\r\n this.selectedOperator = null;\r\n\r\n if (officeOperatorServices.length > 0) {\r\n const operatorIds = Array.prototype.map.call(officeOperatorServices, x => x.operatorId).toString();\r\n this.operators = this.allOperators.filter(x => operatorIds.includes(x.id)).map(x => ({ value: x.id, text: `${x.firstName} ${x.lastName}` }));\r\n this.operators.unshift(this.all);\r\n }\r\n }\r\n\r\n edit(id: any) {\r\n var filters = {\r\n startDate: this.selectedStartDate, endDate: this.selectedEndDate, office: this.selectedOffice, operator: this.selectedOperator,\r\n operators: this.operators\r\n };\r\n sessionStorage.setItem(\"filters\", JSON.stringify(filters));\r\n\r\n this.router.navigate([`./edit/${id}`], { relativeTo: this.route });\r\n }\r\n\r\n openDeleteDialog(element: IAppointment) {\r\n this.translate.get(\"confirmation.deleteQuestion\").subscribe(x => {\r\n const dialogRef = this.dialog.open(ConfirmationComponent, {\r\n minWidth: \"25rem\",\r\n minHeight: \"7rem\",\r\n data: `${x} ${element.client.firstName} ${element.client.lastName} ${element.startHour}?`\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(response => {\r\n if (!response) {\r\n return;\r\n }\r\n\r\n this.delete(element);\r\n });\r\n });\r\n }\r\n\r\n delete(element: IAppointment) {\r\n this.appointmentService.delete(element).subscribe(x => {\r\n if (x) {\r\n this.loadAppointments();\r\n }\r\n }, error => {\r\n console.log('delete error = ', error);\r\n });\r\n }\r\n\r\n create() {\r\n var filters = { startDate: this.selectedStartDate, endDate: this.selectedEndDate, office: this.selectedOffice, operator: this.selectedOperator };\r\n sessionStorage.setItem(\"filters\", JSON.stringify(filters));\r\n\r\n this.router.navigate([`/management/${this.userRole}/appointments/create`]);\r\n }\r\n\r\n openDetailsDialog(appointment: IAppointment) {\r\n this.dialog.open(AppointmentDetailsComponent, {\r\n minWidth: \"25rem\",\r\n minHeight: \"7rem\",\r\n data: appointment\r\n });\r\n }\r\n\r\n openCancelDialog(appointment: IAppointment) {\r\n const dateMessage = `${GetDayWithoutTime(new Date(appointment.date))}, ${appointment.startHour}-${appointment.endHour}?`;\r\n\r\n this.translate.get(\"confirmation.cancelAppointment\").subscribe(x => {\r\n const dialogRef = this.dialog.open(ConfirmationComponent, {\r\n minWidth: \"25rem\",\r\n minHeight: \"7rem\",\r\n data: `${x} ${dateMessage}`\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(response => {\r\n if (!response) {\r\n return;\r\n }\r\n\r\n this.checkSettings(appointment);\r\n });\r\n });\r\n }\r\n\r\n checkSettings(appointment: IAppointment) {\r\n if (this.settings != null) {\r\n appointment.settings = this.settings;\r\n\r\n this.cancelAppointment(appointment);\r\n\r\n return;\r\n }\r\n\r\n this.settingsService.getSettings().subscribe({\r\n next: data => {\r\n this.settings = data;\r\n\r\n appointment.settings = this.settings;\r\n\r\n this.cancelAppointment(appointment);\r\n }\r\n });\r\n }\r\n\r\n cancelAppointment(appointment: IAppointment) {\r\n this.appointmentService.cancel(appointment).subscribe(x => {\r\n if (x.entity) {\r\n this.displayMessage('edit.cancelSuccess');\r\n\r\n this.loadAppointments();\r\n }\r\n else {\r\n this.displayMessage(`errors.appointment.cancel.customer.${x.errorCode}`);\r\n }\r\n }, error => {\r\n console.log('error = ', error);\r\n });\r\n }\r\n\r\n displayMessage(code: string) {\r\n this.translate.get(code).subscribe(x => {\r\n if (x != null) {\r\n this.openSnackBar(x);\r\n }\r\n else {\r\n this.openSnackBar(\"An error occurred. Please refresh and try again.\");\r\n }\r\n });\r\n }\r\n\r\n openSnackBar(message) {\r\n this.matSnackBack.open(message, \"Ok\", {\r\n duration: 5000\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IAppointment } from '../../../core/interfaces/customer/appointment';\r\nimport { AppointmentFormService } from './appointment-form.service';\r\n\r\n@Injectable()\r\nexport class AppointmentLoaderService {\r\n\r\n constructor(private appointmentFormService: AppointmentFormService) { }\r\n\r\n loadNewAppoitnment(appointment: IAppointment) {\r\n this.appointmentFormService.form.patchValue({\r\n date: this.getNewDate(appointment.date),\r\n startHour: appointment.startHour,\r\n endHour: appointment.endHour\r\n });\r\n }\r\n\r\n loadAppointment(appointment: IAppointment) {\r\n this.appointmentFormService.form.patchValue({\r\n date: this.getNewDate(appointment.date),\r\n startHour: appointment.startHour.toString().slice(0, 5),\r\n endHour: appointment.endHour.toString().slice(0, 5),\r\n notes: appointment.notes,\r\n createdOnUtc: appointment.createdOnUtc,\r\n mainAppointmentId: appointment.mainAppointmentId,\r\n clientAppointmentId: appointment.clientAppointmentId,\r\n clientStartHour: appointment.clientStartHour,\r\n clientEndHour: appointment.clientEndHour,\r\n office: appointment.office,\r\n service: appointment.service,\r\n serviceDuration: appointment.service.appointmentDuration,\r\n operator: appointment.operator,\r\n status: appointment.status,\r\n client: appointment.client,\r\n eventId: appointment.eventId,\r\n uniqueCode: appointment.uniqueCode\r\n });\r\n }\r\n\r\n getNewDate(d: Date) {\r\n const date = new Date(d);\r\n return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\r\n }\r\n}\r\n","export default \".icofont-ui-calendar {\\n font-size: 1.25rem;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9hcHBvaW50bWVudC9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcbWFuYWdlbWVudFxcc2hhcmVkXFxjb21wb25lbnRzXFxhcHBvaW50bWVudFxcYXBwb2ludG1lbnQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvYXBwb2ludG1lbnQvYXBwb2ludG1lbnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9hcHBvaW50bWVudC9hcHBvaW50bWVudC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pY29mb250LXVpLWNhbGVuZGFyIHtcclxuICBmb250LXNpemU6IDEuMjVyZW07XHJcbn1cclxuIiwiLmljb2ZvbnQtdWktY2FsZW5kYXIge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59Il19 */\"","import { AfterViewChecked, AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatSnackBar } from '@angular/material';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { combineLatest } from 'rxjs';\r\nimport { AuthorizeService } from '../../../../../api-authorization/authorize.service';\r\nimport { CRUD } from '../../../core/constants/crud.constants';\r\nimport { GetDayWithoutTime, GetNewDateFromDateAndTime, GetNewTimeBasedOnTheService } from '../../../core/functions/date-function';\r\nimport { ISelection } from '../../../core/interfaces/common/selection';\r\nimport { IAppointment } from '../../../core/interfaces/customer/appointment';\r\nimport { IClient } from '../../../core/interfaces/customer/client';\r\nimport { IOffice } from '../../../core/interfaces/customer/office';\r\nimport { IOfficeOperatorService } from '../../../core/interfaces/customer/office-operator-service';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { IOperator } from '../../../core/interfaces/customer/operator';\r\nimport { IService, IServiceDuration } from '../../../core/interfaces/customer/service';\r\nimport { ISettings } from '../../../core/interfaces/customer/settings';\r\nimport { IStatus } from '../../../core/interfaces/customer/status';\r\nimport { AppointmentService } from '../../../core/services/customer/appointment.service';\r\nimport { ClientService } from '../../../core/services/customer/client.service';\r\nimport { OfficeService } from '../../../core/services/customer/office.service';\r\nimport { OperatorService } from '../../../core/services/customer/operator.service';\r\nimport { ServiceService } from '../../../core/services/customer/service.service';\r\nimport { SettingsService } from '../../../core/services/customer/settings.service';\r\nimport { StatusService } from '../../../core/services/customer/status.service';\r\nimport { CalendarWithTimeSlotsComponent } from '../dialogs/calendar-with-time-slots/calendar-with-time-slots.component';\r\nimport { ClientComponent } from '../dialogs/client/client.component';\r\nimport { FilterGridFormService } from '../filter-grid/filter-grid-form.service';\r\nimport { AppointmentFormService } from './appointment-form.service';\r\nimport { AppointmentLoaderService } from './appointment-loader.service';\r\n\r\n@Component({\r\n selector: 'app-appointment',\r\n templateUrl: './appointment.component.html',\r\n styleUrls: ['./appointment.component.scss'],\r\n providers: [\r\n AppointmentService,\r\n AppointmentFormService,\r\n AppointmentLoaderService,\r\n OfficeService,\r\n ServiceService,\r\n OperatorService,\r\n StatusService,\r\n ClientService,\r\n SettingsService,\r\n FilterGridFormService\r\n ]\r\n})\r\nexport class AppointmentComponent implements OnInit {\r\n @Input() id: any = null;\r\n @Input() appointment: IAppointment = null;\r\n @Input() isDialog: boolean = false;\r\n @Input() filters: any = null;\r\n\r\n @Output() closeDialog = new EventEmitter();\r\n\r\n public notFound: boolean = false;\r\n public loading: boolean = false;\r\n public success: boolean = false;\r\n public appointmentLoaded: boolean = false;\r\n public isCalendarDisabled: boolean = true;\r\n\r\n public allOffices: IOffice[] = [];\r\n public offices: ISelection[] = [];\r\n public selectedOffice: ISelection = null;\r\n\r\n public allServices: IService[] = [];\r\n public services: ISelection[] = [];\r\n public selectedService: ISelection = null;\r\n\r\n public allServiceDurations: IServiceDuration[] = [];\r\n public selectedServiceDuration: ISelection = null;\r\n public serviceDurations: ISelection[] = [];\r\n public serviceSelectedObj: IService = null;\r\n\r\n public allOperators: IOperator[] = [];\r\n public operators: ISelection[] = [];\r\n public selectedOperator: ISelection = null;\r\n\r\n public allStatuses: IStatus[] = [];\r\n public statuses: ISelection[] = [];\r\n public selectedStatus: ISelection = null;\r\n\r\n public allClients: IClient[] = [];\r\n public clients: ISelection[] = [];\r\n public selectedClient: ISelection = null;\r\n\r\n public allOfficeOperatorService: IOfficeOperatorService[] = [];\r\n public allOfficeOperatorWorkSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n\r\n public checkAppointment: boolean = false;\r\n\r\n public minTime: string = '00:00';\r\n public maxTime: string = '00:00';\r\n\r\n public settings: ISettings = null;\r\n public userRole: string = \"customer\";\r\n public currency: string = \"€\";\r\n\r\n constructor(\r\n //readonly store: Store,\r\n readonly translate: TranslateService,\r\n private router: Router,\r\n private appointmentFormService: AppointmentFormService,\r\n private appointmentLoaderService: AppointmentLoaderService,\r\n private appointmentService: AppointmentService,\r\n private officeService: OfficeService,\r\n private serviceService: ServiceService,\r\n private operatorService: OperatorService,\r\n private statusService: StatusService,\r\n private clientService: ClientService,\r\n private settingsService: SettingsService,\r\n private route: ActivatedRoute,\r\n private titleService: Title,\r\n private dialog: MatDialog,\r\n private authorizeService: AuthorizeService,\r\n private filterGridFormService: FilterGridFormService,\r\n private matSnackBack: MatSnackBar\r\n ) {\r\n this.authorizeService.getUserRole().subscribe({ next: data => this.userRole = data.toLowerCase() });\r\n }\r\n\r\n ngOnInit() {\r\n const request = this.filterGridFormService.createRequest();\r\n const requestWithAvailable = this.filterGridFormService.createRequest(false, null, [], null, true);\r\n\r\n if (this.id === null) {\r\n if (!this.isDialog) {\r\n this.translate.get(\"edit.titleCreate\").subscribe(x => this.titleService.setTitle(x));\r\n }\r\n\r\n combineLatest(\r\n this.officeService.getOfficesWithRequest(requestWithAvailable),\r\n this.serviceService.getServicesWithRequest(requestWithAvailable),\r\n this.operatorService.getOperatorsWithRequest(requestWithAvailable),\r\n this.statusService.getStatusesWithRequest(request),\r\n this.clientService.getClientsWithRequest(request),\r\n this.officeService.getAllOfficeOperatorService(),\r\n this.officeService.getAllOfficeOperatorWorkSchedule(),\r\n this.settingsService.getSettings(),\r\n (offices, services, operators, statuses, clients, allOfficeOperatorService, allOfficeOperatorWorkSchedule, settings) =>\r\n ({ offices, services, operators, statuses, clients, allOfficeOperatorService, allOfficeOperatorWorkSchedule, settings })\r\n ).subscribe(pair => {\r\n this.allOffices = pair.offices.data;\r\n\r\n this.offices = pair.offices.data.map(x => ({ value: x.id, text: x.name }));\r\n\r\n this.allServices = pair.services.data;\r\n\r\n this.allOperators = pair.operators.data;\r\n\r\n this.allStatuses = pair.statuses.data;\r\n this.statuses = pair.statuses.data.map(x => ({ value: x.id, text: x.name }));\r\n\r\n this.allClients = pair.clients.data;\r\n this.clients = pair.clients.data.map(x => ({ value: x.id, text: `${x.firstName} ${x.lastName}` }));\r\n\r\n this.allOfficeOperatorService = pair.allOfficeOperatorService;\r\n\r\n this.allOfficeOperatorWorkSchedule = pair.allOfficeOperatorWorkSchedule;\r\n\r\n this.settings = pair.settings;\r\n if (this.settings.currencySymbol != null && this.settings.currencySymbol != \"\") {\r\n this.currency = this.settings.currencySymbol;\r\n }\r\n\r\n if (this.appointment != null) {\r\n this.appointmentLoaderService.loadAppointment(this.appointment);\r\n }\r\n\r\n this.appointmentLoaded = true;\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!this.isDialog) {\r\n this.translate.get(\"edit.titleUpdate\").subscribe(x => this.titleService.setTitle(x));\r\n }\r\n\r\n combineLatest(\r\n this.appointmentService.getAppointment(this.id),\r\n this.officeService.getOfficesWithRequest(requestWithAvailable),\r\n this.serviceService.getServicesWithRequest(requestWithAvailable),\r\n this.operatorService.getOperatorsWithRequest(requestWithAvailable),\r\n this.statusService.getStatusesWithRequest(request),\r\n this.clientService.getClientsWithRequest(request),\r\n this.officeService.getAllOfficeOperatorService(),\r\n this.officeService.getAllOfficeOperatorWorkSchedule(),\r\n this.settingsService.getSettings(),\r\n (appointment, offices, services, operators, statuses, clients, allOfficeOperatorService, allOfficeOperatorWorkSchedule, settings) =>\r\n ({ appointment, offices, services, operators, statuses, clients, allOfficeOperatorService, allOfficeOperatorWorkSchedule, settings })\r\n ).subscribe(pair => {\r\n const appointment = pair.appointment;\r\n\r\n if (appointment == null || appointment.id == null) {\r\n this.notFound = true;\r\n return;\r\n }\r\n\r\n this.allOffices = pair.offices.data;\r\n this.offices = pair.offices.data.map(x => ({ value: x.id, text: x.name }));\r\n this.selectedOffice = this.offices.find(x => x.value == appointment.office.id);\r\n\r\n this.allServices = pair.services.data;\r\n this.services = pair.services.data.map(x => ({ value: x.id, text: x.name }));\r\n this.selectedService = this.services.find(x => x.value == appointment.service.id);\r\n\r\n this.allOperators = pair.operators.data;\r\n this.operators = pair.operators.data.map(x => ({ value: x.id, text: `${x.firstName} ${x.lastName}` }));\r\n this.selectedOperator = this.operators.find(x => x.value == appointment.operator.id);\r\n\r\n if (this.operators.length == 1) {\r\n //set to form control\r\n this.selectedOperator = this.operators[0];\r\n }\r\n\r\n this.allStatuses = pair.statuses.data;\r\n this.statuses = pair.statuses.data.map(x => ({ value: x.id, text: x.name }));\r\n this.selectedStatus = this.statuses.find(x => x.value == appointment.status.id);\r\n\r\n this.allClients = pair.clients.data;\r\n this.clients = pair.clients.data.map(x => ({ value: x.id, text: `${x.firstName} ${x.lastName}` }));\r\n this.selectedClient = this.clients.find(x => x.value == appointment.client.id);\r\n\r\n this.allOfficeOperatorService = pair.allOfficeOperatorService;\r\n\r\n //filter services and operators\r\n let officeOperatorServices = this.allOfficeOperatorService.filter(x => x.officeId == appointment.office.id);\r\n this.loadServices(officeOperatorServices);\r\n this.selectedService = this.services.find(x => x.value == appointment.service.id);\r\n\r\n //add filter by service\r\n officeOperatorServices = this.allOfficeOperatorService.filter(x => x.officeId == appointment.office.id && x.serviceId==appointment.service.id);\r\n this.loadOperators(officeOperatorServices);\r\n this.selectedOperator = this.operators.find(x => x.value == appointment.operator.id);\r\n\r\n this.allOfficeOperatorWorkSchedule = pair.allOfficeOperatorWorkSchedule;\r\n\r\n this.settings = pair.settings;\r\n\r\n this.isCalendarDisabled = false;\r\n\r\n this.appointmentLoaderService.loadAppointment(appointment);\r\n this.appointment = appointment;\r\n\r\n this.loadWorkSchedule();\r\n\r\n this.appointmentLoaded = true;\r\n });\r\n }\r\n\r\n get form() {\r\n return this.appointmentFormService.form;\r\n }\r\n\r\n get date() {\r\n return this.appointmentFormService.getFormControl('date') as FormControl;\r\n }\r\n\r\n get startHour() {\r\n return this.appointmentFormService.getFormControl('startHour') as FormControl;\r\n }\r\n\r\n get endHour() {\r\n return this.appointmentFormService.getFormControl('endHour') as FormControl;\r\n }\r\n\r\n get notes() {\r\n return this.appointmentFormService.getFormControl('notes') as FormControl;\r\n }\r\n\r\n get client() {\r\n return this.appointmentFormService.getFormControl('client') as FormControl;\r\n }\r\n\r\n get uniqueCode() {\r\n return this.appointmentFormService.getFormControl('uniqueCode') as FormControl;\r\n }\r\n\r\n onEditedOffice(selection: ISelection) {\r\n const office = this.allOffices.find(x => x.id == selection.value);\r\n this.form.controls['office'].setValue(office);\r\n\r\n this.selectedOffice = this.offices.find(x => x.value == selection.value);\r\n const officeOperatorServices = this.allOfficeOperatorService.filter(x => x.officeId == selection.value);\r\n\r\n this.checkCalendarDisable();\r\n\r\n this.loadServices(officeOperatorServices);\r\n this.loadOperators(officeOperatorServices);\r\n //this.loadWorkSchedule();\r\n }\r\n\r\n onEditedService(selection: ISelection) {\r\n const service = this.allServices.find(x => x.id == selection.value);\r\n this.serviceSelectedObj = service;\r\n this.form.controls['service'].setValue(service);\r\n\r\n this.serviceDurations = [];\r\n this.form.controls['serviceDuration'].setValue({duration: service.appointmentDuration, price: service.price});\r\n\r\n if (service.durations != null && service.durations.length > 0) {\r\n this.serviceDurations.push({ text: `${service.appointmentDuration} min (${service.price} ${this.currency})`, value: `${service.appointmentDuration}` });\r\n this.selectedServiceDuration = { text: `${service.appointmentDuration} min (${service.price} ${this.currency})`, value: `${service.appointmentDuration}` };\r\n service.durations.forEach(item => {\r\n this.serviceDurations.push({ text: `${item.duration} min (${item.price} ${this.currency})`, value: `${item.duration}` });\r\n })\r\n }\r\n\r\n console.log(\"onEditedService\", this.serviceSelectedObj, this.serviceDurations);\r\n\r\n this.selectedService = this.services.find(x => x.value == selection.value);\r\n var officeOperatorServices = this.allOfficeOperatorService.filter(x => x.serviceId == selection.value);\r\n\r\n if (this.selectedOffice != null) {\r\n officeOperatorServices = officeOperatorServices.filter(x => x.officeId == this.selectedOffice.value);\r\n }\r\n\r\n this.checkCalendarDisable();\r\n\r\n this.loadOperators(officeOperatorServices);\r\n //this.loadWorkSchedule();\r\n\r\n //if (this.startHour.value != null) {\r\n // const endHourTime = GetNewTimeBasedOnTheService(service, this.startHour.value, true);\r\n // this.form.controls['endHour'].setValue(endHourTime);\r\n //}\r\n //else if (this.endHour.value != null) {\r\n // const startHourTime = GetNewTimeBasedOnTheService(service, this.endHour.value, false);\r\n // this.form.controls['startHour'].setValue(startHourTime);\r\n //}\r\n }\r\n\r\n onEditedServiceDuration(selection: ISelection) {\r\n let selectedDuration = + selection.value;\r\n let duration = this.serviceSelectedObj.durations.find(x => x.duration == selectedDuration);\r\n\r\n if (duration != null) {\r\n this.serviceSelectedObj.appointmentDuration = duration.duration;\r\n this.serviceSelectedObj.price = duration.price;\r\n\r\n this.form.controls['service'].setValue(this.serviceSelectedObj);\r\n this.form.controls['serviceDuration'].setValue(duration);\r\n\r\n //reset date and interval\r\n this.form.controls['date'].setValue(null);\r\n this.form.controls['startHour'].setValue(null);\r\n this.form.controls['endHour'].setValue(null);\r\n }\r\n }\r\n\r\n onEditedOperator(selection: ISelection) {\r\n const operator = this.allOperators.find(x => x.id == selection.value);\r\n this.form.controls['operator'].setValue(operator);\r\n\r\n this.selectedOperator = this.operators.find(x => x.value == selection.value);\r\n\r\n this.checkCalendarDisable();\r\n\r\n //this.loadWorkSchedule();\r\n\r\n this.checkAppointment = true;\r\n }\r\n\r\n onEditedStatus(selection: ISelection) {\r\n const status = this.allStatuses.find(x => x.id == selection.value);\r\n this.form.controls['status'].setValue(status);\r\n }\r\n\r\n onEditedClient(selection: ISelection) {\r\n const client = this.allClients.find(x => x.id == selection.value);\r\n this.form.controls['client'].setValue(client);\r\n }\r\n\r\n onEditedDate(date: Date) {\r\n const newDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\r\n this.form.controls['date'].setValue(newDate);\r\n\r\n this.loadWorkSchedule();\r\n\r\n this.checkAppointment = true;\r\n }\r\n\r\n onEditedStartHour(time: string) {\r\n this.form.controls['startHour'].setValue(time);\r\n\r\n if (this.selectedService != null) {\r\n const service = this.allServices.find(x => x.id == this.selectedService.value);\r\n\r\n const endHour = GetNewTimeBasedOnTheService(service, time, true);\r\n this.loadTime(endHour, 'endHour');\r\n }\r\n \r\n this.checkAppointment = true;\r\n }\r\n\r\n onEditedEndHour(time: string) {\r\n this.form.controls['endHour'].setValue(time);\r\n\r\n if (this.selectedService != null) {\r\n const service = this.allServices.find(x => x.id == this.selectedService.value);\r\n\r\n const startHour = GetNewTimeBasedOnTheService(service, time, false);\r\n this.loadTime(startHour, 'startHour');\r\n }\r\n\r\n this.checkAppointment = true;\r\n }\r\n\r\n //loadServices(officeOperatorServices: IOfficeOperatorService[]) {\r\n // let service: IService = null;\r\n\r\n // if (officeOperatorServices.length > 0) {\r\n // const serviceIds = Array.prototype.map.call(officeOperatorServices, x => x.serviceId).toString();\r\n // this.services = this.allServices.filter(x => serviceIds.includes(x.id)).map(x => ({ id: x.id, name: x.name }));\r\n // this.selectedService = this.selectedService != null ? this.services.find(x => x.id == this.selectedService.id) : null;\r\n // service = this.selectedService != null ? this.allServices.find(x => x.id == this.selectedService.id) : null;\r\n // }\r\n // else {\r\n // this.services = [];\r\n // this.selectedService = null;\r\n // }\r\n\r\n // return service;\r\n //}\r\n\r\n //loadOperators(officeOperatorServices: IOfficeOperatorService[]) {\r\n // let operator: IOperator = null;\r\n\r\n // if (officeOperatorServices.length > 0) {\r\n // const operatorIds = Array.prototype.map.call(officeOperatorServices, x => x.operatorId).toString();\r\n // this.operators = this.allOperators.filter(x => operatorIds.includes(x.id)).map(x => ({ id: x.id, name: `${x.firstName} ${x.lastName}` }));\r\n // this.selectedOperator = this.selectedOperator != null ? this.operators.find(x => x.id == this.selectedOperator.id) : null;\r\n // operator = this.selectedOperator != null ? this.allOperators.find(x => x.id == this.selectedOperator.id) : null;\r\n // }\r\n // else {\r\n // this.operators = [];\r\n // this.selectedOperator = null;\r\n // }\r\n\r\n // return operator;\r\n //}\r\n\r\n loadServices(officeOperatorServices: IOfficeOperatorService[]) {\r\n this.services = [];\r\n this.selectedService = null;\r\n this.form.controls['service'].setValue(null);\r\n\r\n if (officeOperatorServices.length > 0) {\r\n const serviceIds = Array.prototype.map.call(officeOperatorServices, x => x.serviceId).toString();\r\n this.services = this.allServices.filter(x => serviceIds.includes(x.id)).map(x => ({ value: x.id, text: x.name }));\r\n }\r\n }\r\n\r\n loadOperators(officeOperatorServices: IOfficeOperatorService[]) {\r\n this.operators = [];\r\n this.selectedOperator = null;\r\n this.form.controls['operator'].setValue(null);\r\n\r\n if (officeOperatorServices.length > 0) {\r\n const operatorIds = Array.prototype.map.call(officeOperatorServices, x => x.operatorId).toString();\r\n this.operators = this.allOperators.filter(x => operatorIds.includes(x.id)).map(x => ({ value: x.id, text: `${x.firstName} ${x.lastName}` }));\r\n }\r\n\r\n if (this.operators.length == 1) {\r\n //set to form control\r\n this.selectedOperator = this.operators[0];\r\n var operator = this.allOperators.find(x => x.id == this.selectedOperator.value);\r\n this.form.controls['operator'].setValue(operator);\r\n\r\n this.checkCalendarDisable();\r\n }\r\n }\r\n\r\n loadWorkSchedule() {\r\n let minTime = '00:00';\r\n let maxTime = '00:00';\r\n\r\n if (this.selectedOperator != null && this.date.value != null) {\r\n const day = new Date(this.date.value).getDay();\r\n const officeOperatorWorkSchedules = this.allOfficeOperatorWorkSchedule.filter(x => x.officeId == this.selectedOffice.value && x.dayOfTheWeek == day);\r\n\r\n if (officeOperatorWorkSchedules.length > 0) {\r\n let workSchedules = officeOperatorWorkSchedules.filter(x => !x.isOfficeWorkSchedule && x.serviceId == this.selectedService.value &&\r\n x.operatorId == this.selectedOperator.value);\r\n\r\n if (workSchedules.length == 0) {\r\n workSchedules = officeOperatorWorkSchedules.filter(x => x.isOfficeWorkSchedule);\r\n }\r\n\r\n if (workSchedules.length > 0) {\r\n const startHours = workSchedules.map(function (item) {\r\n return item['startHour'];\r\n });\r\n minTime = startHours.sort()[0];\r\n\r\n const endHours = workSchedules.map(function (item) {\r\n return item['endHour'];\r\n });\r\n maxTime = endHours.sort().reverse()[0];\r\n }\r\n }\r\n }\r\n\r\n this.minTime = minTime;\r\n this.maxTime = maxTime;\r\n\r\n if (this.startHour.value != null) {\r\n this.loadTime(this.startHour.value, 'startHour');\r\n }\r\n\r\n if (this.endHour.value != null) {\r\n this.loadTime(this.endHour.value, 'endHour');\r\n }\r\n }\r\n\r\n loadTime(time: string, type: string) {\r\n const dateTime = GetNewDateFromDateAndTime(new Date(), time);\r\n const minTime = GetNewDateFromDateAndTime(new Date(), this.minTime);\r\n const maxTime = GetNewDateFromDateAndTime(new Date(), this.maxTime);\r\n\r\n if (dateTime < minTime || dateTime > maxTime) {\r\n time = null;\r\n }\r\n\r\n this.form.controls[`${type}`].setValue(time);\r\n }\r\n\r\n checkCalendarDisable() {\r\n if (this.selectedOffice != null && this.selectedService != null && this.selectedOperator != null) {\r\n this.isCalendarDisabled = false;\r\n\r\n return;\r\n }\r\n\r\n this.isCalendarDisabled = true;\r\n }\r\n\r\n openCalendarDialog() {\r\n let appointment = this.appointmentFormService.createAppointmentDto(this.id);\r\n\r\n const allSelectedOperators: IOperator[] = [];\r\n //allSelectedOperators.push(this.appointment.operator);\r\n allSelectedOperators.push(this.form.controls['operator'].value);\r\n\r\n const data = {\r\n settings: this.settings,\r\n appointment: appointment,\r\n allSelectedOperators: allSelectedOperators,\r\n allOfficeOperatorWorkSchedule: this.allOfficeOperatorWorkSchedule\r\n };\r\n\r\n const dialogRef = this.dialog.open(CalendarWithTimeSlotsComponent, {\r\n //width: \"50rem\",\r\n //minWidth: \"30rem\",\r\n width: \"60%\",\r\n height: \"80%\",\r\n data: data\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(response => {\r\n if (response == null) {\r\n return;\r\n }\r\n\r\n appointment = response.appointment;\r\n\r\n this.date.setValue(appointment.date);\r\n this.startHour.setValue(appointment.startHour.toString().slice(0, 5));\r\n this.endHour.setValue(appointment.endHour.toString().slice(0, 5));\r\n });\r\n }\r\n\r\n openClientDialog() {\r\n const dialogRef = this.dialog.open(ClientComponent, {\r\n width: \"50rem\",\r\n minWidth: \"30rem\",\r\n data: null\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(response => {\r\n if (response == '') {\r\n return;\r\n }\r\n\r\n const request = this.filterGridFormService.createRequest();\r\n\r\n //this.clientService.getClients().subscribe(x => {\r\n this.clientService.getClientsWithRequest(request).subscribe(x => {\r\n this.allClients = x.data;\r\n const client = x.data.find(y => y.id == response);\r\n this.form.controls['client'].setValue(client);\r\n\r\n this.clients = x.data.map(x => ({ value: x.id, text: `${x.firstName} ${x.lastName}` }));\r\n this.selectedClient = this.clients.find(y => y.value == response);\r\n });\r\n });\r\n }\r\n\r\n submit() {\r\n this.loading = true;\r\n\r\n let appointment = this.appointmentFormService.createAppointmentDto(this.id, this.appointment, this.settings);\r\n\r\n if (this.id == null) {\r\n //create\r\n this.appointmentService.create(appointment).subscribe(x => {\r\n this.loading = false;\r\n this.success = x != null && x.errorCode == null ? true : false;\r\n\r\n if (x != null && x.errorCode != null) {\r\n this.displayErrorMessage(x.errorCode);\r\n }\r\n\r\n if (this.isDialog && this.success) {\r\n this.closeAppointmentDialog(true);\r\n }\r\n\r\n }, error => {\r\n console.log('error = ', error);\r\n });\r\n }\r\n else {\r\n //check if notification is required\r\n if (JSON.stringify(appointment.status) != JSON.stringify(this.appointment.status)) {\r\n appointment.sendNotificationRequest = true;\r\n }\r\n\r\n let crud: string = CRUD.Update;\r\n\r\n if (GetDayWithoutTime(appointment.date) != GetDayWithoutTime(this.appointment.date) || appointment.startHour != this.appointment.startHour ||\r\n appointment.endHour != this.appointment.endHour) {\r\n crud = CRUD.Read;\r\n }\r\n\r\n this.appointmentService.update(appointment, crud).subscribe(x => {\r\n this.loading = false;\r\n this.success = x != null ? x.entity : false;\r\n\r\n if (x != null && !x.entity) {\r\n this.displayErrorMessage(x.errorCode);\r\n }\r\n\r\n if (this.isDialog && this.success) {\r\n this.closeAppointmentDialog(true);\r\n }\r\n }, error => {\r\n console.log('error = ', error);\r\n });\r\n }\r\n }\r\n\r\n closeAppointmentDialog(isModified=false) {\r\n this.closeDialog.emit(isModified);\r\n }\r\n\r\n onBackToManagement() {\r\n this.appointmentService.setEnableMonthsInterval(1).subscribe(x => { });\r\n \r\n this.router.navigate([`management/${this.userRole}/appointments`], { state: { filters: this.filters } } );\r\n }\r\n\r\n displayErrorMessage(errorCode: string) {\r\n this.translate.get(`errors.appointment.create.${this.userRole}.${errorCode}`).subscribe(x => {\r\n if (x != null) {\r\n this.openSnackBar(x);\r\n }\r\n else {\r\n this.openSnackBar(\"An error occurred. Please refresh and try again.\");\r\n }\r\n });\r\n }\r\n\r\n openSnackBar(message) {\r\n this.matSnackBack.open(message, \"Ok\", {\r\n duration: 5000\r\n });\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvYm9vdHN0cmFwL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { GetNewDateFromDateAndTime, GetTimeFromDate } from '../../../../core/functions/date-function';\r\n\r\n@Component({\r\n selector: 'app-bootstrap-time-picker',\r\n templateUrl: './time-picker.component.html',\r\n styleUrls: ['./time-picker.component.scss']\r\n})\r\nexport class TimePickerComponent implements OnInit, OnChanges {\r\n /** selected time */\r\n @Input() selectedTime: string;\r\n\r\n /** the minimum time that can be selected */\r\n @Input() min: string = null;\r\n\r\n /** the maximum time that can be selected */\r\n @Input() max: string = null;\r\n\r\n @Input() title: string = '';\r\n\r\n /** time to be returned */\r\n @Output() editedTime = new EventEmitter();\r\n\r\n public timeCtrl: FormControl = new FormControl();\r\n public minCtrl: Date = null;\r\n public maxCtrl: Date = null;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.timeCtrl.valueChanges.subscribe(x => {\r\n if (x != null) {\r\n var time = GetTimeFromDate(x);\r\n\r\n this.editedTime.emit(time);\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.selectedTime != undefined && changes.selectedTime.currentValue != null) {\r\n var formatedTime = GetNewDateFromDateAndTime(new Date(), changes.selectedTime.currentValue);\r\n\r\n this.timeCtrl.setValue(formatedTime);\r\n }\r\n\r\n if (changes.min != undefined && changes.min.currentValue != null) {\r\n var formatedTime = GetNewDateFromDateAndTime(new Date(), changes.min.currentValue);\r\n\r\n this.minCtrl = formatedTime;\r\n }\r\n\r\n if (changes.max != undefined && changes.max.currentValue != null) {\r\n var formatedTime = GetNewDateFromDateAndTime(new Date(), changes.max.currentValue);\r\n\r\n this.maxCtrl = formatedTime;\r\n }\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY2FsZW5kYXJzL2NhbGVuZGFyLXdpdGgtdGltZS1zbG90cy9jYWxlbmRhci13aXRoLXRpbWUtc2xvdHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ITimeSlot } from '../../../../core/interfaces/common/time-slot';\r\nimport { ITimeSlotParameters } from '../../../../core/interfaces/common/time-slot-parameters';\r\nimport { IAppointment } from '../../../../core/interfaces/customer/appointment';\r\nimport { IExceptionDay } from '../../../../core/interfaces/customer/exception-day';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { IOperator } from '../../../../core/interfaces/customer/operator';\r\nimport { ISettings } from '../../../../core/interfaces/customer/settings';\r\nimport { AgendaService } from '../../../../core/services/common/agenda.service';\r\nimport { ExceptionDayService } from '../../../../core/services/customer/exception-day.service';\r\nimport { FilterGridFormService } from '../../filter-grid/filter-grid-form.service';\r\n\r\n@Component({\r\n selector: 'app-calendar-with-time-slots',\r\n templateUrl: './calendar-with-time-slots.component.html',\r\n styleUrls: ['./calendar-with-time-slots.component.scss'],\r\n providers: [\r\n FilterGridFormService,\r\n ExceptionDayService,\r\n AgendaService\r\n ]\r\n})\r\nexport class CalendarWithTimeSlotsComponent implements OnInit {\r\n @Input() settings: ISettings = null;\r\n @Input() appointment: IAppointment = null;\r\n @Input() allSelectedOperators: IOperator[] = [];\r\n @Input() allOfficeOperatorWorkSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n @Input() showActionButtons: boolean = false;\r\n\r\n @Output() editedData = new EventEmitter();\r\n\r\n public exceptionDays: IExceptionDay[] = [];\r\n public timeSlots: ITimeSlot[] = [];\r\n\r\n public wasSelected: boolean = false;\r\n public selectedOperator: IOperator = null;\r\n public selectedDate: Date = new Date();\r\n public minDate: Date = new Date();\r\n\r\n public appointmentDuration: number = 0;\r\n\r\n public startHour: any;\r\n public endHour: any;\r\n\r\n public componentLoaded: boolean = false;\r\n public durationExceeded: boolean = false;\r\n\r\n constructor(\r\n private filterGridFormService: FilterGridFormService,\r\n private exceptionDayService: ExceptionDayService,\r\n private agendaService: AgendaService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.settings == null || this.appointment == null || this.appointment.service == null) {\r\n return;\r\n }\r\n\r\n this.appointmentDuration = this.appointment.service.appointmentDuration + this.appointment.service.intervalBeforeAppointment +\r\n this.appointment.service.intervalAfterAppointment;\r\n\r\n if (this.appointment.date != null) this.selectedDate = new Date(this.appointment.date);\r\n this.startHour = this.appointment.startHour;\r\n this.endHour = this.appointment.endHour;\r\n\r\n this.loadExceptionDays();\r\n }\r\n\r\n loadExceptionDays() {\r\n const request = this.filterGridFormService.createRequest(false, this.settings.customerCode);\r\n\r\n this.exceptionDayService.getExceptionDaysWithRequest(request).subscribe({\r\n next: data => {\r\n this.exceptionDays = data.data;\r\n\r\n this.createTimeSlots();\r\n }\r\n });\r\n }\r\n\r\n createTimeSlots() {\r\n const date: any = `${this.selectedDate.getFullYear()}-${this.selectedDate.getMonth() + 1}-${this.selectedDate.getDate()}`;\r\n\r\n const timeSlotParameters: ITimeSlotParameters = {\r\n customerCode: this.settings.customerCode,\r\n officeOperatorWorkSchedules: this.allOfficeOperatorWorkSchedule,\r\n exceptionDays: this.exceptionDays,\r\n settings: this.settings,\r\n office: this.appointment.office,\r\n service: this.appointment.service,\r\n operators: this.allSelectedOperators,\r\n date: date,\r\n startHour: this.startHour,\r\n endHour: this.endHour\r\n };\r\n\r\n this.agendaService.getTimeSlots(timeSlotParameters).subscribe(items => {\r\n items.forEach(x => {\r\n x.startHour = x.startHour.toString().slice(0, 5);\r\n x.endHour = x.endHour.toString().slice(0, 5);\r\n });\r\n\r\n this.timeSlots = items;\r\n });\r\n\r\n this.componentLoaded = true;\r\n }\r\n\r\n onSelectDate(date: Date, calendar: any) {\r\n this.wasSelected = false;\r\n this.durationExceeded = false;\r\n\r\n this.selectedDate = date;\r\n\r\n const appointmentDate: Date = new Date(this.appointment.date);\r\n\r\n if (appointmentDate.getFullYear() == date.getFullYear() && appointmentDate.getMonth() == date.getMonth() &&\r\n appointmentDate.getDate() == date.getDate()) {\r\n this.startHour = this.appointment.startHour;\r\n this.endHour = this.appointment.endHour;\r\n }\r\n else {\r\n this.startHour = null;\r\n this.endHour = null;\r\n }\r\n\r\n this.createTimeSlots();\r\n\r\n if (!this.showActionButtons) {\r\n var obj = {\r\n \"wasSelected\": false\r\n };\r\n\r\n this.editedData.emit(obj);\r\n }\r\n }\r\n\r\n onSelectSlot(slot: ITimeSlot) {\r\n this.durationExceeded = false;\r\n const timeSlotParameters: ITimeSlotParameters = {\r\n settings: this.settings,\r\n service: this.appointment.service,\r\n operators: this.allSelectedOperators,\r\n startHour: slot.startHour,\r\n timeSlots: this.timeSlots\r\n };\r\n\r\n this.agendaService.selectTimeSlots(timeSlotParameters).subscribe(item => {\r\n item.timeSlots.forEach(x => {\r\n x.startHour = x.startHour.toString().slice(0, 5);\r\n x.endHour = x.endHour.toString().slice(0, 5);\r\n });\r\n\r\n this.timeSlots = item.timeSlots;\r\n this.startHour = item.startHour;\r\n this.endHour = item.endHour;\r\n this.selectedOperator = item.operator;\r\n this.wasSelected = item.timeSlots.filter(x => x.isSelected).length > 0 ? true : false;\r\n\r\n if (this.wasSelected == false) this.durationExceeded = true;\r\n \r\n if (!this.showActionButtons) {\r\n this.continue();\r\n }\r\n });\r\n }\r\n\r\n cancel() {\r\n this.editedData.emit(null);\r\n }\r\n\r\n continue() {\r\n var selectedDate: any = `${this.selectedDate.getFullYear()}-${this.selectedDate.getMonth() + 1}-${this.selectedDate.getDate()}`;\r\n\r\n this.appointment.date = selectedDate;\r\n this.appointment.startHour = this.startHour;\r\n this.appointment.endHour = this.endHour;\r\n this.appointment.operator = this.selectedOperator;\r\n\r\n var obj = {\r\n \"appointment\": this.appointment,\r\n \"wasSelected\": this.wasSelected\r\n };\r\n\r\n this.editedData.emit(obj);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY2FsZW5kYXJzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'app-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss']\n})\nexport class CalendarComponent implements OnInit {\n /** selected date */\n @Input() selectedDate: Date;\n\n /** date to be returned */\n @Output() editedDate = new EventEmitter();\n\n public minDate: Date = new Date();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.viewDate != undefined) {\n this.selectedDate = changes.viewDate.currentValue;\n }\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY2FsZW5kYXJzL2RhdGUtcGlja2VyLWljb24vZGF0ZS1waWNrZXItaWNvbi5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport { GetNextDay } from '../../../../core/functions/date-function';\r\nimport { IAppointment } from '../../../../core/interfaces/customer/appointment';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { ISettings } from '../../../../core/interfaces/customer/settings';\r\n\r\n@Component({\r\n selector: 'app-date-picker-icon',\r\n templateUrl: './date-picker-icon.component.html',\r\n styleUrls: ['./date-picker-icon.component.scss']\r\n})\r\nexport class DatePickerIconComponent implements OnInit, OnChanges {\r\n /** selected date */\r\n @Input() viewDate: Date;\r\n @Input() allOfficeOperatorWorkSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n @Input() appointment: IAppointment = null;\r\n\r\n @Input() useMinDate: boolean = false;\r\n\r\n /** date to be returned */\r\n @Output() viewDateChange = new EventEmitter();\r\n\r\n public date: FormControl = new FormControl();\r\n public minDate: Date = new Date();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.viewDate != null) {\r\n this.date.setValue(new Date(this.viewDate));\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.viewDate != undefined) {\r\n this.viewDate = changes.viewDate.currentValue;\r\n this.date.setValue(new Date(this.viewDate));\r\n }\r\n\r\n if (changes.appointment != undefined && changes.appointment !=null) {\r\n this.appointment = changes.appointment.currentValue;\r\n }\r\n\r\n if (changes.allOfficeOperatorWorkSchedule != undefined && changes.allOfficeOperatorWorkSchedule != null) {\r\n this.allOfficeOperatorWorkSchedule = changes.allOfficeOperatorWorkSchedule.currentValue;\r\n }\r\n }\r\n\r\n onDisableDates(date: any): boolean {\r\n const selectedDate = new Date(date);\r\n const day = selectedDate.getDay();\r\n\r\n let schedules = this.allOfficeOperatorWorkSchedule.filter(x => x.officeId == this.appointment.office.id);\r\n return schedules.findIndex(x=>x.dayOfTheWeek===day)>=0;\r\n }\r\n\r\n \r\n}\r\n","export default \"/*@import '../../../../../../scss/management/_color-scheme.scss';\\n\\n::ng-deep .mat-calendar-body-selected {\\n background-color: $wild-strawberry !important;\\n}\\n\\n::ng-deep .mat-datepicker-toggle-active {\\n color: $wild-strawberry !important;\\n}\\n*/\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jYWxlbmRhcnMvZGF0ZS1waWNrZXIvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxhcHBcXG1hbmFnZW1lbnRcXHNoYXJlZFxcY29tcG9uZW50c1xcY2FsZW5kYXJzXFxkYXRlLXBpY2tlclxcZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztDQUFBIiwiZmlsZSI6InNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jYWxlbmRhcnMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL3Njc3MvbWFuYWdlbWVudC9fY29sb3Itc2NoZW1lLnNjc3MnO1xyXG5cclxuOjpuZy1kZWVwIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdpbGQtc3RyYXdiZXJyeSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xyXG4gIGNvbG9yOiAkd2lsZC1zdHJhd2JlcnJ5ICFpbXBvcnRhbnQ7XHJcbn1cclxuKi9cclxuIl19 */\"","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss']\r\n})\r\nexport class DatePickerComponent implements OnInit, OnChanges {\r\n /** selected date */\r\n @Input() selectedDate: Date;\r\n\r\n @Input() title: string = null;\r\n\r\n /** date to be returned */\r\n @Output() editedDate = new EventEmitter();\r\n\r\n public date: FormControl = new FormControl();\r\n\r\n constructor(\r\n readonly translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.selectedDate != null) {\r\n this.date.setValue(new Date(this.selectedDate));\r\n }\r\n\r\n if (this.title == null) {\r\n this.translate.get(`date-picker.placeholder`).subscribe(t => {\r\n this.title = t;\r\n });\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.selectedDate != undefined) {\r\n this.selectedDate = changes.selectedDate.currentValue;\r\n this.date.setValue(new Date(this.selectedDate));\r\n }\r\n }\r\n\r\n onChange($event) {\r\n this.editedDate.emit($event.value);\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n.btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, .show > .btn-primary.dropdown-toggle {\\n color: #fff;\\n background-color: #1880A5;\\n border-color: #167495;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jYWxlbmRhcnMvc2NoZWR1bGVyL2NhbGVuZGFyLWhlYWRlci9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXHNjc3NcXG1hbmFnZW1lbnRcXF9jb2xvci1zY2hlbWUuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jYWxlbmRhcnMvc2NoZWR1bGVyL2NhbGVuZGFyLWhlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY2FsZW5kYXJzL3NjaGVkdWxlci9jYWxlbmRhci1oZWFkZXIvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxhcHBcXG1hbmFnZW1lbnRcXHNoYXJlZFxcY29tcG9uZW50c1xcY2FsZW5kYXJzXFxzY2hlZHVsZXJcXGNhbGVuZGFyLWhlYWRlclxcY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTtFQUNFLGNBakJPO0FDQ1Q7O0FEbUJBO0VBQ0UseUJBckJPO0FDS1Q7O0FEbUJBO0VBQ0UsY0F4Qks7QUNRUDs7QURtQkE7RUFDRSx5QkE1Qks7QUNZUDs7QURtQkE7RUFDRSxjQS9CVztBQ2ViOztBRG1CQTtFQUNFLHlCQW5DVztBQ21CYjs7QURtQkE7RUFDRSxjQXJDVTtBQ3FCWjs7QURtQkE7RUFDRSx5QkF6Q1U7QUN5Qlo7O0FEbUJBO0VBQ0UsY0FsRE07QUNrQ1I7O0FEbUJBO0VBQ0UseUJBdERNO0FDc0NSOztBRG1CQTtFQUNFLGNBcERjO0FDb0NoQjs7QURtQkE7RUFDRSx5QkF4RGM7QUN3Q2hCOztBRG1CQTtFQUNFLGNBM0RhO0FDMkNmOztBRG1CQTtFQUNFLHlCQS9EYTtBQytDZjs7QURtQkE7RUFDRSxjQXJFVTtBQ3FEWjs7QURtQkE7RUFDRSx5QkFuRVE7QUNtRFY7O0FEbUJBO0VBQ0UseUJBdEVhO0FDc0RmOztBRG1CQTtFQUNFLGNBMUVhO0FDMERmOztBRG1CQTtFQUNFLHlCQWhGYTtBQ2dFZjs7QURtQkE7RUFDRSxjQXBGYTtBQ29FZjs7QURtQkE7RUFDRSxjQXpGTTtBQ3lFUjs7QURtQkE7RUFDRSxjQXhGSztBQ3dFUDs7QURtQkE7RUFDRSx5QkE1Rks7QUM0RVA7O0FEbUJBO0VBQ0UsY0EvRlU7QUMrRVo7O0FEbUJBO0VBQ0UseUJBbkdVO0FDbUZaOztBQ2hHQTtFQUNFLFdBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0FEbUdGIiwiZmlsZSI6InNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jYWxlbmRhcnMvc2NoZWR1bGVyL2NhbGVuZGFyLWhlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkd2hpdGU6ICNGRkZGRkY7XHJcbiRkYXJrZXI6ICMxQzI0Mjg7XHJcbiRkYXJrOiAjMzc0NzRGO1xyXG4kZ3JheS1saWdodDogI0VCRjFGNDtcclxuJGdyYXktbWVkaXVtOiAjZTBlMGUwO1xyXG4kZ3JheS1kYXJrOiAjOEI5RUE3O1xyXG4kcHJpbWFyeS1jb2xvcjogI0ZGNDA4MTtcclxuJGFjY2VudC1jb2xvcjogIzIxOTZGMztcclxuJGFjY2VudC1jb2xvci0yOiAjMUFDNjczO1xyXG4kZXJyb3I6ICNGRjQxMDA7XHJcbiRidXJudC1zaWVubmE6ICNFRTdENUE7XHJcbiRzcGluZGxlOiAjQzhFNUVGO1xyXG4kZWFzdGVybi1ibHVlOiAjMTg5N0MzO1xyXG4kd2lsZC1zdHJhd2JlcnJ5OiAjRkY0MDgxO1xyXG4kd2FybjogI2Y0NDMzNjtcclxuJGRhcmstYmx1ZTogIzJhNjM3NztcclxuXHJcbi50ZXh0LWRhcmtlciB7XHJcbiAgY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi5ia2ctZGFya2VyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4udGV4dC1kYXJrIHtcclxuICBjb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi5ia2ctZGFyayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0ZXIge1xyXG4gIGNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmJrZy1saWdodGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLnRleHQtbGlnaHQge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSB7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJrZy13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1wcmltYXJ5IHtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWFjY2VudCB7XHJcbiAgY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctYWNjZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1ncmF5LWRhcmsge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLXNwaW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzcGluZGxlO1xyXG59XHJcblxyXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLnRleHQtZWFzdGVybi1ibHVlIHtcclxuICBjb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLmJrZy1idXJudC1zaWVubmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWJ1cm50LXNpZW5uYSB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWVycm9yIHtcclxuICBjb2xvcjogJGVycm9yO1xyXG59XHJcblxyXG4udGV4dC13YXJuIHtcclxuICBjb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi5ia2ctd2FybiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi50ZXh0LWRhcmstYmx1ZSB7XHJcbiAgY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctZGFyay1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcbiIsIi50ZXh0LWRhcmtlciB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uYmtnLWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzI0Mjg7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cblxuLmJrZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0Rjtcbn1cblxuLnRleHQtbGlnaHRlciB7XG4gIGNvbG9yOiAjRUJGMUY0O1xufVxuXG4uYmtnLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMUY0O1xufVxuXG4udGV4dC1saWdodCB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhCOUVBNztcbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLmJrZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuLmJrZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbi5ia2ctYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuLnRleHQtZ3JheS1kYXJrIHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctc3BpbmRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEU1RUY7XG59XG5cbi5ia2ctZWFzdGVybi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn1cblxuLnRleHQtZWFzdGVybi1ibHVlIHtcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5ia2ctYnVybnQtc2llbm5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtYnVybnQtc2llbm5hIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWVycm9yIHtcbiAgY29sb3I6ICNGRjQxMDA7XG59XG5cbi50ZXh0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLmJrZy13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLnRleHQtZGFyay1ibHVlIHtcbiAgY29sb3I6ICMyYTYzNzc7XG59XG5cbi5ia2ctZGFyay1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNjM3Nztcbn1cblxuLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwgLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLnNob3cgPiAuYnRuLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODgwQTU7XG4gIGJvcmRlci1jb2xvcjogIzE2NzQ5NTtcbn0iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9zY3NzL21hbmFnZW1lbnQvX2NvbG9yLXNjaGVtZS5zY3NzJztcclxuXHJcbi5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsIC5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5zaG93ID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4ODBBNTtcclxuICBib3JkZXItY29sb3I6ICMxNjc0OTU7XHJcbn1cclxuIl19 */\"","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CalendarView, DAYS_OF_WEEK } from 'angular-calendar';\r\n\r\n@Component({\r\n selector: 'app-calendar-header',\r\n templateUrl: './calendar-header.component.html',\r\n styleUrls: ['./calendar-header.component.scss']\r\n})\r\nexport class CalendarHeaderComponent {\r\n @Input() view: CalendarView;\r\n\r\n @Input() viewDate: Date;\r\n\r\n @Input() locale: string = 'en';\r\n\r\n @Input() operatorName: string = '';\r\n\r\n @Input() weekStartsOn: number = DAYS_OF_WEEK.MONDAY;\r\n\r\n @Output() viewChange = new EventEmitter();\r\n\r\n @Output() viewDateChange = new EventEmitter();\r\n\r\n CalendarView = CalendarView;\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Injectable, Input, LOCALE_ID, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { CalendarUtils, CalendarWeekViewComponent, DateAdapter, getWeekViewPeriod } from 'angular-calendar';\nimport { WeekView, GetWeekViewArgs, WeekViewTimeEvent, EventColor, CalendarEvent, WeekViewAllDayEventRow, WeekViewAllDayEvent } from 'calendar-utils';\nimport { DragEndEvent, DragMoveEvent } from 'angular-draggable-droppable';\nimport { ISelection } from '../../../../../core/interfaces/common/selection';\r\n\n//export interface User {\n// id: number;\n// name: string;\n// color: EventColor;\n//}\n\ninterface DayViewScheduler extends WeekView {\n users: ISelection[];\n}\n\ninterface GetWeekViewArgsWithUsers extends GetWeekViewArgs {\n users: ISelection[];\n}\n\n@Injectable()\nexport class DayViewSchedulerCalendarUtils extends CalendarUtils {\n getWeekView(args: GetWeekViewArgsWithUsers): DayViewScheduler {\n const { period } = super.getWeekView(args);\n const view: DayViewScheduler = {\n period,\n allDayEventRows: [],\n hourColumns: [],\n users: [...args.users],\n };\n\n view.users.forEach((user, columnIndex) => {\n const events = args.events.filter(\n (event) => event.meta.user.value === user.value\n );\n const columnView = super.getWeekView({\n ...args,\n events,\n });\n view.hourColumns.push(columnView.hourColumns[0]);\n columnView.allDayEventRows.forEach(({ row }, rowIndex) => {\n view.allDayEventRows[rowIndex] = view.allDayEventRows[rowIndex] || {\n row: [],\n };\n view.allDayEventRows[rowIndex].row.push({\n ...row[0],\n offset: columnIndex,\n span: 1,\n });\n });\n });\n\n return view;\n }\n}\n\n@Component({\n // tslint:disable-line max-classes-per-file\n selector: 'mwl-day-view-scheduler',\n templateUrl: 'day-view-scheduler.component.html',\n providers: [DayViewSchedulerCalendarUtils],\n})\nexport class DayViewSchedulerComponent extends CalendarWeekViewComponent\n implements OnChanges {\n @Input() users: ISelection[] = [];\n\n @Output() userChanged = new EventEmitter();\n\n view: DayViewScheduler;\n\n daysInWeek = 1;\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected utils: DayViewSchedulerCalendarUtils,\n @Inject(LOCALE_ID) locale: string,\n protected dateAdapter: DateAdapter,\n protected elementRef: ElementRef\n ) {\n super(cdr, utils, locale, dateAdapter, elementRef);\n }\n\n trackByUserId = (index: number, row: ISelection) => row.value;\n\n ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n\n if (changes.users) {\n this.refreshBody();\n this.emitBeforeViewRender();\n }\n }\n\n getDayColumnWidth(eventRowContainer: HTMLElement): number {\n return Math.floor(eventRowContainer.offsetWidth / this.users.length);\n }\n\n dragMove(dayEvent: WeekViewTimeEvent, dragEvent: DragMoveEvent) {\n if (this.snapDraggedEvents) {\n const newUser = this.getDraggedUserColumn(dayEvent, dragEvent.x);\n const newEventTimes = this.getDragMovedEventTimes(\n dayEvent,\n { ...dragEvent, x: 0 },\n this.dayColumnWidth,\n true\n );\n const originalEvent = dayEvent.event;\n const adjustedEvent = {\n ...originalEvent,\n ...newEventTimes,\n meta: { ...originalEvent.meta, user: newUser },\n };\n const tempEvents = this.events.map((event) => {\n if (event === originalEvent) {\n return adjustedEvent;\n }\n return event;\n });\n this.restoreOriginalEvents(\n tempEvents,\n new Map([[adjustedEvent, originalEvent]])\n );\n }\n this.dragAlreadyMoved = true;\n }\n\n dragEnded(\n weekEvent: WeekViewAllDayEvent | WeekViewTimeEvent,\n dragEndEvent: DragEndEvent,\n dayWidth: number,\n useY = false\n ) {\n super.dragEnded(\n weekEvent,\n {\n ...dragEndEvent,\n x: 0,\n },\n dayWidth,\n useY\n );\n const newUser = this.getDraggedUserColumn(weekEvent, dragEndEvent.x);\n if (newUser && newUser !== weekEvent.event.meta.user) {\n this.userChanged.emit({ event: weekEvent.event, newUser });\n }\n }\n\n protected getWeekView(events: CalendarEvent[]) {\n return this.utils.getWeekView({\n events,\n users: this.users,\n viewDate: this.viewDate,\n weekStartsOn: this.weekStartsOn,\n excluded: this.excludeDays,\n precision: this.precision,\n absolutePositionedEvents: true,\n hourSegments: this.hourSegments,\n dayStart: {\n hour: this.dayStartHour,\n minute: this.dayStartMinute,\n },\n dayEnd: {\n hour: this.dayEndHour,\n minute: this.dayEndMinute,\n },\n segmentHeight: this.hourSegmentHeight,\n weekendDays: this.weekendDays,\n ...getWeekViewPeriod(\n this.dateAdapter,\n this.viewDate,\n this.weekStartsOn,\n this.excludeDays,\n this.daysInWeek\n ),\n });\n }\n\n private getDraggedUserColumn(\n dayEvent: WeekViewTimeEvent | WeekViewAllDayEvent,\n xPixels: number\n ) {\n const columnsMoved = Math.round(xPixels / this.dayColumnWidth);\n const currentColumnIndex = this.view.users.findIndex(\n (user) => user === dayEvent.event.meta.user\n );\n const newIndex = currentColumnIndex + columnsMoved;\n return this.view.users[newIndex];\n }\n}\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n/*\\n =================================================================================================\\n general layout variables\\n =================================================================================================\\n*/\\n\\n/* main menu that contains the modules: console, sms, email, etc */\\n\\n/* secondary menu that contains the menu for each module */\\n\\n/*.title-color span {\\n color: #000000 !important;\\n}*/\\n\\n.day-calendar-container {\\n width: 100%;\\n overflow-y: auto;\\n}\\n\\nmwl-day-view-scheduler {\\n display: block;\\n}\\n\\n.fit-content-width {\\n width: -webkit-fit-content;\\n width: -moz-fit-content;\\n width: fit-content;\\n}\\n\\n.cal-month-view .cal-open-day-events, .cal-week-view .cal-event {\\n color: #1C2428;\\n}\\n\\n.cal-month-view .cal-header, .cal-week-view .cal-day-headers {\\n padding-right: 5px;\\n}\\n\\n.cal-week-view .cal-day-headers .cal-header,\\n.cal-time-events .cal-day-columns .cal-day-column {\\n min-width: 100px !important;\\n}\\n\\n.month-view-height .cal-month-view .cal-days, .day-view-height .cal-week-view .cal-time-events {\\n height: 100%;\\n max-height: calc(100vh - 295px - 36px);\\n overflow-y: scroll;\\n}\\n\\n.week-view-height .cal-week-view .cal-time-events {\\n height: 100%;\\n max-height: calc(100vh - 295px - 62px);\\n overflow-y: scroll;\\n}\\n\\n.cal-day-columns {\\n height: 100%;\\n}\\n\\n::-webkit-scrollbar {\\n height: 8px;\\n}\\n\\n.cal-current-time-marker {\\n height: 3px;\\n background: linear-gradient(270deg, #ec268d, #1f55dd);\\n background-size: 400% 400%;\\n -webkit-animation: BackgroundFade 5s ease infinite;\\n animation: BackgroundFade 5s ease infinite;\\n}\\n\\n@-webkit-keyframes BackgroundFade {\\n 0% {\\n background-position: 0 50%;\\n }\\n 50% {\\n background-position: 100% 50%;\\n }\\n 100% {\\n background-position: 0 50%;\\n }\\n}\\n\\n@keyframes BackgroundFade {\\n 0% {\\n background-position: 0 50%;\\n }\\n 50% {\\n background-position: 100% 50%;\\n }\\n 100% {\\n background-position: 0 50%;\\n }\\n}\\n\\n.cell-totals {\\n margin: 5px;\\n text-align: center;\\n}\\n\\n.badge {\\n margin-right: 5px;\\n}\\n\\n.cal-disabled, .cal-disabled:hover {\\n background-color: grey !important;\\n cursor: not-allowed;\\n}\\n\\n.cal-gc-event, .cal-gc-event:hover {\\n background-color: firebrick !important;\\n cursor: not-allowed;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jYWxlbmRhcnMvc2NoZWR1bGVyL0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcc2Nzc1xcbWFuYWdlbWVudFxcX2NvbG9yLXNjaGVtZS5zY3NzIiwic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL2NhbGVuZGFycy9zY2hlZHVsZXIvc2NoZWR1bGVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL2NhbGVuZGFycy9zY2hlZHVsZXIvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY2FsZW5kYXJzL3NjaGVkdWxlci9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcbWFuYWdlbWVudFxcc2hhcmVkXFxjb21wb25lbnRzXFxjYWxlbmRhcnNcXHNjaGVkdWxlclxcc2NoZWR1bGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTtFQUNFLGNBakJPO0FDQ1Q7O0FEbUJBO0VBQ0UseUJBckJPO0FDS1Q7O0FEbUJBO0VBQ0UsY0F4Qks7QUNRUDs7QURtQkE7RUFDRSx5QkE1Qks7QUNZUDs7QURtQkE7RUFDRSxjQS9CVztBQ2ViOztBRG1CQTtFQUNFLHlCQW5DVztBQ21CYjs7QURtQkE7RUFDRSxjQXJDVTtBQ3FCWjs7QURtQkE7RUFDRSx5QkF6Q1U7QUN5Qlo7O0FEbUJBO0VBQ0UsY0FsRE07QUNrQ1I7O0FEbUJBO0VBQ0UseUJBdERNO0FDc0NSOztBRG1CQTtFQUNFLGNBcERjO0FDb0NoQjs7QURtQkE7RUFDRSx5QkF4RGM7QUN3Q2hCOztBRG1CQTtFQUNFLGNBM0RhO0FDMkNmOztBRG1CQTtFQUNFLHlCQS9EYTtBQytDZjs7QURtQkE7RUFDRSxjQXJFVTtBQ3FEWjs7QURtQkE7RUFDRSx5QkFuRVE7QUNtRFY7O0FEbUJBO0VBQ0UseUJBdEVhO0FDc0RmOztBRG1CQTtFQUNFLGNBMUVhO0FDMERmOztBRG1CQTtFQUNFLHlCQWhGYTtBQ2dFZjs7QURtQkE7RUFDRSxjQXBGYTtBQ29FZjs7QURtQkE7RUFDRSxjQXpGTTtBQ3lFUjs7QURtQkE7RUFDRSxjQXhGSztBQ3dFUDs7QURtQkE7RUFDRSx5QkE1Rks7QUM0RVA7O0FEbUJBO0VBQ0UsY0EvRlU7QUMrRVo7O0FEbUJBO0VBQ0UseUJBbkdVO0FDbUZaOztBQ2xHQTs7OztDQUFBOztBQU04QixrRUFBQTs7QUFDRiwwREFBQTs7QUNKNUI7O0VBQUE7O0FBSUE7RUFDRSxXQUFBO0VBQ0EsZ0JBQUE7QUZ3R0Y7O0FFckdBO0VBQ0UsY0FBQTtBRndHRjs7QUVyR0E7RUFDRSwwQkFBQTtFQUFBLHVCQUFBO0VBQUEsa0JBQUE7QUZ3R0Y7O0FFckdBO0VBQ0UsY0hwQk87QUM0SFQ7O0FFbkdBO0VBQ0Usa0JEZGdCO0FEb0hsQjs7QUVuR0E7O0VBRUUsMkJBQUE7QUZzR0Y7O0FFbkdBO0VBQ0UsWUFBQTtFQUNBLHNDQUFBO0VBQ0Esa0JBQUE7QUZzR0Y7O0FFbkdBO0VBQ0UsWUFBQTtFQUNBLHNDQUFBO0VBQ0Esa0JBQUE7QUZzR0Y7O0FFbkdBO0VBQ0UsWUFBQTtBRnNHRjs7QUVuR0E7RUFDRSxXQUFBO0FGc0dGOztBRWpHQTtFQUNFLFdBQUE7RUFDQSxxREFBQTtFQUNBLDBCQUFBO0VBQ0Esa0RBQUE7VUFBQSwwQ0FBQTtBRm9HRjs7QUVsR0U7RUFDRTtJQUNFLDBCQUFBO0VGb0dKO0VFakdFO0lBQ0UsNkJBQUE7RUZtR0o7RUVoR0U7SUFDRSwwQkFBQTtFRmtHSjtBQUNGOztBRTdHRTtFQUNFO0lBQ0UsMEJBQUE7RUZvR0o7RUVqR0U7SUFDRSw2QkFBQTtFRm1HSjtFRWhHRTtJQUNFLDBCQUFBO0VGa0dKO0FBQ0Y7O0FFOUZBO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0FGaUdGOztBRTlGQTtFQUNFLGlCQUFBO0FGaUdGOztBRTlGQTtFQUNFLGlDQUFBO0VBQ0EsbUJBQUE7QUZpR0Y7O0FFOUZBO0VBQ0Usc0NBQUE7RUFDQSxtQkFBQTtBRmlHRiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY2FsZW5kYXJzL3NjaGVkdWxlci9zY2hlZHVsZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkd2hpdGU6ICNGRkZGRkY7XHJcbiRkYXJrZXI6ICMxQzI0Mjg7XHJcbiRkYXJrOiAjMzc0NzRGO1xyXG4kZ3JheS1saWdodDogI0VCRjFGNDtcclxuJGdyYXktbWVkaXVtOiAjZTBlMGUwO1xyXG4kZ3JheS1kYXJrOiAjOEI5RUE3O1xyXG4kcHJpbWFyeS1jb2xvcjogI0ZGNDA4MTtcclxuJGFjY2VudC1jb2xvcjogIzIxOTZGMztcclxuJGFjY2VudC1jb2xvci0yOiAjMUFDNjczO1xyXG4kZXJyb3I6ICNGRjQxMDA7XHJcbiRidXJudC1zaWVubmE6ICNFRTdENUE7XHJcbiRzcGluZGxlOiAjQzhFNUVGO1xyXG4kZWFzdGVybi1ibHVlOiAjMTg5N0MzO1xyXG4kd2lsZC1zdHJhd2JlcnJ5OiAjRkY0MDgxO1xyXG4kd2FybjogI2Y0NDMzNjtcclxuJGRhcmstYmx1ZTogIzJhNjM3NztcclxuXHJcbi50ZXh0LWRhcmtlciB7XHJcbiAgY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi5ia2ctZGFya2VyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4udGV4dC1kYXJrIHtcclxuICBjb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi5ia2ctZGFyayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0ZXIge1xyXG4gIGNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmJrZy1saWdodGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLnRleHQtbGlnaHQge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSB7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJrZy13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1wcmltYXJ5IHtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWFjY2VudCB7XHJcbiAgY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctYWNjZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1ncmF5LWRhcmsge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLXNwaW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzcGluZGxlO1xyXG59XHJcblxyXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLnRleHQtZWFzdGVybi1ibHVlIHtcclxuICBjb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLmJrZy1idXJudC1zaWVubmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWJ1cm50LXNpZW5uYSB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWVycm9yIHtcclxuICBjb2xvcjogJGVycm9yO1xyXG59XHJcblxyXG4udGV4dC13YXJuIHtcclxuICBjb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi5ia2ctd2FybiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi50ZXh0LWRhcmstYmx1ZSB7XHJcbiAgY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctZGFyay1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcbiIsIi50ZXh0LWRhcmtlciB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uYmtnLWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzI0Mjg7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cblxuLmJrZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0Rjtcbn1cblxuLnRleHQtbGlnaHRlciB7XG4gIGNvbG9yOiAjRUJGMUY0O1xufVxuXG4uYmtnLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMUY0O1xufVxuXG4udGV4dC1saWdodCB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhCOUVBNztcbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLmJrZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuLmJrZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbi5ia2ctYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuLnRleHQtZ3JheS1kYXJrIHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctc3BpbmRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEU1RUY7XG59XG5cbi5ia2ctZWFzdGVybi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn1cblxuLnRleHQtZWFzdGVybi1ibHVlIHtcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5ia2ctYnVybnQtc2llbm5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtYnVybnQtc2llbm5hIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWVycm9yIHtcbiAgY29sb3I6ICNGRjQxMDA7XG59XG5cbi50ZXh0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLmJrZy13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLnRleHQtZGFyay1ibHVlIHtcbiAgY29sb3I6ICMyYTYzNzc7XG59XG5cbi5ia2ctZGFyay1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNjM3Nztcbn1cblxuLypcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBnZW5lcmFsIGxheW91dCB2YXJpYWJsZXNcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuKi9cbi8qIG1haW4gbWVudSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGVzOiBjb25zb2xlLCBzbXMsIGVtYWlsLCBldGMgKi9cbi8qIHNlY29uZGFyeSBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1lbnUgZm9yIGVhY2ggbW9kdWxlICovXG4vKi50aXRsZS1jb2xvciBzcGFuIHtcbiAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbn0qL1xuLmRheS1jYWxlbmRhci1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxubXdsLWRheS12aWV3LXNjaGVkdWxlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZml0LWNvbnRlbnQtd2lkdGgge1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG5cbi5jYWwtbW9udGgtdmlldyAuY2FsLW9wZW4tZGF5LWV2ZW50cywgLmNhbC13ZWVrLXZpZXcgLmNhbC1ldmVudCB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uY2FsLW1vbnRoLXZpZXcgLmNhbC1oZWFkZXIsIC5jYWwtd2Vlay12aWV3IC5jYWwtZGF5LWhlYWRlcnMge1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG59XG5cbi5jYWwtd2Vlay12aWV3IC5jYWwtZGF5LWhlYWRlcnMgLmNhbC1oZWFkZXIsXG4uY2FsLXRpbWUtZXZlbnRzIC5jYWwtZGF5LWNvbHVtbnMgLmNhbC1kYXktY29sdW1uIHtcbiAgbWluLXdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xufVxuXG4ubW9udGgtdmlldy1oZWlnaHQgLmNhbC1tb250aC12aWV3IC5jYWwtZGF5cywgLmRheS12aWV3LWhlaWdodCAuY2FsLXdlZWstdmlldyAuY2FsLXRpbWUtZXZlbnRzIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjk1cHggLSAzNnB4KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4ud2Vlay12aWV3LWhlaWdodCAuY2FsLXdlZWstdmlldyAuY2FsLXRpbWUtZXZlbnRzIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjk1cHggLSA2MnB4KTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4uY2FsLWRheS1jb2x1bW5zIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgaGVpZ2h0OiA4cHg7XG59XG5cbi5jYWwtY3VycmVudC10aW1lLW1hcmtlciB7XG4gIGhlaWdodDogM3B4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAjZWMyNjhkLCAjMWY1NWRkKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MDAlIDQwMCU7XG4gIGFuaW1hdGlvbjogQmFja2dyb3VuZEZhZGUgNXMgZWFzZSBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgQmFja2dyb3VuZEZhZGUge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA1MCU7XG4gIH1cbiAgNTAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDUwJTtcbiAgfVxufVxuXG4uY2VsbC10b3RhbHMge1xuICBtYXJnaW46IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYmFkZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLmNhbC1kaXNhYmxlZCwgLmNhbC1kaXNhYmxlZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGdyZXkgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmNhbC1nYy1ldmVudCwgLmNhbC1nYy1ldmVudDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGZpcmVicmljayAhaW1wb3J0YW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufSIsIi8qXHJcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gIGdlbmVyYWwgbGF5b3V0IHZhcmlhYmxlc1xyXG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuKi9cclxuJGhlYWRlci1oZWlnaHQ6IDYwcHg7XHJcbiRzaWRlbmF2LW1vZHVsZXMtd2lkdGg6IDVyZW07IC8qIG1haW4gbWVudSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGVzOiBjb25zb2xlLCBzbXMsIGVtYWlsLCBldGMgKi9cclxuJHNpZGVuYXYtbWVudS13aWR0aDogMTJyZW07IC8qIHNlY29uZGFyeSBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1lbnUgZm9yIGVhY2ggbW9kdWxlICovXHJcbiRzaWRlbmF2LWNvbnRhaW5lci1wYWRkaW5nOiAxcmVtIDByZW07XHJcblxyXG4kYnJlYWtwb2ludC10YWJsZXQ6IDc2OHB4O1xyXG4kYnJlYWtwb2ludC1sYXB0b3A6IDEwMjRweDtcclxuXHJcbiRzY3JvbGxiYXItd2lkdGg6IDVweDtcclxuXHJcbiRhcHBzLWhlYWRlci1oZWlnaHQ6IDRyZW07XHJcbiRhcHBzLWZvb3Rlci1sb2dvLWhlaWdodDogMnJlbTtcclxuJGFwcHMtZm9vdGVyLWxpbmstaGVpZ2h0OiAxLjVyZW07XHJcblxyXG4kb2ZmaWNlLWluZm8taGVpZ2h0OiAyMHJlbTtcclxuJG9mZmljZS13b3JraW5nLWhvdXJzLWhlaWdodDogNDByZW07XHJcbiRvZmZpY2Utb3BlcmF0b3JzLXNlcnZpY2VzLWhlaWdodDogNDByZW07XHJcbiIsIkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL3Njc3MvbWFuYWdlbWVudC9fY29sb3Itc2NoZW1lLnNjc3MnO1xyXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9zY3NzL21hbmFnZW1lbnQvX3ZhcmlhYmxlcy5zY3NzJztcclxuXHJcbi8qLnRpdGxlLWNvbG9yIHNwYW4ge1xyXG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XHJcbn0qL1xyXG5cclxuLmRheS1jYWxlbmRhci1jb250YWluZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbn1cclxuXHJcbm13bC1kYXktdmlldy1zY2hlZHVsZXIge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uZml0LWNvbnRlbnQtd2lkdGgge1xyXG4gIHdpZHRoOiBmaXQtY29udGVudDtcclxufVxyXG5cclxuLmNhbC1tb250aC12aWV3IC5jYWwtb3Blbi1kYXktZXZlbnRzLCAuY2FsLXdlZWstdmlldyAuY2FsLWV2ZW50IHtcclxuICBjb2xvcjogJGRhcmtlcjtcclxufVxyXG5cclxuLy9zdGFydCBzY3JvbGxcclxuXHJcbi5jYWwtbW9udGgtdmlldyAuY2FsLWhlYWRlciwgLmNhbC13ZWVrLXZpZXcgLmNhbC1kYXktaGVhZGVycyB7XHJcbiAgcGFkZGluZy1yaWdodDogJHNjcm9sbGJhci13aWR0aDtcclxufVxyXG5cclxuLmNhbC13ZWVrLXZpZXcgLmNhbC1kYXktaGVhZGVycyAuY2FsLWhlYWRlcixcclxuLmNhbC10aW1lLWV2ZW50cyAuY2FsLWRheS1jb2x1bW5zIC5jYWwtZGF5LWNvbHVtbiB7XHJcbiAgbWluLXdpZHRoOiAxMDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubW9udGgtdmlldy1oZWlnaHQgLmNhbC1tb250aC12aWV3IC5jYWwtZGF5cywgLmRheS12aWV3LWhlaWdodCAuY2FsLXdlZWstdmlldyAuY2FsLXRpbWUtZXZlbnRzIHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDI5NXB4IC0gMzZweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG59XHJcblxyXG4ud2Vlay12aWV3LWhlaWdodCAuY2FsLXdlZWstdmlldyAuY2FsLXRpbWUtZXZlbnRzIHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDI5NXB4IC0gNjJweCk7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG59XHJcblxyXG4uY2FsLWRheS1jb2x1bW5zIHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gIGhlaWdodDo4cHg7XHJcbn1cclxuXHJcbi8vZW5kIHNjcm9sbCBcclxuXHJcbi5jYWwtY3VycmVudC10aW1lLW1hcmtlciB7XHJcbiAgaGVpZ2h0OiAzcHg7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDI3MGRlZywgI2VjMjY4ZCwgIzFmNTVkZCk7XHJcbiAgYmFja2dyb3VuZC1zaXplOiA0MDAlIDQwMCU7XHJcbiAgYW5pbWF0aW9uOiBCYWNrZ3JvdW5kRmFkZSA1cyBlYXNlIGluZmluaXRlO1xyXG5cclxuICBAa2V5ZnJhbWVzIEJhY2tncm91bmRGYWRlIHtcclxuICAgIDAlIHtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA1MCU7XHJcbiAgICB9XHJcblxyXG4gICAgNTAlIHtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XHJcbiAgICB9XHJcblxyXG4gICAgMTAwJSB7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNlbGwtdG90YWxzIHtcclxuICBtYXJnaW46IDVweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5iYWRnZSB7XHJcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbn1cclxuXHJcbi5jYWwtZGlzYWJsZWQsIC5jYWwtZGlzYWJsZWQ6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGdyZXkgIWltcG9ydGFudDtcclxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG59XHJcblxyXG4uY2FsLWdjLWV2ZW50LCAuY2FsLWdjLWV2ZW50OmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBmaXJlYnJpY2sgIWltcG9ydGFudDtcclxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG59XHJcbiJdfQ== */\"","import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, OnInit, OnChanges, SimpleChanges, ViewChild, ElementRef, AfterViewInit, ChangeDetectorRef, Output, EventEmitter, DoCheck } from '@angular/core';\r\nimport { CalendarDayViewBeforeRenderEvent, CalendarEvent, CalendarEventTimesChangedEvent, CalendarMonthViewDay, CalendarView, CalendarWeekViewBeforeRenderEvent, DAYS_OF_WEEK } from 'angular-calendar';\r\nimport { addHours, differenceInMinutes, isSameDay, isSameMinute, isSameMonth, startOfDay, startOfHour } from 'date-fns';\r\nimport { ISelection } from '../../../../core/interfaces/common/selection';\r\nimport * as moment from 'moment';\r\nimport { select, Store } from '@ngrx/store';\r\nimport * as fromI18n from '../../../../../i18n/reducers';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { MatDialog } from '@angular/material';\r\nimport { AppointmentComponent } from '../../dialogs/appointment/appointment.component';\r\nimport { IAppointment } from '../../../../core/interfaces/customer/appointment';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { GetNewDateFromDateAndTime } from '../../../../core/functions/date-function';\r\nimport { IGoogleEvents } from '../../../../core/interfaces/common/google-events';\r\nimport { WeekViewHourSegment } from 'calendar-utils';\r\n\r\ninterface EventGroupMeta {\r\n type: string;\r\n}\r\n\r\n// weekStartsOn option is ignored when using moment, as it needs to be configured globally for the moment locale\r\n//moment.updateLocale('en', {\r\n// week: {\r\n// dow: DAYS_OF_WEEK.MONDAY,\r\n// doy: 0,\r\n// },\r\n//});\r\n\r\n@Component({\r\n selector: 'app-scheduler',\r\n templateUrl: './scheduler.component.html',\r\n styleUrls: ['./scheduler.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None // hack to get the styles to apply locally\r\n})\r\n\r\nexport class SchedulerComponent implements OnInit, OnChanges, AfterViewInit {\r\n @Input() operators: ISelection[] = [];\r\n @Input() events: CalendarEvent[] = [];\r\n @Input() googleEvents: IGoogleEvents[] = [];\r\n @Input() officeWorkSchedules: IOfficeOperatorWorkSchedule[];\r\n @Input() operatorWorkSchedules: any;\r\n\r\n @Input() view: CalendarView;\r\n @Input() viewDate: Date;\r\n\r\n @Output() viewChange = new EventEmitter();\r\n @Output() viewDateChange = new EventEmitter();\r\n\r\n @ViewChild('scrollContainer', { static: true }) scrollContainer: ElementRef;\r\n\r\n //public viewDate = new Date();\r\n\r\n public dayStartHour: number;\r\n public dayStartMinute: number;\r\n public dayEndHour: number;\r\n public dayEndMinute: number;\r\n\r\n public weekStartsOn: number = DAYS_OF_WEEK.MONDAY;\r\n\r\n public operatorName: string = '';\r\n\r\n public activeDayIsOpen: boolean = false;\r\n\r\n public locale: string = 'en';\r\n public localeSbj: BehaviorSubject = new BehaviorSubject('');\r\n public refresh: Subject = new Subject();\r\n\r\n constructor(private cdr: ChangeDetectorRef,\r\n private readonly store: Store,\r\n private dialog: MatDialog\r\n ) {\r\n this.store.pipe(select(fromI18n.getCurrentLanguage)).subscribe(x => {\r\n this.localeSbj.next(x);\r\n });\r\n\r\n this.localeSbj.subscribe(x => {\r\n this.locale = x;\r\n this.refresh.next();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.officeWorkSchedules != undefined) {\r\n this.officeWorkSchedules = changes.officeWorkSchedules.currentValue;\r\n\r\n this.loadOfficeWorkSchedule();\r\n }\r\n\r\n if (changes.operators != undefined) {\r\n this.operators = changes.operators.currentValue;\r\n this.loadOperatorName();\r\n this.activeDayIsOpen = false;\r\n }\r\n\r\n if (changes.events != undefined) {\r\n this.events = changes.events.currentValue;\r\n }\r\n\r\n if (changes.googleEvents != undefined) {\r\n this.googleEvents = changes.googleEvents.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.scrollToCurrentView();\r\n }\r\n\r\n viewChanged() {\r\n this.cdr.detectChanges();\r\n this.scrollToCurrentView();\r\n }\r\n\r\n loadOfficeWorkSchedule() {\r\n var allStartHour = this.officeWorkSchedules.map(function (x) {\r\n const date: Date = GetNewDateFromDateAndTime(new Date(), x.startHour);\r\n\r\n return date;\r\n });\r\n\r\n var earliestStartHour = new Date(Math.min.apply(null, allStartHour));\r\n\r\n var allEndHour = this.officeWorkSchedules.map(function (x) {\r\n const date: Date = GetNewDateFromDateAndTime(new Date(), x.endHour);\r\n\r\n return date;\r\n });\r\n\r\n var latestStartHour = new Date(Math.max.apply(null, allEndHour));\r\n\r\n this.dayStartHour = earliestStartHour.getHours();\r\n this.dayStartMinute = earliestStartHour.getMinutes();\r\n this.dayEndHour = latestStartHour.getHours();\r\n this.dayEndMinute = latestStartHour.getMinutes();\r\n }\r\n\r\n loadOperatorName() {\r\n //console.log(\"operators=\", this.operators, this.view);\r\n this.operatorName = this.operators.length > 0 ? this.operators[0].text : '';\r\n }\r\n\r\n private scrollToCurrentView() {\r\n if (this.view === CalendarView.Week || CalendarView.Day) {\r\n // each hour is 60px high, so to get the pixels to scroll it's just the amount of minutes since midnight\r\n const minutesSinceStartOfDay = differenceInMinutes(\r\n startOfHour(new Date()),\r\n startOfDay(new Date())\r\n );\r\n const headerHeight = this.view === CalendarView.Week ? 60 : 0;\r\n this.scrollContainer.nativeElement.scrollTop =\r\n minutesSinceStartOfDay + headerHeight;\r\n }\r\n }\r\n\r\n beforeMonthViewRender({\r\n body,\r\n }: {\r\n body: CalendarMonthViewDay[];\r\n }): void {\r\n // month view has a different UX from the week and day view so we only really need to group by the type\r\n body.forEach((cell) => {\r\n const groups = {};\r\n cell.events.forEach((event: CalendarEvent) => {\r\n groups[event.meta.type] = groups[event.meta.type] || [];\r\n groups[event.meta.type].push(event);\r\n });\r\n cell['eventGroups'] = Object.entries(groups);\r\n });\r\n }\r\n\r\n beforeDayViewRender(body: CalendarDayViewBeforeRenderEvent): void {\r\n let index = -1;\r\n\r\n body.hourColumns.forEach(hourCol => {\r\n index = index + 1;\r\n\r\n hourCol.hours.forEach(hour => {\r\n hour.segments.forEach(segment => {\r\n //if (!this.segmentIsValid(index, segment.date)) {\r\n // segment.cssClass = 'cal-disabled';\r\n //}\r\n\r\n this.checkSegment(segment, index);\r\n })\r\n })\r\n });\r\n }\r\n\r\n beforeWeekViewRender(body: CalendarWeekViewBeforeRenderEvent): void {\r\n body.hourColumns.forEach(hourCol => {\r\n hourCol.hours.forEach(hour => {\r\n hour.segments.forEach(segment => {\r\n //if (!this.segmentIsValid(0, segment.date)) {\r\n // segment.cssClass = 'cal-disabled';\r\n //}\r\n\r\n this.checkSegment(segment, 0);\r\n })\r\n })\r\n });\r\n }\r\n\r\n eventTimesChanged({ event, newStart, newEnd, }: CalendarEventTimesChangedEvent): void {\r\n event.start = newStart;\r\n event.end = newEnd;\r\n this.events = [...this.events];\r\n }\r\n\r\n userChanged({ event, newUser }) {\r\n event.meta.user = newUser;\r\n this.events = [...this.events];\r\n }\r\n\r\n dayClicked({\r\n date,\r\n events,\r\n }: {\r\n date: Date;\r\n events: CalendarEvent[];\r\n }): void {\r\n if (isSameMonth(date, this.viewDate)) {\r\n if (\r\n (isSameDay(this.viewDate, date) && this.activeDayIsOpen === true) ||\r\n events.length === 0\r\n ) {\r\n this.activeDayIsOpen = false;\r\n } else {\r\n this.activeDayIsOpen = true;\r\n this.viewDate = date;\r\n }\r\n }\r\n }\r\n\r\n eventClicked({ event }: { event: CalendarEvent }): void {\r\n this.openAppointmentDialog(event.meta.appointment);\r\n }\r\n\r\n hourSegmentClicked(event) {\r\n if (!(event.sourceEvent.target.className.includes('cal-disabled')) &&\r\n !(event.sourceEvent.target.className.includes('cal-gc-event'))) {\r\n const date: Date = event.date;\r\n\r\n const startHour = (\"00\" + (date.getHours())).slice(-2) + \":\" + (\"00\" + date.getMinutes()).slice(-2);\r\n\r\n const appointment: IAppointment = {\r\n id: null,\r\n customerCode: null,\r\n date: date,\r\n startHour: startHour,\r\n endHour: null,\r\n notes: null,\r\n createdOnUtc: new Date,\r\n mainAppointmentId: null,\r\n clientAppointmentId: null,\r\n clientStartHour: null,\r\n clientEndHour: null,\r\n office: null,\r\n service: null,\r\n operator: null,\r\n status: null,\r\n client: null,\r\n }\r\n\r\n //this.openAppointmentDialog(appointment);\r\n }\r\n }\r\n\r\n openAppointmentDialog(appointment: IAppointment) {\r\n this.dialog.open(AppointmentComponent, {\r\n width: \"80rem\",\r\n minWidth: \"30rem\",\r\n data: appointment\r\n });\r\n }\r\n\r\n //segmentIsValid(index: number, date: Date) {\r\n // let isValid: boolean = false;\r\n // const day = date.getDay();\r\n\r\n // if (this.officeWorkSchedules.length > 0) {\r\n // const workSchedules = this.officeWorkSchedules.filter(x => x.dayOfTheWeek == day);\r\n // if (workSchedules.length > 0) {\r\n // let exitLoop: boolean = false;\r\n\r\n // workSchedules.forEach(schedule => {\r\n // if (exitLoop) {\r\n // return;\r\n // }\r\n\r\n // const startHour = GetNewDateFromDateAndTime(date, schedule.startHour);\r\n // const endHour = GetNewDateFromDateAndTime(date, schedule.endHour);\r\n\r\n // if (startHour <= date && date <= endHour) {\r\n // isValid = true;\r\n // exitLoop = true;\r\n // }\r\n // else {\r\n // isValid = false;\r\n // }\r\n // });\r\n // }\r\n\r\n // if (isValid && this.operatorWorkSchedules != null && this.operatorWorkSchedules.length > 0) {\r\n // const operatorWorkSchedules: IOfficeOperatorWorkSchedule[] = this.operatorWorkSchedules[index].operatorWorkSchedules;\r\n // if (operatorWorkSchedules.length > 0) {\r\n // const workSchedules = operatorWorkSchedules.filter(x => x.dayOfTheWeek == day);\r\n // if (workSchedules.length > 0) {\r\n // let exitLoop: boolean = false;\r\n\r\n // workSchedules.forEach(schedule => {\r\n // if (exitLoop) {\r\n // return;\r\n // }\r\n\r\n // const startHour = GetNewDateFromDateAndTime(date, schedule.startHour);\r\n // const endHour = GetNewDateFromDateAndTime(date, schedule.endHour);\r\n\r\n // if (startHour <= date && date <= endHour) {\r\n // isValid = true;\r\n // exitLoop = true;\r\n // }\r\n // else {\r\n // isValid = false;\r\n // }\r\n // });\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n // return isValid;\r\n //}\r\n\r\n checkSegment(segment: WeekViewHourSegment, index: number = 0) {\r\n const date = segment.date;\r\n\r\n if (this.officeWorkSchedules.length > 0) {\r\n const workSchedules = this.officeWorkSchedules.filter(x => x.dayOfTheWeek == date.getDay());\r\n\r\n if (workSchedules.length == 0) {\r\n segment.cssClass = 'cal-disabled';\r\n\r\n return;\r\n }\r\n\r\n const schedule = workSchedules.find(x =>\r\n GetNewDateFromDateAndTime(date, x.startHour) <= date && date <= GetNewDateFromDateAndTime(date, x.endHour));\r\n\r\n if (!schedule) {\r\n segment.cssClass = 'cal-disabled';\r\n\r\n return;\r\n }\r\n\r\n if (this.operatorWorkSchedules != null && this.operatorWorkSchedules.length > 0) {\r\n const operatorWorkSchedules: IOfficeOperatorWorkSchedule[] = this.operatorWorkSchedules[index].operatorWorkSchedules;\r\n if (operatorWorkSchedules.length > 0) {\r\n const workSchedules = operatorWorkSchedules.filter(x => x.dayOfTheWeek == date.getDay());\r\n if (workSchedules.length == 0) {\r\n segment.cssClass = 'cal-disabled';\r\n\r\n return;\r\n }\r\n\r\n const schedule = workSchedules.find(x =>\r\n GetNewDateFromDateAndTime(date, x.startHour) <= date && date <= GetNewDateFromDateAndTime(date, x.endHour));\r\n\r\n if (!schedule) {\r\n segment.cssClass = 'cal-disabled';\r\n\r\n return;\r\n }\r\n }\r\n }\r\n\r\n const operator: ISelection = this.operators[index];\r\n const googleEvents = this.googleEvents.find(x => x.operator.id == operator.value);\r\n\r\n if (googleEvents.events.length > 0) {\r\n const event = googleEvents.events.find(x => new Date(x.start.dateTime) <= date && date < new Date(x.end.dateTime));\r\n\r\n if (event) {\r\n segment.cssClass = 'cal-gc-event';\r\n\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","export default \".title {\\n color: #2A6377;\\n}\\n\\n.calendar {\\n border: 1px solid;\\n border-radius: 0.313rem;\\n padding: 1px 10px;\\n}\\n\\n#previous, #next, .calendar {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jYWxlbmRhcnMvdGltZS1zbG90cy1jYWxlbmRhci9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcbWFuYWdlbWVudFxcc2hhcmVkXFxjb21wb25lbnRzXFxjYWxlbmRhcnNcXHRpbWUtc2xvdHMtY2FsZW5kYXJcXHRpbWUtc2xvdHMtY2FsZW5kYXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY2FsZW5kYXJzL3RpbWUtc2xvdHMtY2FsZW5kYXIvdGltZS1zbG90cy1jYWxlbmRhci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQUE7QUNDRjs7QURFQTtFQUNFLGlCQUFBO0VBQ0EsdUJBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsZUFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jYWxlbmRhcnMvdGltZS1zbG90cy1jYWxlbmRhci90aW1lLXNsb3RzLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRpdGxlIHtcclxuICBjb2xvcjogIzJBNjM3NztcclxufVxyXG5cclxuLmNhbGVuZGFyIHtcclxuICBib3JkZXI6IDFweCBzb2xpZDtcclxuICBib3JkZXItcmFkaXVzOiAwLjMxM3JlbTtcclxuICBwYWRkaW5nOiAxcHggMTBweDtcclxufVxyXG5cclxuI3ByZXZpb3VzLCAjbmV4dCwgLmNhbGVuZGFyIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuIiwiLnRpdGxlIHtcbiAgY29sb3I6ICMyQTYzNzc7XG59XG5cbi5jYWxlbmRhciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBib3JkZXItcmFkaXVzOiAwLjMxM3JlbTtcbiAgcGFkZGluZzogMXB4IDEwcHg7XG59XG5cbiNwcmV2aW91cywgI25leHQsIC5jYWxlbmRhciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn0iXX0= */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { CalendarView, DAYS_OF_WEEK } from 'angular-calendar';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { IAppointment } from '../../../../core/interfaces/customer/appointment';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { IOperator } from '../../../../core/interfaces/customer/operator';\r\nimport { ISettings } from '../../../../core/interfaces/customer/settings';\r\nimport { CalendarComponent } from '../../dialogs/calendar/calendar.component';\r\nimport * as fromI18n from '../../../../../i18n/reducers';\r\nimport { GetNextDay } from '../../../../core/functions/date-function';\r\nimport { PeriodType } from '../../../../core/constants/period-type.constants';\r\nimport { AgendaService } from '../../../../core/services/common/agenda.service';\r\nimport { ITimeSlotParameters } from '../../../../core/interfaces/common/time-slot-parameters';\r\n\r\n@Component({\r\n selector: 'app-time-slots-calendar',\r\n templateUrl: './time-slots-calendar.component.html',\r\n styleUrls: ['./time-slots-calendar.component.scss'],\r\n providers: [\r\n AgendaService\r\n ]\r\n})\r\nexport class TimeSlotsCalendarComponent implements OnInit {\r\n @Input() settings: ISettings = null;\r\n @Input() appointment: IAppointment = null;\r\n @Input() allSelectedOperators: IOperator[] = [];\r\n @Input() allOfficeOperatorWorkSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n\r\n @Output() editedData = new EventEmitter();\r\n\r\n public locale: string = 'en';\r\n public localeSbj: BehaviorSubject = new BehaviorSubject('');\r\n public refresh: Subject = new Subject();\r\n\r\n public weekStartsOn: number = DAYS_OF_WEEK.MONDAY;\r\n public view: CalendarView = CalendarView.Day;\r\n CalendarView = CalendarView;\r\n\r\n public selectedDate: Date = new Date();\r\n public minDate: Date = new Date();\r\n\r\n public appointmentDuration: number = 0;\r\n\r\n public componentLoaded: boolean = false;\r\n\r\n constructor(\r\n private readonly store: Store,\r\n private dialog: MatDialog,\r\n private agendaService: AgendaService\r\n ) {\r\n this.store.pipe(select(fromI18n.getCurrentLanguage)).subscribe(x => {\r\n this.localeSbj.next(x);\r\n });\r\n\r\n this.localeSbj.subscribe(x => {\r\n this.locale = x;\r\n this.refresh.next();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (this.settings == null || this.appointment == null || this.appointment.service == null) {\r\n return;\r\n }\r\n\r\n if (this.settings.minPeriodBeforeBooking > 0 && this.settings.minPeriodBeforeBookingType == PeriodType.Days) {\r\n var ms = new Date().getTime() + (86400000 * this.settings.minPeriodBeforeBooking);\r\n let minDate = new Date(ms);\r\n\r\n this.selectedDate = this.getNextAvailableDate(minDate.getDay(), minDate);\r\n }\r\n\r\n //console.log(\"selected date=\",this.selectedDate, this.appointment.date)\r\n\r\n if (this.appointment.date != null) this.selectedDate = new Date(this.appointment.date);\r\n\r\n this.getFirstAvailableDate();\r\n\r\n //this.componentLoaded = true;\r\n }\r\n\r\n getFirstAvailableDate() {\r\n const date: any = `${this.selectedDate.getFullYear()}-${this.selectedDate.getMonth() + 1}-${this.selectedDate.getDate()}`;\r\n\r\n const timeSlotParameters: ITimeSlotParameters = {\r\n customerCode: this.settings.customerCode,\r\n officeOperatorWorkSchedules: this.allOfficeOperatorWorkSchedule,\r\n exceptionDays: null,\r\n settings: this.settings,\r\n office: this.appointment.office,\r\n service: this.appointment.service,\r\n operators: this.allSelectedOperators,\r\n date: date,\r\n startHour: null,\r\n endHour: null\r\n };\r\n\r\n this.agendaService.getFirstAvailableDate(timeSlotParameters).subscribe(x => {\r\n this.selectedDate = new Date(x);\r\n\r\n this.componentLoaded = true;\r\n });\r\n }\r\n\r\n openCalendarDialog() {\r\n const dialogRef = this.dialog.open(CalendarComponent, {\r\n minWidth: \"30%\",\r\n data: this.selectedDate\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(response => {\r\n if (response == null) {\r\n return;\r\n }\r\n\r\n this.selectedDate = response;\r\n });\r\n }\r\n\r\n onEditedDate($event) {\r\n this.selectedDate = $event;\r\n }\r\n\r\n next() {\r\n this.selectedDate = this.getNextAvailableDate(this.selectedDate.getDay() + 1);\r\n \r\n //this.selectedDate = GetNextDay(this.selectedDate);\r\n }\r\n\r\n previous() {\r\n this.selectedDate = this.getPreviousAvailableDate(this.selectedDate.getDay() - 1);\r\n\r\n //this.selectedDate = GetNextDay(this.selectedDate, false);\r\n }\r\n\r\n onEditedData($event) {\r\n this.editedData.emit($event);\r\n }\r\n\r\n getNextAvailableDate(weekDay: number, date: Date = null): Date {\r\n //console.log(\"getNextAvailableDate\", weekDay, date);\r\n let schedules = this.allOfficeOperatorWorkSchedule.filter(x => x.officeId == this.appointment.office.id);\r\n schedules = schedules.sort((a, b) => (a.dayOfTheWeek < b.dayOfTheWeek ? -1 : 1));\r\n\r\n let selectedDate = GetNextDay(this.selectedDate);\r\n let day = selectedDate.getDate();\r\n\r\n if (date != null) {\r\n day = date.getDate();\r\n selectedDate = date;\r\n }\r\n\r\n //console.log(\"selectedDate\", selectedDate);\r\n\r\n if (weekDay == 7) {\r\n weekDay = 0;\r\n }\r\n\r\n if (schedules.findIndex(x => x.dayOfTheWeek == weekDay) < 0) {\r\n\r\n weekDay = weekDay + 1;\r\n let nexDate = GetNextDay(selectedDate);\r\n //console.log(\"no date found\", weekDay, nexDate);\r\n\r\n return this.getNextAvailableDate(weekDay, nexDate);\r\n }\r\n else {\r\n //console.log(\"date found\", new Date(selectedDate.getFullYear(), selectedDate.getMonth(), day), day);\r\n return new Date(selectedDate.getFullYear(), selectedDate.getMonth(), day);\r\n }\r\n }\r\n\r\n getPreviousAvailableDate(weekDay: number, date: Date = null): Date {\r\n let schedules = this.allOfficeOperatorWorkSchedule.filter(x => x.officeId == this.appointment.office.id);\r\n schedules = schedules.sort((a, b) => (a.dayOfTheWeek < b.dayOfTheWeek ? -1 : 1));\r\n\r\n let selectedDate = GetNextDay(this.selectedDate, false);\r\n let day = selectedDate.getDate();\r\n\r\n if (date != null) {\r\n day = date.getDate();\r\n selectedDate = date;\r\n }\r\n\r\n if (weekDay == -1) {\r\n weekDay = 6;\r\n }\r\n\r\n if (schedules.findIndex(x => x.dayOfTheWeek == weekDay) < 0) {\r\n weekDay = weekDay - 1;\r\n let nexDate = GetNextDay(selectedDate, false);\r\n\r\n return this.getPreviousAvailableDate(weekDay, nexDate);\r\n }\r\n else {\r\n return new Date(selectedDate.getFullYear(), selectedDate.getMonth(), day);\r\n }\r\n }\r\n\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY2xpZW50L2NsaWVudC1lZGl0L2NsaWVudC1lZGl0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as fromI18n from '../../../../../i18n/reducers';\r\nimport { I18nComponent } from '../../../../../i18n/containers/i18n.component';\r\n\r\n@Component({\r\n selector: 'app-client-edit',\r\n templateUrl: './client-edit.component.html',\r\n styleUrls: ['./client-edit.component.scss']\r\n})\r\nexport class ClientEditComponent extends I18nComponent {\r\n public id: any = null;\r\n\r\n constructor(\r\n readonly store: Store,\r\n readonly translate: TranslateService,\r\n private route: ActivatedRoute\r\n ) {\r\n super(store, translate);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.id = this.route.snapshot.paramMap.get(\"id\");\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { IClient } from '../../../core/interfaces/customer/client';\r\nimport * as uuid from 'uuid';\r\n\r\n@Injectable()\r\nexport class ClientFormService {\r\n public form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.fb.group({\r\n firstName: [null, Validators.required],\r\n lastName: [null, Validators.required],\r\n phone: [null, Validators.required],\r\n email: [null, [\r\n Validators.required,\r\n Validators.pattern(\"^([a-zA-Z0-9_\\\\-\\\\.]+)@([a-zA-Z0-9_\\\\-\\\\.]+)\\\\.([a-zA-Z]{2,5})$\")\r\n ]],\r\n description: null\r\n });\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n\r\n createClientDto(id, dbClient:IClient=null): IClient {\r\n const data = this.form.value;\r\n\r\n if (data.createdOnUtc == null) {\r\n data.createdOnUtc = new Date();\r\n }\r\n\r\n const client: IClient = {\r\n id: id,\r\n customerCode: uuid.v4(),\r\n firstName: data.firstName,\r\n lastName: data.lastName,\r\n phone: data.phone,\r\n email: data.email,\r\n description: data.description,\r\n parentCustomerCode: null,\r\n createdOnUtc:dbClient !=null? dbClient.createdOnUtc: new Date()\r\n };\r\n\r\n return client;\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY2xpZW50L2NsaWVudC1saXN0L2NsaWVudC1saXN0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { I18nComponent } from '../../../../../i18n/containers/i18n.component';\r\nimport { ClientService } from '../../../../core/services/customer/client.service';\r\nimport { FilterGridFormService } from '../../filter-grid/filter-grid-form.service';\r\nimport { ClientDataSource } from '../../../../core/datasource/customer/client.datasource';\r\nimport { IClient } from '../../../../core/interfaces/customer/client';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { IFilterGridData } from '../../../../core/interfaces/common/filter-grid-data';\r\nimport * as fromI18n from '../../../../../i18n/reducers';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ConfirmationComponent } from '../../dialogs/confirmation/confirmation.component';\r\nimport { AuthorizeService } from '../../../../../../api-authorization/authorize.service';\r\n\r\n@Component({\r\n selector: 'app-client-list',\r\n templateUrl: './client-list.component.html',\r\n styleUrls: ['./client-list.component.scss'],\r\n providers: [\r\n ClientService,\r\n FilterGridFormService\r\n ]\r\n})\r\nexport class ClientListComponent extends I18nComponent {\r\n\r\n public dataSource: ClientDataSource | null;\r\n\r\n public clients: IClient[] = [];\r\n\r\n public clientSbj: BehaviorSubject < IClient[] > = new BehaviorSubject([]);\r\n\r\n public displayedColumns: string[] = [\"FirstName\", \"LastName\", \"Phone\", \"Email\", \"Actions\"];\r\n\r\n public loading: boolean = false;\r\n\r\n public page: number = 1;\r\n public pageSize: number = 20;\r\n public pageSubject: BehaviorSubject < number > = new BehaviorSubject(null);\r\n\r\n public filterArray: IFilterGridData[] = [];\r\n public sortField: string = null;\r\n public sortDirection: string = null;\r\n public totalItems: number;\r\n public userRole: string = \"customer\";\r\n\r\n constructor(\r\n readonly store: Store < fromI18n.State >,\r\n readonly translate: TranslateService,\r\n private clientService: ClientService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private titleClient: Title,\r\n private dialog: MatDialog,\r\n private authorizeService:AuthorizeService,\r\n private filterGridFormService: FilterGridFormService\r\n ) {\r\n super(store, translate);\r\n\r\n //this.clientService.getClients().subscribe(x => this.clientSbj.next((this.clients = x)));\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.translate.get(\"clients.list.title\").subscribe(x => this.titleClient.setTitle(x));\r\n\r\n this.dataSource = new ClientDataSource(this.clientSbj);\r\n\r\n this.pageSubject.subscribe(p => {\r\n this.page = p;\r\n if (p == null) {\r\n return;\r\n }\r\n\r\n this.loadClients();\r\n });\r\n\r\n this.authorizeService.getUserRole().subscribe({ next: data => this.userRole = data.toLowerCase() });\r\n\r\n this.loadClients();\r\n }\r\n\r\n loadClients() {\r\n this.loading = true;\r\n this.page = this.page != null ? this.page : 1;\r\n\r\n const request = this.filterGridFormService.createRequest(true, null, this.filterArray, null, false,\r\n this.page, this.pageSize, this.sortDirection, this.sortField);\r\n\r\n this.clientService.getClientsWithRequest(request).subscribe({\r\n next: data => {\r\n this.clientSbj.next(data.data);\r\n this.totalItems = data.total;\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n\r\n handlePage(e) {\r\n this.pageSubject.next(e.pageIndex + 1);\r\n }\r\n\r\n addFilterComponent(event: IFilterGridData) {\r\n if (event.value == null) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName != event.propertyName);\r\n }\r\n else {\r\n const existingFilter = this.filterArray.filter(x => x.propertyName == event.propertyName);\r\n\r\n if (existingFilter.length > 0) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName != event.propertyName);\r\n }\r\n\r\n this.filterArray.push(event);\r\n\r\n }\r\n\r\n this.page = 1;\r\n this.loadClients();\r\n }\r\n\r\n sortData(event) {\r\n this.sortDirection = event.direction;\r\n this.sortField = event.active;\r\n\r\n this.page = 1;\r\n\r\n //call again the load method;\r\n this.loadClients();\r\n }\r\n\r\n edit(id) {\r\n this.router.navigate([`./edit/${id}`], { relativeTo: this.route })\r\n }\r\n\r\n openDeleteDialog(element: IClient) {\r\n this.translate.get(\"confirmation.deleteQuestion\").subscribe(x => {\r\n const dialogRef = this.dialog.open(ConfirmationComponent, {\r\n minWidth: \"25rem\",\r\n minHeight: \"7rem\",\r\n data: `${x} ${element.firstName} ${element.lastName}?`\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(response => {\r\n if (!response) {\r\n return;\r\n }\r\n\r\n this.delete(element);\r\n });\r\n });\r\n }\r\n\r\n delete (element: IClient) {\r\n this.clientService.delete(element).subscribe(x => {\r\n if (x) {\r\n this.loadClients();\r\n }\r\n }, error => {\r\n console.log('delete error = ', error);\r\n });\r\n }\r\n\r\n addClient() {\r\n this.router.navigate([`/management/${this.userRole}/clients/create`]);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IClient } from '../../../core/interfaces/customer/client';\r\nimport { ClientFormService } from './client-form.service';\r\n\r\n@Injectable()\r\nexport class ClientLoaderService {\r\n\r\n constructor(private clientFormService: ClientFormService) { }\r\n\r\n loadClient(client: IClient) {\r\n this.clientFormService.form.patchValue({\r\n firstName: client.firstName,\r\n lastName: client.lastName,\r\n phone: client.phone,\r\n email: client.email,\r\n description: client.description\r\n });\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY2xpZW50L2NsaWVudC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ClientService } from '../../../core/services/customer/client.service';\r\nimport { ClientFormService } from './client-form.service';\r\nimport { ClientLoaderService } from './client-loader.service';\r\nimport { AuthorizeService } from '../../../../../api-authorization/authorize.service';\r\nimport { MatSnackBar } from '@angular/material';\r\nimport { IClient } from '../../../core/interfaces/customer/client';\r\n\r\n@Component({\r\n selector: 'app-client',\r\n templateUrl: './client.component.html',\r\n styleUrls: ['./client.component.scss'],\r\n providers: [\r\n ClientService,\r\n ClientFormService,\r\n ClientLoaderService\r\n ]\r\n})\r\nexport class ClientComponent implements OnInit {\r\n @Input() id: any = null;\r\n @Input() isDialog: boolean = false;\r\n\r\n @Output() closeDialog = new EventEmitter();\r\n\r\n public notFound: boolean = false;\r\n public loading: boolean = false;\r\n public success: boolean = false;\r\n public userRole: string = \"customer\";\r\n private client: IClient;\r\n\r\n constructor(\r\n readonly translate: TranslateService,\r\n private clientFormService: ClientFormService,\r\n private clientLoaderService: ClientLoaderService,\r\n private clientService: ClientService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private matSnackBack:MatSnackBar,\r\n private authorizeService: AuthorizeService,\r\n private titleService: Title\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.authorizeService.getUserRole().subscribe({ next: data => this.userRole = data.toLowerCase() });\r\n\r\n if (this.id == null) {\r\n if (!this.isDialog) {\r\n this.translate.get(\"clients.edit.titleCreate\").subscribe(x => this.titleService.setTitle(x));\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (!this.isDialog) {\r\n this.translate.get(\"clients.edit.titleUpdate\").subscribe(x => this.titleService.setTitle(x));\r\n }\r\n\r\n this.clientService.getClient(this.id).subscribe(x => {\r\n if (x == null || x.id == null) {\r\n this.notFound = true;\r\n\r\n return;\r\n }\r\n this.client = x;\r\n this.clientLoaderService.loadClient(x);\r\n });\r\n\r\n }\r\n\r\n get form() {\r\n return this.clientFormService.form;\r\n }\r\n\r\n get firstName() {\r\n return this.clientFormService.getFormControl('firstName') as FormControl;\r\n }\r\n\r\n get lastName() {\r\n return this.clientFormService.getFormControl('lastName') as FormControl;\r\n }\r\n\r\n get phone() {\r\n return this.clientFormService.getFormControl('phone') as FormControl;\r\n }\r\n\r\n get email() {\r\n return this.clientFormService.getFormControl('email') as FormControl;\r\n }\r\n\r\n get description() {\r\n return this.clientFormService.getFormControl('description') as FormControl;\r\n }\r\n\r\n submit() {\r\n this.loading = true;\r\n\r\n let client = this.clientFormService.createClientDto(this.id, this.client);\r\n\r\n if (this.id == null) {\r\n //create\r\n this.clientService.createWithVerification(client).subscribe(x => {\r\n this.loading = false;\r\n this.success = x != null && x.errorCode==null ? true : false;\r\n\r\n if ( x!=null && x.errorCode!=null) {\r\n this.displayErrorMessage(x.errorCode);\r\n }\r\n\r\n if (this.isDialog && this.success) {\r\n this.closeDialog.emit(x.entity);\r\n }\r\n\r\n }, error => {\r\n console.log('error = ', error);\r\n });\r\n }\r\n else {\r\n //update\r\n this.clientService.updateWithVerification(client).subscribe(x => {\r\n this.loading = false;\r\n\r\n if (x == null) {\r\n return;\r\n }\r\n\r\n this.success = x.entity;\r\n\r\n if (x != null && x.errorCode != null) {\r\n this.displayErrorMessage(x.errorCode);\r\n }\r\n\r\n }, error => {\r\n console.log('error = ', error);\r\n });\r\n }\r\n }\r\n\r\n closeClientDialog() {\r\n this.closeDialog.emit('');\r\n }\r\n\r\n goBack() {\r\n //console.log(\"userRole=\", this.userRole);\r\n this.router.navigate([`/management/${this.userRole}/clients`])\r\n }\r\n\r\n displayErrorMessage(errorCode: string) {\r\n this.translate.get(`clients.edit.${errorCode}`).subscribe(x => {\r\n if (x != null) {\r\n this.openSnackBar(x);\r\n }\r\n else {\r\n this.openSnackBar(\"An error occurred. Please refresh and try again.\");\r\n }\r\n });\r\n }\r\n\r\n openSnackBar(message) {\r\n this.matSnackBack.open(message, \"Ok\", {\r\n duration: 5000\r\n });\r\n }\r\n\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\nh4 {\\n font-weight: 700;\\n font-size: 1.25rem;\\n margin: 0;\\n color: #6b777d;\\n margin-bottom: 1.1rem;\\n position: relative;\\n}\\n\\nh4 span {\\n position: relative;\\n display: inline-block;\\n padding-right: 1rem;\\n background-color: #FFFFFF;\\n z-index: 10;\\n padding-top: 20px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jb2xvci1waWNrZXJzL2NvbG9yLXBpY2tlci1za2V0Y2gvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfY29sb3Itc2NoZW1lLnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY29sb3ItcGlja2Vycy9jb2xvci1waWNrZXItc2tldGNoL2NvbG9yLXBpY2tlci1za2V0Y2guY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY29sb3ItcGlja2Vycy9jb2xvci1waWNrZXItc2tldGNoL0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxzaGFyZWRcXGNvbXBvbmVudHNcXGNvbG9yLXBpY2tlcnNcXGNvbG9yLXBpY2tlci1za2V0Y2hcXGNvbG9yLXBpY2tlci1za2V0Y2guY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBO0VBQ0UsY0FqQk87QUNDVDs7QURtQkE7RUFDRSx5QkFyQk87QUNLVDs7QURtQkE7RUFDRSxjQXhCSztBQ1FQOztBRG1CQTtFQUNFLHlCQTVCSztBQ1lQOztBRG1CQTtFQUNFLGNBL0JXO0FDZWI7O0FEbUJBO0VBQ0UseUJBbkNXO0FDbUJiOztBRG1CQTtFQUNFLGNBckNVO0FDcUJaOztBRG1CQTtFQUNFLHlCQXpDVTtBQ3lCWjs7QURtQkE7RUFDRSxjQWxETTtBQ2tDUjs7QURtQkE7RUFDRSx5QkF0RE07QUNzQ1I7O0FEbUJBO0VBQ0UsY0FwRGM7QUNvQ2hCOztBRG1CQTtFQUNFLHlCQXhEYztBQ3dDaEI7O0FEbUJBO0VBQ0UsY0EzRGE7QUMyQ2Y7O0FEbUJBO0VBQ0UseUJBL0RhO0FDK0NmOztBRG1CQTtFQUNFLGNBckVVO0FDcURaOztBRG1CQTtFQUNFLHlCQW5FUTtBQ21EVjs7QURtQkE7RUFDRSx5QkF0RWE7QUNzRGY7O0FEbUJBO0VBQ0UsY0ExRWE7QUMwRGY7O0FEbUJBO0VBQ0UseUJBaEZhO0FDZ0VmOztBRG1CQTtFQUNFLGNBcEZhO0FDb0VmOztBRG1CQTtFQUNFLGNBekZNO0FDeUVSOztBRG1CQTtFQUNFLGNBeEZLO0FDd0VQOztBRG1CQTtFQUNFLHlCQTVGSztBQzRFUDs7QURtQkE7RUFDRSxjQS9GVTtBQytFWjs7QURtQkE7RUFDRSx5QkFuR1U7QUNtRlo7O0FDaEdBO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxjQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBRG1HRjs7QUNqR0U7RUFDRSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSx5QkZkSTtFRWVKLFdBQUE7RUFDQSxpQkFBQTtBRG1HSiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY29sb3ItcGlja2Vycy9jb2xvci1waWNrZXItc2tldGNoL2NvbG9yLXBpY2tlci1za2V0Y2guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkd2hpdGU6ICNGRkZGRkY7XHJcbiRkYXJrZXI6ICMxQzI0Mjg7XHJcbiRkYXJrOiAjMzc0NzRGO1xyXG4kZ3JheS1saWdodDogI0VCRjFGNDtcclxuJGdyYXktbWVkaXVtOiAjZTBlMGUwO1xyXG4kZ3JheS1kYXJrOiAjOEI5RUE3O1xyXG4kcHJpbWFyeS1jb2xvcjogI0ZGNDA4MTtcclxuJGFjY2VudC1jb2xvcjogIzIxOTZGMztcclxuJGFjY2VudC1jb2xvci0yOiAjMUFDNjczO1xyXG4kZXJyb3I6ICNGRjQxMDA7XHJcbiRidXJudC1zaWVubmE6ICNFRTdENUE7XHJcbiRzcGluZGxlOiAjQzhFNUVGO1xyXG4kZWFzdGVybi1ibHVlOiAjMTg5N0MzO1xyXG4kd2lsZC1zdHJhd2JlcnJ5OiAjRkY0MDgxO1xyXG4kd2FybjogI2Y0NDMzNjtcclxuJGRhcmstYmx1ZTogIzJhNjM3NztcclxuXHJcbi50ZXh0LWRhcmtlciB7XHJcbiAgY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi5ia2ctZGFya2VyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4udGV4dC1kYXJrIHtcclxuICBjb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi5ia2ctZGFyayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0ZXIge1xyXG4gIGNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmJrZy1saWdodGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLnRleHQtbGlnaHQge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSB7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJrZy13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1wcmltYXJ5IHtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWFjY2VudCB7XHJcbiAgY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctYWNjZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1ncmF5LWRhcmsge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLXNwaW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzcGluZGxlO1xyXG59XHJcblxyXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLnRleHQtZWFzdGVybi1ibHVlIHtcclxuICBjb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLmJrZy1idXJudC1zaWVubmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWJ1cm50LXNpZW5uYSB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWVycm9yIHtcclxuICBjb2xvcjogJGVycm9yO1xyXG59XHJcblxyXG4udGV4dC13YXJuIHtcclxuICBjb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi5ia2ctd2FybiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi50ZXh0LWRhcmstYmx1ZSB7XHJcbiAgY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctZGFyay1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcbiIsIi50ZXh0LWRhcmtlciB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uYmtnLWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzI0Mjg7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cblxuLmJrZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0Rjtcbn1cblxuLnRleHQtbGlnaHRlciB7XG4gIGNvbG9yOiAjRUJGMUY0O1xufVxuXG4uYmtnLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMUY0O1xufVxuXG4udGV4dC1saWdodCB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhCOUVBNztcbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLmJrZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuLmJrZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbi5ia2ctYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuLnRleHQtZ3JheS1kYXJrIHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctc3BpbmRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEU1RUY7XG59XG5cbi5ia2ctZWFzdGVybi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn1cblxuLnRleHQtZWFzdGVybi1ibHVlIHtcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5ia2ctYnVybnQtc2llbm5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtYnVybnQtc2llbm5hIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWVycm9yIHtcbiAgY29sb3I6ICNGRjQxMDA7XG59XG5cbi50ZXh0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLmJrZy13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLnRleHQtZGFyay1ibHVlIHtcbiAgY29sb3I6ICMyYTYzNzc7XG59XG5cbi5ia2ctZGFyay1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNjM3Nztcbn1cblxuaDQge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICM2Yjc3N2Q7XG4gIG1hcmdpbi1ib3R0b206IDEuMXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuaDQgc3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59IiwiQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vc2Nzcy9tYW5hZ2VtZW50L19jb2xvci1zY2hlbWUuc2Nzcyc7XHJcblxyXG5oNCB7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGNvbG9yOiAjNmI3NzdkO1xyXG4gIG1hcmdpbi1ib3R0b206IDEuMXJlbTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgIHotaW5kZXg6IDEwO1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-color-picker-sketch',\r\n templateUrl: './color-picker-sketch.component.html',\r\n styleUrls: ['./color-picker-sketch.component.scss']\r\n})\r\nexport class ColorPickerSketchComponent implements OnInit {\r\n @Input() color: string;\r\n @Input() title: string = '';\r\n\r\n @Output() editedColor = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.color == null) {\r\n this.color = \"#FFFFFF\";\r\n }\r\n }\r\n\r\n onChange($event: any) {\r\n this.editedColor.emit($event.color.hex);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvY29sb3ItcGlja2Vycy9jb2xvcnMtcGlja2VyL2NvbG9ycy1waWNrZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-colors-picker',\r\n templateUrl: './colors-picker.component.html',\r\n styleUrls: ['./colors-picker.component.scss']\r\n})\r\nexport class ColorsPickerComponent implements OnInit {\r\n @Input() color: string = null;\r\n @Input() title: string = null;\r\n\r\n @Output() editedColor = new EventEmitter();\r\n\r\n public selectedColor: string = \"#ECEFF1\";\r\n public componentLoaded: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.color != null) {\r\n this.selectedColor = this.color;\r\n }\r\n\r\n this.componentLoaded = true;\r\n }\r\n\r\n onChange($event) {\r\n this.editedColor.emit($event);\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n.mat-column-details {\\n width: 40%;\\n}\\n\\n.list-mat-card-content {\\n height: calc(100vh - 26rem);\\n}\\n\\n.custom-button {\\n border: 2px solid #1897C3;\\n color: #1897C3;\\n}\\n\\n.custom-button.add {\\n color: #ffff;\\n background-color: #1897C3;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jcmVkaXQvdHJhbnNhY3Rpb24tbGlzdC9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXHNjc3NcXG1hbmFnZW1lbnRcXF9jb2xvci1zY2hlbWUuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9jcmVkaXQvdHJhbnNhY3Rpb24tbGlzdC90cmFuc2FjdGlvbi1saXN0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL2NyZWRpdC90cmFuc2FjdGlvbi1saXN0L0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxzaGFyZWRcXGNvbXBvbmVudHNcXGNyZWRpdFxcdHJhbnNhY3Rpb24tbGlzdFxcdHJhbnNhY3Rpb24tbGlzdC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkE7RUFDRSxjQWpCTztBQ0NUOztBRG1CQTtFQUNFLHlCQXJCTztBQ0tUOztBRG1CQTtFQUNFLGNBeEJLO0FDUVA7O0FEbUJBO0VBQ0UseUJBNUJLO0FDWVA7O0FEbUJBO0VBQ0UsY0EvQlc7QUNlYjs7QURtQkE7RUFDRSx5QkFuQ1c7QUNtQmI7O0FEbUJBO0VBQ0UsY0FyQ1U7QUNxQlo7O0FEbUJBO0VBQ0UseUJBekNVO0FDeUJaOztBRG1CQTtFQUNFLGNBbERNO0FDa0NSOztBRG1CQTtFQUNFLHlCQXRETTtBQ3NDUjs7QURtQkE7RUFDRSxjQXBEYztBQ29DaEI7O0FEbUJBO0VBQ0UseUJBeERjO0FDd0NoQjs7QURtQkE7RUFDRSxjQTNEYTtBQzJDZjs7QURtQkE7RUFDRSx5QkEvRGE7QUMrQ2Y7O0FEbUJBO0VBQ0UsY0FyRVU7QUNxRFo7O0FEbUJBO0VBQ0UseUJBbkVRO0FDbURWOztBRG1CQTtFQUNFLHlCQXRFYTtBQ3NEZjs7QURtQkE7RUFDRSxjQTFFYTtBQzBEZjs7QURtQkE7RUFDRSx5QkFoRmE7QUNnRWY7O0FEbUJBO0VBQ0UsY0FwRmE7QUNvRWY7O0FEbUJBO0VBQ0UsY0F6Rk07QUN5RVI7O0FEbUJBO0VBQ0UsY0F4Rks7QUN3RVA7O0FEbUJBO0VBQ0UseUJBNUZLO0FDNEVQOztBRG1CQTtFQUNFLGNBL0ZVO0FDK0VaOztBRG1CQTtFQUNFLHlCQW5HVTtBQ21GWjs7QUNoR0E7RUFDSSxVQUFBO0FEbUdKOztBQ2hHQTtFQUNFLDJCQUFBO0FEbUdGOztBQ2hHQTtFQUNFLHlCQUFBO0VBQ0EsY0FBQTtBRG1HRjs7QUMvRkE7RUFDRSxZQUFBO0VBQ0EseUJGTmE7QUN3R2YiLCJmaWxlIjoic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL2NyZWRpdC90cmFuc2FjdGlvbi1saXN0L3RyYW5zYWN0aW9uLWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkd2hpdGU6ICNGRkZGRkY7XHJcbiRkYXJrZXI6ICMxQzI0Mjg7XHJcbiRkYXJrOiAjMzc0NzRGO1xyXG4kZ3JheS1saWdodDogI0VCRjFGNDtcclxuJGdyYXktbWVkaXVtOiAjZTBlMGUwO1xyXG4kZ3JheS1kYXJrOiAjOEI5RUE3O1xyXG4kcHJpbWFyeS1jb2xvcjogI0ZGNDA4MTtcclxuJGFjY2VudC1jb2xvcjogIzIxOTZGMztcclxuJGFjY2VudC1jb2xvci0yOiAjMUFDNjczO1xyXG4kZXJyb3I6ICNGRjQxMDA7XHJcbiRidXJudC1zaWVubmE6ICNFRTdENUE7XHJcbiRzcGluZGxlOiAjQzhFNUVGO1xyXG4kZWFzdGVybi1ibHVlOiAjMTg5N0MzO1xyXG4kd2lsZC1zdHJhd2JlcnJ5OiAjRkY0MDgxO1xyXG4kd2FybjogI2Y0NDMzNjtcclxuJGRhcmstYmx1ZTogIzJhNjM3NztcclxuXHJcbi50ZXh0LWRhcmtlciB7XHJcbiAgY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi5ia2ctZGFya2VyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4udGV4dC1kYXJrIHtcclxuICBjb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi5ia2ctZGFyayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0ZXIge1xyXG4gIGNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmJrZy1saWdodGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLnRleHQtbGlnaHQge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSB7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJrZy13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1wcmltYXJ5IHtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWFjY2VudCB7XHJcbiAgY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctYWNjZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1ncmF5LWRhcmsge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLXNwaW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzcGluZGxlO1xyXG59XHJcblxyXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLnRleHQtZWFzdGVybi1ibHVlIHtcclxuICBjb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLmJrZy1idXJudC1zaWVubmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWJ1cm50LXNpZW5uYSB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWVycm9yIHtcclxuICBjb2xvcjogJGVycm9yO1xyXG59XHJcblxyXG4udGV4dC13YXJuIHtcclxuICBjb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi5ia2ctd2FybiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi50ZXh0LWRhcmstYmx1ZSB7XHJcbiAgY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctZGFyay1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcbiIsIi50ZXh0LWRhcmtlciB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uYmtnLWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzI0Mjg7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cblxuLmJrZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0Rjtcbn1cblxuLnRleHQtbGlnaHRlciB7XG4gIGNvbG9yOiAjRUJGMUY0O1xufVxuXG4uYmtnLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMUY0O1xufVxuXG4udGV4dC1saWdodCB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhCOUVBNztcbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLmJrZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuLmJrZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbi5ia2ctYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuLnRleHQtZ3JheS1kYXJrIHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctc3BpbmRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEU1RUY7XG59XG5cbi5ia2ctZWFzdGVybi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn1cblxuLnRleHQtZWFzdGVybi1ibHVlIHtcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5ia2ctYnVybnQtc2llbm5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtYnVybnQtc2llbm5hIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWVycm9yIHtcbiAgY29sb3I6ICNGRjQxMDA7XG59XG5cbi50ZXh0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLmJrZy13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLnRleHQtZGFyay1ibHVlIHtcbiAgY29sb3I6ICMyYTYzNzc7XG59XG5cbi5ia2ctZGFyay1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNjM3Nztcbn1cblxuLm1hdC1jb2x1bW4tZGV0YWlscyB7XG4gIHdpZHRoOiA0MCU7XG59XG5cbi5saXN0LW1hdC1jYXJkLWNvbnRlbnQge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyNnJlbSk7XG59XG5cbi5jdXN0b20tYnV0dG9uIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzE4OTdDMztcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5jdXN0b20tYnV0dG9uLmFkZCB7XG4gIGNvbG9yOiAjZmZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn0iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9zY3NzL21hbmFnZW1lbnQvX2NvbG9yLXNjaGVtZSc7XHJcblxyXG4ubWF0LWNvbHVtbi1kZXRhaWxze1xyXG4gICAgd2lkdGg6NDAlO1xyXG59XHJcblxyXG4ubGlzdC1tYXQtY2FyZC1jb250ZW50IHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyNnJlbSlcclxufVxyXG5cclxuLmN1c3RvbS1idXR0b24ge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICRlYXN0ZXJuLWJsdWU7XHJcbiAgY29sb3I6ICRlYXN0ZXJuLWJsdWU7XHJcbn1cclxuXHJcblxyXG4uY3VzdG9tLWJ1dHRvbi5hZGQge1xyXG4gIGNvbG9yOiAjZmZmZjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWFzdGVybi1ibHVlO1xyXG59XHJcblxyXG4iXX0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { I18nComponent } from '../../../../../i18n/containers/i18n.component';\r\nimport { FilterGridFormService } from '../../filter-grid/filter-grid-form.service';\r\nimport { Store } from '@ngrx/store';\r\nimport * as fromI18n from '../../../../../i18n/reducers';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CreditService } from '../../../../core/services/customer/credit.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatDialog, MatPaginator } from '@angular/material';\r\nimport { CustomerCreditTransactionDatasource } from '../../../../core/datasource/customer/customer-credit-transaction-datasource';\r\nimport { ICustomerCreditTransaction } from '../../../../core/interfaces/customer/customer-credit-transaction.interface';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { IFilterGridData } from '../../../../core/interfaces/common/filter-grid-data';\r\nimport { AuthorizeService } from '../../../../../../api-authorization/authorize.service';\r\nimport { UserRoles } from '../../../../../../api-authorization/api-authorization.constants';\r\nimport { AddCreditComponent } from '../../../../admin/credit/add-credit/add-credit.component';\r\n\r\n@Component({\r\n selector: 'app-transaction-list',\r\n templateUrl: './transaction-list.component.html',\r\n styleUrls: ['./transaction-list.component.scss'],\r\n providers: [CreditService, FilterGridFormService]\r\n})\r\nexport class TransactionListComponent extends I18nComponent {\r\n public dataSource: CustomerCreditTransactionDatasource | null;\r\n\r\n public transactionListSbj: BehaviorSubject = new BehaviorSubject([]);\r\n\r\n public displayedColumns: string[] = [\"Amount\", \"CreatedTimestamp\", \"details\"];\r\n\r\n public loading: boolean = false;\r\n\r\n public page: number = 1;\r\n public pageSize: number = 20;\r\n public pageSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n public filterArray: IFilterGridData[] = [];\r\n public sortField: string = \"CreatedTimestamp\";\r\n public sortDirection: string = \"desc\";\r\n public totalItems: number;\r\n public isAdmin: boolean = null;\r\n public customerCode: string = null;\r\n public customerCodeSbj: BehaviorSubject = new BehaviorSubject(null);\r\n public email: string = \"\";\r\n public currentCredit: number = 0;\r\n\r\n public selectedStartDate: string;\r\n public selectedEndDate: string;\r\n public filterDateLoaded: boolean = false;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n\r\n constructor(readonly store: Store,\r\n readonly translate: TranslateService,\r\n private titleClient: Title,\r\n private creditService: CreditService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private dialog: MatDialog,\r\n private filterGridFormService: FilterGridFormService,\r\n private authorizeService:AuthorizeService) {\r\n\r\n super(store, translate);\r\n\r\n authorizeService.getUserRole().subscribe({\r\n next: data => {\r\n if (data == UserRoles.Admin) {\r\n this.isAdmin = true;\r\n this.displayedColumns = [\"Amount\", \"CreatedTimestamp\", \"details\"];\r\n\r\n var code = this.route.snapshot.paramMap.get(\"code\")\r\n this.customerCodeSbj.next(code);\r\n this.customerCode = code;\r\n }\r\n else {\r\n this.isAdmin = false;\r\n this.displayedColumns = [\"Amount\", \"CreatedTimestamp\", \"method\", \"status\"];\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.translate.get(\"credit.list.title\").subscribe(x => this.titleClient.setTitle(x));\r\n\r\n const date = new Date();\r\n\r\n this.selectedStartDate = `${date.getFullYear()}-${date.getMonth()+1}-01`;\r\n this.selectedEndDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\r\n\r\n this.filterDateLoaded = true;\r\n\r\n this.dataSource = new CustomerCreditTransactionDatasource(this.transactionListSbj);\r\n\r\n this.pageSubject.subscribe(p => {\r\n this.page = p;\r\n if (p == null) {\r\n return;\r\n }\r\n\r\n this.load();\r\n });\r\n\r\n this.customerCodeSbj.subscribe(code => {\r\n this.customerCode = code;\r\n\r\n this.load();\r\n })\r\n }\r\n\r\n search() {\r\n this.pageSubject.next(1);\r\n }\r\n\r\n load() {\r\n\r\n if (this.isAdmin == true && this.customerCode == null) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.page = this.page != null ? this.page : 1;\r\n\r\n let request = this.filterGridFormService.createRequest(true, this.customerCode, this.filterArray, null, false,\r\n this.page, this.pageSize, this.sortDirection, this.sortField);\r\n\r\n if (this.isAdmin == false) {\r\n const filterArray: IFilterGridData[] = [];\r\n filterArray.push(...this.filterArray);\r\n\r\n const startDateFilter = this.filterGridFormService.createFilter(\r\n 'Timestamp', 'CreatedTimestamp', 'Greater Than Or Equals', this.selectedStartDate);\r\n filterArray.push(startDateFilter);\r\n\r\n const endDateFilter = this.filterGridFormService.createFilter(\r\n 'Timestamp', 'CreatedTimestamp', 'Less Than Or Equals', this.selectedEndDate);\r\n filterArray.push(endDateFilter);\r\n\r\n request = this.filterGridFormService.createRequest(true, null, filterArray, null, false,\r\n this.page, this.pageSize, this.sortDirection, this.sortField);\r\n }\r\n\r\n this.creditService.getCustomerCreditTransactions(request).subscribe({\r\n next: data => {\r\n if (data == null) {\r\n return\r\n }\r\n\r\n data.data.map(item => {\r\n this.translate.get(`credit.transactions.${item.status}`).subscribe(x => item.statusLabel = x);\r\n this.translate.get(`credit.transactions.${item.paymentMethod}`).subscribe(x => item.paymentMethodLabel = x);\r\n });\r\n\r\n this.transactionListSbj.next(data.data);\r\n this.loading = false;\r\n\r\n if (request.page == 1) {\r\n this.totalItems = data.total;\r\n this.currentCredit =+ data.aggregates[\"CustomerCredit\"];\r\n this.email = data.aggregates[\"CustomerEmail\"];\r\n }\r\n\r\n }\r\n })\r\n }\r\n\r\n handlePage(e) {\r\n this.pageSubject.next(e.pageIndex + 1);\r\n }\r\n\r\n onEditedStartDateFilter(date: Date) {\r\n this.selectedStartDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\r\n // this.selectedEndDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()+1}`;\r\n }\r\n\r\n onEditedEndDateFilter(date: Date) {\r\n //this.selectedStartDate = `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;\r\n this.selectedEndDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\r\n }\r\n\r\n addFilterComponent(event: IFilterGridData) {\r\n if (event.value == null) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName != event.propertyName);\r\n }\r\n else {\r\n const existingFilter = this.filterArray.filter(x => x.propertyName == event.propertyName);\r\n\r\n if (existingFilter.length > 0) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName != event.propertyName);\r\n }\r\n\r\n this.filterArray.push(event);\r\n\r\n }\r\n\r\n this.page = 1;\r\n this.load();\r\n }\r\n\r\n sortData(event) {\r\n this.sortDirection = event.direction;\r\n this.sortField = event.active;\r\n\r\n this.page = 1;\r\n\r\n //call again the load method;\r\n this.load();\r\n }\r\n\r\n addCredit() {\r\n const dialogRef = this.dialog.open(AddCreditComponent, {\r\n minWidth: \"20rem\",\r\n maxWidth: \"25rem\",\r\n minHeight: \"25rem\",\r\n data: {\r\n email: this.email,\r\n customerCode: this.customerCode\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(response => {\r\n if (!response || (response != null && (response.saved == false || response.transaction == null))) {\r\n return;\r\n }\r\n\r\n this.handleResponse(response.transaction);\r\n });\r\n }\r\n\r\n handleResponse(transaction:ICustomerCreditTransaction) {\r\n var arr = this.transactionListSbj.value;\r\n\r\n arr.unshift(transaction);\r\n\r\n this.transactionListSbj.next(arr);\r\n this.totalItems += 1;\r\n this.currentCredit += transaction.amount;\r\n }\r\n\r\n cancel() {\r\n this.router.navigate([`management/admin/credit`])\r\n }\r\n}\r\n","import { NativeDateAdapter } from \"@angular/material\";\r\n\r\n/** Adapts the native JS Date for use with cdk-based components that work with dates. */\nexport class CustomDateAdapter extends NativeDateAdapter {\n\n // parse the date from input component as it only expect dates in \n // mm-dd-yyyy format\n //parse(value: any): Date | null {\n // if ((typeof value === 'string') && (value.indexOf('/') > -1)) {\n // const str = value.split('/');\n\n // const year = Number(str[2]);\n // const month = Number(str[1]) - 1;\n // const date = Number(str[0]);\n\n // return new Date(year, month, date);\n // }\n // const timestamp = typeof value === 'number' ? value : Date.parse(value);\n // return isNaN(timestamp) ? null : new Date(timestamp);\n //}\n\n getFirstDayOfWeek(): number {\n return 1;\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9hcHBvaW50bWVudC9hcHBvaW50bWVudC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { IAppointment } from '../../../../core/interfaces/customer/appointment';\r\n\r\n@Component({\r\n selector: 'app-dialog-appointment',\r\n templateUrl: './appointment.component.html',\r\n styleUrls: ['./appointment.component.scss']\r\n})\r\nexport class AppointmentComponent implements OnInit {\r\n public id: any = null;\r\n public appointment: IAppointment = null;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any | null) {\r\n\r\n this.appointment = data;\r\n\r\n if (data != null) {\r\n this.id = data.id;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n closeDialog(event) {\r\n this.dialogRef.close(event);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9jYWxlbmRhci13aXRoLXRpbWUtc2xvdHMvY2FsZW5kYXItd2l0aC10aW1lLXNsb3RzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { IAppointment } from '../../../../core/interfaces/customer/appointment';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { IOperator } from '../../../../core/interfaces/customer/operator';\r\nimport { ISettings } from '../../../../core/interfaces/customer/settings';\r\n\r\n@Component({\r\n selector: 'app-dialog-calendar-with-time-slots',\r\n templateUrl: './calendar-with-time-slots.component.html',\r\n styleUrls: ['./calendar-with-time-slots.component.scss']\r\n})\r\nexport class CalendarWithTimeSlotsComponent implements OnInit {\r\n public settings: ISettings = null;\r\n public appointment: IAppointment = null;\r\n public allSelectedOperators: IOperator[] = [];\r\n public allOfficeOperatorWorkSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any | null) {\r\n\r\n if (data == null) {\r\n return;\r\n }\r\n\r\n this.settings = data.settings;\r\n this.appointment = data.appointment;\r\n this.allSelectedOperators = data.allSelectedOperators;\r\n this.allOfficeOperatorWorkSchedule = data.allOfficeOperatorWorkSchedule;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onEditedData($event) {\r\n this.dialogRef.close($event);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\n@Component({\n selector: 'app-dialog-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss']\n})\nexport class CalendarComponent implements OnInit {\n public selectedDate: Date;\r\n\n constructor(public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any | null) {\n\n if (data == null) {\n return;\n }\n\n this.selectedDate = data;\n }\n\n ngOnInit() {\n }\n\n onEditedData($event) {\n this.dialogRef.close($event);\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9jbGllbnQvY2xpZW50LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-dialog-client',\r\n templateUrl: './client.component.html',\r\n styleUrls: ['./client.component.scss']\r\n})\r\nexport class ClientComponent implements OnInit {\r\n public id: any = null;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any | null) {\r\n\r\n this.id = data;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n closeDialog($event) {\r\n this.dialogRef.close($event);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-confirmation',\r\n templateUrl: './confirmation.component.html',\r\n styleUrls: ['./confirmation.component.scss']\r\n})\r\nexport class ConfirmationComponent implements OnInit {\r\n public message: string;\r\n\r\n public defaultButtons: boolean = false;\r\n public isHtml: boolean = false;\r\n public componentLoaded: boolean = false;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any | null) {\r\n\r\n if (data == null) {\r\n return;\r\n }\r\n\r\n if (data.hasOwnProperty(\"message\")) {\r\n this.message = data.message;\r\n }\r\n else {\r\n this.message = data;\r\n }\r\n\r\n if (data.hasOwnProperty(\"defaultButtons\")) {\r\n this.defaultButtons = data.defaultButtons;\r\n }\r\n\r\n if (this.message.includes('')) {\r\n this.isHtml = true;\r\n }\r\n\r\n this.componentLoaded = true;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n continue() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n cancel() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9jdXN0b20tZmllbGRzL2N1c3RvbS1maWVsZHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ICustomField } from '../../../../core/interfaces/common/custom-field';\r\n\n@Component({\n selector: 'app-custom-fields',\n templateUrl: './custom-fields.component.html',\n styleUrls: ['./custom-fields.component.scss']\n})\nexport class CustomFieldsComponent implements OnInit {\n public customFields: ICustomField[] = [];\n\n constructor(public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any | []) {\n\n this.customFields = data;\n }\n\n ngOnInit() {\n }\n\n copyToClipboard(field: ICustomField) {\r\n this.dialogRef.close(field);\r\n }\n}\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n::ng-deep .mat-calendar-body-cell.selected {\\n background-color: #1897C3 !important;\\n border-radius: 50%;\\n}\\n\\n::ng-deep .mat-calendar-body-selected {\\n background-color: #EE7D5A !important;\\n}\\n\\n::ng-deep .mat-calendar-controls {\\n margin: 0 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9kaWFsb2dzL2V4Y2VwdGlvbi1kYXlzLWNhbGVuZGFyL0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcc2Nzc1xcbWFuYWdlbWVudFxcX2NvbG9yLXNjaGVtZS5zY3NzIiwic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL2RpYWxvZ3MvZXhjZXB0aW9uLWRheXMtY2FsZW5kYXIvZXhjZXB0aW9uLWRheXMtY2FsZW5kYXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9leGNlcHRpb24tZGF5cy1jYWxlbmRhci9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcbWFuYWdlbWVudFxcc2hhcmVkXFxjb21wb25lbnRzXFxkaWFsb2dzXFxleGNlcHRpb24tZGF5cy1jYWxlbmRhclxcZXhjZXB0aW9uLWRheXMtY2FsZW5kYXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBO0VBQ0UsY0FqQk87QUNDVDs7QURtQkE7RUFDRSx5QkFyQk87QUNLVDs7QURtQkE7RUFDRSxjQXhCSztBQ1FQOztBRG1CQTtFQUNFLHlCQTVCSztBQ1lQOztBRG1CQTtFQUNFLGNBL0JXO0FDZWI7O0FEbUJBO0VBQ0UseUJBbkNXO0FDbUJiOztBRG1CQTtFQUNFLGNBckNVO0FDcUJaOztBRG1CQTtFQUNFLHlCQXpDVTtBQ3lCWjs7QURtQkE7RUFDRSxjQWxETTtBQ2tDUjs7QURtQkE7RUFDRSx5QkF0RE07QUNzQ1I7O0FEbUJBO0VBQ0UsY0FwRGM7QUNvQ2hCOztBRG1CQTtFQUNFLHlCQXhEYztBQ3dDaEI7O0FEbUJBO0VBQ0UsY0EzRGE7QUMyQ2Y7O0FEbUJBO0VBQ0UseUJBL0RhO0FDK0NmOztBRG1CQTtFQUNFLGNBckVVO0FDcURaOztBRG1CQTtFQUNFLHlCQW5FUTtBQ21EVjs7QURtQkE7RUFDRSx5QkF0RWE7QUNzRGY7O0FEbUJBO0VBQ0UsY0ExRWE7QUMwRGY7O0FEbUJBO0VBQ0UseUJBaEZhO0FDZ0VmOztBRG1CQTtFQUNFLGNBcEZhO0FDb0VmOztBRG1CQTtFQUNFLGNBekZNO0FDeUVSOztBRG1CQTtFQUNFLGNBeEZLO0FDd0VQOztBRG1CQTtFQUNFLHlCQTVGSztBQzRFUDs7QURtQkE7RUFDRSxjQS9GVTtBQytFWjs7QURtQkE7RUFDRSx5QkFuR1U7QUNtRlo7O0FDaEdBO0VBQ0Usb0NBQUE7RUFDQSxrQkFBQTtBRG1HRjs7QUNoR0E7RUFDRSxvQ0FBQTtBRG1HRjs7QUNoR0E7RUFDRSxvQkFBQTtBRG1HRiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9leGNlcHRpb24tZGF5cy1jYWxlbmRhci9leGNlcHRpb24tZGF5cy1jYWxlbmRhci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiR3aGl0ZTogI0ZGRkZGRjtcclxuJGRhcmtlcjogIzFDMjQyODtcclxuJGRhcms6ICMzNzQ3NEY7XHJcbiRncmF5LWxpZ2h0OiAjRUJGMUY0O1xyXG4kZ3JheS1tZWRpdW06ICNlMGUwZTA7XHJcbiRncmF5LWRhcms6ICM4QjlFQTc7XHJcbiRwcmltYXJ5LWNvbG9yOiAjRkY0MDgxO1xyXG4kYWNjZW50LWNvbG9yOiAjMjE5NkYzO1xyXG4kYWNjZW50LWNvbG9yLTI6ICMxQUM2NzM7XHJcbiRlcnJvcjogI0ZGNDEwMDtcclxuJGJ1cm50LXNpZW5uYTogI0VFN0Q1QTtcclxuJHNwaW5kbGU6ICNDOEU1RUY7XHJcbiRlYXN0ZXJuLWJsdWU6ICMxODk3QzM7XHJcbiR3aWxkLXN0cmF3YmVycnk6ICNGRjQwODE7XHJcbiR3YXJuOiAjZjQ0MzM2O1xyXG4kZGFyay1ibHVlOiAjMmE2Mzc3O1xyXG5cclxuLnRleHQtZGFya2VyIHtcclxuICBjb2xvcjogJGRhcmtlcjtcclxufVxyXG5cclxuLmJrZy1kYXJrZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi50ZXh0LWRhcmsge1xyXG4gIGNvbG9yOiAkZGFyaztcclxufVxyXG5cclxuLmJrZy1kYXJrIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyaztcclxufVxyXG5cclxuLnRleHQtbGlnaHRlciB7XHJcbiAgY29sb3I6ICRncmF5LWxpZ2h0O1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0O1xyXG59XHJcblxyXG4udGV4dC1saWdodCB7XHJcbiAgY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi5ia2ctbGlnaHQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi50ZXh0LXdoaXRlIHtcclxuICBjb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4uYmtnLXdoaXRlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbn1cclxuXHJcbi50ZXh0LXByaW1hcnkge1xyXG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxufVxyXG5cclxuLmJrZy1wcmltYXJ5IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxufVxyXG5cclxuLnRleHQtYWNjZW50IHtcclxuICBjb2xvcjogJGFjY2VudC1jb2xvcjtcclxufVxyXG5cclxuLmJrZy1hY2NlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWdyYXktZGFyayB7XHJcbiAgY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi5ia2ctc3BpbmRsZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5kbGU7XHJcbn1cclxuXHJcbi5ia2ctZWFzdGVybi1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWFzdGVybi1ibHVlO1xyXG59XHJcblxyXG4udGV4dC1lYXN0ZXJuLWJsdWUge1xyXG4gIGNvbG9yOiAkZWFzdGVybi1ibHVlO1xyXG59XHJcblxyXG4uYmtnLWJ1cm50LXNpZW5uYSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJ1cm50LXNpZW5uYTtcclxufVxyXG5cclxuLnRleHQtYnVybnQtc2llbm5hIHtcclxuICBjb2xvcjogJGJ1cm50LXNpZW5uYTtcclxufVxyXG5cclxuLnRleHQtZXJyb3Ige1xyXG4gIGNvbG9yOiAkZXJyb3I7XHJcbn1cclxuXHJcbi50ZXh0LXdhcm4ge1xyXG4gIGNvbG9yOiAkd2FybjtcclxufVxyXG5cclxuLmJrZy13YXJuIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2FybjtcclxufVxyXG5cclxuLnRleHQtZGFyay1ibHVlIHtcclxuICBjb2xvcjogJGRhcmstYmx1ZTtcclxufVxyXG5cclxuLmJrZy1kYXJrLWJsdWUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuIiwiLnRleHQtZGFya2VyIHtcbiAgY29sb3I6ICMxQzI0Mjg7XG59XG5cbi5ia2ctZGFya2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFDMjQyODtcbn1cblxuLnRleHQtZGFyayB7XG4gIGNvbG9yOiAjMzc0NzRGO1xufVxuXG4uYmtnLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc0NzRGO1xufVxuXG4udGV4dC1saWdodGVyIHtcbiAgY29sb3I6ICNFQkYxRjQ7XG59XG5cbi5ia2ctbGlnaHRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQkYxRjQ7XG59XG5cbi50ZXh0LWxpZ2h0IHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEI5RUE3O1xufVxuXG4udGV4dC13aGl0ZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuXG4uYmtnLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cblxuLnRleHQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjRkY0MDgxO1xufVxuXG4uYmtnLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY0MDgxO1xufVxuXG4udGV4dC1hY2NlbnQge1xuICBjb2xvcjogIzIxOTZGMztcbn1cblxuLmJrZy1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xufVxuXG4udGV4dC1ncmF5LWRhcmsge1xuICBjb2xvcjogIzhCOUVBNztcbn1cblxuLmJrZy1zcGluZGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M4RTVFRjtcbn1cblxuLmJrZy1lYXN0ZXJuLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5N0MzO1xufVxuXG4udGV4dC1lYXN0ZXJuLWJsdWUge1xuICBjb2xvcjogIzE4OTdDMztcbn1cblxuLmJrZy1idXJudC1zaWVubmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU3RDVBO1xufVxuXG4udGV4dC1idXJudC1zaWVubmEge1xuICBjb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtZXJyb3Ige1xuICBjb2xvcjogI0ZGNDEwMDtcbn1cblxuLnRleHQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4uYmtnLXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuXG4udGV4dC1kYXJrLWJsdWUge1xuICBjb2xvcjogIzJhNjM3Nztcbn1cblxuLmJrZy1kYXJrLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmE2Mzc3O1xufVxuXG46Om5nLWRlZXAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwuc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5N0MzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuOjpuZy1kZWVwIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRTdENUEgIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtY2FsZW5kYXItY29udHJvbHMge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn0iLCJAaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9zY3NzL21hbmFnZW1lbnQvX2NvbG9yLXNjaGVtZS5zY3NzJztcclxuXHJcbjo6bmctZGVlcCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC5zZWxlY3RlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZSAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJ1cm50LXNpZW5uYSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1jYWxlbmRhci1jb250cm9scyB7XHJcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatCalendarCellCssClasses, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ExceptionDayType } from '../../../../core/constants/exception-day.constants';\r\nimport { GetDayWithoutTime } from '../../../../core/functions/date-function';\r\nimport { IFilterGridData } from '../../../../core/interfaces/common/filter-grid-data';\r\nimport { IExceptionDay } from '../../../../core/interfaces/customer/exception-day';\r\nimport { ExceptionDayService } from '../../../../core/services/customer/exception-day.service';\r\nimport { FilterGridFormService } from '../../filter-grid/filter-grid-form.service';\r\n\r\n@Component({\r\n selector: 'app-exception-days-calendar',\r\n templateUrl: './exception-days-calendar.component.html',\r\n styleUrls: ['./exception-days-calendar.component.scss'],\r\n providers: [\r\n ExceptionDayService,\r\n FilterGridFormService\r\n ]\r\n})\r\nexport class ExceptionDaysCalendarComponent implements OnInit {\r\n public exceptionDays: IExceptionDay[] = [];\r\n public exceptionsByday: IExceptionDay[] = [];\r\n public exceptionDaysForInsert: IExceptionDay[] = [];\r\n public exceptionDaysForDelete: IExceptionDay[] = [];\r\n\r\n public officeId: string;\r\n public operatorId: string;\r\n public type: string;\r\n\r\n public date: Date;\r\n public dates: Date[] = [];\r\n public calendar: any;\r\n\r\n public ExceptionDayType = ExceptionDayType;\r\n\r\n public isFormValid: boolean;\r\n public componentLoaded: boolean;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any | null,\r\n private exceptionDayService: ExceptionDayService,\r\n private filterGridFormService: FilterGridFormService\r\n ) {\r\n\r\n if (data == null) {\r\n return;\r\n }\r\n\r\n this.officeId = data.officeId;\r\n this.operatorId = data.operatorId;\r\n this.type = data.type;\r\n this.date = new Date(data.date);\r\n }\r\n\r\n ngOnInit() {\r\n this.loadExceptionDays();\r\n }\r\n\r\n loadExceptionDays() {\r\n let filterArray: IFilterGridData[] = [];\r\n\r\n if (this.type != null) {\r\n const typeFilter = this.filterGridFormService.createFilter('String', 'Type', 'Equals', this.type);\r\n filterArray.push(typeFilter);\r\n }\r\n\r\n if (this.officeId != null) {\r\n const officeFilter = this.filterGridFormService.createFilter('String', 'OfficeId', 'Equals', this.officeId);\r\n filterArray.push(officeFilter);\r\n }\r\n\r\n if (this.operatorId != null) {\r\n const operatorFilter = this.filterGridFormService.createFilter('String', 'OperatorId', 'Equals', this.operatorId);\r\n filterArray.push(operatorFilter);\r\n }\r\n\r\n const request = this.filterGridFormService.createRequest(false, null, filterArray);\r\n\r\n this.exceptionDayService.getExceptionDaysWithRequest(request).subscribe({\r\n next: data => {\r\n\r\n if (data.data.length > 0) {\r\n this.exceptionDays = data.data;\r\n\r\n this.dates = this.getUniqueDays(this.exceptionDays);\r\n\r\n //this.exceptionDaysCalendarLoaderService.loadExceptionDays(this.exceptionDays);\r\n\r\n this.loadExceptionsByday();\r\n }\r\n\r\n this.componentLoaded = true;\r\n }\r\n });\r\n }\r\n\r\n getUniqueDays(exceptionDays: IExceptionDay[]) {\r\n if (exceptionDays.length > 0) {\r\n const uniqueDays: Date[] = exceptionDays.map(item => item.date)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n return uniqueDays;\r\n }\r\n\r\n return [];\r\n }\r\n\r\n loadExceptionsByday() {\r\n //check if exist exceptions for the selected date in exceptions for insert\r\n const inInsertList = this.exceptionDaysForInsert.filter(x => new Date(x.date).getFullYear() == this.date.getFullYear() &&\r\n new Date(x.date).getMonth() == this.date.getMonth() && new Date(x.date).getDate() == this.date.getDate());\r\n\r\n if (inInsertList.length > 0) {\r\n this.exceptionsByday = inInsertList;\r\n\r\n return;\r\n }\r\n\r\n //check if exist exceptions for the selected date in exceptions\r\n const inList = this.exceptionDays.filter(x => new Date(x.date).getFullYear() == this.date.getFullYear() &&\r\n new Date(x.date).getMonth() == this.date.getMonth() && new Date(x.date).getDate() == this.date.getDate());\r\n\r\n if (inList.length > 0) {\r\n //check if exist exceptions for the selected date in exceptions for delete\r\n const inDeleteList = this.exceptionDaysForDelete.filter(x => new Date(x.date).getFullYear() == this.date.getFullYear() &&\r\n new Date(x.date).getMonth() == this.date.getMonth() && new Date(x.date).getDate() == this.date.getDate());\r\n\r\n if (inDeleteList.length == 0) {\r\n this.exceptionsByday = inList;\r\n\r\n return;\r\n }\r\n }\r\n\r\n this.exceptionsByday = [];\r\n }\r\n\r\n onSelectDate(date: Date, calendar: any) {\r\n this.date = date;\r\n\r\n calendar.updateTodaysDate();\r\n\r\n this.loadExceptionsByday();\r\n }\r\n\r\n dateClass() {\r\n if (this.dates.length > 0) {\r\n return (date: Date): MatCalendarCellCssClasses => {\r\n const highlightDate = this.dates.map(strDate => new Date(strDate))\r\n .some(d => d.getDate() === date.getDate() && d.getMonth() === date.getMonth() && d.getFullYear() === date.getFullYear());\r\n\r\n return highlightDate ? 'selected' : '';\r\n };\r\n }\r\n }\r\n\r\n onEditedExceptionDays(editedExceptionDays: IExceptionDay[]) {\r\n //check if exist exceptions for the selected date in exceptions for delete\r\n const inDeleteList = this.exceptionDaysForDelete.filter(x => new Date(x.date).getFullYear() == this.date.getFullYear() &&\r\n new Date(x.date).getMonth() == this.date.getMonth() && new Date(x.date).getDate() == this.date.getDate());\r\n\r\n if (inDeleteList.length == 0) {\r\n //add exceptions for the selected date in exceptions for delete\r\n const toDeleteList = this.exceptionDays.filter(x => new Date(x.date).getFullYear() == this.date.getFullYear() &&\r\n new Date(x.date).getMonth() == this.date.getMonth() && new Date(x.date).getDate() == this.date.getDate());\r\n\r\n if (toDeleteList.length > 0) {\r\n this.exceptionDaysForDelete.push(...toDeleteList);\r\n }\r\n }\r\n\r\n //remove exceptions for the selected day from insert list\r\n const listInInsert = this.exceptionDaysForInsert.filter(x => new Date(x.date).getFullYear() == this.date.getFullYear() &&\r\n new Date(x.date).getMonth() == this.date.getMonth() && new Date(x.date).getDate() == this.date.getDate());\r\n\r\n this.exceptionDaysForInsert = this.exceptionDaysForInsert.filter(x => !listInInsert.includes(x));\r\n\r\n //add the new exceptions for the selected day\r\n if (editedExceptionDays.length > 0) {\r\n this.exceptionDaysForInsert.push(...editedExceptionDays);\r\n\r\n this.dates.push(this.date);\r\n\r\n this.dateClass();\r\n }\r\n else {\r\n const index = this.dates.findIndex(x => new Date(x).getDate() === this.date.getDate() &&\r\n new Date(x).getMonth() === this.date.getMonth() && new Date(x).getFullYear() === this.date.getFullYear());\r\n\r\n if (index >= 0) this.dates.splice(index, 1);\r\n }\r\n }\r\n\r\n onIsFormValid(isFormValid: boolean) {\r\n this.isFormValid = isFormValid;\r\n }\r\n\r\n save() {\r\n if (this.exceptionDaysForDelete.length > 0) {\r\n this.exceptionDayService.deletelist(this.exceptionDaysForDelete).subscribe(x => {\r\n \r\n }, error => {\r\n console.log('error = ', error);\r\n });\r\n }\r\n\r\n if (this.exceptionDaysForInsert.length > 0) {\r\n Object(this.exceptionDaysForInsert).forEach(x => {\r\n x.date = GetDayWithoutTime(x.date);\r\n });\r\n\r\n this.exceptionDayService.createlist(this.exceptionDaysForInsert).subscribe(x => {\r\n \r\n }, error => {\r\n console.log('error = ', error);\r\n });\r\n }\r\n\r\n this.dialogRef.close(true);\r\n }\r\n\r\n cancel() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { IExceptionDay } from '../../../../../core/interfaces/customer/exception-day';\n\n@Injectable()\nexport class ExceptionsByDayFormService {\n public form: FormGroup;\n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n isAllDay: false,\n times: this.fb.array([])\n });\n }\n\n get timesForm() {\n return this.form.get('times') as FormArray;\n }\n\n addTime() {\n const time = this.fb.group({\n startHour: [null, Validators.required],\n endHour: [null, Validators.required]\n });\n\n this.timesForm.push(time);\n this.form.markAsDirty();\n }\n\n addTimeWithValue(startHour: string, endHour: string) {\n const obj = this.fb.group({\n startHour: [startHour, Validators.required],\n endHour: [endHour, Validators.required]\n });\n\n this.timesForm.push(obj);\n this.form.markAsDirty();\n }\n\n removeTime(index: number) {\n this.timesForm.removeAt(index);\n this.form.markAsDirty();\n }\n\n removeAllTimes() {\n this.timesForm.clear();\n this.form.markAsDirty();\n }\n\n changeTimeValue(index: number, name: string, value: string) {\n var control = this.timesForm.at(index).get(name);\n control.setValue(value);\n }\n\n getFormControl(property: string): FormControl {\n return this.form.get(property) as FormControl;\n }\n\n createExceptionDayDtos(officeId: string, operatorId: string, date: Date, type: string): IExceptionDay[] {\n const data = this.form.value;\n\n let exceptionDays: IExceptionDay[] = [];\n\n if (data.isAllDay) {\n const exceptionDay: IExceptionDay = {\n id: null,\n officeId: officeId,\n operatorId: operatorId,\n serviceId: null,\n startHour: null,\n endHour: null,\n date: date,\n isAllDay: data.isAllDay,\n type: type\n };\n\n exceptionDays.push(exceptionDay);\n }\n else if (data.times != null && data.times.length > 0) {\n Object(data.times).forEach(x => {\n const exceptionDay: IExceptionDay = {\n id: null,\n officeId: officeId,\n operatorId: operatorId,\n serviceId: null,\n startHour: x.startHour,\n endHour: x.endHour,\n date: date,\n isAllDay: data.isAllDay,\n type: type\n };\n\n exceptionDays.push(exceptionDay);\n });\n }\n\n return exceptionDays;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IExceptionDay } from '../../../../../core/interfaces/customer/exception-day';\nimport { ExceptionsByDayFormService } from './exceptions-by-day-form.service';\n\n@Injectable()\nexport class ExceptionsByDayLoaderService {\n\n constructor(private exceptionsByDayFormService: ExceptionsByDayFormService) { }\n\n loadExceptionsByDay(exceptionDays: IExceptionDay[]) {\n this.exceptionsByDayFormService.form.patchValue({\n isAllDay: this.checkIfIsAllDay(exceptionDays),\n });\n\n this.patchTimesArray(exceptionDays);\n }\n\n checkIfIsAllDay(exceptionDays: IExceptionDay[]) {\n if (exceptionDays != null && exceptionDays.length == 1) {\n return exceptionDays[0].isAllDay\n }\n\n return false;\n }\n\n patchTimesArray(exceptionDays: IExceptionDay[]) {\n if (exceptionDays != null && exceptionDays.length > 0) {\n try {\n Object(exceptionDays).forEach(x => {\n this.exceptionsByDayFormService.addTimeWithValue(x.startHour, x.endHour);\n });\n }\n catch (err) {\n console.log('Exception days split error = ', err);\n }\n }\n }\n}\n","export default \".exceptions {\\n overflow-x: hidden;\\n overflow-y: auto;\\n max-height: 25rem;\\n}\\n\\n.fake-icon {\\n width: 2.5rem;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9kaWFsb2dzL2V4Y2VwdGlvbi1kYXlzLWNhbGVuZGFyL2V4Y2VwdGlvbnMtYnktZGF5L0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxzaGFyZWRcXGNvbXBvbmVudHNcXGRpYWxvZ3NcXGV4Y2VwdGlvbi1kYXlzLWNhbGVuZGFyXFxleGNlcHRpb25zLWJ5LWRheVxcZXhjZXB0aW9ucy1ieS1kYXkuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9leGNlcHRpb24tZGF5cy1jYWxlbmRhci9leGNlcHRpb25zLWJ5LWRheS9leGNlcHRpb25zLWJ5LWRheS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0UsYUFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9kaWFsb2dzL2V4Y2VwdGlvbi1kYXlzLWNhbGVuZGFyL2V4Y2VwdGlvbnMtYnktZGF5L2V4Y2VwdGlvbnMtYnktZGF5LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmV4Y2VwdGlvbnMge1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIG1heC1oZWlnaHQ6IDI1cmVtO1xyXG59XHJcblxyXG4uZmFrZS1pY29uIHtcclxuICB3aWR0aDogMi41cmVtO1xyXG59XHJcbiIsIi5leGNlcHRpb25zIHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAyNXJlbTtcbn1cblxuLmZha2UtaWNvbiB7XG4gIHdpZHRoOiAyLjVyZW07XG59Il19 */\"","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormArray, FormControl } from '@angular/forms';\r\nimport { GetDayWithoutTime } from '../../../../../core/functions/date-function';\r\nimport { IExceptionDay } from '../../../../../core/interfaces/customer/exception-day';\r\nimport { ExceptionsByDayFormService } from './exceptions-by-day-form.service';\r\nimport { ExceptionsByDayLoaderService } from './exceptions-by-day-loader.service';\r\n\r\n@Component({\r\n selector: 'app-exceptions-by-day',\r\n templateUrl: './exceptions-by-day.component.html',\r\n styleUrls: ['./exceptions-by-day.component.scss'],\r\n providers: [\r\n ExceptionsByDayFormService,\r\n ExceptionsByDayLoaderService\r\n ]\r\n})\r\nexport class ExceptionsByDayComponent implements OnInit, OnChanges {\r\n @Input() exceptionDays: IExceptionDay[];\r\n @Input() officeId: string;\r\n @Input() operatorId: string;\r\n @Input() date: Date;\r\n @Input() type: string;\r\n\r\n @Output() editedExceptionDays = new EventEmitter();\r\n @Output() isFormValid = new EventEmitter();\r\n\r\n public disabledAllDay: boolean;\r\n public disabled: boolean;\r\n\r\n public componentLoaded: boolean;\r\n\r\n constructor(\r\n private exceptionsByDayFormService: ExceptionsByDayFormService,\r\n private exceptionsByDayLoaderService: ExceptionsByDayLoaderService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.exceptionDays != undefined) {\r\n this.exceptionDays = changes.exceptionDays.currentValue;\r\n }\r\n\r\n if (changes.date != undefined) {\r\n this.date = changes.date.currentValue;\r\n }\r\n\r\n this.loadExceptionsByDay();\r\n }\r\n\r\n loadExceptionsByDay() {\r\n let date: Date = new Date(GetDayWithoutTime(this.date));\r\n const today: Date = new Date(GetDayWithoutTime(new Date()));\r\n\r\n if (date < today) {\r\n this.disabled = true;\r\n this.isAllDay.disable();\r\n }\r\n else {\r\n this.disabled = false;\r\n this.isAllDay.enable();\r\n\r\n if (date.getFullYear() == today.getFullYear() && date.getMonth() == today.getMonth() && date.getDate() == today.getDate()) {\r\n this.isAllDay.disable();\r\n\r\n date = new Date();\r\n }\r\n }\r\n\r\n this.removeAllTimes();\r\n\r\n this.exceptionsByDayLoaderService.loadExceptionsByDay(this.exceptionDays);\r\n\r\n if (!this.disabled && this.form.value.times.length == 0) {\r\n this.addTime();\r\n }\r\n\r\n this.checkFormStatus();\r\n\r\n this.componentLoaded = true;\r\n }\r\n\r\n get form() {\r\n return this.exceptionsByDayFormService.form;\r\n }\r\n\r\n get isAllDay() {\r\n return this.exceptionsByDayFormService.getFormControl('isAllDay') as FormControl;\r\n }\r\n\r\n get timesForm(): FormArray {\r\n return this.exceptionsByDayFormService.form.get('times') as FormArray;\r\n }\r\n\r\n addTime() {\r\n this.exceptionsByDayFormService.addTime();\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n removeTime(index: number) {\r\n this.exceptionsByDayFormService.removeTime(index);\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n removeAllTimes() {\r\n this.exceptionsByDayFormService.removeAllTimes();\r\n }\r\n\r\n onChangeTime(index: number, name: string, value: any) {\r\n this.exceptionsByDayFormService.changeTimeValue(index, name, value);\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n onChangeAllDay(isChecked: boolean) {\r\n this.removeAllTimes();\r\n\r\n if (!isChecked) {\r\n this.addTime();\r\n\r\n return;\r\n }\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n checkFormStatus() {\r\n const status = this.form.status;\r\n\r\n if (status == \"VALID\" && !this.disabled) {\r\n const exceptionDays = this.exceptionsByDayFormService.createExceptionDayDtos(this.officeId, this.operatorId, this.date, this.type);\r\n\r\n this.editedExceptionDays.emit(exceptionDays);\r\n this.isFormValid.emit(true);\r\n\r\n return;\r\n }\r\n\r\n this.isFormValid.emit(false);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9leGNlcHRpb24tZGF5cy9leGNlcHRpb24tZGF5cy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\n@Component({\n selector: 'app-dialog-exception-days',\n templateUrl: './exception-days.component.html',\n styleUrls: ['./exception-days.component.scss']\n})\nexport class ExceptionDaysComponent implements OnInit {\n public officeId: string = null;\n public type: string = null;\n\n constructor(public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any | null) {\n\n if (data != null) {\n this.officeId = data.officeId;\n this.type = data.type;\n }\n }\n\n ngOnInit() {\n }\n\n closeDialog(event) {\n this.dialogRef.close(event);\n }\n}\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n.dialog-header {\\n height: 30px;\\n margin-bottom: 1.5rem;\\n}\\n\\n.dialog-header .float-left {\\n padding-top: 10px;\\n}\\n\\n.dialog-header .float-left h5 {\\n color: #EE7D5A;\\n text-transform: uppercase;\\n}\\n\\n.close-icon {\\n font-size: 20px;\\n font-weight: 700;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9kaWFsb2dzL2h0bWwtaW5mby9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXHNjc3NcXG1hbmFnZW1lbnRcXF9jb2xvci1zY2hlbWUuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9kaWFsb2dzL2h0bWwtaW5mby9odG1sLWluZm8uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9odG1sLWluZm8vRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxhcHBcXG1hbmFnZW1lbnRcXHNoYXJlZFxcY29tcG9uZW50c1xcZGlhbG9nc1xcaHRtbC1pbmZvXFxodG1sLWluZm8uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBO0VBQ0UsY0FqQk87QUNDVDs7QURtQkE7RUFDRSx5QkFyQk87QUNLVDs7QURtQkE7RUFDRSxjQXhCSztBQ1FQOztBRG1CQTtFQUNFLHlCQTVCSztBQ1lQOztBRG1CQTtFQUNFLGNBL0JXO0FDZWI7O0FEbUJBO0VBQ0UseUJBbkNXO0FDbUJiOztBRG1CQTtFQUNFLGNBckNVO0FDcUJaOztBRG1CQTtFQUNFLHlCQXpDVTtBQ3lCWjs7QURtQkE7RUFDRSxjQWxETTtBQ2tDUjs7QURtQkE7RUFDRSx5QkF0RE07QUNzQ1I7O0FEbUJBO0VBQ0UsY0FwRGM7QUNvQ2hCOztBRG1CQTtFQUNFLHlCQXhEYztBQ3dDaEI7O0FEbUJBO0VBQ0UsY0EzRGE7QUMyQ2Y7O0FEbUJBO0VBQ0UseUJBL0RhO0FDK0NmOztBRG1CQTtFQUNFLGNBckVVO0FDcURaOztBRG1CQTtFQUNFLHlCQW5FUTtBQ21EVjs7QURtQkE7RUFDRSx5QkF0RWE7QUNzRGY7O0FEbUJBO0VBQ0UsY0ExRWE7QUMwRGY7O0FEbUJBO0VBQ0UseUJBaEZhO0FDZ0VmOztBRG1CQTtFQUNFLGNBcEZhO0FDb0VmOztBRG1CQTtFQUNFLGNBekZNO0FDeUVSOztBRG1CQTtFQUNFLGNBeEZLO0FDd0VQOztBRG1CQTtFQUNFLHlCQTVGSztBQzRFUDs7QURtQkE7RUFDRSxjQS9GVTtBQytFWjs7QURtQkE7RUFDRSx5QkFuR1U7QUNtRlo7O0FDaEdBO0VBQ0UsWUFBQTtFQUNBLHFCQUFBO0FEbUdGOztBQ2pHRTtFQUNFLGlCQUFBO0FEbUdKOztBQ2pHSTtFQUNFLGNBQUE7RUFDQSx5QkFBQTtBRG1HTjs7QUM5RkE7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7QURpR0YiLCJmaWxlIjoic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL2RpYWxvZ3MvaHRtbC1pbmZvL2h0bWwtaW5mby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiR3aGl0ZTogI0ZGRkZGRjtcclxuJGRhcmtlcjogIzFDMjQyODtcclxuJGRhcms6ICMzNzQ3NEY7XHJcbiRncmF5LWxpZ2h0OiAjRUJGMUY0O1xyXG4kZ3JheS1tZWRpdW06ICNlMGUwZTA7XHJcbiRncmF5LWRhcms6ICM4QjlFQTc7XHJcbiRwcmltYXJ5LWNvbG9yOiAjRkY0MDgxO1xyXG4kYWNjZW50LWNvbG9yOiAjMjE5NkYzO1xyXG4kYWNjZW50LWNvbG9yLTI6ICMxQUM2NzM7XHJcbiRlcnJvcjogI0ZGNDEwMDtcclxuJGJ1cm50LXNpZW5uYTogI0VFN0Q1QTtcclxuJHNwaW5kbGU6ICNDOEU1RUY7XHJcbiRlYXN0ZXJuLWJsdWU6ICMxODk3QzM7XHJcbiR3aWxkLXN0cmF3YmVycnk6ICNGRjQwODE7XHJcbiR3YXJuOiAjZjQ0MzM2O1xyXG4kZGFyay1ibHVlOiAjMmE2Mzc3O1xyXG5cclxuLnRleHQtZGFya2VyIHtcclxuICBjb2xvcjogJGRhcmtlcjtcclxufVxyXG5cclxuLmJrZy1kYXJrZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi50ZXh0LWRhcmsge1xyXG4gIGNvbG9yOiAkZGFyaztcclxufVxyXG5cclxuLmJrZy1kYXJrIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyaztcclxufVxyXG5cclxuLnRleHQtbGlnaHRlciB7XHJcbiAgY29sb3I6ICRncmF5LWxpZ2h0O1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0O1xyXG59XHJcblxyXG4udGV4dC1saWdodCB7XHJcbiAgY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi5ia2ctbGlnaHQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi50ZXh0LXdoaXRlIHtcclxuICBjb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4uYmtnLXdoaXRlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbn1cclxuXHJcbi50ZXh0LXByaW1hcnkge1xyXG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxufVxyXG5cclxuLmJrZy1wcmltYXJ5IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxufVxyXG5cclxuLnRleHQtYWNjZW50IHtcclxuICBjb2xvcjogJGFjY2VudC1jb2xvcjtcclxufVxyXG5cclxuLmJrZy1hY2NlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWdyYXktZGFyayB7XHJcbiAgY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi5ia2ctc3BpbmRsZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5kbGU7XHJcbn1cclxuXHJcbi5ia2ctZWFzdGVybi1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWFzdGVybi1ibHVlO1xyXG59XHJcblxyXG4udGV4dC1lYXN0ZXJuLWJsdWUge1xyXG4gIGNvbG9yOiAkZWFzdGVybi1ibHVlO1xyXG59XHJcblxyXG4uYmtnLWJ1cm50LXNpZW5uYSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJ1cm50LXNpZW5uYTtcclxufVxyXG5cclxuLnRleHQtYnVybnQtc2llbm5hIHtcclxuICBjb2xvcjogJGJ1cm50LXNpZW5uYTtcclxufVxyXG5cclxuLnRleHQtZXJyb3Ige1xyXG4gIGNvbG9yOiAkZXJyb3I7XHJcbn1cclxuXHJcbi50ZXh0LXdhcm4ge1xyXG4gIGNvbG9yOiAkd2FybjtcclxufVxyXG5cclxuLmJrZy13YXJuIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2FybjtcclxufVxyXG5cclxuLnRleHQtZGFyay1ibHVlIHtcclxuICBjb2xvcjogJGRhcmstYmx1ZTtcclxufVxyXG5cclxuLmJrZy1kYXJrLWJsdWUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuIiwiLnRleHQtZGFya2VyIHtcbiAgY29sb3I6ICMxQzI0Mjg7XG59XG5cbi5ia2ctZGFya2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFDMjQyODtcbn1cblxuLnRleHQtZGFyayB7XG4gIGNvbG9yOiAjMzc0NzRGO1xufVxuXG4uYmtnLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc0NzRGO1xufVxuXG4udGV4dC1saWdodGVyIHtcbiAgY29sb3I6ICNFQkYxRjQ7XG59XG5cbi5ia2ctbGlnaHRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQkYxRjQ7XG59XG5cbi50ZXh0LWxpZ2h0IHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEI5RUE3O1xufVxuXG4udGV4dC13aGl0ZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuXG4uYmtnLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cblxuLnRleHQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjRkY0MDgxO1xufVxuXG4uYmtnLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY0MDgxO1xufVxuXG4udGV4dC1hY2NlbnQge1xuICBjb2xvcjogIzIxOTZGMztcbn1cblxuLmJrZy1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xufVxuXG4udGV4dC1ncmF5LWRhcmsge1xuICBjb2xvcjogIzhCOUVBNztcbn1cblxuLmJrZy1zcGluZGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M4RTVFRjtcbn1cblxuLmJrZy1lYXN0ZXJuLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5N0MzO1xufVxuXG4udGV4dC1lYXN0ZXJuLWJsdWUge1xuICBjb2xvcjogIzE4OTdDMztcbn1cblxuLmJrZy1idXJudC1zaWVubmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU3RDVBO1xufVxuXG4udGV4dC1idXJudC1zaWVubmEge1xuICBjb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtZXJyb3Ige1xuICBjb2xvcjogI0ZGNDEwMDtcbn1cblxuLnRleHQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4uYmtnLXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuXG4udGV4dC1kYXJrLWJsdWUge1xuICBjb2xvcjogIzJhNjM3Nztcbn1cblxuLmJrZy1kYXJrLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmE2Mzc3O1xufVxuXG4uZGlhbG9nLWhlYWRlciB7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuLmRpYWxvZy1oZWFkZXIgLmZsb2F0LWxlZnQge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn1cbi5kaWFsb2ctaGVhZGVyIC5mbG9hdC1sZWZ0IGg1IHtcbiAgY29sb3I6ICNFRTdENUE7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5jbG9zZS1pY29uIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNzAwO1xufSIsIkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL3Njc3MvbWFuYWdlbWVudC9fY29sb3Itc2NoZW1lJztcclxuXHJcbi5kaWFsb2ctaGVhZGVyIHtcclxuICBoZWlnaHQ6IDMwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG5cclxuICAuZmxvYXQtbGVmdCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuXHJcbiAgICBoNSB7XHJcbiAgICAgIGNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmNsb3NlLWljb24ge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-html-info',\r\n templateUrl: './html-info.component.html',\r\n styleUrls: ['./html-info.component.scss']\r\n})\r\nexport class HtmlInfoComponent implements OnInit {\r\n\r\n public title: string = null;\r\n public content: string = null;\r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any | null\r\n ) {\r\n if (data == null) {\r\n return;\r\n }\r\n\r\n this.title = data.title;\r\n this.content = data.content;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9pbmZvL2luZm8uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-info',\r\n templateUrl: './info.component.html',\r\n styleUrls: ['./info.component.scss']\r\n})\r\n\r\nexport class InfoComponent implements OnInit {\r\n public info: string = null;\r\n\r\n constructor(private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any | null\r\n ) {\r\n if (data == null) {\r\n return;\r\n }\r\n\r\n this.info = data;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZGlhbG9ncy9saXN0LWluZm8vbGlzdC1pbmZvLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-list-info',\r\n templateUrl: './list-info.component.html',\r\n styleUrls: ['./list-info.component.scss']\r\n})\r\nexport class ListInfoComponent implements OnInit {\r\n public items: string[] = [];\r\n public title: string = '';\r\n public titleName: string = '';\r\n public routerList: string = '';\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any | null,\r\n private router: Router,\r\n ) {\r\n if (data == null) {\r\n return;\r\n }\r\n\r\n this.items = data.items;\r\n this.title = data.title;\r\n this.titleName = data.titleName;\r\n this.routerList = data.routerList;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onChangeRoute(id: string) {\r\n this.dialogRef.close();\r\n\r\n this.router.navigate([`management/customer/${this.routerList}/edit/${id}`]);\r\n }\r\n}\r\n","export default \".date {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9leGNlcHRpb24tZGF5cy9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcbWFuYWdlbWVudFxcc2hhcmVkXFxjb21wb25lbnRzXFxleGNlcHRpb24tZGF5c1xcZXhjZXB0aW9uLWRheXMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZXhjZXB0aW9uLWRheXMvZXhjZXB0aW9uLWRheXMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxlQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL2V4Y2VwdGlvbi1kYXlzL2V4Y2VwdGlvbi1kYXlzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRhdGUge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4iLCIuZGF0ZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn0iXX0= */\"","import { Input } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ExceptionDayType } from '../../../core/constants/exception-day.constants';\r\nimport { ExceptionDayDataSource } from '../../../core/datasource/customer/exception-day.datasource';\r\nimport { GetDayWithoutTime } from '../../../core/functions/date-function';\r\nimport { IFilterGridData } from '../../../core/interfaces/common/filter-grid-data';\r\nimport { IExceptionDay } from '../../../core/interfaces/customer/exception-day';\r\nimport { ExceptionDayService } from '../../../core/services/customer/exception-day.service';\r\nimport { ConfirmationComponent } from '../dialogs/confirmation/confirmation.component';\r\nimport { ExceptionDaysCalendarComponent } from '../dialogs/exception-days-calendar/exception-days-calendar.component';\r\nimport { FilterGridFormService } from '../filter-grid/filter-grid-form.service';\r\n\r\n@Component({\r\n selector: 'app-exception-days',\r\n templateUrl: './exception-days.component.html',\r\n styleUrls: ['./exception-days.component.scss'],\r\n providers: [\r\n ExceptionDayService,\r\n FilterGridFormService\r\n ]\r\n})\r\nexport class ExceptionDaysComponent implements OnInit {\r\n @Input() officeId: string = null;\r\n @Input() operatorId: string = null;\r\n @Input() type: string = null;\r\n\r\n public dataSource: ExceptionDayDataSource | null;\r\n\r\n public exceptionDays: IExceptionDay[] = [];\r\n\r\n public exceptionDaySbj: BehaviorSubject = new BehaviorSubject([]);\r\n\r\n public displayedColumns: string[] = [\"Date\", \"Time\", \"Actions\"];\r\n\r\n public loading: boolean = false;\r\n\r\n public page: number = 1;\r\n public pageSize: number = 20;\r\n public pageSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n public filterArray: IFilterGridData[] = [];\r\n public sortField: string = null;\r\n public sortDirection: string = null;\r\n public totalItems: number;\r\n\r\n public today: Date = new Date();\r\n\r\n public ExceptionDayType = ExceptionDayType;\r\n\r\n public showOfficeInfo: boolean = false;\r\n public componentLoaded: boolean = false;\r\n\r\n constructor(\r\n readonly translate: TranslateService,\r\n private exceptionDayService: ExceptionDayService,\r\n private dialog: MatDialog,\r\n private filterGridFormService: FilterGridFormService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.officeId == null && this.type == ExceptionDayType.Office) {\r\n this.showOfficeInfo = true;\r\n this.componentLoaded = true;\r\n\r\n return;\r\n }\r\n\r\n this.dataSource = new ExceptionDayDataSource(this.exceptionDaySbj);\r\n\r\n this.pageSubject.subscribe(p => {\r\n this.page = p;\r\n if (p === null) {\r\n return;\r\n }\r\n\r\n this.loadExceptionDays();\r\n });\r\n\r\n this.loadExceptionDays();\r\n }\r\n\r\n loadExceptionDays() {\r\n this.loading = true;\r\n this.page = this.page !== null ? this.page : 1;\r\n\r\n if (this.type != null) {\r\n const typeFilter = this.filterGridFormService.createFilter('String', 'Type', 'Equals', this.type);\r\n this.filterArray.push(typeFilter);\r\n }\r\n\r\n if (this.officeId != null) {\r\n const officeFilter = this.filterGridFormService.createFilter('String', 'OfficeId', 'Equals', this.officeId);\r\n this.filterArray.push(officeFilter);\r\n }\r\n\r\n if (this.operatorId != null) {\r\n const operatorFilter = this.filterGridFormService.createFilter('String', 'OperatorId', 'Equals', this.operatorId);\r\n this.filterArray.push(operatorFilter);\r\n }\r\n\r\n const request = this.filterGridFormService.createRequest(true, null, this.filterArray, null, false,\r\n this.page, this.pageSize, this.sortDirection, this.sortField);\r\n\r\n this.exceptionDayService.getExceptionDaysWithRequest(request).subscribe({\r\n next: data => {\r\n data.data.filter(x => !x.isAllDay).forEach(x => {\r\n x.startHour = x.startHour.toString().slice(0, 5);\r\n x.endHour = x.endHour.toString().slice(0, 5);\r\n });\r\n\r\n this.exceptionDaySbj.next(data.data);\r\n this.totalItems = data.total;\r\n this.loading = false;\r\n this.componentLoaded = true;\r\n }\r\n });\r\n }\r\n\r\n handlePage(e) {\r\n this.pageSubject.next(e.pageIndex + 1);\r\n }\r\n\r\n addFilterComponent(event: IFilterGridData) {\r\n if (event.value === null) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName !== event.propertyName);\r\n }\r\n else {\r\n const existingFilter = this.filterArray.filter(x => x.propertyName === event.propertyName);\r\n\r\n if (existingFilter.length > 0) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName !== event.propertyName);\r\n }\r\n\r\n this.filterArray.push(event);\r\n\r\n }\r\n\r\n this.page = 1;\r\n this.loadExceptionDays();\r\n }\r\n\r\n sortData(event) {\r\n this.sortDirection = event.direction;\r\n this.sortField = event.active;\r\n\r\n this.page = 1;\r\n\r\n //call again the load method;\r\n this.loadExceptionDays();\r\n }\r\n\r\n edit(date: Date) {\r\n this.openExceptionDayCalendarDialog(date);\r\n }\r\n\r\n openExceptionDayCalendarDialog(date: Date) {\r\n const data = {\r\n officeId: this.officeId,\r\n operatorId: this.operatorId,\r\n type: this.type,\r\n date: date\r\n };\r\n\r\n const dialogRef = this.dialog.open(ExceptionDaysCalendarComponent, {\r\n width: \"50%\",\r\n data: data\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(response => {\r\n if (!response) {\r\n return;\r\n }\r\n\r\n this.loadExceptionDays();\r\n });\r\n }\r\n\r\n openDeleteDialog(element: IExceptionDay) {\r\n let dateMessage = `${GetDayWithoutTime(new Date(element.date))}`;\r\n if (!element.isAllDay) {\r\n dateMessage += `, ${element.startHour}-${element.endHour}`;\r\n }\r\n\r\n this.translate.get(\"confirmation.deleteExceptionQuestion\").subscribe(x => {\r\n const dialogRef = this.dialog.open(ConfirmationComponent, {\r\n minWidth: \"25rem\",\r\n minHeight: \"7rem\",\r\n data: `${x} ${dateMessage}?`\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(response => {\r\n if (!response) {\r\n return;\r\n }\r\n\r\n this.delete(element);\r\n });\r\n });\r\n }\r\n\r\n delete(element: IExceptionDay) {\r\n this.exceptionDayService.delete(element).subscribe(x => {\r\n if (x) {\r\n this.loadExceptionDays();\r\n }\r\n }, error => {\r\n console.log('delete error = ', error);\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { IFilterGridData } from '../../../core/interfaces/common/filter-grid-data';\r\nimport { IRequest } from '../../../core/interfaces/common/request';\r\nimport { ISelection } from '../../../core/interfaces/common/selection';\r\nimport { FilterOperatorType } from '../../../core/constants/filter-operator-type';\r\n\r\n@Injectable()\r\nexport class FilterGridFormService {\r\n public form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.fb.group({\r\n operatorName: [null, Validators.required],\r\n operatorValue: [null, Validators.required]\r\n });\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n\r\n createRequest(\r\n withPagination: boolean = false,\r\n customerCode: string = null,\r\n filters: IFilterGridData[] = [],\r\n parentCustomerCode: string = null,\r\n withAvailable: boolean = false,\r\n page: number = 0,\r\n pageSize: number = 0,\r\n sortDirection: string = null,\r\n sortField: string = null,\r\n dates: ISelection[] = null,\r\n withCancelStatus: boolean = false\r\n ): IRequest {\r\n const request: IRequest = {\r\n withAvailable: withAvailable,\r\n withPagination: withPagination,\r\n customerCode: customerCode,\r\n filters: filters,\r\n parentCustomerCode: parentCustomerCode,\r\n page: page,\r\n pageSize: pageSize,\r\n sortDirection: sortDirection,\r\n sortField: sortField,\r\n dates: dates,\r\n withCancelStatus: withCancelStatus\r\n }\r\n return request;\r\n }\r\n\r\n createFilter(propertyType: string, propertyName: string, operatorName: string, value: string, isExpression?: boolean): IFilterGridData {\r\n const filter: IFilterGridData = {\r\n propertyType: propertyType,\r\n propertyName: propertyName,\r\n operatorName: operatorName,\r\n value: value,\r\n isExpression: isExpression !== null ? isExpression : false\r\n }\r\n\r\n return filter;\r\n }\r\n\r\n compare(a: number | string, b: number | string, isAsc: boolean) {\r\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\r\n }\r\n\r\n filter(filter: IFilterGridData, array: any[]): any[] {\r\n var data = [];\r\n\r\n switch (filter.operatorName) {\r\n\r\n case \"Equals\": {\r\n for (var i = 0; i < array.length; i++) {\r\n var propertyValue = array[i][filter.propertyName];\r\n if (filter.propertyType == FilterOperatorType.String) {\r\n propertyValue = propertyValue.toLowerCase();\r\n }\r\n\r\n //if array compare with length\r\n if (filter.propertyType == \"Array\") {\r\n propertyValue = propertyValue.length;\r\n }\r\n\r\n if (propertyValue == this.convertValue(filter)) {\r\n data.push(array[i]);\r\n }\r\n };\r\n return data;\r\n }\r\n \r\n case \"Greater Than\":{\r\n for (var i = 0; i < array.length; i++) {\r\n var propertyValue = array[i][filter.propertyName];\r\n\r\n //if array compare with length\r\n if (filter.propertyType == \"Array\") {\r\n propertyValue = propertyValue.length;\r\n }\r\n\r\n if (propertyValue > this.convertValue(filter)) {\r\n data.push(array[i]);\r\n }\r\n };\r\n return data;\r\n }\r\n \r\n case \"Greater Than Or Equals\":{\r\n for (var i = 0; i < array.length; i++) {\r\n var propertyValue = array[i][filter.propertyName];\r\n\r\n //if array compare with length\r\n if (filter.propertyType == \"Array\") {\r\n propertyValue = propertyValue.length;\r\n }\r\n\r\n if (propertyValue >= this.convertValue(filter)) {\r\n data.push(array[i]);\r\n }\r\n };\r\n return data;\r\n }\r\n\r\n case \"Less Than\":{\r\n for (var i = 0; i < array.length; i++) {\r\n var propertyValue = array[i][filter.propertyName];\r\n\r\n //if array compare with length\r\n if (filter.propertyType == \"Array\") {\r\n propertyValue = propertyValue.length;\r\n }\r\n\r\n if (propertyValue < this.convertValue(filter)) {\r\n data.push(array[i]);\r\n }\r\n };\r\n return data;\r\n }\r\n case \"Less Than Or Equals\": {\r\n for (var i = 0; i < array.length; i++) {\r\n var propertyValue = array[i][filter.propertyName];\r\n\r\n //if array compare with length\r\n if (filter.propertyType == \"Array\") {\r\n propertyValue = propertyValue.length;\r\n }\r\n\r\n if (propertyValue <= this.convertValue(filter)) {\r\n data.push(array[i]);\r\n }\r\n };\r\n return data;\r\n }\r\n \r\n case \"Not Equal\": {\r\n for (var i = 0; i < array.length; i++) {\r\n var propertyValue = array[i][filter.propertyName];\r\n if (filter.propertyType == FilterOperatorType.String) {\r\n propertyValue = propertyValue.toLowerCase();\r\n }\r\n\r\n //if array compare with length\r\n if (filter.propertyType == \"Array\") {\r\n propertyValue = propertyValue.length;\r\n }\r\n\r\n if (propertyValue != this.convertValue(filter)) {\r\n data.push(array[i]);\r\n }\r\n };\r\n return data;\r\n }\r\n \r\n case \"Starts With\": {\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i][filter.propertyName].toLowerCase().startsWith(this.convertValue(filter))) {\r\n data.push(array[i]);\r\n }\r\n };\r\n return data;\r\n }\r\n \r\n case \"Contains\": {\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i][filter.propertyName].toLowerCase().includes(this.convertValue(filter))) {\r\n data.push(array[i]);\r\n }\r\n };\r\n return data;\r\n }\r\n \r\n case \"End With\": {\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i][filter.propertyName].toLowerCase().endsWith(this.convertValue(filter))) {\r\n data.push(array[i]);\r\n }\r\n };\r\n return data;\r\n }\r\n \r\n default: {\r\n return data = array;\r\n }\r\n \r\n }\r\n }\r\n\r\n private convertValue(filter: IFilterGridData) {\r\n switch (filter.propertyType) {\r\n case FilterOperatorType.Number:\r\n case \"Array\":\r\n return +filter.value;\r\n case FilterOperatorType.Boolean:\r\n return filter.value.toLowerCase() == \"true\";\r\n case FilterOperatorType.Timestamp:\r\n var selectedDate = new Date(filter.value);\r\n var ticks = ((selectedDate.getTime() * 10000) + 621355968000000000);\r\n\r\n default:\r\n return filter.value.toLowerCase();\r\n }\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n.filter-grid-container {\\n position: absolute;\\n z-index: 9998;\\n top: 1rem;\\n bottom: 0;\\n right: 1rem;\\n /* Chrome, Safari, Edge, Opera */\\n /* Firefox */\\n}\\n\\n.filter-grid-container .filter-grid-btn {\\n font-size: 0.875rem;\\n width: auto;\\n min-width: 0;\\n line-height: 1;\\n padding: 0.3rem 0.5rem;\\n background-color: #ffffff;\\n}\\n\\n.filter-grid-container .filter-grid-btn.is-applied::after {\\n content: \\\"\\\";\\n position: absolute;\\n z-index: 999;\\n top: 0;\\n right: 0;\\n width: 0.5rem;\\n height: 0.5rem;\\n border-radius: 50%;\\n background-color: #FF4081;\\n}\\n\\n.filter-grid-container-form {\\n visibility: hidden;\\n z-index: -1;\\n height: 0px;\\n width: 0px;\\n overflow: hidden;\\n opacity: 0;\\n background-color: #ffffff;\\n transition: opacity 0.3s;\\n transform: translateY(20px);\\n}\\n\\n.filter-grid-container-form.visible {\\n z-index: 9999;\\n position: absolute;\\n top: 100%;\\n right: 0;\\n width: 12rem;\\n height: auto;\\n padding: 0.75rem;\\n visibility: visible;\\n opacity: 1;\\n transform: translateY(0px);\\n}\\n\\n.filter-grid-container input::-webkit-outer-spin-button,\\n.filter-grid-container input::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\n.filter-grid-container input[type=number] {\\n -moz-appearance: textfield;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9maWx0ZXItZ3JpZC9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXHNjc3NcXG1hbmFnZW1lbnRcXF9jb2xvci1zY2hlbWUuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9maWx0ZXItZ3JpZC9maWx0ZXItZ3JpZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9maWx0ZXItZ3JpZC9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcbWFuYWdlbWVudFxcc2hhcmVkXFxjb21wb25lbnRzXFxmaWx0ZXItZ3JpZFxcZmlsdGVyLWdyaWQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBO0VBQ0UsY0FqQk87QUNDVDs7QURtQkE7RUFDRSx5QkFyQk87QUNLVDs7QURtQkE7RUFDRSxjQXhCSztBQ1FQOztBRG1CQTtFQUNFLHlCQTVCSztBQ1lQOztBRG1CQTtFQUNFLGNBL0JXO0FDZWI7O0FEbUJBO0VBQ0UseUJBbkNXO0FDbUJiOztBRG1CQTtFQUNFLGNBckNVO0FDcUJaOztBRG1CQTtFQUNFLHlCQXpDVTtBQ3lCWjs7QURtQkE7RUFDRSxjQWxETTtBQ2tDUjs7QURtQkE7RUFDRSx5QkF0RE07QUNzQ1I7O0FEbUJBO0VBQ0UsY0FwRGM7QUNvQ2hCOztBRG1CQTtFQUNFLHlCQXhEYztBQ3dDaEI7O0FEbUJBO0VBQ0UsY0EzRGE7QUMyQ2Y7O0FEbUJBO0VBQ0UseUJBL0RhO0FDK0NmOztBRG1CQTtFQUNFLGNBckVVO0FDcURaOztBRG1CQTtFQUNFLHlCQW5FUTtBQ21EVjs7QURtQkE7RUFDRSx5QkF0RWE7QUNzRGY7O0FEbUJBO0VBQ0UsY0ExRWE7QUMwRGY7O0FEbUJBO0VBQ0UseUJBaEZhO0FDZ0VmOztBRG1CQTtFQUNFLGNBcEZhO0FDb0VmOztBRG1CQTtFQUNFLGNBekZNO0FDeUVSOztBRG1CQTtFQUNFLGNBeEZLO0FDd0VQOztBRG1CQTtFQUNFLHlCQTVGSztBQzRFUDs7QURtQkE7RUFDRSxjQS9GVTtBQytFWjs7QURtQkE7RUFDRSx5QkFuR1U7QUNtRlo7O0FDaEdBO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBMERBLGdDQUFBO0VBTUEsWUFBQTtBRHFDRjs7QUNuR0U7RUFDRSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLHNCQUFBO0VBQ0EseUJBQUE7QURxR0o7O0FDbkdJO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLHlCRnBCVTtBQ3lIaEI7O0FDakdFO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSx5QkFBQTtFQUlBLHdCQUFBO0VBS0EsMkJBQUE7QURtR0o7O0FDakdJO0VBQ0UsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxVQUFBO0VBS0EsMEJBQUE7QURtR047O0FDL0ZFOztFQUVFLHdCQUFBO0VBQ0EsU0FBQTtBRGlHSjs7QUM5RkU7RUFDRSwwQkFBQTtBRGdHSiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvZmlsdGVyLWdyaWQvZmlsdGVyLWdyaWQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkd2hpdGU6ICNGRkZGRkY7XHJcbiRkYXJrZXI6ICMxQzI0Mjg7XHJcbiRkYXJrOiAjMzc0NzRGO1xyXG4kZ3JheS1saWdodDogI0VCRjFGNDtcclxuJGdyYXktbWVkaXVtOiAjZTBlMGUwO1xyXG4kZ3JheS1kYXJrOiAjOEI5RUE3O1xyXG4kcHJpbWFyeS1jb2xvcjogI0ZGNDA4MTtcclxuJGFjY2VudC1jb2xvcjogIzIxOTZGMztcclxuJGFjY2VudC1jb2xvci0yOiAjMUFDNjczO1xyXG4kZXJyb3I6ICNGRjQxMDA7XHJcbiRidXJudC1zaWVubmE6ICNFRTdENUE7XHJcbiRzcGluZGxlOiAjQzhFNUVGO1xyXG4kZWFzdGVybi1ibHVlOiAjMTg5N0MzO1xyXG4kd2lsZC1zdHJhd2JlcnJ5OiAjRkY0MDgxO1xyXG4kd2FybjogI2Y0NDMzNjtcclxuJGRhcmstYmx1ZTogIzJhNjM3NztcclxuXHJcbi50ZXh0LWRhcmtlciB7XHJcbiAgY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi5ia2ctZGFya2VyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4udGV4dC1kYXJrIHtcclxuICBjb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi5ia2ctZGFyayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0ZXIge1xyXG4gIGNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmJrZy1saWdodGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLnRleHQtbGlnaHQge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSB7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJrZy13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1wcmltYXJ5IHtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWFjY2VudCB7XHJcbiAgY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctYWNjZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1ncmF5LWRhcmsge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLXNwaW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzcGluZGxlO1xyXG59XHJcblxyXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLnRleHQtZWFzdGVybi1ibHVlIHtcclxuICBjb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLmJrZy1idXJudC1zaWVubmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWJ1cm50LXNpZW5uYSB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWVycm9yIHtcclxuICBjb2xvcjogJGVycm9yO1xyXG59XHJcblxyXG4udGV4dC13YXJuIHtcclxuICBjb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi5ia2ctd2FybiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi50ZXh0LWRhcmstYmx1ZSB7XHJcbiAgY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctZGFyay1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcbiIsIi50ZXh0LWRhcmtlciB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uYmtnLWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzI0Mjg7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cblxuLmJrZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0Rjtcbn1cblxuLnRleHQtbGlnaHRlciB7XG4gIGNvbG9yOiAjRUJGMUY0O1xufVxuXG4uYmtnLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMUY0O1xufVxuXG4udGV4dC1saWdodCB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhCOUVBNztcbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLmJrZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuLmJrZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbi5ia2ctYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuLnRleHQtZ3JheS1kYXJrIHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctc3BpbmRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEU1RUY7XG59XG5cbi5ia2ctZWFzdGVybi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn1cblxuLnRleHQtZWFzdGVybi1ibHVlIHtcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5ia2ctYnVybnQtc2llbm5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtYnVybnQtc2llbm5hIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWVycm9yIHtcbiAgY29sb3I6ICNGRjQxMDA7XG59XG5cbi50ZXh0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLmJrZy13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLnRleHQtZGFyay1ibHVlIHtcbiAgY29sb3I6ICMyYTYzNzc7XG59XG5cbi5ia2ctZGFyay1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNjM3Nztcbn1cblxuLmZpbHRlci1ncmlkLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogOTk5ODtcbiAgdG9wOiAxcmVtO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAxcmVtO1xuICAvKiBDaHJvbWUsIFNhZmFyaSwgRWRnZSwgT3BlcmEgKi9cbiAgLyogRmlyZWZveCAqL1xufVxuLmZpbHRlci1ncmlkLWNvbnRhaW5lciAuZmlsdGVyLWdyaWQtYnRuIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG4uZmlsdGVyLWdyaWQtY29udGFpbmVyIC5maWx0ZXItZ3JpZC1idG4uaXMtYXBwbGllZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5OTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDAuNXJlbTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cbi5maWx0ZXItZ3JpZC1jb250YWluZXItZm9ybSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7XG4gIGhlaWdodDogMHB4O1xuICB3aWR0aDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xufVxuLmZpbHRlci1ncmlkLWNvbnRhaW5lci1mb3JtLnZpc2libGUge1xuICB6LWluZGV4OiA5OTk5O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMnJlbTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbn1cbi5maWx0ZXItZ3JpZC1jb250YWluZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4uZmlsdGVyLWdyaWQtY29udGFpbmVyIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4uZmlsdGVyLWdyaWQtY29udGFpbmVyIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufSIsIkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL3Njc3MvbWFuYWdlbWVudC9fY29sb3Itc2NoZW1lLnNjc3MnO1xyXG5cclxuLmZpbHRlci1ncmlkLWNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6IDk5OTg7XHJcbiAgdG9wOiAxcmVtO1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMXJlbTtcclxuXHJcbiAgLmZpbHRlci1ncmlkLWJ0biB7XHJcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIHBhZGRpbmc6IDAuM3JlbSAwLjVyZW07XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG5cclxuICAgICYuaXMtYXBwbGllZDo6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHotaW5kZXg6IDk5OTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgd2lkdGg6IDAuNXJlbTtcclxuICAgICAgaGVpZ2h0OiAwLjVyZW07XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLWZvcm0ge1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICBoZWlnaHQ6IDBweDtcclxuICAgIHdpZHRoOiAwcHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcclxuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xyXG4gICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XHJcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcclxuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcclxuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XHJcblxyXG4gICAgJi52aXNpYmxlIHtcclxuICAgICAgei1pbmRleDogOTk5OTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDEwMCU7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB3aWR0aDogMTJyZW07XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgcGFkZGluZzogMC43NXJlbTtcclxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcclxuICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcclxuICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qIENocm9tZSwgU2FmYXJpLCBFZGdlLCBPcGVyYSAqL1xyXG4gIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxyXG4gIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbiAgLyogRmlyZWZveCAqL1xyXG4gIGlucHV0W3R5cGU9bnVtYmVyXSB7XHJcbiAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { FilterGridOperatorList, FilterOperatorType } from '../../../core/constants/filter-operator-type';\r\nimport { IFilterGridData } from '../../../core/interfaces/common/filter-grid-data';\r\nimport { FilterGridFormService } from './filter-grid-form.service';\r\nimport * as fromI18n from '../../../../i18n/reducers';\r\n\r\n@Component({\r\n selector: 'app-filter-grid',\r\n templateUrl: './filter-grid.component.html',\r\n styleUrls: ['./filter-grid.component.scss'],\r\n providers: [FilterGridFormService]\r\n})\r\nexport class FilterGridComponent implements OnInit {\r\n @Input() propertyName: string;\r\n @Input() propertyType: string;\r\n @Input() isExpression: boolean = false;\r\n\r\n @Output() filter = new EventEmitter();\r\n\r\n //public operators = FilterGridOperatorList;\r\n public operators: object[] = [];\r\n public isOpen: Boolean = false;\r\n public isApplied: Boolean = false;\r\n\r\n public operatorsSbj: BehaviorSubject = new BehaviorSubject([]);\r\n\r\n constructor(\r\n readonly store: Store,\r\n readonly translate: TranslateService,\r\n private formService: FilterGridFormService \r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.propertyType == FilterOperatorType.Boolean) {\r\n this.operatorName.setValue(\"Equals\");\r\n }\r\n\r\n this.store.pipe(select(fromI18n.getCurrentLanguage)).subscribe(x => {\r\n this.translateOperators();\r\n });\r\n }\r\n\r\n translateOperators() {\r\n this.operators = [];\r\n\r\n Object(FilterGridOperatorList[this.propertyType]).forEach(operator => {\r\n const type = operator.replace(/\\s/g, \"\");\r\n this.translate.get(`filter.${type}`).subscribe(translatedOperator => {\r\n const obj: object = {\r\n value: operator,\r\n name: translatedOperator\r\n };\r\n\r\n this.operators.push(obj);\r\n });\r\n });\r\n }\r\n\r\n get form() {\r\n return this.formService.form;\r\n }\r\n\r\n get operatorName() {\r\n return this.formService.getFormControl('operatorName');\r\n }\r\n\r\n get operatorValue() {\r\n return this.formService.getFormControl('operatorValue');\r\n }\r\n\r\n toggle() {\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n apply() {\r\n this.isApplied = true;\r\n\r\n let opValue = this.operatorValue.value;\r\n\r\n if (this.propertyType == FilterOperatorType.Timestamp || this.propertyType == FilterOperatorType.Date) {\r\n const today = new Date();\r\n opValue = new Date(this.operatorValue.value.setHours(today.getUTCHours()));\r\n }\r\n\r\n const filter: IFilterGridData = {\r\n propertyType: this.propertyType,\r\n propertyName: this.getPropertyName(),\r\n operatorName: this.operatorName.value,\r\n value: opValue,\r\n isExpression: this.isExpression\r\n }\r\n\r\n this.filter.emit(filter);\r\n this.isOpen = false;\r\n }\r\n\r\n clear() {\r\n this.isApplied = false;\r\n\r\n //reset the form first\r\n this.form.reset();\r\n\r\n const filter: IFilterGridData = {\r\n propertyType: this.propertyType,\r\n propertyName: this.getPropertyName(),\r\n operatorName: this.operatorName.value,\r\n value: null\r\n }\r\n\r\n this.filter.emit(filter);\r\n this.isOpen = false;\r\n }\r\n\r\n resetFilter() {\r\n this.isApplied = false;\r\n\r\n //reset the form first\r\n this.form.reset();\r\n\r\n const filter: IFilterGridData = {\r\n propertyType: this.propertyType,\r\n propertyName: this.propertyName,\r\n operatorName: this.operatorName.value,\r\n value: null\r\n }\r\n }\r\n\r\n getPropertyName(): string {\r\n let propertyName = this.propertyName;\r\n\r\n if (this.isExpression == true && this.propertyName.toLowerCase() == 'status') {\r\n propertyName = \" concat(ToString(c.FinalStatus.PrimaryStatus.Code), (IS_NULL(c.FinalStatus.SecondaryStatus) ? '' : concat('.', ToString(c.FinalStatus.SecondaryStatus.Code))))\";\r\n }\r\n\r\n if (this.isExpression == true && this.propertyName == 'ParticipantDuration') {\r\n propertyName = \" IS_NULL(c.Duration)=false and c.Duration\";\r\n }\r\n\r\n if (this.isExpression == true && this.propertyName == 'ConferenceDuration') {\r\n propertyName = \"IS_NULL(c.Duration)=false and c.Duration\";\r\n }\r\n\r\n\r\n if (this.isExpression == true && this.propertyName == 'CallDuration') {\r\n propertyName = \"IS_NULL(c.Duration)=false and c.Duration\";\r\n }\r\n\r\n if (this.isExpression && this.propertyName == 'agentStatus') {\r\n propertyName = \"IS_NULL(c.EndedOnUtc)\";\r\n }\r\n\r\n if (this.isExpression && this.propertyName == 'DeletedOnUtc') {\r\n propertyName = \"IS_NULL(c.DeletedOnUtc)\";\r\n }\r\n\r\n if (this.isExpression && this.propertyName == 'ExpiresOnUtc') {\r\n propertyName = \"IS_NULL(c.ExpiresOnUtc)\";\r\n }\r\n\r\n if (this.isExpression && this.propertyName == 'StartedOnUtc') {\r\n propertyName = \"IS_NULL(c.StartedOnUtc)\";\r\n }\r\n\r\n if (this.isExpression && this.propertyName == 'EndedOnUtc') {\r\n propertyName = \"IS_NULL(c.EndedOnUtc)\";\r\n }\r\n\r\n return propertyName;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { IKeyword } from '../../../core/interfaces/common/keyword';\r\n\r\n@Injectable()\r\nexport class KeywordsFormService {\r\n public form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.fb.group({\r\n keywords: this.fb.array([])\r\n });\r\n }\r\n\r\n get keywordsForm() {\r\n return this.form.get('keywords') as FormArray;\r\n }\r\n\r\n addKeyword() {\r\n const keywords = this.fb.group({\r\n id: [null],\r\n word: [null, Validators.required]\r\n });\r\n\r\n //this.keywordsForm.push(keywords);\r\n this.keywordsForm.insert(-9999999, keywords); //push item to begin of list\r\n this.form.markAsDirty();\r\n }\r\n\r\n addKeywordWithValue(keyword: IKeyword) {\r\n const obj = this.fb.group({\r\n id: [keyword.id],\r\n word: [keyword.word, Validators.required]\r\n });\r\n\r\n this.keywordsForm.push(obj);\r\n this.form.markAsDirty();\r\n }\r\n\r\n removeKeyword(index: number) {\r\n this.keywordsForm.removeAt(index);\r\n this.form.markAsDirty();\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n\r\n createKeywordDtos(): IKeyword[] {\r\n const data = this.form.value;\r\n\r\n const keywords: IKeyword[] = [];\r\n\r\n Object(data.keywords).forEach(x => {\r\n const keyword: IKeyword = {\r\n id: x.id,\r\n word: x.word\r\n };\r\n\r\n keywords.push(keyword);\r\n });\r\n\r\n return keywords;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IKeyword } from '../../../core/interfaces/common/keyword';\r\nimport { KeywordsFormService } from './keywords-form.service';\r\n\r\n@Injectable()\r\nexport class KeywordsLoaderService {\r\n\r\n constructor(private keywordsFormService: KeywordsFormService) { }\r\n\r\n loadKeywords(keywords: IKeyword[]) {\r\n this.patchKeywordsArray(keywords);\r\n }\r\n\r\n patchKeywordsArray(keywords: IKeyword[]) {\r\n if (keywords != null && keywords.length > 0) {\r\n try {\r\n Object(keywords).forEach(x => {\r\n this.keywordsFormService.addKeywordWithValue(x);\r\n });\r\n }\r\n catch (err) {\r\n console.log('Keywords split error = ', err);\r\n }\r\n }\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMva2V5d29yZHMva2V5d29yZHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormArray } from '@angular/forms';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { I18nComponent } from '../../../../i18n/containers/i18n.component';\r\nimport * as fromI18n from '../../../../i18n/reducers';\r\nimport { IKeyword } from '../../../core/interfaces/common/keyword';\r\nimport { KeywordService } from '../../../core/services/customer/keyword.service';\r\nimport { KeywordsFormService } from './keywords-form.service';\r\nimport { KeywordsLoaderService } from './keywords-loader.service';\r\n\r\n@Component({\r\n selector: 'app-keywords',\r\n templateUrl: './keywords.component.html',\r\n styleUrls: ['./keywords.component.scss'],\r\n providers: [\r\n KeywordsFormService,\r\n KeywordsLoaderService,\r\n KeywordService\r\n ]\r\n})\r\nexport class KeywordsComponent extends I18nComponent {\r\n @Input() parentDiscriminator: string;\r\n @Input() parentId: string;\r\n\r\n @Output() editedKeywords = new EventEmitter();\r\n @Output() isKeywordsValid = new EventEmitter();\r\n\r\n public allKeywords: IKeyword[] = [];\r\n public keywords: IKeyword[] = [];\r\n\r\n public isDuplicated: boolean = false;\r\n public componentLoaded: boolean = false;\r\n\r\n constructor(\r\n readonly store: Store,\r\n readonly translate: TranslateService,\r\n private keywordsFormService: KeywordsFormService,\r\n private keywordsLoaderService: KeywordsLoaderService,\r\n private keywordService: KeywordService\r\n ) {\r\n super(store, translate);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.keywordService.getKeywordsByDiscriminator(this.parentDiscriminator).subscribe(x => {\r\n if (x == null || x.length == 0) {\r\n this.componentLoaded = true;\r\n\r\n return;\r\n }\r\n\r\n this.allKeywords = x;\r\n this.keywords = x.filter(x => x.parentId == this.parentId);\r\n\r\n this.keywordsLoaderService.loadKeywords(this.keywords);\r\n\r\n this.componentLoaded = true;\r\n });\r\n }\r\n\r\n get form() {\r\n return this.keywordsFormService.form;\r\n }\r\n\r\n get keywordsForm(): FormArray {\r\n return this.keywordsFormService.form.get('keywords') as FormArray;\r\n }\r\n\r\n addKeyword() {\r\n this.keywordsFormService.addKeyword();\r\n\r\n this.checkDuplicates();\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n removeKeyword(index: number) {\r\n this.keywordsFormService.removeKeyword(index);\r\n\r\n this.checkDuplicates();\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n editedWord() {\r\n this.checkDuplicates();\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n checkDuplicates() {\r\n const keywords = this.allKeywords.filter(x => x.parentId != this.parentId);\r\n keywords.push(...this.keywordsForm.value);\r\n\r\n const array = keywords.map(function (item) {\r\n let result: string = '';\r\n\r\n if (item['word'] != null) {\r\n result = item['word'].toLowerCase();\r\n }\r\n\r\n const array: string[] = result.trim().split(\" \");\r\n if (array.length == 1) {\r\n result = result.replace(/\\s+/g, '');\r\n }\r\n\r\n return result;\r\n });\r\n\r\n this.isDuplicated = (new Set(array)).size !== array.length;\r\n }\r\n\r\n checkFormStatus() {\r\n const status = this.form.status;\r\n\r\n if (status == \"VALID\" && !this.isDuplicated) {\r\n const keywords = this.keywordsFormService.createKeywordDtos();\r\n\r\n this.editedKeywords.emit(keywords);\r\n this.isKeywordsValid.emit(true);\r\n\r\n return;\r\n }\r\n\r\n this.isKeywordsValid.emit(false);\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n/*\\n =================================================================================================\\n general layout variables\\n =================================================================================================\\n*/\\n\\n/* main menu that contains the modules: console, sms, email, etc */\\n\\n/* secondary menu that contains the menu for each module */\\n\\n.layout {\\n /*position: relative;*/\\n width: 100%;\\n padding-left: 5rem;\\n background-color: #FFFFFF;\\n}\\n\\n.layout-container,\\n.layout {\\n min-height: 100%;\\n height: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9sYXlvdXQvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfY29sb3Itc2NoZW1lLnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvbGF5b3V0L2xheW91dC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9sYXlvdXQvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvbGF5b3V0L0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxzaGFyZWRcXGNvbXBvbmVudHNcXGxheW91dFxcbGF5b3V0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTtFQUNFLGNBakJPO0FDQ1Q7O0FEbUJBO0VBQ0UseUJBckJPO0FDS1Q7O0FEbUJBO0VBQ0UsY0F4Qks7QUNRUDs7QURtQkE7RUFDRSx5QkE1Qks7QUNZUDs7QURtQkE7RUFDRSxjQS9CVztBQ2ViOztBRG1CQTtFQUNFLHlCQW5DVztBQ21CYjs7QURtQkE7RUFDRSxjQXJDVTtBQ3FCWjs7QURtQkE7RUFDRSx5QkF6Q1U7QUN5Qlo7O0FEbUJBO0VBQ0UsY0FsRE07QUNrQ1I7O0FEbUJBO0VBQ0UseUJBdERNO0FDc0NSOztBRG1CQTtFQUNFLGNBcERjO0FDb0NoQjs7QURtQkE7RUFDRSx5QkF4RGM7QUN3Q2hCOztBRG1CQTtFQUNFLGNBM0RhO0FDMkNmOztBRG1CQTtFQUNFLHlCQS9EYTtBQytDZjs7QURtQkE7RUFDRSxjQXJFVTtBQ3FEWjs7QURtQkE7RUFDRSx5QkFuRVE7QUNtRFY7O0FEbUJBO0VBQ0UseUJBdEVhO0FDc0RmOztBRG1CQTtFQUNFLGNBMUVhO0FDMERmOztBRG1CQTtFQUNFLHlCQWhGYTtBQ2dFZjs7QURtQkE7RUFDRSxjQXBGYTtBQ29FZjs7QURtQkE7RUFDRSxjQXpGTTtBQ3lFUjs7QURtQkE7RUFDRSxjQXhGSztBQ3dFUDs7QURtQkE7RUFDRSx5QkE1Rks7QUM0RVA7O0FEbUJBO0VBQ0UsY0EvRlU7QUMrRVo7O0FEbUJBO0VBQ0UseUJBbkdVO0FDbUZaOztBQ2xHQTs7OztDQUFBOztBQU04QixrRUFBQTs7QUFDRiwwREFBQTs7QUNKNUI7RUFDRSxzQkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLHlCSFBNO0FDZ0hSOztBRXRHQTs7RUFFRSxnQkFBQTtFQUNBLFlBQUE7QUZ5R0YiLCJmaWxlIjoic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkd2hpdGU6ICNGRkZGRkY7XHJcbiRkYXJrZXI6ICMxQzI0Mjg7XHJcbiRkYXJrOiAjMzc0NzRGO1xyXG4kZ3JheS1saWdodDogI0VCRjFGNDtcclxuJGdyYXktbWVkaXVtOiAjZTBlMGUwO1xyXG4kZ3JheS1kYXJrOiAjOEI5RUE3O1xyXG4kcHJpbWFyeS1jb2xvcjogI0ZGNDA4MTtcclxuJGFjY2VudC1jb2xvcjogIzIxOTZGMztcclxuJGFjY2VudC1jb2xvci0yOiAjMUFDNjczO1xyXG4kZXJyb3I6ICNGRjQxMDA7XHJcbiRidXJudC1zaWVubmE6ICNFRTdENUE7XHJcbiRzcGluZGxlOiAjQzhFNUVGO1xyXG4kZWFzdGVybi1ibHVlOiAjMTg5N0MzO1xyXG4kd2lsZC1zdHJhd2JlcnJ5OiAjRkY0MDgxO1xyXG4kd2FybjogI2Y0NDMzNjtcclxuJGRhcmstYmx1ZTogIzJhNjM3NztcclxuXHJcbi50ZXh0LWRhcmtlciB7XHJcbiAgY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi5ia2ctZGFya2VyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4udGV4dC1kYXJrIHtcclxuICBjb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi5ia2ctZGFyayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0ZXIge1xyXG4gIGNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmJrZy1saWdodGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLnRleHQtbGlnaHQge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSB7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJrZy13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1wcmltYXJ5IHtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWFjY2VudCB7XHJcbiAgY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctYWNjZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1ncmF5LWRhcmsge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLXNwaW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzcGluZGxlO1xyXG59XHJcblxyXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLnRleHQtZWFzdGVybi1ibHVlIHtcclxuICBjb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLmJrZy1idXJudC1zaWVubmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWJ1cm50LXNpZW5uYSB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWVycm9yIHtcclxuICBjb2xvcjogJGVycm9yO1xyXG59XHJcblxyXG4udGV4dC13YXJuIHtcclxuICBjb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi5ia2ctd2FybiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi50ZXh0LWRhcmstYmx1ZSB7XHJcbiAgY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctZGFyay1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcbiIsIi50ZXh0LWRhcmtlciB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uYmtnLWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzI0Mjg7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cblxuLmJrZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0Rjtcbn1cblxuLnRleHQtbGlnaHRlciB7XG4gIGNvbG9yOiAjRUJGMUY0O1xufVxuXG4uYmtnLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMUY0O1xufVxuXG4udGV4dC1saWdodCB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhCOUVBNztcbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLmJrZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuLmJrZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbi5ia2ctYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuLnRleHQtZ3JheS1kYXJrIHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctc3BpbmRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEU1RUY7XG59XG5cbi5ia2ctZWFzdGVybi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn1cblxuLnRleHQtZWFzdGVybi1ibHVlIHtcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5ia2ctYnVybnQtc2llbm5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtYnVybnQtc2llbm5hIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWVycm9yIHtcbiAgY29sb3I6ICNGRjQxMDA7XG59XG5cbi50ZXh0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLmJrZy13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLnRleHQtZGFyay1ibHVlIHtcbiAgY29sb3I6ICMyYTYzNzc7XG59XG5cbi5ia2ctZGFyay1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNjM3Nztcbn1cblxuLypcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBnZW5lcmFsIGxheW91dCB2YXJpYWJsZXNcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuKi9cbi8qIG1haW4gbWVudSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGVzOiBjb25zb2xlLCBzbXMsIGVtYWlsLCBldGMgKi9cbi8qIHNlY29uZGFyeSBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1lbnUgZm9yIGVhY2ggbW9kdWxlICovXG4ubGF5b3V0IHtcbiAgLypwb3NpdGlvbjogcmVsYXRpdmU7Ki9cbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cblxuLmxheW91dC1jb250YWluZXIsXG4ubGF5b3V0IHtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufSIsIi8qXHJcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gIGdlbmVyYWwgbGF5b3V0IHZhcmlhYmxlc1xyXG4gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuKi9cclxuJGhlYWRlci1oZWlnaHQ6IDYwcHg7XHJcbiRzaWRlbmF2LW1vZHVsZXMtd2lkdGg6IDVyZW07IC8qIG1haW4gbWVudSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGVzOiBjb25zb2xlLCBzbXMsIGVtYWlsLCBldGMgKi9cclxuJHNpZGVuYXYtbWVudS13aWR0aDogMTJyZW07IC8qIHNlY29uZGFyeSBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1lbnUgZm9yIGVhY2ggbW9kdWxlICovXHJcbiRzaWRlbmF2LWNvbnRhaW5lci1wYWRkaW5nOiAxcmVtIDByZW07XHJcblxyXG4kYnJlYWtwb2ludC10YWJsZXQ6IDc2OHB4O1xyXG4kYnJlYWtwb2ludC1sYXB0b3A6IDEwMjRweDtcclxuXHJcbiRzY3JvbGxiYXItd2lkdGg6IDVweDtcclxuXHJcbiRhcHBzLWhlYWRlci1oZWlnaHQ6IDRyZW07XHJcbiRhcHBzLWZvb3Rlci1sb2dvLWhlaWdodDogMnJlbTtcclxuJGFwcHMtZm9vdGVyLWxpbmstaGVpZ2h0OiAxLjVyZW07XHJcblxyXG4kb2ZmaWNlLWluZm8taGVpZ2h0OiAyMHJlbTtcclxuJG9mZmljZS13b3JraW5nLWhvdXJzLWhlaWdodDogNDByZW07XHJcbiRvZmZpY2Utb3BlcmF0b3JzLXNlcnZpY2VzLWhlaWdodDogNDByZW07XHJcbiIsIkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL3Njc3MvbWFuYWdlbWVudC9fY29sb3Itc2NoZW1lLnNjc3MnO1xyXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9zY3NzL21hbmFnZW1lbnQvX3ZhcmlhYmxlcy5zY3NzJztcclxuXHJcbi5sYXlvdXQge1xyXG4gIC8qcG9zaXRpb246IHJlbGF0aXZlOyovXHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZy1sZWZ0OiAkc2lkZW5hdi1tb2R1bGVzLXdpZHRoO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmxheW91dC1jb250YWluZXIsXHJcbi5sYXlvdXQge1xyXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { IMenuItem } from '../../../core/interfaces/menu-item';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UserRoles } from '../../../../../api-authorization/api-authorization.constants';\r\nimport { I18nComponent } from '../../../../i18n/containers/i18n.component';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as fromI18n from '../../../../i18n/reducers';\r\nimport { GetImageSrc } from '../../../core/functions/file-function';\r\nimport { DefaultImageNames, ImageSrcType } from '../../../core/constants/src.constants';\r\n\r\n@Component({\r\n selector: 'app-layout',\r\n templateUrl: './layout.component.html',\r\n styleUrls: ['./layout.component.scss']\r\n})\r\nexport class LayoutComponent extends I18nComponent {\r\n\r\n public modules: IMenuItem[];\r\n\r\n constructor(\r\n readonly store: Store,\r\n readonly translate: TranslateService,\r\n private route: ActivatedRoute) {\r\n super(store, translate);\r\n this.route.data.subscribe(data => this.loadModules(data));\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n\r\n loadModules(data) {\r\n if (typeof data.allowedRoles == \"undefined\" || data.allowedRoles == null || data.allowedRoles.length == 0) {\r\n return;\r\n }\r\n\r\n this.modules = this.getModules(data.allowedRoles[0]);\r\n }\r\n\r\n getModules(role): IMenuItem[] {\r\n switch (role) {\r\n case UserRoles.Admin: {\r\n return [\r\n {\r\n icon: 'icofont-users-alt-5',\r\n title: 'modules.users.title',\r\n url: '/management/admin/users',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Users)\r\n },\r\n {\r\n icon: 'icofont-money',\r\n title: 'modules.credit.title',\r\n url: '/management/admin/credit',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Credit)\r\n },\r\n {\r\n icon: 'icofont-settings',\r\n title: 'modules.settings.title',\r\n url: '/management/admin/settings',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Settings)\r\n },\r\n ];\r\n }\r\n case UserRoles.Customer: {\r\n return [\r\n {\r\n icon: 'icofont-calendar',\r\n title: 'modules.agenda.title',\r\n url: '/management/customer/agenda',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Agenda)\r\n },\r\n {\r\n icon: 'icofont-meeting-add',\r\n title: 'modules.appointments.title',\r\n url: '/management/customer/appointments',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Appointments)\r\n },\r\n {\r\n icon: 'icofont-files-stack',\r\n title: 'modules.categories.title',\r\n url: '/management/customer/categories',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Categories)\r\n },\r\n {\r\n icon: 'icofont-light-bulb',\r\n title: 'modules.services.title',\r\n url: '/management/customer/services',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Services)\r\n },\r\n {\r\n icon: 'icofont-users-alt-5',\r\n title: 'modules.operators.title',\r\n url: '/management/customer/operators',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Operators)\r\n },\r\n {\r\n icon: 'icofont-google-map',\r\n title: 'modules.offices.title',\r\n url: '/management/customer/offices',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Offices)\r\n },\r\n {\r\n icon: 'icofont-settings',\r\n title: 'modules.statuses.title',\r\n url: '/management/customer/statuses',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Statuses)\r\n },\r\n {\r\n icon: 'icofont-ui-settings',\r\n title: 'modules.settings.title',\r\n url: '/management/customer/settings',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Settings)\r\n },\r\n {\r\n icon: 'icofont-users-social',\r\n title: 'modules.clients.title',\r\n url: '/management/customer/clients',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Clients)\r\n },\r\n {\r\n icon: 'icofont-paper-plane',\r\n title: 'modules.notifications.title',\r\n url: '/management/customer/notifications',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.ReportNotifications)\r\n },\r\n {\r\n icon: '',\r\n title: 'modules.phone-booking.title',\r\n url: '/management/customer/phone-booking',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.PhoneBooking)\r\n }\r\n ];\r\n }\r\n case UserRoles.Operator: {\r\n return [\r\n {\r\n icon: 'icofont-calendar',\r\n title: 'modules.agenda.title',\r\n url: '/management/operator/agenda',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Agenda)\r\n },\r\n {\r\n icon: 'icofont-meeting-add',\r\n title: 'modules.appointments.title',\r\n url: '/management/operator/appointments',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Appointments)\r\n },\r\n {\r\n icon: 'icofont-users-social',\r\n title: 'modules.clients.title',\r\n url: '/management/operator/clients',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Clients)\r\n },\r\n {\r\n icon: 'icofont-ui-settings',\r\n title: 'modules.settings.title',\r\n url: '/management/operator/settings',\r\n src: GetImageSrc(ImageSrcType.Default, DefaultImageNames.Settings)\r\n }\r\n \r\n ];\r\n }\r\n default: { return []; }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { INotificationSettings } from '../../../core/interfaces/common/notification-settings';\r\n\n@Injectable()\nexport class NotificationSettingsFormService {\n public form: FormGroup;\n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n id: null,\n enableEmail: false,\n email: null,\n enableSms: false,\n smsPhone: null,\n enableVoice: false,\n voicePhone: null,\n });\n }\n\n setValidators(controlNames: string[]) {\n controlNames.map(value => {\n const control = this.form.get(value);\n\n if (value === 'email') {\n control.setValidators([\n Validators.required,\n Validators.pattern(\"^([a-zA-Z0-9_\\\\-\\\\.]+)@([a-zA-Z0-9_\\\\-\\\\.]+)\\\\.([a-zA-Z]{2,5})$\")\n ]);\n }\n else {\n control.setValidators([\n Validators.required,\n //Validators.pattern('^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$')\n ]);\n }\n\n control.updateValueAndValidity();\n });\n }\n\n clearValidators(controlNames: string[]) {\n controlNames.map(value => {\n const control = this.form.get(value);\n control.clearValidators();\n control.updateValueAndValidity();\n });\n }\n\n getFormControl(property: string): FormControl {\n return this.form.get(property) as FormControl;\n }\n\n createNotificationSettingsDto(): INotificationSettings {\n const data = this.form.value;\n\n const client: INotificationSettings = {\n id: data.id,\n enableEmail: data.enableEmail,\n email: data.email,\n enableSms: data.enableSms,\n smsPhone: data.smsPhone,\n enableVoice: data.enableVoice,\n voicePhone: data.voicePhone\n };\n\n return client;\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { INotificationSettings } from '../../../core/interfaces/common/notification-settings';\r\nimport { NotificationSettingsFormService } from './notification-settings-form.service';\r\n\r\n@Injectable()\r\nexport class NotificationSettingsLoaderService {\r\n\r\n constructor(private notificationSettingsFormService: NotificationSettingsFormService) { }\r\n\r\n loadNotificationSettings(notificationSettings: INotificationSettings) {\r\n this.notificationSettingsFormService.form.patchValue({\r\n id: notificationSettings.id,\r\n enableEmail: notificationSettings.enableEmail,\r\n email: notificationSettings.email,\r\n enableSms: notificationSettings.enableSms,\r\n smsPhone: notificationSettings.smsPhone,\r\n enableVoice: notificationSettings.enableVoice,\r\n voicePhone: notificationSettings.voicePhone\r\n });\r\n\r\n this.checkValidators(notificationSettings.enableEmail, ['email']);\r\n this.checkValidators(notificationSettings.enableSms, ['smsPhone']);\r\n this.checkValidators(notificationSettings.enableVoice, ['voicePhone']);\r\n }\r\n\r\n checkValidators(setValidators: boolean, validators: string[]) {\r\n if (setValidators) {\r\n this.notificationSettingsFormService.setValidators(validators);\r\n }\r\n else {\r\n this.notificationSettingsFormService.clearValidators(validators);\r\n }\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLXNldHRpbmdzL25vdGlmaWNhdGlvbi1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { INotificationSettings } from '../../../core/interfaces/common/notification-settings';\r\nimport { IClient } from '../../../core/interfaces/customer/client';\r\nimport { NotificationSettingsService } from '../../../core/services/common/notification-settings.service';\r\nimport { NotificationSettingsFormService } from './notification-settings-form.service';\r\nimport { NotificationSettingsLoaderService } from './notification-settings-loader.service';\r\n\r\n@Component({\r\n selector: 'app-notification-settings',\r\n templateUrl: './notification-settings.component.html',\r\n styleUrls: ['./notification-settings.component.scss'],\r\n providers: [\r\n NotificationSettingsService,\r\n NotificationSettingsFormService,\r\n NotificationSettingsLoaderService\r\n ]\r\n})\r\nexport class NotificationSettingsComponent implements OnInit {\r\n @Input() client: IClient = null;\r\n @Input() showInfo: boolean = false;\r\n\r\n @Output() editedNotificationSettings = new EventEmitter();\r\n @Output() isFormValid = new EventEmitter();\r\n\r\n public componentLoaded: boolean = false;\r\n\r\n constructor(\r\n readonly translate: TranslateService,\r\n private notificationSettingsService: NotificationSettingsService,\r\n private notificationSettingsFormService: NotificationSettingsFormService,\r\n private notificationSettingsLoaderService: NotificationSettingsLoaderService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.client == null) {\r\n this.notificationSettingsService.getNotificationSettings().subscribe(x => {\r\n if (x != null && x.customerCode != null) {\r\n this.loadNotificationSettings(x);\r\n\r\n return;\r\n }\r\n\r\n const notificationSettings = this.createNotificationSettings(null);\r\n this.loadNotificationSettings(notificationSettings);\r\n });\r\n }\r\n else {\r\n if (this.client.customerCode != null) {\r\n this.notificationSettingsService.getNotificationSettingsByCustomerCode(this.client.customerCode).subscribe(x => {\r\n if (x != null && x.customerCode != null) {\r\n this.loadNotificationSettings(x);\r\n\r\n return;\r\n }\r\n\r\n //create from client info\r\n const notificationSettings = this.createNotificationSettings(this.client);\r\n this.loadNotificationSettings(notificationSettings);\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n loadNotificationSettings(notificationSettings: INotificationSettings) {\r\n this.notificationSettingsLoaderService.loadNotificationSettings(notificationSettings);\r\n\r\n this.enableEmail.valueChanges.pipe().subscribe(value => {\r\n this.notificationSettingsLoaderService.checkValidators(value, ['email']);\r\n });\r\n\r\n this.enableSms.valueChanges.pipe().subscribe(value => {\r\n this.notificationSettingsLoaderService.checkValidators(value, ['smsPhone']);\r\n });\r\n\r\n this.enableVoice.valueChanges.pipe().subscribe(value => {\r\n this.notificationSettingsLoaderService.checkValidators(value, ['voicePhone']);\r\n });\r\n\r\n this.componentLoaded = true;\r\n this.checkFormStatus();\r\n }\r\n\r\n createNotificationSettings(client: IClient) {\r\n const notificationSettings: INotificationSettings = {\r\n id: null,\r\n enableEmail: false,\r\n email: null,\r\n enableSms: false,\r\n smsPhone: null,\r\n enableVoice: false,\r\n voicePhone: null\r\n };\r\n\r\n if (client != null) {\r\n if (client.email) {\r\n notificationSettings.enableEmail = true;\r\n notificationSettings.email = client.email;\r\n }\r\n\r\n if (client.phone) {\r\n notificationSettings.enableSms = true;\r\n notificationSettings.smsPhone = client.phone;\r\n }\r\n\r\n //enableVoice remain on false, because this option is not available now\r\n }\r\n\r\n return notificationSettings;\r\n }\r\n\r\n get form() {\r\n return this.notificationSettingsFormService.form;\r\n }\r\n\r\n get enableEmail() {\r\n return this.notificationSettingsFormService.getFormControl('enableEmail') as FormControl;\r\n }\r\n\r\n get email() {\r\n return this.notificationSettingsFormService.getFormControl('email') as FormControl;\r\n }\r\n\r\n get enableSms() {\r\n return this.notificationSettingsFormService.getFormControl('enableSms') as FormControl;\r\n }\r\n\r\n get smsPhone() {\r\n return this.notificationSettingsFormService.getFormControl('smsPhone') as FormControl;\r\n }\r\n\r\n get enableVoice() {\r\n return this.notificationSettingsFormService.getFormControl('enableVoice') as FormControl;\r\n }\r\n\r\n get voicePhone() {\r\n return this.notificationSettingsFormService.getFormControl('voicePhone') as FormControl;\r\n }\r\n\r\n checkFormStatus() {\r\n if (this.enableEmail.value || this.enableSms.value || this.enableVoice.value) {\r\n const status = this.form.status;\r\n\r\n if (status === \"VALID\") {\r\n const notificationSettings = this.notificationSettingsFormService.createNotificationSettingsDto();\r\n this.editedNotificationSettings.emit(notificationSettings);\r\n this.isFormValid.emit(true);\r\n\r\n return;\r\n }\r\n }\r\n\r\n this.isFormValid.emit(false);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { IOfficeOperatorService } from '../../../../core/interfaces/customer/office-operator-service';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { IOperator } from '../../../../core/interfaces/customer/operator';\r\nimport { IService } from '../../../../core/interfaces/customer/service';\r\n\r\n@Injectable()\r\nexport class OperatorsWorkingHoursFormService {\r\n public form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.fb.group({\r\n operators: this.fb.array([])\r\n });\r\n }\r\n\r\n get operatorsForm(): FormArray {\r\n return this.form.get('operators') as FormArray;\r\n }\r\n\r\n addOperatorWithValue(operator: IOperator, isChecked: boolean, operatorServices: IService[], officeOperatorServices: IOfficeOperatorService[], schedule: IOfficeOperatorWorkSchedule[]) {\r\n const op = this.fb.group({\r\n operator: [operator, null],\r\n isChecked: [isChecked, false],\r\n operatorServices: [operatorServices, []],\r\n officeOperatorServices: [officeOperatorServices, []],\r\n schedule: [schedule, []]\r\n });\r\n\r\n this.operatorsForm.push(op);\r\n this.form.markAsDirty();\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IOfficeOperatorService } from '../../../../core/interfaces/customer/office-operator-service';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { IOperator } from '../../../../core/interfaces/customer/operator';\r\nimport { IService } from '../../../../core/interfaces/customer/service';\r\nimport { OperatorsWorkingHoursFormService } from './operators-working-hours-form.service';\r\n\r\n@Injectable()\r\nexport class OperatorsWorkingHoursLoaderService {\r\n public selectedItem: any = {\r\n operator: null,\r\n operatorServices: [],\r\n officeOperatorServices: [],\r\n schedule: []\r\n };\r\n\r\n constructor(private operatorsWorkingHoursFormService: OperatorsWorkingHoursFormService) { }\r\n\r\n loadOperators(operators: IOperator[], services: IService[], allOfficeOperatorServices: IOfficeOperatorService[], workSchedule: IOfficeOperatorWorkSchedule[]) {\r\n return this.patchOperatorsArray(operators, services, allOfficeOperatorServices, workSchedule);\r\n }\r\n\r\n patchOperatorsArray(operators: IOperator[], services: IService[], allOfficeOperatorServices: IOfficeOperatorService[], workSchedule: IOfficeOperatorWorkSchedule[]) {\r\n try {\r\n if (operators != null && operators.length > 0) {\r\n Object(operators).forEach(operator => {\r\n let isChecked: boolean = false;\r\n let operatorServices: IService[] = [];\r\n let officeOperatorServices: IOfficeOperatorService[] = [];\r\n\r\n if (services != null && services.length > 0) {\r\n operatorServices = services.filter(o => operator.servicesIds.includes(o.id));\r\n }\r\n\r\n if (allOfficeOperatorServices != null && allOfficeOperatorServices.length > 0) {\r\n officeOperatorServices = allOfficeOperatorServices.filter(x => x.operatorId == operator.id);\r\n\r\n isChecked = officeOperatorServices.length > 0 ? true : false;\r\n }\r\n\r\n var schedule = workSchedule.filter(x => x.operatorId == operator.id);\r\n\r\n this.operatorsWorkingHoursFormService.addOperatorWithValue(operator, isChecked, operatorServices, officeOperatorServices, schedule);\r\n\r\n if (isChecked && this.selectedItem.operator == null) {\r\n this.selectedItem = {\r\n operator: operator,\r\n operatorServices: operatorServices,\r\n officeOperatorServices: officeOperatorServices,\r\n schedule: schedule\r\n };\r\n }\r\n });\r\n }\r\n } catch (err) {\r\n console.log('Operators services error = ', err);\r\n }\r\n\r\n return this.selectedItem;\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n.operator {\\n padding: 0.313rem;\\n border: 1px solid #4BAACC;\\n border-radius: 0.313rem;\\n}\\n\\n.operator h5 {\\n cursor: pointer;\\n margin: 0;\\n font-weight: 400;\\n padding-top: 0.1rem;\\n}\\n\\n.selected .operator {\\n border: 1px solid #EE7D5A;\\n color: #EE7D5A;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9vZmZpY2Uvb3BlcmF0b3JzLXdvcmtpbmctaG91cnMvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfY29sb3Itc2NoZW1lLnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvb2ZmaWNlL29wZXJhdG9ycy13b3JraW5nLWhvdXJzL29wZXJhdG9ycy13b3JraW5nLWhvdXJzLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL29mZmljZS9vcGVyYXRvcnMtd29ya2luZy1ob3Vycy9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcbWFuYWdlbWVudFxcc2hhcmVkXFxjb21wb25lbnRzXFxvZmZpY2VcXG9wZXJhdG9ycy13b3JraW5nLWhvdXJzXFxvcGVyYXRvcnMtd29ya2luZy1ob3Vycy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkE7RUFDRSxjQWpCTztBQ0NUOztBRG1CQTtFQUNFLHlCQXJCTztBQ0tUOztBRG1CQTtFQUNFLGNBeEJLO0FDUVA7O0FEbUJBO0VBQ0UseUJBNUJLO0FDWVA7O0FEbUJBO0VBQ0UsY0EvQlc7QUNlYjs7QURtQkE7RUFDRSx5QkFuQ1c7QUNtQmI7O0FEbUJBO0VBQ0UsY0FyQ1U7QUNxQlo7O0FEbUJBO0VBQ0UseUJBekNVO0FDeUJaOztBRG1CQTtFQUNFLGNBbERNO0FDa0NSOztBRG1CQTtFQUNFLHlCQXRETTtBQ3NDUjs7QURtQkE7RUFDRSxjQXBEYztBQ29DaEI7O0FEbUJBO0VBQ0UseUJBeERjO0FDd0NoQjs7QURtQkE7RUFDRSxjQTNEYTtBQzJDZjs7QURtQkE7RUFDRSx5QkEvRGE7QUMrQ2Y7O0FEbUJBO0VBQ0UsY0FyRVU7QUNxRFo7O0FEbUJBO0VBQ0UseUJBbkVRO0FDbURWOztBRG1CQTtFQUNFLHlCQXRFYTtBQ3NEZjs7QURtQkE7RUFDRSxjQTFFYTtBQzBEZjs7QURtQkE7RUFDRSx5QkFoRmE7QUNnRWY7O0FEbUJBO0VBQ0UsY0FwRmE7QUNvRWY7O0FEbUJBO0VBQ0UsY0F6Rk07QUN5RVI7O0FEbUJBO0VBQ0UsY0F4Rks7QUN3RVA7O0FEbUJBO0VBQ0UseUJBNUZLO0FDNEVQOztBRG1CQTtFQUNFLGNBL0ZVO0FDK0VaOztBRG1CQTtFQUNFLHlCQW5HVTtBQ21GWjs7QUNoR0E7RUFDRSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EsdUJBQUE7QURtR0Y7O0FDakdFO0VBQ0UsZUFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0FEbUdKOztBQzlGRTtFQUNFLHlCQUFBO0VBQ0EsY0ZSVztBQ3lHZiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvb2ZmaWNlL29wZXJhdG9ycy13b3JraW5nLWhvdXJzL29wZXJhdG9ycy13b3JraW5nLWhvdXJzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJHdoaXRlOiAjRkZGRkZGO1xyXG4kZGFya2VyOiAjMUMyNDI4O1xyXG4kZGFyazogIzM3NDc0RjtcclxuJGdyYXktbGlnaHQ6ICNFQkYxRjQ7XHJcbiRncmF5LW1lZGl1bTogI2UwZTBlMDtcclxuJGdyYXktZGFyazogIzhCOUVBNztcclxuJHByaW1hcnktY29sb3I6ICNGRjQwODE7XHJcbiRhY2NlbnQtY29sb3I6ICMyMTk2RjM7XHJcbiRhY2NlbnQtY29sb3ItMjogIzFBQzY3MztcclxuJGVycm9yOiAjRkY0MTAwO1xyXG4kYnVybnQtc2llbm5hOiAjRUU3RDVBO1xyXG4kc3BpbmRsZTogI0M4RTVFRjtcclxuJGVhc3Rlcm4tYmx1ZTogIzE4OTdDMztcclxuJHdpbGQtc3RyYXdiZXJyeTogI0ZGNDA4MTtcclxuJHdhcm46ICNmNDQzMzY7XHJcbiRkYXJrLWJsdWU6ICMyYTYzNzc7XHJcblxyXG4udGV4dC1kYXJrZXIge1xyXG4gIGNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4uYmtnLWRhcmtlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlcjtcclxufVxyXG5cclxuLnRleHQtZGFyayB7XHJcbiAgY29sb3I6ICRkYXJrO1xyXG59XHJcblxyXG4uYmtnLWRhcmsge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrO1xyXG59XHJcblxyXG4udGV4dC1saWdodGVyIHtcclxuICBjb2xvcjogJGdyYXktbGlnaHQ7XHJcbn1cclxuXHJcbi5ia2ctbGlnaHRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHQ7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0IHtcclxuICBjb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLmJrZy1saWdodCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLnRleHQtd2hpdGUge1xyXG4gIGNvbG9yOiAkd2hpdGU7XHJcbn1cclxuXHJcbi5ia2ctd2hpdGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLnRleHQtcHJpbWFyeSB7XHJcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG59XHJcblxyXG4uYmtnLXByaW1hcnkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1hY2NlbnQge1xyXG4gIGNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4uYmtnLWFjY2VudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudC1jb2xvcjtcclxufVxyXG5cclxuLnRleHQtZ3JheS1kYXJrIHtcclxuICBjb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLmJrZy1zcGluZGxlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BpbmRsZTtcclxufVxyXG5cclxuLmJrZy1lYXN0ZXJuLWJsdWUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRlYXN0ZXJuLWJsdWU7XHJcbn1cclxuXHJcbi50ZXh0LWVhc3Rlcm4tYmx1ZSB7XHJcbiAgY29sb3I6ICRlYXN0ZXJuLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctYnVybnQtc2llbm5hIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG59XHJcblxyXG4udGV4dC1idXJudC1zaWVubmEge1xyXG4gIGNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG59XHJcblxyXG4udGV4dC1lcnJvciB7XHJcbiAgY29sb3I6ICRlcnJvcjtcclxufVxyXG5cclxuLnRleHQtd2FybiB7XHJcbiAgY29sb3I6ICR3YXJuO1xyXG59XHJcblxyXG4uYmtnLXdhcm4ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3YXJuO1xyXG59XHJcblxyXG4udGV4dC1kYXJrLWJsdWUge1xyXG4gIGNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcblxyXG4uYmtnLWRhcmstYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmx1ZTtcclxufVxyXG4iLCIudGV4dC1kYXJrZXIge1xuICBjb2xvcjogIzFDMjQyODtcbn1cblxuLmJrZy1kYXJrZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUMyNDI4O1xufVxuXG4udGV4dC1kYXJrIHtcbiAgY29sb3I6ICMzNzQ3NEY7XG59XG5cbi5ia2ctZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzQ3NEY7XG59XG5cbi50ZXh0LWxpZ2h0ZXIge1xuICBjb2xvcjogI0VCRjFGNDtcbn1cblxuLmJrZy1saWdodGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VCRjFGNDtcbn1cblxuLnRleHQtbGlnaHQge1xuICBjb2xvcjogIzhCOUVBNztcbn1cblxuLmJrZy1saWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4QjlFQTc7XG59XG5cbi50ZXh0LXdoaXRlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG5cbi5ia2ctd2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuXG4udGV4dC1wcmltYXJ5IHtcbiAgY29sb3I6ICNGRjQwODE7XG59XG5cbi5ia2ctcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjQwODE7XG59XG5cbi50ZXh0LWFjY2VudCB7XG4gIGNvbG9yOiAjMjE5NkYzO1xufVxuXG4uYmtnLWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XG59XG5cbi50ZXh0LWdyYXktZGFyayB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLXNwaW5kbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzhFNUVGO1xufVxuXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODk3QzM7XG59XG5cbi50ZXh0LWVhc3Rlcm4tYmx1ZSB7XG4gIGNvbG9yOiAjMTg5N0MzO1xufVxuXG4uYmtnLWJ1cm50LXNpZW5uYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWJ1cm50LXNpZW5uYSB7XG4gIGNvbG9yOiAjRUU3RDVBO1xufVxuXG4udGV4dC1lcnJvciB7XG4gIGNvbG9yOiAjRkY0MTAwO1xufVxuXG4udGV4dC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5ia2ctd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi50ZXh0LWRhcmstYmx1ZSB7XG4gIGNvbG9yOiAjMmE2Mzc3O1xufVxuXG4uYmtnLWRhcmstYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYTYzNzc7XG59XG5cbi5vcGVyYXRvciB7XG4gIHBhZGRpbmc6IDAuMzEzcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNEJBQUNDO1xuICBib3JkZXItcmFkaXVzOiAwLjMxM3JlbTtcbn1cbi5vcGVyYXRvciBoNSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYWRkaW5nLXRvcDogMC4xcmVtO1xufVxuXG4uc2VsZWN0ZWQgLm9wZXJhdG9yIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0VFN0Q1QTtcbiAgY29sb3I6ICNFRTdENUE7XG59IiwiQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vc2Nzcy9tYW5hZ2VtZW50L19jb2xvci1zY2hlbWUuc2Nzcyc7XHJcblxyXG4ub3BlcmF0b3Ige1xyXG4gIHBhZGRpbmc6IDAuMzEzcmVtO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0QkFBQ0M7XHJcbiAgYm9yZGVyLXJhZGl1czogMC4zMTNyZW07XHJcblxyXG4gIGg1IHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBwYWRkaW5nLXRvcDogMC4xcmVtO1xyXG4gIH1cclxufVxyXG5cclxuLnNlbGVjdGVkIHtcclxuICAub3BlcmF0b3Ige1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJ1cm50LXNpZW5uYTtcclxuICAgIGNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG4gIH1cclxufVxyXG4iXX0= */\"","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { FormArray } from '@angular/forms';\r\nimport { combineLatest } from 'rxjs';\r\nimport { IOfficeOperatorService } from '../../../../core/interfaces/customer/office-operator-service';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { IOperator } from '../../../../core/interfaces/customer/operator';\r\nimport { OfficeService } from '../../../../core/services/customer/office.service';\r\nimport { OperatorService } from '../../../../core/services/customer/operator.service';\r\nimport { ServiceService } from '../../../../core/services/customer/service.service';\r\nimport { FilterGridFormService } from '../../filter-grid/filter-grid-form.service';\r\nimport { OperatorsWorkingHoursFormService } from './operators-working-hours-form.service';\r\nimport { OperatorsWorkingHoursLoaderService } from './operators-working-hours-loader.service';\r\n\r\n@Component({\r\n selector: 'app-operators-working-hours',\r\n templateUrl: './operators-working-hours.component.html',\r\n styleUrls: ['./operators-working-hours.component.scss'],\r\n providers: [\r\n OperatorsWorkingHoursFormService,\r\n OperatorsWorkingHoursLoaderService,\r\n OperatorService,\r\n ServiceService,\r\n FilterGridFormService\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class OperatorsWorkingHoursComponent implements OnInit {\r\n @Input() workSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n @Input() officeId: string = null;\r\n\r\n @Output() editedOfficeOperatorServices = new EventEmitter();\r\n @Output() editedWorkSchedule = new EventEmitter();\r\n @Output() isFormValid = new EventEmitter();\r\n\r\n public selectedItem: any = {\r\n operator: null,\r\n operatorServices: [],\r\n officeOperatorServices: [],\r\n schedule: []\r\n };\r\n\r\n public officeOperatorServices: IOfficeOperatorService[] = [];\r\n public schedule: IOfficeOperatorWorkSchedule[] = [];\r\n\r\n public componentLoaded: boolean = false;\r\n\r\n constructor(\r\n private operatorsWorkingHoursFormService: OperatorsWorkingHoursFormService,\r\n private operatorsWorkingHoursLoaderService: OperatorsWorkingHoursLoaderService,\r\n private operatorService: OperatorService,\r\n private serviceService: ServiceService,\r\n private officeService: OfficeService,\r\n private filterGridFormService: FilterGridFormService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n const request = this.filterGridFormService.createRequest(false, null, [], null, true);\r\n\r\n this.schedule = this.workSchedule;\r\n\r\n if (this.officeId == null) {\r\n combineLatest(\r\n this.operatorService.getOperatorsWithRequest(request),\r\n this.serviceService.getServicesWithRequest(request),\r\n (operators, services) => ({ operators, services })\r\n ).subscribe(pair => {\r\n this.operatorsWorkingHoursLoaderService.loadOperators(pair.operators.data, pair.services.data, [], []);\r\n\r\n this.componentLoaded = true;\r\n });\r\n\r\n return;\r\n }\r\n\r\n const officeIdFilter = this.filterGridFormService.createFilter('String', 'OfficeId', 'Equals', this.officeId);\r\n const oosRequest = this.filterGridFormService.createRequest(false, null, [officeIdFilter]);\r\n\r\n combineLatest(\r\n this.operatorService.getOperatorsWithRequest(request),\r\n this.serviceService.getServicesWithRequest(request),\r\n this.officeService.getAllOfficeOperatorServiceWithRequest(oosRequest),\r\n (operators, services, officeOperatorServices) => ({ operators, services, officeOperatorServices })\r\n ).subscribe(pair => {\r\n this.selectedItem = this.operatorsWorkingHoursLoaderService.loadOperators(pair.operators.data, pair.services.data,\r\n pair.officeOperatorServices.data, this.workSchedule);\r\n\r\n this.officeOperatorServices = pair.officeOperatorServices.data;\r\n\r\n this.componentLoaded = true;\r\n\r\n return;\r\n });\r\n }\r\n\r\n get form() {\r\n return this.operatorsWorkingHoursFormService.form;\r\n }\r\n\r\n get operatorsForm(): FormArray {\r\n return this.operatorsWorkingHoursFormService.form.get('operators') as FormArray;\r\n }\r\n\r\n onSelectOperator(item: any, index: number) {\r\n this.selectedItem = item;\r\n\r\n this.operatorsForm.at(index).get('isChecked').setValue(true);\r\n }\r\n\r\n onChangeOperator(checked: boolean, item: any, index: number) {\r\n if (checked) {\r\n this.onSelectOperator(item, index);\r\n\r\n return;\r\n }\r\n\r\n this.officeOperatorServices = this.officeOperatorServices.filter(x => x.operatorId != item.operator.id);\r\n this.schedule = this.schedule.filter(x => x.operatorId != item.operator.id);\r\n\r\n this.operatorsForm.at(index).get('isChecked').setValue(false);\r\n this.operatorsForm.at(index).get('officeOperatorServices').setValue([]);\r\n this.operatorsForm.at(index).get('schedule').setValue([]);\r\n\r\n this.selectedItem = {\r\n operator: null,\r\n operatorServices: [],\r\n officeOperatorServices: [],\r\n schedule: []\r\n };\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n onEditedOfficeOperatorServices(officeOperatorServices: IOfficeOperatorService[]) {\r\n this.officeOperatorServices = this.officeOperatorServices.filter(x => x.operatorId != this.selectedItem.operator.id);\r\n var operatorForm = this.operatorsForm.value.find(x => x.operator.id == this.selectedItem.operator.id);\r\n operatorForm.officeOperatorServices = [];\r\n\r\n if (officeOperatorServices.length > 0) {\r\n this.officeOperatorServices.push(...officeOperatorServices);\r\n operatorForm.officeOperatorServices.push(...officeOperatorServices);\r\n }\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n onEditedWorkSchedule(workSchedule: IOfficeOperatorWorkSchedule[]) {\r\n this.schedule = this.schedule.filter(x => x.operatorId != this.selectedItem.operator.id);\r\n var operatorForm = this.operatorsForm.value.find(x => x.operator.id == this.selectedItem.operator.id);\r\n operatorForm.schedule = [];\r\n\r\n if (workSchedule.length > 0) {\r\n this.schedule.push(...workSchedule);\r\n operatorForm.schedule.push(...workSchedule);\r\n }\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n onServicesFormValid(isValid: boolean) {\r\n if (!isValid) {\r\n this.isFormValid.emit(false);\r\n }\r\n }\r\n\r\n checkFormStatus() {\r\n const status = this.form.status;\r\n\r\n if (status == \"VALID\") {\r\n this.editedOfficeOperatorServices.emit(this.officeOperatorServices);\r\n this.editedWorkSchedule.emit(this.schedule);\r\n this.isFormValid.emit(true);\r\n\r\n return;\r\n }\r\n\r\n this.isFormValid.emit(false);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { ISelection } from '../../../../../core/interfaces/common/selection';\r\nimport { IOfficeOperatorService } from '../../../../../core/interfaces/customer/office-operator-service';\r\nimport { IService } from '../../../../../core/interfaces/customer/service';\r\n\r\n@Injectable()\r\nexport class ServicesWorkingHoursFormService {\r\n public form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.fb.group({\r\n services: this.fb.array([])\r\n });\r\n }\r\n\r\n get servicesForm() {\r\n return this.form.get('services') as FormArray;\r\n }\r\n\r\n addService(id: string, name: string, oos: IOfficeOperatorService) {\r\n const obj = this.fb.group({\r\n id: id,\r\n name: name,\r\n isOfficeWorkSchedule: oos == null ? true : oos.isOfficeWorkSchedule,\r\n oosId: oos == null ? null : oos.id\r\n });\r\n\r\n this.servicesForm.push(obj);\r\n this.form.markAsDirty();\r\n }\r\n\r\n removeService(index: number) {\r\n this.servicesForm.removeAt(index);\r\n this.form.markAsDirty();\r\n }\r\n\r\n resetServices() {\r\n while (this.servicesForm.length !== 0) {\r\n this.removeService(0)\r\n }\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n\r\n createOfficeOperatorServiceDtos(officeId: string, operatorId: string): IOfficeOperatorService[] {\r\n var data = this.form.value;\r\n var services = data.services;\r\n\r\n const officeOperatorServices: IOfficeOperatorService[] = [];\r\n\r\n Object(services).forEach(service => {\r\n const oos: IOfficeOperatorService = {\r\n id: service.oosId,\r\n officeId: officeId,\r\n operatorId: operatorId,\r\n serviceId: service.id,\r\n isOfficeWorkSchedule: service.isOfficeWorkSchedule\r\n };\r\n\r\n officeOperatorServices.push(oos);\r\n });\r\n\r\n return officeOperatorServices;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ISelection } from '../../../../../core/interfaces/common/selection';\r\nimport { IOfficeOperatorService } from '../../../../../core/interfaces/customer/office-operator-service';\r\nimport { ServicesWorkingHoursFormService } from './services-working-hours-form.service';\r\n\r\n@Injectable()\r\nexport class ServicesWorkingHoursLoaderService {\r\n\r\n constructor(private servicesWorkingHoursFormService: ServicesWorkingHoursFormService) { }\r\n\r\n loadServices(operatorServices: ISelection[], officeOperatorServices: IOfficeOperatorService[]) {\r\n this.patchServicesArray(operatorServices, officeOperatorServices);\r\n }\r\n\r\n patchServicesArray(operatorServices: ISelection[], officeOperatorServices: IOfficeOperatorService[]) {\r\n try {\r\n Object(operatorServices).forEach(x => {\r\n var officeOperatorService = officeOperatorServices.find(s => s.serviceId == x.value);\r\n\r\n this.servicesWorkingHoursFormService.addService(x.value, x.text, officeOperatorService);\r\n });\r\n }\r\n catch (err) {\r\n console.log('Services split error = ', err);\r\n }\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n.pt-065 {\\n padding-top: 0.65rem;\\n}\\n\\n.service {\\n cursor: pointer;\\n}\\n\\n.selected .service {\\n color: #EE7D5A;\\n}\\n\\n.selected .service button span {\\n color: #EE7D5A;\\n}\\n\\n.selected .divider {\\n border-bottom: 1px solid #EE7D5A;\\n}\\n\\n.w-s {\\n width: 33.3%;\\n}\\n\\n.w-wh {\\n width: 66.7%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9vZmZpY2Uvb3BlcmF0b3JzLXdvcmtpbmctaG91cnMvc2VydmljZXMtd29ya2luZy1ob3Vycy9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXHNjc3NcXG1hbmFnZW1lbnRcXF9jb2xvci1zY2hlbWUuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9vZmZpY2Uvb3BlcmF0b3JzLXdvcmtpbmctaG91cnMvc2VydmljZXMtd29ya2luZy1ob3Vycy9zZXJ2aWNlcy13b3JraW5nLWhvdXJzLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL29mZmljZS9vcGVyYXRvcnMtd29ya2luZy1ob3Vycy9zZXJ2aWNlcy13b3JraW5nLWhvdXJzL0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxzaGFyZWRcXGNvbXBvbmVudHNcXG9mZmljZVxcb3BlcmF0b3JzLXdvcmtpbmctaG91cnNcXHNlcnZpY2VzLXdvcmtpbmctaG91cnNcXHNlcnZpY2VzLXdvcmtpbmctaG91cnMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBO0VBQ0UsY0FqQk87QUNDVDs7QURtQkE7RUFDRSx5QkFyQk87QUNLVDs7QURtQkE7RUFDRSxjQXhCSztBQ1FQOztBRG1CQTtFQUNFLHlCQTVCSztBQ1lQOztBRG1CQTtFQUNFLGNBL0JXO0FDZWI7O0FEbUJBO0VBQ0UseUJBbkNXO0FDbUJiOztBRG1CQTtFQUNFLGNBckNVO0FDcUJaOztBRG1CQTtFQUNFLHlCQXpDVTtBQ3lCWjs7QURtQkE7RUFDRSxjQWxETTtBQ2tDUjs7QURtQkE7RUFDRSx5QkF0RE07QUNzQ1I7O0FEbUJBO0VBQ0UsY0FwRGM7QUNvQ2hCOztBRG1CQTtFQUNFLHlCQXhEYztBQ3dDaEI7O0FEbUJBO0VBQ0UsY0EzRGE7QUMyQ2Y7O0FEbUJBO0VBQ0UseUJBL0RhO0FDK0NmOztBRG1CQTtFQUNFLGNBckVVO0FDcURaOztBRG1CQTtFQUNFLHlCQW5FUTtBQ21EVjs7QURtQkE7RUFDRSx5QkF0RWE7QUNzRGY7O0FEbUJBO0VBQ0UsY0ExRWE7QUMwRGY7O0FEbUJBO0VBQ0UseUJBaEZhO0FDZ0VmOztBRG1CQTtFQUNFLGNBcEZhO0FDb0VmOztBRG1CQTtFQUNFLGNBekZNO0FDeUVSOztBRG1CQTtFQUNFLGNBeEZLO0FDd0VQOztBRG1CQTtFQUNFLHlCQTVGSztBQzRFUDs7QURtQkE7RUFDRSxjQS9GVTtBQytFWjs7QURtQkE7RUFDRSx5QkFuR1U7QUNtRlo7O0FDaEdBO0VBQ0Usb0JBQUE7QURtR0Y7O0FDaEdBO0VBQ0UsZUFBQTtBRG1HRjs7QUMvRkU7RUFDRSxjRkZXO0FDb0dmOztBQy9GTTtFQUNFLGNGTk87QUN1R2Y7O0FDNUZFO0VBQ0UsZ0NBQUE7QUQ4Rko7O0FDMUZBO0VBQ0UsWUFBQTtBRDZGRjs7QUMxRkE7RUFDRSxZQUFBO0FENkZGIiwiZmlsZSI6InNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9vZmZpY2Uvb3BlcmF0b3JzLXdvcmtpbmctaG91cnMvc2VydmljZXMtd29ya2luZy1ob3Vycy9zZXJ2aWNlcy13b3JraW5nLWhvdXJzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJHdoaXRlOiAjRkZGRkZGO1xyXG4kZGFya2VyOiAjMUMyNDI4O1xyXG4kZGFyazogIzM3NDc0RjtcclxuJGdyYXktbGlnaHQ6ICNFQkYxRjQ7XHJcbiRncmF5LW1lZGl1bTogI2UwZTBlMDtcclxuJGdyYXktZGFyazogIzhCOUVBNztcclxuJHByaW1hcnktY29sb3I6ICNGRjQwODE7XHJcbiRhY2NlbnQtY29sb3I6ICMyMTk2RjM7XHJcbiRhY2NlbnQtY29sb3ItMjogIzFBQzY3MztcclxuJGVycm9yOiAjRkY0MTAwO1xyXG4kYnVybnQtc2llbm5hOiAjRUU3RDVBO1xyXG4kc3BpbmRsZTogI0M4RTVFRjtcclxuJGVhc3Rlcm4tYmx1ZTogIzE4OTdDMztcclxuJHdpbGQtc3RyYXdiZXJyeTogI0ZGNDA4MTtcclxuJHdhcm46ICNmNDQzMzY7XHJcbiRkYXJrLWJsdWU6ICMyYTYzNzc7XHJcblxyXG4udGV4dC1kYXJrZXIge1xyXG4gIGNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4uYmtnLWRhcmtlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmtlcjtcclxufVxyXG5cclxuLnRleHQtZGFyayB7XHJcbiAgY29sb3I6ICRkYXJrO1xyXG59XHJcblxyXG4uYmtnLWRhcmsge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrO1xyXG59XHJcblxyXG4udGV4dC1saWdodGVyIHtcclxuICBjb2xvcjogJGdyYXktbGlnaHQ7XHJcbn1cclxuXHJcbi5ia2ctbGlnaHRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktbGlnaHQ7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0IHtcclxuICBjb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLmJrZy1saWdodCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLnRleHQtd2hpdGUge1xyXG4gIGNvbG9yOiAkd2hpdGU7XHJcbn1cclxuXHJcbi5ia2ctd2hpdGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLnRleHQtcHJpbWFyeSB7XHJcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG59XHJcblxyXG4uYmtnLXByaW1hcnkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1hY2NlbnQge1xyXG4gIGNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4uYmtnLWFjY2VudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudC1jb2xvcjtcclxufVxyXG5cclxuLnRleHQtZ3JheS1kYXJrIHtcclxuICBjb2xvcjogJGdyYXktZGFyaztcclxufVxyXG5cclxuLmJrZy1zcGluZGxlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BpbmRsZTtcclxufVxyXG5cclxuLmJrZy1lYXN0ZXJuLWJsdWUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRlYXN0ZXJuLWJsdWU7XHJcbn1cclxuXHJcbi50ZXh0LWVhc3Rlcm4tYmx1ZSB7XHJcbiAgY29sb3I6ICRlYXN0ZXJuLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctYnVybnQtc2llbm5hIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG59XHJcblxyXG4udGV4dC1idXJudC1zaWVubmEge1xyXG4gIGNvbG9yOiAkYnVybnQtc2llbm5hO1xyXG59XHJcblxyXG4udGV4dC1lcnJvciB7XHJcbiAgY29sb3I6ICRlcnJvcjtcclxufVxyXG5cclxuLnRleHQtd2FybiB7XHJcbiAgY29sb3I6ICR3YXJuO1xyXG59XHJcblxyXG4uYmtnLXdhcm4ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICR3YXJuO1xyXG59XHJcblxyXG4udGV4dC1kYXJrLWJsdWUge1xyXG4gIGNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcblxyXG4uYmtnLWRhcmstYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmx1ZTtcclxufVxyXG4iLCIudGV4dC1kYXJrZXIge1xuICBjb2xvcjogIzFDMjQyODtcbn1cblxuLmJrZy1kYXJrZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUMyNDI4O1xufVxuXG4udGV4dC1kYXJrIHtcbiAgY29sb3I6ICMzNzQ3NEY7XG59XG5cbi5ia2ctZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzQ3NEY7XG59XG5cbi50ZXh0LWxpZ2h0ZXIge1xuICBjb2xvcjogI0VCRjFGNDtcbn1cblxuLmJrZy1saWdodGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VCRjFGNDtcbn1cblxuLnRleHQtbGlnaHQge1xuICBjb2xvcjogIzhCOUVBNztcbn1cblxuLmJrZy1saWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4QjlFQTc7XG59XG5cbi50ZXh0LXdoaXRlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG5cbi5ia2ctd2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuXG4udGV4dC1wcmltYXJ5IHtcbiAgY29sb3I6ICNGRjQwODE7XG59XG5cbi5ia2ctcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjQwODE7XG59XG5cbi50ZXh0LWFjY2VudCB7XG4gIGNvbG9yOiAjMjE5NkYzO1xufVxuXG4uYmtnLWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XG59XG5cbi50ZXh0LWdyYXktZGFyayB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLXNwaW5kbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzhFNUVGO1xufVxuXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODk3QzM7XG59XG5cbi50ZXh0LWVhc3Rlcm4tYmx1ZSB7XG4gIGNvbG9yOiAjMTg5N0MzO1xufVxuXG4uYmtnLWJ1cm50LXNpZW5uYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWJ1cm50LXNpZW5uYSB7XG4gIGNvbG9yOiAjRUU3RDVBO1xufVxuXG4udGV4dC1lcnJvciB7XG4gIGNvbG9yOiAjRkY0MTAwO1xufVxuXG4udGV4dC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5ia2ctd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi50ZXh0LWRhcmstYmx1ZSB7XG4gIGNvbG9yOiAjMmE2Mzc3O1xufVxuXG4uYmtnLWRhcmstYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYTYzNzc7XG59XG5cbi5wdC0wNjUge1xuICBwYWRkaW5nLXRvcDogMC42NXJlbTtcbn1cblxuLnNlcnZpY2Uge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zZWxlY3RlZCAuc2VydmljZSB7XG4gIGNvbG9yOiAjRUU3RDVBO1xufVxuLnNlbGVjdGVkIC5zZXJ2aWNlIGJ1dHRvbiBzcGFuIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG4uc2VsZWN0ZWQgLmRpdmlkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VFN0Q1QTtcbn1cblxuLnctcyB7XG4gIHdpZHRoOiAzMy4zJTtcbn1cblxuLnctd2gge1xuICB3aWR0aDogNjYuNyU7XG59IiwiQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2Nzcy9tYW5hZ2VtZW50L19jb2xvci1zY2hlbWUuc2Nzcyc7XHJcblxyXG4ucHQtMDY1IHtcclxuICBwYWRkaW5nLXRvcDogMC42NXJlbTtcclxufVxyXG5cclxuLnNlcnZpY2Uge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLnNlbGVjdGVkIHtcclxuICAuc2VydmljZSB7XHJcbiAgICBjb2xvcjogJGJ1cm50LXNpZW5uYTtcclxuXHJcbiAgICBidXR0b24ge1xyXG4gICAgICBzcGFuIHtcclxuICAgICAgICBjb2xvcjogJGJ1cm50LXNpZW5uYTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmRpdmlkZXIge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRidXJudC1zaWVubmE7XHJcbiAgfVxyXG59XHJcblxyXG4udy1zIHtcclxuICB3aWR0aDogMzMuMyU7XHJcbn1cclxuXHJcbi53LXdoIHtcclxuICB3aWR0aDogNjYuNyU7XHJcbn1cclxuIl19 */\"","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormArray } from '@angular/forms';\r\nimport { ISelection } from '../../../../../core/interfaces/common/selection';\r\nimport { IOfficeOperatorService } from '../../../../../core/interfaces/customer/office-operator-service';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { IOperator } from '../../../../../core/interfaces/customer/operator';\r\nimport { IService } from '../../../../../core/interfaces/customer/service';\r\nimport { ServicesWorkingHoursFormService } from './services-working-hours-form.service';\r\nimport { ServicesWorkingHoursLoaderService } from './services-working-hours-loader.service';\r\n\r\n@Component({\r\n selector: 'app-services-working-hours',\r\n templateUrl: './services-working-hours.component.html',\r\n styleUrls: ['./services-working-hours.component.scss'],\r\n providers: [\r\n ServicesWorkingHoursFormService,\r\n ServicesWorkingHoursLoaderService\r\n ]\r\n})\r\nexport class ServicesWorkingHoursComponent implements OnInit, OnChanges {\r\n @Input() workSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n @Input() officeId: string = null;\r\n @Input() operator: IOperator = null;\r\n @Input() operatorServices: IService[] = [];\r\n @Input() officeOperatorServices: IOfficeOperatorService[] = [];\r\n\r\n @Output() editedOfficeOperatorServices = new EventEmitter();\r\n @Output() editedWorkSchedule = new EventEmitter();\r\n @Output() isFormValid = new EventEmitter();\r\n\r\n public items: ISelection[] = [];\r\n public selectedItems: ISelection[] = [];\r\n\r\n public schedule: IOfficeOperatorWorkSchedule[] = [];\r\n public editedSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n\r\n public editedOOS: IOfficeOperatorService[] = [];\r\n\r\n public selectedItem: any = {\r\n serviceId: null,\r\n serviceName: null,\r\n isOfficeWorkSchedule: true\r\n };\r\n\r\n public componentLoaded: boolean = false;\r\n\r\n constructor(\r\n private servicesWorkingHoursFormService: ServicesWorkingHoursFormService,\r\n private servicesWorkingHoursLoaderService: ServicesWorkingHoursLoaderService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.servicesWorkingHoursFormService.resetServices();\r\n this.selectService(null, null, true);\r\n\r\n if (changes.workSchedule != undefined) {\r\n this.workSchedule = changes.workSchedule.currentValue;\r\n this.editedSchedule = changes.workSchedule.currentValue;\r\n }\r\n\r\n if (changes.operator != undefined) {\r\n this.operator = changes.operator.currentValue;\r\n }\r\n\r\n if (changes.operatorServices != undefined) {\r\n this.operatorServices = changes.operatorServices.currentValue;\r\n\r\n this.items = this.operatorServices.map(x => ({ value: x.id, text: x.name }));\r\n }\r\n\r\n if (changes.officeOperatorServices != undefined) {\r\n this.officeOperatorServices = changes.officeOperatorServices.currentValue;\r\n\r\n var servicesIds = this.officeOperatorServices.map(function (item) {\r\n return item['serviceId'];\r\n });\r\n\r\n var services = this.operatorServices.filter(x => servicesIds.includes(x.id));\r\n\r\n this.selectedItems = services.map(x => ({ value: x.id, text: x.name }));\r\n }\r\n\r\n this.servicesWorkingHoursLoaderService.loadServices(this.selectedItems, this.officeOperatorServices);\r\n\r\n if (this.servicesForm.value.length > 0) {\r\n var firstItem = this.servicesForm.at(0).value;\r\n this.selectService(firstItem.id, firstItem.name, firstItem.isOfficeWorkSchedule);\r\n }\r\n\r\n this.checkFormStatus();\r\n\r\n this.componentLoaded = true;\r\n }\r\n\r\n get form() {\r\n return this.servicesWorkingHoursFormService.form;\r\n }\r\n\r\n get servicesForm(): FormArray {\r\n return this.servicesWorkingHoursFormService.form.get('services') as FormArray;\r\n }\r\n\r\n onChangeWorkScheduleType(checked: boolean): void {\r\n this.selectedItem.isOfficeWorkSchedule = checked;\r\n\r\n if (checked) {\r\n this.editedSchedule = this.editedSchedule.filter(x => x.serviceId != this.selectedItem.serviceId);\r\n\r\n this.checkFormStatus();\r\n }\r\n }\r\n\r\n selectService(id: string, name: string, isOfficeWorkSchedule: boolean) {\r\n this.schedule = this.editedSchedule.filter(x => x.serviceId == id);\r\n\r\n this.selectedItem = {\r\n serviceId: id,\r\n serviceName: name,\r\n isOfficeWorkSchedule: isOfficeWorkSchedule\r\n };\r\n }\r\n\r\n removeService(index: number, id: string) {\r\n this.servicesWorkingHoursFormService.removeService(index);\r\n\r\n this.selectedItems = this.selectedItems.filter(item => item.value !== id);\r\n\r\n this.selectService(null, null, true);\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n onEditedServices(services: ISelection[]) {\r\n this.servicesWorkingHoursFormService.resetServices();\r\n\r\n this.servicesWorkingHoursLoaderService.loadServices(services, this.officeOperatorServices);\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n onEditedWorkSchedule(workSchedule: IOfficeOperatorWorkSchedule[]) {\r\n this.editedSchedule = this.editedSchedule.filter(x => x.serviceId != this.selectedItem.serviceId);\r\n\r\n if (workSchedule.length > 0) {\r\n this.editedSchedule.push(...workSchedule);\r\n }\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n onWorkScheduleFormValid(isValid: boolean) {\r\n if (!isValid) {\r\n this.isFormValid.emit(false);\r\n }\r\n }\r\n\r\n checkFormStatus() {\r\n const status = this.form.status;\r\n\r\n if (status == \"VALID\") {\r\n const dtos = this.servicesWorkingHoursFormService.createOfficeOperatorServiceDtos(this.officeId, this.operator.id);\r\n this.editedOfficeOperatorServices.emit(dtos);\r\n this.editedWorkSchedule.emit(this.editedSchedule);\r\n this.isFormValid.emit(true);\r\n\r\n return;\r\n }\r\n\r\n this.isFormValid.emit(false);\r\n }\r\n}\r\n","import { WeekDay } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { IWorkingHours } from '../../../../../core/interfaces/customer/working-hours';\r\n\r\n@Injectable()\r\nexport class WeekdayWorkingHoursFormService {\r\n public form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.fb.group({\r\n workingHours: this.fb.array([])\r\n });\r\n }\r\n\r\n get workingHoursForm() {\r\n return this.form.get('workingHours') as FormArray;\r\n }\r\n\r\n addWorkingHours(workSchedule: IOfficeOperatorWorkSchedule = null) {\r\n var workingHours: IWorkingHours = {\r\n id: null,\r\n startHour: '09:00',\r\n endHour: '18:00'\r\n };\r\n\r\n if (workSchedule != null) {\r\n workingHours.id = workSchedule.id;\r\n workingHours.startHour = workSchedule.startHour;\r\n workingHours.endHour = workSchedule.endHour;\r\n }\r\n\r\n const obj = this.fb.group({\r\n id: [workingHours.id, null],\r\n startHour: [workingHours.startHour, Validators.required],\r\n endHour: [workingHours.endHour, Validators.required]\r\n });\r\n\r\n this.workingHoursForm.push(obj);\r\n this.form.markAsDirty();\r\n }\r\n\r\n removeWorkingHours(index: number) {\r\n this.workingHoursForm.removeAt(index);\r\n this.form.markAsDirty();\r\n }\r\n\r\n changeTimeValue(index: number, name: string, value: string) {\r\n var control = this.workingHoursForm.at(index).get(name);\r\n control.setValue(value);\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n\r\n createOfficeOperatorWorkScheduleDtos(weekday: WeekDay, officeId: string, operatorId: string, serviceId: string): IOfficeOperatorWorkSchedule[] {\r\n var data = this.form.value;\r\n var workingHours = data.workingHours;\r\n\r\n const officeOperatorsWorkSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n const isOfficeWorkSchedule = operatorId != null && operatorId != \"\" ? false : true;\r\n\r\n Object(workingHours).forEach(workingHours => {\r\n const workSchedule: IOfficeOperatorWorkSchedule = {\r\n id: workingHours.id,\r\n officeId: officeId,\r\n operatorId: operatorId,\r\n serviceId: serviceId,\r\n startHour: workingHours.startHour,\r\n endHour: workingHours.endHour,\r\n dayOfTheWeek: weekday,\r\n isOfficeWorkSchedule: isOfficeWorkSchedule\r\n };\r\n\r\n officeOperatorsWorkSchedule.push(workSchedule);\r\n });\r\n\r\n\r\n return officeOperatorsWorkSchedule;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { WeekdayWorkingHoursFormService } from './weekday-working-hours-form.service';\r\n\r\n@Injectable()\r\nexport class WeekdayWorkingHoursLoaderService {\r\n\r\n constructor(private weekdayWorkingHoursFormService: WeekdayWorkingHoursFormService) { }\r\n\r\n loadWorkingHours(workSchedule: IOfficeOperatorWorkSchedule[]) {\r\n this.patchWorkingHoursArray(workSchedule);\r\n }\r\n\r\n patchWorkingHoursArray(workSchedule: IOfficeOperatorWorkSchedule[]) {\r\n if (workSchedule != null && workSchedule.length > 0) {\r\n try {\r\n Object(workSchedule).forEach(x => {\r\n this.weekdayWorkingHoursFormService.addWorkingHours(x);\r\n });\r\n }\r\n catch (err) {\r\n console.log('Keywords split error = ', err);\r\n }\r\n }\r\n else {\r\n this.weekdayWorkingHoursFormService.addWorkingHours();\r\n }\r\n }\r\n}\r\n","export default \".fake-icon {\\n width: 2.5rem;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9vZmZpY2Uvd29ya2luZy1ob3Vycy93ZWVrZGF5LXdvcmtpbmctaG91cnMvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxhcHBcXG1hbmFnZW1lbnRcXHNoYXJlZFxcY29tcG9uZW50c1xcb2ZmaWNlXFx3b3JraW5nLWhvdXJzXFx3ZWVrZGF5LXdvcmtpbmctaG91cnNcXHdlZWtkYXktd29ya2luZy1ob3Vycy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9vZmZpY2Uvd29ya2luZy1ob3Vycy93ZWVrZGF5LXdvcmtpbmctaG91cnMvd2Vla2RheS13b3JraW5nLWhvdXJzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9vZmZpY2Uvd29ya2luZy1ob3Vycy93ZWVrZGF5LXdvcmtpbmctaG91cnMvd2Vla2RheS13b3JraW5nLWhvdXJzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZha2UtaWNvbiB7XHJcbiAgd2lkdGg6IDIuNXJlbTtcclxufVxyXG4iLCIuZmFrZS1pY29uIHtcbiAgd2lkdGg6IDIuNXJlbTtcbn0iXX0= */\"","import { WeekDay } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormArray } from '@angular/forms';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { WeekdayWorkingHoursFormService } from './weekday-working-hours-form.service';\r\nimport { WeekdayWorkingHoursLoaderService } from './weekday-working-hours-loader.service';\r\n\r\n@Component({\r\n selector: 'app-weekday-working-hours',\r\n templateUrl: './weekday-working-hours.component.html',\r\n styleUrls: ['./weekday-working-hours.component.scss'],\r\n providers: [\r\n WeekdayWorkingHoursFormService,\r\n WeekdayWorkingHoursLoaderService\r\n ]\r\n})\r\nexport class WeekdayWorkingHoursComponent implements OnInit {\r\n @Input() workSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n @Input() weekday: WeekDay;\r\n @Input() officeId: string = null;\r\n @Input() operatorId: string = null;\r\n @Input() serviceId: string = null;\r\n @Input() returnDtos: boolean = false;\r\n\r\n @Output() editedWorkSchedule = new EventEmitter();\r\n @Output() editedWeekDay = new EventEmitter();\r\n @Output() isFormValid = new EventEmitter();\r\n\r\n public componentLoaded: boolean = false;\r\n\r\n constructor(\r\n private weekdayWorkingHoursFormService: WeekdayWorkingHoursFormService,\r\n private weekdayWorkingHoursLoaderService: WeekdayWorkingHoursLoaderService\r\n ) { }\r\n\r\n ngOnInit() {\r\n var weekdayWorkSchedule: IOfficeOperatorWorkSchedule[] = this.workSchedule.filter(x => x.dayOfTheWeek == this.weekday);\r\n\r\n this.weekdayWorkingHoursLoaderService.loadWorkingHours(weekdayWorkSchedule);\r\n\r\n this.checkFormStatus();\r\n\r\n this.componentLoaded = true;\r\n }\r\n\r\n get form() {\r\n return this.weekdayWorkingHoursFormService.form;\r\n }\r\n\r\n get workingHoursForm(): FormArray {\r\n return this.weekdayWorkingHoursFormService.form.get('workingHours') as FormArray;\r\n }\r\n\r\n addWorkingHours() {\r\n this.weekdayWorkingHoursFormService.addWorkingHours(null);\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n removeWorkingHours(index: number) {\r\n this.weekdayWorkingHoursFormService.removeWorkingHours(index);\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n onChangeTime(index: number, name: string, value: any) {\r\n this.weekdayWorkingHoursFormService.changeTimeValue(index, name, value);\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n checkFormStatus() {\r\n const status = this.form.status;\r\n\r\n if (status == \"VALID\") {\r\n this.editedWeekDay.emit(this.weekday);\r\n\r\n const dtos = this.weekdayWorkingHoursFormService.createOfficeOperatorWorkScheduleDtos(this.weekday, this.officeId, this.operatorId, this.serviceId);\r\n this.editedWorkSchedule.emit(dtos);\r\n this.isFormValid.emit(true);\r\n\r\n return;\r\n }\r\n\r\n this.isFormValid.emit(false);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\n\r\n@Injectable()\r\nexport class WorkingHoursFormService {\r\n public form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.fb.group({\r\n monday: true,\r\n tuesday: true,\r\n wednesday: true,\r\n thursday: true,\r\n friday: true,\r\n saturday: false,\r\n sunday: false\r\n });\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n}\r\n","import { WeekDay } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\nimport { IOfficeOperatorWorkSchedule } from '../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { WorkingHoursFormService } from './working-hours-form.service';\r\n\n@Injectable()\nexport class WorkingHoursLoaderService {\n\n constructor(private workingHoursFormService: WorkingHoursFormService) { }\n\n loadFirstWorkingHours() {\r\n this.workingHoursFormService.form.patchValue({\r\n monday: true,\r\n tuesday: true,\r\n wednesday: true,\r\n thursday: true,\r\n friday: true,\r\n saturday: false,\r\n sunday: false\r\n });\r\n }\n\n loadWorkingHours(workSchedule: IOfficeOperatorWorkSchedule[]) {\r\n this.workingHoursFormService.form.patchValue({\r\n monday: this.checkWeekday(WeekDay.Monday, workSchedule),\r\n tuesday: this.checkWeekday(WeekDay.Tuesday, workSchedule),\r\n wednesday: this.checkWeekday(WeekDay.Wednesday, workSchedule),\r\n thursday: this.checkWeekday(WeekDay.Thursday, workSchedule),\r\n friday: this.checkWeekday(WeekDay.Friday, workSchedule),\r\n saturday: this.checkWeekday(WeekDay.Saturday, workSchedule),\r\n sunday: this.checkWeekday(WeekDay.Sunday, workSchedule)\r\n });\r\n }\n\n checkWeekday(weekday: number, workSchedule: IOfficeOperatorWorkSchedule[]) {\n var schedules = workSchedule.filter(x => x.dayOfTheWeek == weekday);\n\r\n if (schedules.length > 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvb2ZmaWNlL3dvcmtpbmctaG91cnMvd29ya2luZy1ob3Vycy5jb21wb25lbnQuc2NzcyJ9 */\"","import { WeekDay } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { WeekDaysList } from '../../../../core/constants/calendar.constants';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { WorkingHoursFormService } from './working-hours-form.service';\r\nimport { WorkingHoursLoaderService } from './working-hours-loader.service';\r\n\r\n@Component({\r\n selector: 'app-working-hours',\r\n templateUrl: './working-hours.component.html',\r\n styleUrls: ['./working-hours.component.scss'],\r\n providers: [\r\n WorkingHoursFormService,\r\n WorkingHoursLoaderService\r\n ]\r\n})\r\nexport class WorkingHoursComponent implements OnInit, OnChanges {\r\n @Input() workSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n @Input() officeId: string = null;\r\n @Input() operatorId: string = null;\r\n @Input() serviceId: string = null;\r\n\r\n @Output() editedWorkSchedule = new EventEmitter();\r\n @Output() isFormValid = new EventEmitter();\r\n\r\n public WeekDay = WeekDay;\r\n public editedWeekDay: WeekDay;\r\n\r\n public schedule: IOfficeOperatorWorkSchedule[] = [];\r\n\r\n public componentLoaded: boolean = false;\r\n\r\n constructor(\r\n private workingHoursFormService: WorkingHoursFormService,\r\n private workingHoursLoaderService: WorkingHoursLoaderService\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.workSchedule.length == 0) {\r\n this.workingHoursLoaderService.loadFirstWorkingHours();\r\n\r\n this.componentLoaded = true;\r\n\r\n return;\r\n }\r\n\r\n this.workingHoursLoaderService.loadWorkingHours(this.workSchedule);\r\n\r\n this.schedule = this.workSchedule;\r\n\r\n this.componentLoaded = true;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.workSchedule != undefined) {\r\n this.workSchedule = changes.workSchedule.currentValue;\r\n }\r\n\r\n if (changes.officeId != undefined) {\r\n this.officeId = changes.officeId.currentValue;\r\n }\r\n\r\n if (changes.operatorId != undefined) {\r\n this.operatorId = changes.operatorId.currentValue;\r\n }\r\n\r\n if (changes.serviceId != undefined) {\r\n this.serviceId = changes.serviceId.currentValue;\r\n }\r\n\r\n this.workingHoursLoaderService.loadWorkingHours(this.workSchedule);\r\n\r\n this.schedule = this.workSchedule;\r\n\r\n this.componentLoaded = true;\r\n }\r\n\r\n get form() {\r\n return this.workingHoursFormService.form;\r\n }\r\n\r\n get monday() {\r\n return this.workingHoursFormService.getFormControl('monday') as FormControl;\r\n }\r\n\r\n get tuesday() {\r\n return this.workingHoursFormService.getFormControl('tuesday') as FormControl;\r\n }\r\n\r\n get wednesday() {\r\n return this.workingHoursFormService.getFormControl('wednesday') as FormControl;\r\n }\r\n\r\n get thursday() {\r\n return this.workingHoursFormService.getFormControl('thursday') as FormControl;\r\n }\r\n\r\n get friday() {\r\n return this.workingHoursFormService.getFormControl('friday') as FormControl;\r\n }\r\n\r\n get saturday() {\r\n return this.workingHoursFormService.getFormControl('saturday') as FormControl;\r\n }\r\n\r\n get sunday() {\r\n return this.workingHoursFormService.getFormControl('sunday') as FormControl;\r\n }\r\n\r\n onChangeWeekDay(checked: boolean, weekday: WeekDay) {\r\n if (!checked) {\r\n this.schedule = this.schedule.filter(x => x.dayOfTheWeek != weekday);\r\n\r\n this.checkFormStatus();\r\n }\r\n }\r\n\r\n onEditedWeekDay(weekday: WeekDay) {\r\n this.editedWeekDay = weekday;\r\n }\r\n\r\n onEditedWorkSchedule(workSchedule: IOfficeOperatorWorkSchedule[]) {\r\n this.schedule = this.schedule.filter(x => x.dayOfTheWeek != this.editedWeekDay);\r\n\r\n if (workSchedule.length == 0) {\r\n var weekdayName = WeekDaysList[this.editedWeekDay];\r\n this.form.controls[weekdayName].setValue(false);\r\n\r\n this.checkFormStatus();\r\n\r\n return;\r\n }\r\n\r\n this.schedule.push(...workSchedule);\r\n\r\n this.checkFormStatus();\r\n }\r\n\r\n onWorkScheduleFormValid(isValid: boolean) {\r\n if (!isValid) {\r\n this.isFormValid.emit(false);\r\n }\r\n }\r\n\r\n checkFormStatus() {\r\n const status = this.form.status;\r\n\r\n if (status == \"VALID\") {\r\n this.editedWorkSchedule.emit(this.schedule);\r\n this.isFormValid.emit(true);\r\n\r\n return;\r\n }\r\n\r\n this.isFormValid.emit(false);\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { MatPaginatorIntl } from '@angular/material';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\n@Injectable()\r\nexport class MatPaginatorI18n extends MatPaginatorIntl implements OnDestroy {\r\n private onDestroy$: Subject = new Subject();\r\n\r\n constructor(private readonly translate: TranslateService) {\r\n super();\r\n\r\n this.translate\r\n .stream([\r\n \"paginator.itemsPerPage\",\r\n \"paginator.nextPage\",\r\n \"paginator.previousPage\",\r\n \"paginator.firstPage\",\r\n \"paginator.lastPage\"\r\n ])\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(translations => {\r\n this.itemsPerPageLabel = translations[\"paginator.itemsPerPage\"];\r\n this.nextPageLabel = translations[\"paginator.nextPage\"];\r\n this.previousPageLabel = translations[\"paginator.previousPage\"];\r\n this.firstPageLabel = translations[\"paginator.firstPage\"];\r\n this.lastPageLabel = translations[\"paginator.lastPage\"];\r\n //this.getRangeLabel = this.getRangeLabel.bind(this);\r\n this.getRangeLabel = this.rangeLabel;\r\n\r\n this.changes.next();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n {\r\n\r\n\r\n //this.getRangeLabel = (page: number, pageSize: number, length: number): string => {\r\n // if (length === 0 || pageSize === 0) {\r\n // return this.translate.instant(\"MATERIAL.PAGINATOR.RANGE_LABEL_NO_ITEMS\", { length });\r\n // }\r\n\r\n // length = Math.max(length, 0);\r\n\r\n // const startIndex = page * pageSize;\r\n // // If the start index exceeds the list length, do not try and fix the end index to the end.\r\n // const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\r\n // return this.translate.instant(\"MATERIAL.PAGINATOR.RANGE_LABEL\", {\r\n // startIndex: startIndex + 1,\r\n // endIndex,\r\n // length\r\n // });\r\n //}\r\n }\r\n }\r\n\r\n rangeLabel = (page: number, pageSize: number, length: number) => {\n if (length == 0 || pageSize == 0) { return `0 ${this.translate.instant(\"paginator.of\")} ${length}`; }\n\n length = Math.max(length, 0);\n\n const startIndex = page * pageSize;\n\n // If the start index exceeds the list length, do not try and fix the end index to the end.\n const endIndex = startIndex < length ?\n Math.min(startIndex + pageSize, length) :\n startIndex + pageSize;\n\n return `${startIndex + 1} - ${endIndex} ${this.translate.instant(\"paginator.of\")} ${length}`;\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9tdWx0aXBsZS1zZWxlY3Rpb24tYWxsLWNoZWNrYm94L211bHRpcGxlLXNlbGVjdGlvbi1hbGwtY2hlY2tib3guY29tcG9uZW50LnNjc3MifQ== */\"","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\r\nimport { MatSelect } from '@angular/material';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { ISelection } from '../../../../core/interfaces/common/selection';\r\n\n@Component({\n selector: 'app-multiple-selection-all-checkbox',\n templateUrl: './multiple-selection-all-checkbox.component.html',\n styleUrls: ['./multiple-selection-all-checkbox.component.scss']\n})\nexport class MultipleSelectionAllCheckboxComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {\n /** list of items */\n @Input() items: ISelection[];\n\n /** selected items */\n @Input() selectedItems: ISelection[];\n\n /** name of selection component */\n @Input() title: string;\n\n /** list of items to be returned */\n @Output() editedItems = new EventEmitter();\n\n /** control for the selected item for multi-selection */\n public itemMultiCtrl: FormControl = new FormControl();\n\n /** control for the MatSelect filter keyword multi-selection */\n public itemMultiFilterCtrl: FormControl = new FormControl();\n\n /** list of items filtered by search keyword */\n public filteredItemsMulti: ReplaySubject = new ReplaySubject(1);\n\n /** total number of available entries */\r\n public allItemsSize: number;\n\n @ViewChild('multiSelect', { static: true }) multiSelect: MatSelect;\n\n /** Subject that emits when the component has been destroyed. */\n protected _onDestroy = new Subject();\n\n constructor() { }\n\n ngOnInit() {\n this.loadSelection();\n }\n\n ngAfterViewInit() {\n this.setInitialValue();\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.items != undefined) {\n this.items = changes.items.currentValue;\n }\n\n if (changes.selectedItems != undefined) {\n this.selectedItems = changes.selectedItems.currentValue;\n }\n\n this.loadSelection();\n }\n\n loadSelection() {\n // set initial selection\n this.itemMultiCtrl.setValue(this.selectedItems);\n\n // load the initial item list\n this.filteredItemsMulti.next(this.items.slice());\n\n // listen for search field value changes\n this.itemMultiFilterCtrl.valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.filterItemsMulti();\n });\n\n this.allItemsSize = this.items.length;\n }\n\n /**\n * Sets the initial value after the filteredItems are loaded initially\n */\n protected setInitialValue() {\n this.filteredItemsMulti\n .pipe(take(1), takeUntil(this._onDestroy))\n .subscribe(() => {\n // setting the compareWith property to a comparison function\n // triggers initializing the selection according to the initial value of\n // the form control (i.e. _initializeSelection())\n // this needs to be done after the filteredItems are loaded initially\n // and after the mat-option elements are available\n this.multiSelect.compareWith = (a: ISelection, b: ISelection) => a && b && a.value === b.value;\n });\n }\n\n protected filterItemsMulti() {\n if (!this.items) {\n return;\n }\n // get the search keyword\n let search = this.itemMultiFilterCtrl.value;\n if (!search) {\n this.filteredItemsMulti.next(this.items.slice());\n return;\n } else {\n search = search.toLowerCase();\n }\n // filter the items\n this.filteredItemsMulti.next(\n this.items.filter(item => item.text.toLowerCase().indexOf(search) > -1)\n );\n }\n\n toggleSelectAll(selectAllValue: boolean) {\r\n this.filteredItemsMulti.pipe(take(1), takeUntil(this._onDestroy))\r\n .subscribe(val => {\r\n if (selectAllValue) {\r\n this.itemMultiCtrl.patchValue(val);\r\n this.onChange(val);\r\n } else {\r\n this.itemMultiCtrl.patchValue([]);\r\n this.onChange([]);\r\n }\r\n });\r\n }\n\n onChange($event) {\n this.editedItems.emit($event);\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9tdWx0aXBsZS1zZWxlY3Rpb24vbXVsdGlwbGUtc2VsZWN0aW9uLmNvbXBvbmVudC5zY3NzIn0= */\"","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatSelect } from '@angular/material';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { ISelection } from '../../../../core/interfaces/common/selection';\r\n\r\n@Component({\r\n selector: 'app-multiple-selection',\r\n templateUrl: './multiple-selection.component.html',\r\n styleUrls: ['./multiple-selection.component.scss']\r\n})\r\nexport class MultipleSelectionComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {\r\n /** list of items */\r\n @Input() items: ISelection[];\r\n\r\n /** selected items */\r\n @Input() selectedItems: ISelection[];\r\n\r\n /** name of selection component */\r\n @Input() title: string;\r\n\r\n /** list of items to be returned */\r\n @Output() editedItems = new EventEmitter();\r\n\r\n /** control for the selected item for multi-selection */\r\n public itemMultiCtrl: FormControl = new FormControl();\r\n\r\n /** control for the MatSelect filter keyword multi-selection */\r\n public itemMultiFilterCtrl: FormControl = new FormControl();\r\n\r\n /** list of items filtered by search keyword */\r\n public filteredItemsMulti: ReplaySubject = new ReplaySubject(1);\r\n\r\n @ViewChild('multiSelect', { static: true }) multiSelect: MatSelect;\r\n\r\n /** Subject that emits when the component has been destroyed. */\r\n protected _onDestroy = new Subject();\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.loadSelection();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setInitialValue();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.items != undefined) {\r\n this.items = changes.items.currentValue;\r\n }\r\n\r\n if (changes.selectedItems != undefined) {\r\n this.selectedItems = changes.selectedItems.currentValue;\r\n }\r\n\r\n this.loadSelection();\r\n }\r\n\r\n loadSelection() {\r\n // set initial selection\r\n this.itemMultiCtrl.setValue(this.selectedItems);\r\n\r\n // load the initial item list\r\n this.filteredItemsMulti.next(this.items.slice());\r\n\r\n // listen for search field value changes\r\n this.itemMultiFilterCtrl.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterItemsMulti();\r\n });\r\n }\r\n\r\n /**\r\n * Sets the initial value after the filteredItems are loaded initially\r\n */\r\n protected setInitialValue() {\r\n this.filteredItemsMulti\r\n .pipe(take(1), takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n // setting the compareWith property to a comparison function\r\n // triggers initializing the selection according to the initial value of\r\n // the form control (i.e. _initializeSelection())\r\n // this needs to be done after the filteredItems are loaded initially\r\n // and after the mat-option elements are available\r\n this.multiSelect.compareWith = (a: ISelection, b: ISelection) => a && b && a.value === b.value;\r\n });\r\n }\r\n\r\n protected filterItemsMulti() {\r\n if (!this.items) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.itemMultiFilterCtrl.value;\r\n if (!search) {\r\n this.filteredItemsMulti.next(this.items.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the items\r\n this.filteredItemsMulti.next(\r\n this.items.filter(item => item.text.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n onChange($event) {\r\n this.editedItems.emit($event.value);\r\n }\r\n}\r\n","export default \"img {\\n width: 1.875rem;\\n height: 1.875rem;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9zZWxlY3Rpb25zL3NpbmdsZS1zZWxlY3Rpb24tY291bnRyeS9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcbWFuYWdlbWVudFxcc2hhcmVkXFxjb21wb25lbnRzXFxzZWxlY3Rpb25zXFxzaW5nbGUtc2VsZWN0aW9uLWNvdW50cnlcXHNpbmdsZS1zZWxlY3Rpb24tY291bnRyeS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9zZWxlY3Rpb25zL3NpbmdsZS1zZWxlY3Rpb24tY291bnRyeS9zaW5nbGUtc2VsZWN0aW9uLWNvdW50cnkuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zaW5nbGUtc2VsZWN0aW9uLWNvdW50cnkvc2luZ2xlLXNlbGVjdGlvbi1jb3VudHJ5LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW1nIHtcclxuICB3aWR0aDogMS44NzVyZW07XHJcbiAgaGVpZ2h0OiAxLjg3NXJlbTtcclxufVxyXG4iLCJpbWcge1xuICB3aWR0aDogMS44NzVyZW07XG4gIGhlaWdodDogMS44NzVyZW07XG59Il19 */\"","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\r\nimport { MatSelect } from '@angular/material';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { ISelection } from '../../../../core/interfaces/common/selection';\r\n\n@Component({\n selector: 'app-single-selection-country',\n templateUrl: './single-selection-country.component.html',\n styleUrls: ['./single-selection-country.component.scss']\n})\nexport class SingleSelectionCountryComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {\n /** list of items */\n @Input() items: ISelection[];\n\n /** selected item */\n @Input() selectedItem: ISelection;\n\n /** name of selection component */\n @Input() title: string;\n\n /** list of items to be returned */\n @Output() editedItem = new EventEmitter();\n\n /** control for the selected item */\n public itemCtrl: FormControl = new FormControl();\n\n /** control for the MatSelect filter keyword */\n public itemFilterCtrl: FormControl = new FormControl();\n\n /** list of items filtered by search keyword */\n public filteredItems: ReplaySubject = new ReplaySubject(1);\n\n @ViewChild('singleSelect', { static: true }) singleSelect: MatSelect;\n\n /** Subject that emits when the component has been destroyed. */\n protected _onDestroy = new Subject();\n\n\n constructor() { }\n\n ngOnInit() {\n this.loadSelection();\n }\n\n ngAfterViewInit() {\n this.setInitialValue();\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.items != undefined) {\n this.items = changes.items.currentValue;\n }\n\n if (changes.selectedItem != undefined) {\n this.selectedItem = changes.selectedItem.currentValue;\n }\n\n this.loadSelection();\n }\n\n loadSelection() {\n // set initial selection\n this.itemCtrl.setValue(this.selectedItem);\n\n // load the initial item list\n this.filteredItems.next(this.items.slice());\n\n // listen for search field value changes\n this.itemFilterCtrl.valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.filterItems();\n });\n }\n\n /**\n * Sets the initial value after the filteredItems are loaded initially\n */\n protected setInitialValue() {\n this.filteredItems\n .pipe(take(1), takeUntil(this._onDestroy))\n .subscribe(() => {\n // setting the compareWith property to a comparison function\n // triggers initializing the selection according to the initial value of\n // the form control (i.e. _initializeSelection())\n // this needs to be done after the filteredItems are loaded initially\n // and after the mat-option elements are available\n this.singleSelect.compareWith = (a: ISelection, b: ISelection) => a && b && a.value === b.value;\n });\n }\n\n protected filterItems() {\n if (!this.items) {\n return;\n }\n // get the search keyword\n let search = this.itemFilterCtrl.value;\n if (!search) {\n this.filteredItems.next(this.items.slice());\n return;\n } else {\n search = search.toLowerCase();\n }\n // filter the items\n this.filteredItems.next(\n this.items.filter(item => item.text.toLowerCase().indexOf(search) > -1)\n );\n }\n\n onChange($event) {\n this.editedItem.emit($event.value);\n }\n}\n","export default \"img {\\n width: 1.875rem;\\n height: 1.875rem;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9zZWxlY3Rpb25zL3NpbmdsZS1zZWxlY3Rpb24td2l0aC1pbWFnZS9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcbWFuYWdlbWVudFxcc2hhcmVkXFxjb21wb25lbnRzXFxzZWxlY3Rpb25zXFxzaW5nbGUtc2VsZWN0aW9uLXdpdGgtaW1hZ2VcXHNpbmdsZS1zZWxlY3Rpb24td2l0aC1pbWFnZS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9zZWxlY3Rpb25zL3NpbmdsZS1zZWxlY3Rpb24td2l0aC1pbWFnZS9zaW5nbGUtc2VsZWN0aW9uLXdpdGgtaW1hZ2UuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zaW5nbGUtc2VsZWN0aW9uLXdpdGgtaW1hZ2Uvc2luZ2xlLXNlbGVjdGlvbi13aXRoLWltYWdlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW1nIHtcclxuICB3aWR0aDogMS44NzVyZW07XHJcbiAgaGVpZ2h0OiAxLjg3NXJlbTtcclxufVxyXG4iLCJpbWcge1xuICB3aWR0aDogMS44NzVyZW07XG4gIGhlaWdodDogMS44NzVyZW07XG59Il19 */\"","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatSelect } from '@angular/material';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { ISelection } from '../../../../core/interfaces/common/selection';\r\n\r\n@Component({\r\n selector: 'app-single-selection-with-image',\r\n templateUrl: './single-selection-with-image.component.html',\r\n styleUrls: ['./single-selection-with-image.component.scss']\r\n})\r\nexport class SingleSelectionWithImageComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {\r\n /** list of items */\r\n @Input() items: ISelection[];\r\n\r\n /** selected item */\r\n @Input() selectedItem: ISelection;\r\n\r\n /** name of selection component */\r\n @Input() title: string;\r\n\r\n /** list of items to be returned */\r\n @Output() editedItem = new EventEmitter();\r\n\r\n /** control for the selected item */\r\n public itemCtrl: FormControl = new FormControl();\r\n\r\n /** control for the MatSelect filter keyword */\r\n public itemFilterCtrl: FormControl = new FormControl();\r\n\r\n /** list of items filtered by search keyword */\r\n public filteredItems: ReplaySubject = new ReplaySubject(1);\r\n\r\n @ViewChild('singleSelect', { static: true }) singleSelect: MatSelect;\r\n\r\n /** Subject that emits when the component has been destroyed. */\r\n protected _onDestroy = new Subject();\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.loadSelection();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setInitialValue();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.items != undefined) {\r\n this.items = changes.items.currentValue;\r\n }\r\n\r\n if (changes.selectedItem != undefined) {\r\n this.selectedItem = changes.selectedItem.currentValue;\r\n }\r\n\r\n this.loadSelection();\r\n }\r\n\r\n loadSelection() {\r\n // set initial selection\r\n this.itemCtrl.setValue(this.selectedItem);\r\n\r\n // load the initial item list\r\n this.filteredItems.next(this.items.slice());\r\n\r\n // listen for search field value changes\r\n this.itemFilterCtrl.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterItems();\r\n });\r\n }\r\n\r\n /**\r\n * Sets the initial value after the filteredItems are loaded initially\r\n */\r\n protected setInitialValue() {\r\n this.filteredItems\r\n .pipe(take(1), takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n // setting the compareWith property to a comparison function\r\n // triggers initializing the selection according to the initial value of\r\n // the form control (i.e. _initializeSelection())\r\n // this needs to be done after the filteredItems are loaded initially\r\n // and after the mat-option elements are available\r\n this.singleSelect.compareWith = (a: ISelection, b: ISelection) => a && b && a.value === b.value;\r\n });\r\n }\r\n\r\n protected filterItems() {\r\n if (!this.items) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.itemFilterCtrl.value;\r\n if (!search) {\r\n this.filteredItems.next(this.items.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the items\r\n this.filteredItems.next(\r\n this.items.filter(item => item.text.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n onChange($event) {\r\n this.editedItem.emit($event.value);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zaW5nbGUtc2VsZWN0aW9uL3NpbmdsZS1zZWxlY3Rpb24uY29tcG9uZW50LnNjc3MifQ== */\"","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatSelect } from '@angular/material';\r\nimport { ReplaySubject, Subject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { ISelection } from '../../../../core/interfaces/common/selection';\r\n\r\n@Component({\r\n selector: 'app-single-selection',\r\n templateUrl: './single-selection.component.html',\r\n styleUrls: ['./single-selection.component.scss']\r\n})\r\nexport class SingleSelectionComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {\r\n /** list of items */\r\n @Input() items: ISelection[];\r\n\r\n /** selected item */\r\n @Input() selectedItem: ISelection;\r\n\r\n /** name of selection component */\r\n @Input() title: string;\r\n\r\n /** list of items to be returned */\r\n @Output() editedItem = new EventEmitter();\r\n\r\n /** control for the selected item */\r\n public itemCtrl: FormControl = new FormControl();\r\n\r\n /** control for the MatSelect filter keyword */\r\n public itemFilterCtrl: FormControl = new FormControl();\r\n\r\n /** list of items filtered by search keyword */\r\n public filteredItems: ReplaySubject = new ReplaySubject(1);\r\n\r\n @ViewChild('singleSelect', { static: true }) singleSelect: MatSelect;\r\n\r\n /** Subject that emits when the component has been destroyed. */\r\n protected _onDestroy = new Subject();\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.loadSelection();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setInitialValue();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.items != undefined) {\r\n this.items = changes.items.currentValue;\r\n }\r\n\r\n if (changes.selectedItem != undefined) {\r\n this.selectedItem = changes.selectedItem.currentValue;\r\n }\r\n\r\n this.loadSelection();\r\n }\r\n\r\n loadSelection() {\r\n // set initial selection\r\n this.itemCtrl.setValue(this.selectedItem);\r\n\r\n // load the initial item list\r\n this.filteredItems.next(this.items.slice());\r\n\r\n // listen for search field value changes\r\n this.itemFilterCtrl.valueChanges\r\n .pipe(takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterItems();\r\n });\r\n }\r\n\r\n /**\r\n * Sets the initial value after the filteredItems are loaded initially\r\n */\r\n protected setInitialValue() {\r\n this.filteredItems\r\n .pipe(take(1), takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n // setting the compareWith property to a comparison function\r\n // triggers initializing the selection according to the initial value of\r\n // the form control (i.e. _initializeSelection())\r\n // this needs to be done after the filteredItems are loaded initially\r\n // and after the mat-option elements are available\r\n this.singleSelect.compareWith = (a: ISelection, b: ISelection) => a && b && a.value === b.value;\r\n });\r\n }\r\n\r\n protected filterItems() {\r\n if (!this.items) {\r\n return;\r\n }\r\n // get the search keyword\r\n let search = this.itemFilterCtrl.value;\r\n if (!search) {\r\n this.filteredItems.next(this.items.slice());\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n // filter the items\r\n this.filteredItems.next(\r\n this.items.filter(item => item.text.toLowerCase().indexOf(search) > -1)\r\n );\r\n }\r\n\r\n onChange($event) {\r\n this.editedItem.emit($event.value);\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n/*\\n =================================================================================================\\n general layout variables\\n =================================================================================================\\n*/\\n\\n/* main menu that contains the modules: console, sms, email, etc */\\n\\n/* secondary menu that contains the menu for each module */\\n\\n.sidenav-menu {\\n position: absolute;\\n z-index: 9999;\\n top: 0;\\n left: 0;\\n width: 12rem;\\n height: 100%;\\n padding: 1rem 0rem;\\n}\\n\\n.sidenav-menu h3 {\\n color: #FF4081;\\n font-size: 1.25rem;\\n padding: 0rem 1rem;\\n text-transform: capitalize;\\n}\\n\\n.sidenav-menu ul {\\n list-style-type: none;\\n padding: 0;\\n margin: 2rem 0 0;\\n}\\n\\n.sidenav-menu ul,\\n.sidenav-menu ul li,\\n.sidenav-menu ul li a {\\n display: block;\\n width: 100%;\\n}\\n\\n.sidenav-menu ul li a {\\n padding: 0.5rem 1rem;\\n line-height: 1;\\n color: #37474F;\\n font-size: 0.9rem;\\n}\\n\\n.sidenav-menu ul li a.link-active {\\n font-weight: 700;\\n}\\n\\n.sidenav-menu ul li a:hover, .sidenav-menu ul li a:active, .sidenav-menu ul li a:focus {\\n color: #2196F3;\\n}\\n\\n.sidenav-menu .submenu {\\n display: none;\\n}\\n\\n.sidenav-menu .expand-submenu {\\n display: block;\\n margin: 0.5rem;\\n padding-left: 0.7rem;\\n}\\n\\n.sidenav-menu .expand-submenu a {\\n font-size: 0.8rem !important;\\n}\\n\\n.sidenav-menu .expand-submenu a.link-active::before {\\n content: \\\"\\\";\\n border-radius: 2rem;\\n background-color: #FF4081;\\n height: 0.5rem;\\n width: 0.5rem;\\n display: inline-block;\\n position: absolute;\\n left: 0.2rem;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9zaWRlbmF2LW1lbnUvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfY29sb3Itc2NoZW1lLnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvc2lkZW5hdi1tZW51L3NpZGVuYXYtbWVudS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9zaWRlbmF2LW1lbnUvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvc2lkZW5hdi1tZW51L0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxzaGFyZWRcXGNvbXBvbmVudHNcXHNpZGVuYXYtbWVudVxcc2lkZW5hdi1tZW51LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTtFQUNFLGNBakJPO0FDQ1Q7O0FEbUJBO0VBQ0UseUJBckJPO0FDS1Q7O0FEbUJBO0VBQ0UsY0F4Qks7QUNRUDs7QURtQkE7RUFDRSx5QkE1Qks7QUNZUDs7QURtQkE7RUFDRSxjQS9CVztBQ2ViOztBRG1CQTtFQUNFLHlCQW5DVztBQ21CYjs7QURtQkE7RUFDRSxjQXJDVTtBQ3FCWjs7QURtQkE7RUFDRSx5QkF6Q1U7QUN5Qlo7O0FEbUJBO0VBQ0UsY0FsRE07QUNrQ1I7O0FEbUJBO0VBQ0UseUJBdERNO0FDc0NSOztBRG1CQTtFQUNFLGNBcERjO0FDb0NoQjs7QURtQkE7RUFDRSx5QkF4RGM7QUN3Q2hCOztBRG1CQTtFQUNFLGNBM0RhO0FDMkNmOztBRG1CQTtFQUNFLHlCQS9EYTtBQytDZjs7QURtQkE7RUFDRSxjQXJFVTtBQ3FEWjs7QURtQkE7RUFDRSx5QkFuRVE7QUNtRFY7O0FEbUJBO0VBQ0UseUJBdEVhO0FDc0RmOztBRG1CQTtFQUNFLGNBMUVhO0FDMERmOztBRG1CQTtFQUNFLHlCQWhGYTtBQ2dFZjs7QURtQkE7RUFDRSxjQXBGYTtBQ29FZjs7QURtQkE7RUFDRSxjQXpGTTtBQ3lFUjs7QURtQkE7RUFDRSxjQXhGSztBQ3dFUDs7QURtQkE7RUFDRSx5QkE1Rks7QUM0RVA7O0FEbUJBO0VBQ0UsY0EvRlU7QUMrRVo7O0FEbUJBO0VBQ0UseUJBbkdVO0FDbUZaOztBQ2xHQTs7OztDQUFBOztBQU04QixrRUFBQTs7QUFDRiwwREFBQTs7QUNGNUI7RUFDRSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFlESG1CO0VDSW5CLFlBQUE7RUFDQSxrQkRKMEI7QUQyRzVCOztBRXJHRTtFQUNFLGNIVFk7RUdVWixrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsMEJBQUE7QUZ1R0o7O0FFcEdFO0VBQ0UscUJBQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7QUZzR0o7O0FFbkdFOzs7RUFHRSxjQUFBO0VBQ0EsV0FBQTtBRnFHSjs7QUVsR0U7RUFDRSxvQkFBQTtFQUNBLGNBQUE7RUFDQSxjSG5DRztFR29DSCxpQkFBQTtBRm9HSjs7QUVsR0k7RUFDRSxnQkFBQTtBRm9HTjs7QUVqR0k7RUFDRSxjSHRDUztBQ3lJZjs7QUUvRkU7RUFDRSxhQUFBO0FGaUdKOztBRTlGRTtFQUNFLGNBQUE7RUFDQSxjQUFBO0VBQ0Esb0JBQUE7QUZnR0o7O0FFOUZJO0VBQ0UsNEJBQUE7QUZnR047O0FFN0ZNO0VBQ0UsV0FBQTtFQUNBLG1CQUFBO0VBQ0EseUJIM0RRO0VHNERSLGNBQUE7RUFDQSxhQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7QUYrRlIiLCJmaWxlIjoic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL3NpZGVuYXYtbWVudS9zaWRlbmF2LW1lbnUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkd2hpdGU6ICNGRkZGRkY7XHJcbiRkYXJrZXI6ICMxQzI0Mjg7XHJcbiRkYXJrOiAjMzc0NzRGO1xyXG4kZ3JheS1saWdodDogI0VCRjFGNDtcclxuJGdyYXktbWVkaXVtOiAjZTBlMGUwO1xyXG4kZ3JheS1kYXJrOiAjOEI5RUE3O1xyXG4kcHJpbWFyeS1jb2xvcjogI0ZGNDA4MTtcclxuJGFjY2VudC1jb2xvcjogIzIxOTZGMztcclxuJGFjY2VudC1jb2xvci0yOiAjMUFDNjczO1xyXG4kZXJyb3I6ICNGRjQxMDA7XHJcbiRidXJudC1zaWVubmE6ICNFRTdENUE7XHJcbiRzcGluZGxlOiAjQzhFNUVGO1xyXG4kZWFzdGVybi1ibHVlOiAjMTg5N0MzO1xyXG4kd2lsZC1zdHJhd2JlcnJ5OiAjRkY0MDgxO1xyXG4kd2FybjogI2Y0NDMzNjtcclxuJGRhcmstYmx1ZTogIzJhNjM3NztcclxuXHJcbi50ZXh0LWRhcmtlciB7XHJcbiAgY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi5ia2ctZGFya2VyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4udGV4dC1kYXJrIHtcclxuICBjb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi5ia2ctZGFyayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0ZXIge1xyXG4gIGNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmJrZy1saWdodGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLnRleHQtbGlnaHQge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSB7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJrZy13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1wcmltYXJ5IHtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWFjY2VudCB7XHJcbiAgY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctYWNjZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1ncmF5LWRhcmsge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLXNwaW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzcGluZGxlO1xyXG59XHJcblxyXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLnRleHQtZWFzdGVybi1ibHVlIHtcclxuICBjb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLmJrZy1idXJudC1zaWVubmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWJ1cm50LXNpZW5uYSB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWVycm9yIHtcclxuICBjb2xvcjogJGVycm9yO1xyXG59XHJcblxyXG4udGV4dC13YXJuIHtcclxuICBjb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi5ia2ctd2FybiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi50ZXh0LWRhcmstYmx1ZSB7XHJcbiAgY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctZGFyay1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcbiIsIi50ZXh0LWRhcmtlciB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uYmtnLWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzI0Mjg7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cblxuLmJrZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0Rjtcbn1cblxuLnRleHQtbGlnaHRlciB7XG4gIGNvbG9yOiAjRUJGMUY0O1xufVxuXG4uYmtnLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMUY0O1xufVxuXG4udGV4dC1saWdodCB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhCOUVBNztcbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLmJrZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuLmJrZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbi5ia2ctYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuLnRleHQtZ3JheS1kYXJrIHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctc3BpbmRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEU1RUY7XG59XG5cbi5ia2ctZWFzdGVybi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn1cblxuLnRleHQtZWFzdGVybi1ibHVlIHtcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5ia2ctYnVybnQtc2llbm5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtYnVybnQtc2llbm5hIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWVycm9yIHtcbiAgY29sb3I6ICNGRjQxMDA7XG59XG5cbi50ZXh0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLmJrZy13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLnRleHQtZGFyay1ibHVlIHtcbiAgY29sb3I6ICMyYTYzNzc7XG59XG5cbi5ia2ctZGFyay1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNjM3Nztcbn1cblxuLypcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBnZW5lcmFsIGxheW91dCB2YXJpYWJsZXNcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuKi9cbi8qIG1haW4gbWVudSB0aGF0IGNvbnRhaW5zIHRoZSBtb2R1bGVzOiBjb25zb2xlLCBzbXMsIGVtYWlsLCBldGMgKi9cbi8qIHNlY29uZGFyeSBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1lbnUgZm9yIGVhY2ggbW9kdWxlICovXG4uc2lkZW5hdi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5OTk5O1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMnJlbTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAxcmVtIDByZW07XG59XG4uc2lkZW5hdi1tZW51IGgzIHtcbiAgY29sb3I6ICNGRjQwODE7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgcGFkZGluZzogMHJlbSAxcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbi5zaWRlbmF2LW1lbnUgdWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMnJlbSAwIDA7XG59XG4uc2lkZW5hdi1tZW51IHVsLFxuLnNpZGVuYXYtbWVudSB1bCBsaSxcbi5zaWRlbmF2LW1lbnUgdWwgbGkgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cbi5zaWRlbmF2LW1lbnUgdWwgbGkgYSB7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMzNzQ3NEY7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuLnNpZGVuYXYtbWVudSB1bCBsaSBhLmxpbmstYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5zaWRlbmF2LW1lbnUgdWwgbGkgYTpob3ZlciwgLnNpZGVuYXYtbWVudSB1bCBsaSBhOmFjdGl2ZSwgLnNpZGVuYXYtbWVudSB1bCBsaSBhOmZvY3VzIHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG4uc2lkZW5hdi1tZW51IC5zdWJtZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zaWRlbmF2LW1lbnUgLmV4cGFuZC1zdWJtZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMC41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcbn1cbi5zaWRlbmF2LW1lbnUgLmV4cGFuZC1zdWJtZW51IGEge1xuICBmb250LXNpemU6IDAuOHJlbSAhaW1wb3J0YW50O1xufVxuLnNpZGVuYXYtbWVudSAuZXhwYW5kLXN1Ym1lbnUgYS5saW5rLWFjdGl2ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIHdpZHRoOiAwLjVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwLjJyZW07XG59IiwiLypcclxuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgZ2VuZXJhbCBsYXlvdXQgdmFyaWFibGVzXHJcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4qL1xyXG4kaGVhZGVyLWhlaWdodDogNjBweDtcclxuJHNpZGVuYXYtbW9kdWxlcy13aWR0aDogNXJlbTsgLyogbWFpbiBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1vZHVsZXM6IGNvbnNvbGUsIHNtcywgZW1haWwsIGV0YyAqL1xyXG4kc2lkZW5hdi1tZW51LXdpZHRoOiAxMnJlbTsgLyogc2Vjb25kYXJ5IG1lbnUgdGhhdCBjb250YWlucyB0aGUgbWVudSBmb3IgZWFjaCBtb2R1bGUgKi9cclxuJHNpZGVuYXYtY29udGFpbmVyLXBhZGRpbmc6IDFyZW0gMHJlbTtcclxuXHJcbiRicmVha3BvaW50LXRhYmxldDogNzY4cHg7XHJcbiRicmVha3BvaW50LWxhcHRvcDogMTAyNHB4O1xyXG5cclxuJHNjcm9sbGJhci13aWR0aDogNXB4O1xyXG5cclxuJGFwcHMtaGVhZGVyLWhlaWdodDogNHJlbTtcclxuJGFwcHMtZm9vdGVyLWxvZ28taGVpZ2h0OiAycmVtO1xyXG4kYXBwcy1mb290ZXItbGluay1oZWlnaHQ6IDEuNXJlbTtcclxuXHJcbiRvZmZpY2UtaW5mby1oZWlnaHQ6IDIwcmVtO1xyXG4kb2ZmaWNlLXdvcmtpbmctaG91cnMtaGVpZ2h0OiA0MHJlbTtcclxuJG9mZmljZS1vcGVyYXRvcnMtc2VydmljZXMtaGVpZ2h0OiA0MHJlbTtcclxuIiwiQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vc2Nzcy9tYW5hZ2VtZW50L19jb2xvci1zY2hlbWUuc2Nzcyc7XHJcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL3Njc3MvbWFuYWdlbWVudC9fdmFyaWFibGVzLnNjc3MnO1xyXG5cclxuJGRlZmF1bHQtcGFkZGluZzogMXJlbTtcclxuXHJcbi5zaWRlbmF2LW1lbnUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiA5OTk5O1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAkc2lkZW5hdi1tZW51LXdpZHRoO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBwYWRkaW5nOiAkc2lkZW5hdi1jb250YWluZXItcGFkZGluZztcclxuXHJcbiAgaDMge1xyXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xyXG4gICAgcGFkZGluZzogMHJlbSAkZGVmYXVsdC1wYWRkaW5nO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgfVxyXG5cclxuICB1bCB7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbWFyZ2luOiAycmVtIDAgMDtcclxuICB9XHJcblxyXG4gIHVsLFxyXG4gIHVsIGxpLFxyXG4gIHVsIGxpIGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHVsIGxpIGEge1xyXG4gICAgcGFkZGluZzogJGRlZmF1bHQtcGFkZGluZy8yICRkZWZhdWx0LXBhZGRpbmc7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICAgIGNvbG9yOiAkZGFyaztcclxuICAgIGZvbnQtc2l6ZTogLjlyZW07XHJcblxyXG4gICAgJi5saW5rLWFjdGl2ZSB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICB9XHJcblxyXG4gICAgJjpob3ZlciwgJjphY3RpdmUsICY6Zm9jdXMge1xyXG4gICAgICBjb2xvcjogJGFjY2VudC1jb2xvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zdWJtZW51IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuZXhwYW5kLXN1Ym1lbnUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW46IDAuNXJlbTtcclxuICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xyXG5cclxuICAgIGEge1xyXG4gICAgICBmb250LXNpemU6IC44cmVtICFpbXBvcnRhbnQ7XHJcblxyXG5cclxuICAgICAgJi5saW5rLWFjdGl2ZTo6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAycmVtO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4gICAgICAgIGhlaWdodDogLjVyZW07XHJcbiAgICAgICAgd2lkdGg6IC41cmVtO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgbGVmdDogMC4ycmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { IMenuItem } from '../../../core/interfaces/menu-item';\r\n\r\n@Component({\r\n selector: 'app-sidenav-menu',\r\n templateUrl: './sidenav-menu.component.html',\r\n styleUrls: ['./sidenav-menu.component.scss']\r\n})\r\nexport class SidenavMenuComponent implements OnInit {\r\n @Input('items') items: IMenuItem[];\r\n @Input('title') title: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\n/*\\n =================================================================================================\\n general layout variables\\n =================================================================================================\\n*/\\n\\n/* main menu that contains the modules: console, sms, email, etc */\\n\\n/* secondary menu that contains the menu for each module */\\n\\n.sidenav-modules {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 5rem;\\n height: 100%;\\n padding-top: 60px;\\n border-radius: 0rem 15rem 15rem 0rem;\\n}\\n\\n.sidenav-modules ul {\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n width: 100%;\\n height: calc(100vh - 140px);\\n overflow: hidden;\\n padding-right: 5px;\\n}\\n\\nul:hover {\\n overflow-y: scroll !important;\\n padding-right: 0 !important;\\n}\\n\\n.sidenav-modules ul li {\\n position: relative;\\n display: block;\\n}\\n\\n.sidenav-modules ul li a {\\n position: relative;\\n display: block;\\n width: 100%;\\n text-align: center;\\n padding: 0.3rem 0.65rem;\\n color: #37474F;\\n}\\n\\n.sidenav-modules ul li a .icon {\\n font-size: 2rem;\\n}\\n\\n.sidenav-modules ul li a.link-active i.icon, .sidenav-modules ul li a:hover i.icon, .sidenav-modules ul li a:active i.icon {\\n color: #FF4081;\\n cursor: pointer;\\n}\\n\\n.sidenav-modules ul li a.link-active span, .sidenav-modules ul li a:hover span, .sidenav-modules ul li a:active span {\\n visibility: visible;\\n}\\n\\n.sidenav-modules ul li a.link-active img, .sidenav-modules ul li a:hover img, .sidenav-modules ul li a:active img {\\n border: 0.125rem solid #EE7D5A;\\n}\\n\\n.sidenav-modules ul li a span {\\n position: relative;\\n line-height: 1;\\n display: block;\\n width: 100%;\\n text-align: center;\\n}\\n\\n.sidenav-modules ul li a span.title {\\n font-size: 0.55rem;\\n text-transform: uppercase;\\n margin-top: 0.5rem;\\n opacity: 0.75;\\n letter-spacing: 0.05rem;\\n font-weight: 700;\\n}\\n\\n.sidenav-modules ul li a span.icon {\\n font-size: 1.875rem;\\n}\\n\\nimg {\\n width: 2.7rem;\\n height: 2.7rem;\\n border-radius: 50%;\\n background-color: #ffffff;\\n}\\n\\nspan {\\n visibility: hidden;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9zaWRlbmF2LW1vZHVsZXMvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfY29sb3Itc2NoZW1lLnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvc2lkZW5hdi1tb2R1bGVzL3NpZGVuYXYtbW9kdWxlcy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy9zaWRlbmF2LW1vZHVsZXMvRDpcXFByb2plY3RzXFxBcHBvaW50bWVudEFwcFxcUHJlc2VudGF0aW9uXFxBcHBvaW50bWVudEFwcC5XZWJzaXRlXFxDbGllbnRBcHAvc3JjXFxzY3NzXFxtYW5hZ2VtZW50XFxfdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvc2lkZW5hdi1tb2R1bGVzL0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxzaGFyZWRcXGNvbXBvbmVudHNcXHNpZGVuYXYtbW9kdWxlc1xcc2lkZW5hdi1tb2R1bGVzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTtFQUNFLGNBakJPO0FDQ1Q7O0FEbUJBO0VBQ0UseUJBckJPO0FDS1Q7O0FEbUJBO0VBQ0UsY0F4Qks7QUNRUDs7QURtQkE7RUFDRSx5QkE1Qks7QUNZUDs7QURtQkE7RUFDRSxjQS9CVztBQ2ViOztBRG1CQTtFQUNFLHlCQW5DVztBQ21CYjs7QURtQkE7RUFDRSxjQXJDVTtBQ3FCWjs7QURtQkE7RUFDRSx5QkF6Q1U7QUN5Qlo7O0FEbUJBO0VBQ0UsY0FsRE07QUNrQ1I7O0FEbUJBO0VBQ0UseUJBdERNO0FDc0NSOztBRG1CQTtFQUNFLGNBcERjO0FDb0NoQjs7QURtQkE7RUFDRSx5QkF4RGM7QUN3Q2hCOztBRG1CQTtFQUNFLGNBM0RhO0FDMkNmOztBRG1CQTtFQUNFLHlCQS9EYTtBQytDZjs7QURtQkE7RUFDRSxjQXJFVTtBQ3FEWjs7QURtQkE7RUFDRSx5QkFuRVE7QUNtRFY7O0FEbUJBO0VBQ0UseUJBdEVhO0FDc0RmOztBRG1CQTtFQUNFLGNBMUVhO0FDMERmOztBRG1CQTtFQUNFLHlCQWhGYTtBQ2dFZjs7QURtQkE7RUFDRSxjQXBGYTtBQ29FZjs7QURtQkE7RUFDRSxjQXpGTTtBQ3lFUjs7QURtQkE7RUFDRSxjQXhGSztBQ3dFUDs7QURtQkE7RUFDRSx5QkE1Rks7QUM0RVA7O0FEbUJBO0VBQ0UsY0EvRlU7QUMrRVo7O0FEbUJBO0VBQ0UseUJBbkdVO0FDbUZaOztBQ2xHQTs7OztDQUFBOztBQU04QixrRUFBQTs7QUFDRiwwREFBQTs7QUNKNUI7RUFDRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsV0REc0I7RUNFdEIsWUFBQTtFQUNBLGlCREpjO0VDS2Qsb0NBQUE7QUZ5R0Y7O0FFdEdBO0VBQ0UsU0FBQTtFQUNBLFVBQUE7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSwyQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JEUGdCO0FEZ0hsQjs7QUV0R0E7RUFDRSw2QkFBQTtFQUNBLDJCQUFBO0FGeUdGOztBRXRHQTtFQUNFLGtCQUFBO0VBQ0EsY0FBQTtBRnlHRjs7QUV0R0E7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSx1QkFBQTtFQUNBLGNIckNLO0FDOElQOztBRXZHRTtFQUNFLGVBQUE7QUZ5R0o7O0FFdEdFO0VBR0UsY0gxQ1k7RUcyQ1osZUFBQTtBRnNHSjs7QUVuR0U7RUFHRSxtQkFBQTtBRm1HSjs7QUVoR0U7RUFHRSw4QkFBQTtBRmdHSjs7QUU1RkE7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0FGK0ZGOztBRTVGQTtFQUNFLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSx1QkFBQTtFQUNBLGdCQUFBO0FGK0ZGOztBRTVGQTtFQUNFLG1CQUFBO0FGK0ZGOztBRTVGQTtFQUNFLGFBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtBRitGRjs7QUU1RkE7RUFDRSxrQkFBQTtBRitGRiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvc2lkZW5hdi1tb2R1bGVzL3NpZGVuYXYtbW9kdWxlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiR3aGl0ZTogI0ZGRkZGRjtcclxuJGRhcmtlcjogIzFDMjQyODtcclxuJGRhcms6ICMzNzQ3NEY7XHJcbiRncmF5LWxpZ2h0OiAjRUJGMUY0O1xyXG4kZ3JheS1tZWRpdW06ICNlMGUwZTA7XHJcbiRncmF5LWRhcms6ICM4QjlFQTc7XHJcbiRwcmltYXJ5LWNvbG9yOiAjRkY0MDgxO1xyXG4kYWNjZW50LWNvbG9yOiAjMjE5NkYzO1xyXG4kYWNjZW50LWNvbG9yLTI6ICMxQUM2NzM7XHJcbiRlcnJvcjogI0ZGNDEwMDtcclxuJGJ1cm50LXNpZW5uYTogI0VFN0Q1QTtcclxuJHNwaW5kbGU6ICNDOEU1RUY7XHJcbiRlYXN0ZXJuLWJsdWU6ICMxODk3QzM7XHJcbiR3aWxkLXN0cmF3YmVycnk6ICNGRjQwODE7XHJcbiR3YXJuOiAjZjQ0MzM2O1xyXG4kZGFyay1ibHVlOiAjMmE2Mzc3O1xyXG5cclxuLnRleHQtZGFya2VyIHtcclxuICBjb2xvcjogJGRhcmtlcjtcclxufVxyXG5cclxuLmJrZy1kYXJrZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi50ZXh0LWRhcmsge1xyXG4gIGNvbG9yOiAkZGFyaztcclxufVxyXG5cclxuLmJrZy1kYXJrIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyaztcclxufVxyXG5cclxuLnRleHQtbGlnaHRlciB7XHJcbiAgY29sb3I6ICRncmF5LWxpZ2h0O1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0O1xyXG59XHJcblxyXG4udGV4dC1saWdodCB7XHJcbiAgY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi5ia2ctbGlnaHQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi50ZXh0LXdoaXRlIHtcclxuICBjb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4uYmtnLXdoaXRlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbn1cclxuXHJcbi50ZXh0LXByaW1hcnkge1xyXG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxufVxyXG5cclxuLmJrZy1wcmltYXJ5IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxufVxyXG5cclxuLnRleHQtYWNjZW50IHtcclxuICBjb2xvcjogJGFjY2VudC1jb2xvcjtcclxufVxyXG5cclxuLmJrZy1hY2NlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWdyYXktZGFyayB7XHJcbiAgY29sb3I6ICRncmF5LWRhcms7XHJcbn1cclxuXHJcbi5ia2ctc3BpbmRsZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5kbGU7XHJcbn1cclxuXHJcbi5ia2ctZWFzdGVybi1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWFzdGVybi1ibHVlO1xyXG59XHJcblxyXG4udGV4dC1lYXN0ZXJuLWJsdWUge1xyXG4gIGNvbG9yOiAkZWFzdGVybi1ibHVlO1xyXG59XHJcblxyXG4uYmtnLWJ1cm50LXNpZW5uYSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJ1cm50LXNpZW5uYTtcclxufVxyXG5cclxuLnRleHQtYnVybnQtc2llbm5hIHtcclxuICBjb2xvcjogJGJ1cm50LXNpZW5uYTtcclxufVxyXG5cclxuLnRleHQtZXJyb3Ige1xyXG4gIGNvbG9yOiAkZXJyb3I7XHJcbn1cclxuXHJcbi50ZXh0LXdhcm4ge1xyXG4gIGNvbG9yOiAkd2FybjtcclxufVxyXG5cclxuLmJrZy13YXJuIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2FybjtcclxufVxyXG5cclxuLnRleHQtZGFyay1ibHVlIHtcclxuICBjb2xvcjogJGRhcmstYmx1ZTtcclxufVxyXG5cclxuLmJrZy1kYXJrLWJsdWUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuIiwiLnRleHQtZGFya2VyIHtcbiAgY29sb3I6ICMxQzI0Mjg7XG59XG5cbi5ia2ctZGFya2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFDMjQyODtcbn1cblxuLnRleHQtZGFyayB7XG4gIGNvbG9yOiAjMzc0NzRGO1xufVxuXG4uYmtnLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc0NzRGO1xufVxuXG4udGV4dC1saWdodGVyIHtcbiAgY29sb3I6ICNFQkYxRjQ7XG59XG5cbi5ia2ctbGlnaHRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQkYxRjQ7XG59XG5cbi50ZXh0LWxpZ2h0IHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOEI5RUE3O1xufVxuXG4udGV4dC13aGl0ZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuXG4uYmtnLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cblxuLnRleHQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjRkY0MDgxO1xufVxuXG4uYmtnLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY0MDgxO1xufVxuXG4udGV4dC1hY2NlbnQge1xuICBjb2xvcjogIzIxOTZGMztcbn1cblxuLmJrZy1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xufVxuXG4udGV4dC1ncmF5LWRhcmsge1xuICBjb2xvcjogIzhCOUVBNztcbn1cblxuLmJrZy1zcGluZGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M4RTVFRjtcbn1cblxuLmJrZy1lYXN0ZXJuLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTg5N0MzO1xufVxuXG4udGV4dC1lYXN0ZXJuLWJsdWUge1xuICBjb2xvcjogIzE4OTdDMztcbn1cblxuLmJrZy1idXJudC1zaWVubmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUU3RDVBO1xufVxuXG4udGV4dC1idXJudC1zaWVubmEge1xuICBjb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtZXJyb3Ige1xuICBjb2xvcjogI0ZGNDEwMDtcbn1cblxuLnRleHQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4uYmtnLXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuXG4udGV4dC1kYXJrLWJsdWUge1xuICBjb2xvcjogIzJhNjM3Nztcbn1cblxuLmJrZy1kYXJrLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmE2Mzc3O1xufVxuXG4vKlxuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIGdlbmVyYWwgbGF5b3V0IHZhcmlhYmxlc1xuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4qL1xuLyogbWFpbiBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1vZHVsZXM6IGNvbnNvbGUsIHNtcywgZW1haWwsIGV0YyAqL1xuLyogc2Vjb25kYXJ5IG1lbnUgdGhhdCBjb250YWlucyB0aGUgbWVudSBmb3IgZWFjaCBtb2R1bGUgKi9cbi5zaWRlbmF2LW1vZHVsZXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDVyZW07XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDYwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDByZW0gMTVyZW0gMTVyZW0gMHJlbTtcbn1cblxuLnNpZGVuYXYtbW9kdWxlcyB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTQwcHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG59XG5cbnVsOmhvdmVyIHtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnNpZGVuYXYtbW9kdWxlcyB1bCBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zaWRlbmF2LW1vZHVsZXMgdWwgbGkgYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjY1cmVtO1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cbi5zaWRlbmF2LW1vZHVsZXMgdWwgbGkgYSAuaWNvbiB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cbi5zaWRlbmF2LW1vZHVsZXMgdWwgbGkgYS5saW5rLWFjdGl2ZSBpLmljb24sIC5zaWRlbmF2LW1vZHVsZXMgdWwgbGkgYTpob3ZlciBpLmljb24sIC5zaWRlbmF2LW1vZHVsZXMgdWwgbGkgYTphY3RpdmUgaS5pY29uIHtcbiAgY29sb3I6ICNGRjQwODE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zaWRlbmF2LW1vZHVsZXMgdWwgbGkgYS5saW5rLWFjdGl2ZSBzcGFuLCAuc2lkZW5hdi1tb2R1bGVzIHVsIGxpIGE6aG92ZXIgc3BhbiwgLnNpZGVuYXYtbW9kdWxlcyB1bCBsaSBhOmFjdGl2ZSBzcGFuIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi5zaWRlbmF2LW1vZHVsZXMgdWwgbGkgYS5saW5rLWFjdGl2ZSBpbWcsIC5zaWRlbmF2LW1vZHVsZXMgdWwgbGkgYTpob3ZlciBpbWcsIC5zaWRlbmF2LW1vZHVsZXMgdWwgbGkgYTphY3RpdmUgaW1nIHtcbiAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAjRUU3RDVBO1xufVxuXG4uc2lkZW5hdi1tb2R1bGVzIHVsIGxpIGEgc3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc2lkZW5hdi1tb2R1bGVzIHVsIGxpIGEgc3Bhbi50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMC41NXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICBvcGFjaXR5OiAwLjc1O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnNpZGVuYXYtbW9kdWxlcyB1bCBsaSBhIHNwYW4uaWNvbiB7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG59XG5cbmltZyB7XG4gIHdpZHRoOiAyLjdyZW07XG4gIGhlaWdodDogMi43cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbnNwYW4ge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59IiwiLypcclxuICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgZ2VuZXJhbCBsYXlvdXQgdmFyaWFibGVzXHJcbiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4qL1xyXG4kaGVhZGVyLWhlaWdodDogNjBweDtcclxuJHNpZGVuYXYtbW9kdWxlcy13aWR0aDogNXJlbTsgLyogbWFpbiBtZW51IHRoYXQgY29udGFpbnMgdGhlIG1vZHVsZXM6IGNvbnNvbGUsIHNtcywgZW1haWwsIGV0YyAqL1xyXG4kc2lkZW5hdi1tZW51LXdpZHRoOiAxMnJlbTsgLyogc2Vjb25kYXJ5IG1lbnUgdGhhdCBjb250YWlucyB0aGUgbWVudSBmb3IgZWFjaCBtb2R1bGUgKi9cclxuJHNpZGVuYXYtY29udGFpbmVyLXBhZGRpbmc6IDFyZW0gMHJlbTtcclxuXHJcbiRicmVha3BvaW50LXRhYmxldDogNzY4cHg7XHJcbiRicmVha3BvaW50LWxhcHRvcDogMTAyNHB4O1xyXG5cclxuJHNjcm9sbGJhci13aWR0aDogNXB4O1xyXG5cclxuJGFwcHMtaGVhZGVyLWhlaWdodDogNHJlbTtcclxuJGFwcHMtZm9vdGVyLWxvZ28taGVpZ2h0OiAycmVtO1xyXG4kYXBwcy1mb290ZXItbGluay1oZWlnaHQ6IDEuNXJlbTtcclxuXHJcbiRvZmZpY2UtaW5mby1oZWlnaHQ6IDIwcmVtO1xyXG4kb2ZmaWNlLXdvcmtpbmctaG91cnMtaGVpZ2h0OiA0MHJlbTtcclxuJG9mZmljZS1vcGVyYXRvcnMtc2VydmljZXMtaGVpZ2h0OiA0MHJlbTtcclxuIiwiQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vc2Nzcy9tYW5hZ2VtZW50L19jb2xvci1zY2hlbWUuc2Nzcyc7XHJcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL3Njc3MvbWFuYWdlbWVudC9fdmFyaWFibGVzLnNjc3MnO1xyXG5cclxuLnNpZGVuYXYtbW9kdWxlcyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAkc2lkZW5hdi1tb2R1bGVzLXdpZHRoO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBwYWRkaW5nLXRvcDogJGhlYWRlci1oZWlnaHQ7XHJcbiAgYm9yZGVyLXJhZGl1czogMHJlbSAxNXJlbSAxNXJlbSAwcmVtO1xyXG59XHJcblxyXG4uc2lkZW5hdi1tb2R1bGVzIHVsIHtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTQwcHgpO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgcGFkZGluZy1yaWdodDogJHNjcm9sbGJhci13aWR0aDtcclxufVxyXG5cclxudWw6aG92ZXIge1xyXG4gIG92ZXJmbG93LXk6IHNjcm9sbCAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnNpZGVuYXYtbW9kdWxlcyB1bCBsaSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uc2lkZW5hdi1tb2R1bGVzIHVsIGxpIGEge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMTAwJTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgcGFkZGluZzogLjMwcmVtIC42NXJlbTtcclxuICBjb2xvcjogJGRhcms7XHJcblxyXG4gIC5pY29uIHtcclxuICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICB9XHJcblxyXG4gICYubGluay1hY3RpdmUgaS5pY29uLFxyXG4gICY6aG92ZXIgaS5pY29uLFxyXG4gICY6YWN0aXZlIGkuaWNvbiB7XHJcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmLmxpbmstYWN0aXZlIHNwYW4sXHJcbiAgJjpob3ZlciBzcGFuLFxyXG4gICY6YWN0aXZlIHNwYW4ge1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICB9XHJcblxyXG4gICYubGluay1hY3RpdmUgaW1nLFxyXG4gICY6aG92ZXIgaW1nLFxyXG4gICY6YWN0aXZlIGltZyB7XHJcbiAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRidXJudC1zaWVubmE7XHJcbiAgfVxyXG59XHJcblxyXG4uc2lkZW5hdi1tb2R1bGVzIHVsIGxpIGEgc3BhbiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnNpZGVuYXYtbW9kdWxlcyB1bCBsaSBhIHNwYW4udGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogLjU1cmVtO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbWFyZ2luLXRvcDogLjVyZW07XHJcbiAgb3BhY2l0eTogLjc1O1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbn1cclxuXHJcbi5zaWRlbmF2LW1vZHVsZXMgdWwgbGkgYSBzcGFuLmljb24ge1xyXG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XHJcbn1cclxuXHJcbmltZyB7XHJcbiAgd2lkdGg6IDIuN3JlbTtcclxuICBoZWlnaHQ6IDIuN3JlbTtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxufVxyXG5cclxuc3BhbiB7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcblxyXG4iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { IMenuItem } from '../../../core/interfaces/menu-item';\r\nimport { I18nComponent } from '../../../../i18n/containers/i18n.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Store } from '@ngrx/store';\r\nimport * as fromI18n from '../../../../i18n/reducers';\r\n\r\n@Component({\r\n selector: 'app-sidenav-modules',\r\n templateUrl: './sidenav-modules.component.html',\r\n styleUrls: ['./sidenav-modules.component.scss']\r\n})\r\nexport class SidenavModulesComponent extends I18nComponent {\r\n @Input('modules') modules: IMenuItem[];\r\n\r\n constructor(readonly store: Store,\r\n readonly translate: TranslateService) {\r\n super(store, translate);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \".title {\\n margin-top: 20px;\\n text-align: right;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy90aW1lLXBpY2tlci9EOlxcUHJvamVjdHNcXEFwcG9pbnRtZW50QXBwXFxQcmVzZW50YXRpb25cXEFwcG9pbnRtZW50QXBwLldlYnNpdGVcXENsaWVudEFwcC9zcmNcXGFwcFxcbWFuYWdlbWVudFxcc2hhcmVkXFxjb21wb25lbnRzXFx0aW1lLXBpY2tlclxcdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvdGltZS1waWNrZXIvdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBQTtFQUNBLGlCQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRpdGxlIHtcclxuICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcbiIsIi50aXRsZSB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufSJdfQ== */\"","import { Time } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-time-picker',\r\n templateUrl: './time-picker.component.html',\r\n styleUrls: ['./time-picker.component.scss']\r\n})\r\nexport class TimePickerComponent implements OnInit, OnChanges {\r\n /** selected time */\r\n @Input() selectedTime: string;\r\n\r\n /** the minimum time that can be selected */\r\n @Input() min: string = '00:00';\r\n\r\n /** the maximum time that can be selected */\r\n @Input() max: string = '23:59';\r\n\r\n @Input() title: string = '';\r\n\r\n /** time to be returned */\r\n @Output() editedTime = new EventEmitter();\r\n\r\n public timeCtrl: FormControl = new FormControl();\r\n\r\n public enabled: boolean = false;\r\n\r\n public titleClass: string = '';\r\n public timepickerClass: string = 'col-sm-12 col-md-12 col-lg-12';\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.title) {\r\n this.titleClass = 'col-sm-12 col-md-6 col-lg-6';\r\n this.timepickerClass = 'col-sm-12 col-md-6 col-lg-6';\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.selectedTime != undefined) {\r\n this.timeCtrl.setValue(changes.selectedTime.currentValue);\r\n }\r\n\r\n if (changes.min != undefined && changes.max != undefined) {\r\n this.enabled = false;\r\n\r\n if (changes.min.currentValue != changes.max.currentValue) {\r\n this.enabled = true;\r\n }\r\n }\r\n }\r\n\r\n changeTime($event) {\r\n this.editedTime.emit($event);\r\n }\r\n}\r\n","export default \".slot {\\n cursor: pointer;\\n background-color: #99CDE3;\\n color: #FFFFFF;\\n padding: 0.313rem;\\n border-radius: 0.313rem;\\n}\\n\\n.active {\\n background-color: #99E29C;\\n}\\n\\n.busy {\\n cursor: default;\\n background-color: #E39999;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy90aW1lLXNsb3RzL0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxzaGFyZWRcXGNvbXBvbmVudHNcXHRpbWUtc2xvdHNcXHRpbWUtc2xvdHMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvdGltZS1zbG90cy90aW1lLXNsb3RzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBQTtFQUNBLHlCQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7QUNDRjs7QURFQTtFQUNFLHlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxlQUFBO0VBQ0EseUJBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvdGltZS1zbG90cy90aW1lLXNsb3RzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNsb3Qge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTlDREUzO1xyXG4gIGNvbG9yOiAjRkZGRkZGO1xyXG4gIHBhZGRpbmc6IDAuMzEzcmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuMzEzcmVtO1xyXG59XHJcblxyXG4uYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTlFMjlDO1xyXG59XHJcblxyXG4uYnVzeSB7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNFMzk5OTk7XHJcbn1cclxuIiwiLnNsb3Qge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5OUNERTM7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBwYWRkaW5nOiAwLjMxM3JlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4zMTNyZW07XG59XG5cbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTlFMjlDO1xufVxuXG4uYnVzeSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UzOTk5OTtcbn0iXX0= */\"","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { ITimeSlot } from '../../../core/interfaces/common/time-slot';\r\nimport { ITimeSlotParameters } from '../../../core/interfaces/common/time-slot-parameters';\r\nimport { IAppointment } from '../../../core/interfaces/customer/appointment';\r\nimport { IExceptionDay } from '../../../core/interfaces/customer/exception-day';\r\nimport { IOfficeOperatorWorkSchedule } from '../../../core/interfaces/customer/office-operator-work-schedule';\r\nimport { IOperator } from '../../../core/interfaces/customer/operator';\r\nimport { ISettings } from '../../../core/interfaces/customer/settings';\r\nimport { AgendaService } from '../../../core/services/common/agenda.service';\r\nimport { ExceptionDayService } from '../../../core/services/customer/exception-day.service';\r\nimport { FilterGridFormService } from '../filter-grid/filter-grid-form.service';\r\n\r\n@Component({\r\n selector: 'app-time-slots',\r\n templateUrl: './time-slots.component.html',\r\n styleUrls: ['./time-slots.component.scss'],\r\n providers: [\r\n FilterGridFormService,\r\n ExceptionDayService,\r\n AgendaService\r\n ]\r\n})\r\nexport class TimeSlotsComponent implements OnInit, OnChanges {\r\n @Input() settings: ISettings = null;\r\n @Input() appointment: IAppointment = null;\r\n @Input() allSelectedOperators: IOperator[] = [];\r\n @Input() allOfficeOperatorWorkSchedule: IOfficeOperatorWorkSchedule[] = [];\r\n @Input() selectedDate: Date = new Date();\r\n\r\n @Output() editedData = new EventEmitter();\r\n\r\n public exceptionDays: IExceptionDay[] = null;\r\n public timeSlots: ITimeSlot[] = [];\r\n\r\n public selectedOperator: IOperator = null;\r\n public startHour: string = '';\r\n public endHour: string = '';\r\n\r\n public componentLoaded: boolean = false;\r\n public durationExceeded: boolean = false;\r\n\r\n constructor(\r\n private filterGridFormService: FilterGridFormService,\r\n private exceptionDayService: ExceptionDayService,\r\n private agendaService: AgendaService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.loadExceptionDays();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.selectedDate != undefined) {\r\n //this.selectedDate = new Date(changes.selectedDate.currentValue);\r\n this.selectedDate = changes.selectedDate.currentValue;\r\n this.startHour = \"\";\r\n this.endHour = \"\";\r\n const appointmentDate: Date = new Date(this.appointment.date);\r\n\r\n if (appointmentDate.getFullYear() == this.selectedDate.getFullYear() && appointmentDate.getMonth() == this.selectedDate.getMonth() &&\r\n appointmentDate.getDate() == this.selectedDate.getDate()) {\r\n this.startHour = this.appointment.startHour;\r\n this.endHour = this.appointment.endHour;\r\n }\r\n\r\n this.createTimeSlots();\r\n }\r\n }\r\n\r\n loadExceptionDays() {\r\n const request = this.filterGridFormService.createRequest(false, this.settings.customerCode);\r\n\r\n this.exceptionDayService.getExceptionDaysWithRequest(request).subscribe({\r\n next: data => {\r\n this.exceptionDays = data.data;\r\n\r\n this.createTimeSlots();\r\n }\r\n });\r\n }\r\n\r\n createTimeSlots() {\r\n if (this.exceptionDays == null) {\r\n return;\r\n }\r\n\r\n const date: any = `${this.selectedDate.getFullYear()}-${this.selectedDate.getMonth() + 1}-${this.selectedDate.getDate()}`;\r\n\r\n const timeSlotParameters: ITimeSlotParameters = {\r\n customerCode: this.settings.customerCode,\r\n officeOperatorWorkSchedules: this.allOfficeOperatorWorkSchedule,\r\n exceptionDays: this.exceptionDays,\r\n settings: this.settings,\r\n office: this.appointment.office,\r\n service: this.appointment.service,\r\n operators: this.allSelectedOperators,\r\n date: date,\r\n startHour: this.startHour,\r\n endHour: this.endHour\r\n };\r\n\r\n this.agendaService.getTimeSlots(timeSlotParameters).subscribe(items => {\r\n items.forEach(x => {\r\n x.startHour = x.startHour.toString().slice(0, 5);\r\n x.endHour = x.endHour.toString().slice(0, 5);\r\n });\r\n\r\n this.timeSlots = items;\r\n\r\n this.componentLoaded = true;\r\n });\r\n }\r\n\r\n onSelectSlot(slot: ITimeSlot) {\r\n this.durationExceeded = false;\r\n const timeSlotParameters: ITimeSlotParameters = {\r\n settings: this.settings,\r\n service: this.appointment.service,\r\n operators: this.allSelectedOperators,\r\n startHour: slot.startHour,\r\n timeSlots: this.timeSlots\r\n };\r\n\r\n this.agendaService.selectTimeSlots(timeSlotParameters).subscribe(item => {\r\n item.timeSlots.forEach(x => {\r\n x.startHour = x.startHour.toString().slice(0, 5);\r\n x.endHour = x.endHour.toString().slice(0, 5);\r\n });\r\n\r\n this.timeSlots = item.timeSlots;\r\n this.startHour = item.startHour;\r\n this.endHour = item.endHour;\r\n this.selectedOperator = item.operator;\r\n\r\n if (item.timeSlots.filter(x => x.isSelected).length > 0) {\r\n this.continue();\r\n }\r\n else {\r\n this.durationExceeded = true;\r\n this.editedData.emit(null);\r\n }\r\n });\r\n }\r\n\r\n continue() {\r\n var selectedDate: any = `${this.selectedDate.getFullYear()}-${this.selectedDate.getMonth() + 1}-${this.selectedDate.getDate()}`;\r\n\r\n this.appointment.date = selectedDate;\r\n this.appointment.startHour = this.startHour;\r\n this.appointment.endHour = this.endHour;\r\n this.appointment.operator = this.selectedOperator;\r\n\r\n var obj = {\r\n \"appointment\": this.appointment\r\n };\r\n\r\n this.editedData.emit(obj);\r\n }\r\n}\r\n","export default \".text-darker {\\n color: #1C2428;\\n}\\n\\n.bkg-darker {\\n background-color: #1C2428;\\n}\\n\\n.text-dark {\\n color: #37474F;\\n}\\n\\n.bkg-dark {\\n background-color: #37474F;\\n}\\n\\n.text-lighter {\\n color: #EBF1F4;\\n}\\n\\n.bkg-lighter {\\n background-color: #EBF1F4;\\n}\\n\\n.text-light {\\n color: #8B9EA7;\\n}\\n\\n.bkg-light {\\n background-color: #8B9EA7;\\n}\\n\\n.text-white {\\n color: #FFFFFF;\\n}\\n\\n.bkg-white {\\n background-color: #FFFFFF;\\n}\\n\\n.text-primary {\\n color: #FF4081;\\n}\\n\\n.bkg-primary {\\n background-color: #FF4081;\\n}\\n\\n.text-accent {\\n color: #2196F3;\\n}\\n\\n.bkg-accent {\\n background-color: #2196F3;\\n}\\n\\n.text-gray-dark {\\n color: #8B9EA7;\\n}\\n\\n.bkg-spindle {\\n background-color: #C8E5EF;\\n}\\n\\n.bkg-eastern-blue {\\n background-color: #1897C3;\\n}\\n\\n.text-eastern-blue {\\n color: #1897C3;\\n}\\n\\n.bkg-burnt-sienna {\\n background-color: #EE7D5A;\\n}\\n\\n.text-burnt-sienna {\\n color: #EE7D5A;\\n}\\n\\n.text-error {\\n color: #FF4100;\\n}\\n\\n.text-warn {\\n color: #f44336;\\n}\\n\\n.bkg-warn {\\n background-color: #f44336;\\n}\\n\\n.text-dark-blue {\\n color: #2a6377;\\n}\\n\\n.bkg-dark-blue {\\n background-color: #2a6377;\\n}\\n\\nh4 {\\n font-weight: 700;\\n font-size: 1.25rem;\\n margin: 0;\\n color: #8B9EA7;\\n margin-bottom: 1.1rem;\\n position: relative;\\n}\\n\\nh4 span {\\n position: relative;\\n display: inline-block;\\n padding-right: 1rem;\\n background-color: #FFFFFF;\\n z-index: 10;\\n padding-top: 20px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy91c2Vycy9tYW5hZ2UtdXNlci9lZGl0L0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcc2Nzc1xcbWFuYWdlbWVudFxcX2NvbG9yLXNjaGVtZS5zY3NzIiwic3JjL2FwcC9tYW5hZ2VtZW50L3NoYXJlZC9jb21wb25lbnRzL3VzZXJzL21hbmFnZS11c2VyL2VkaXQvZWRpdC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy91c2Vycy9tYW5hZ2UtdXNlci9lZGl0L0Q6XFxQcm9qZWN0c1xcQXBwb2ludG1lbnRBcHBcXFByZXNlbnRhdGlvblxcQXBwb2ludG1lbnRBcHAuV2Vic2l0ZVxcQ2xpZW50QXBwL3NyY1xcYXBwXFxtYW5hZ2VtZW50XFxzaGFyZWRcXGNvbXBvbmVudHNcXHVzZXJzXFxtYW5hZ2UtdXNlclxcZWRpdFxcZWRpdC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkE7RUFDRSxjQWpCTztBQ0NUOztBRG1CQTtFQUNFLHlCQXJCTztBQ0tUOztBRG1CQTtFQUNFLGNBeEJLO0FDUVA7O0FEbUJBO0VBQ0UseUJBNUJLO0FDWVA7O0FEbUJBO0VBQ0UsY0EvQlc7QUNlYjs7QURtQkE7RUFDRSx5QkFuQ1c7QUNtQmI7O0FEbUJBO0VBQ0UsY0FyQ1U7QUNxQlo7O0FEbUJBO0VBQ0UseUJBekNVO0FDeUJaOztBRG1CQTtFQUNFLGNBbERNO0FDa0NSOztBRG1CQTtFQUNFLHlCQXRETTtBQ3NDUjs7QURtQkE7RUFDRSxjQXBEYztBQ29DaEI7O0FEbUJBO0VBQ0UseUJBeERjO0FDd0NoQjs7QURtQkE7RUFDRSxjQTNEYTtBQzJDZjs7QURtQkE7RUFDRSx5QkEvRGE7QUMrQ2Y7O0FEbUJBO0VBQ0UsY0FyRVU7QUNxRFo7O0FEbUJBO0VBQ0UseUJBbkVRO0FDbURWOztBRG1CQTtFQUNFLHlCQXRFYTtBQ3NEZjs7QURtQkE7RUFDRSxjQTFFYTtBQzBEZjs7QURtQkE7RUFDRSx5QkFoRmE7QUNnRWY7O0FEbUJBO0VBQ0UsY0FwRmE7QUNvRWY7O0FEbUJBO0VBQ0UsY0F6Rk07QUN5RVI7O0FEbUJBO0VBQ0UsY0F4Rks7QUN3RVA7O0FEbUJBO0VBQ0UseUJBNUZLO0FDNEVQOztBRG1CQTtFQUNFLGNBL0ZVO0FDK0VaOztBRG1CQTtFQUNFLHlCQW5HVTtBQ21GWjs7QUNoR0E7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLGNGRFU7RUVFVixxQkFBQTtFQUNBLGtCQUFBO0FEbUdGOztBQ2pHRTtFQUNFLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLHlCRmRJO0VFZUosV0FBQTtFQUNBLGlCQUFBO0FEbUdKIiwiZmlsZSI6InNyYy9hcHAvbWFuYWdlbWVudC9zaGFyZWQvY29tcG9uZW50cy91c2Vycy9tYW5hZ2UtdXNlci9lZGl0L2VkaXQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkd2hpdGU6ICNGRkZGRkY7XHJcbiRkYXJrZXI6ICMxQzI0Mjg7XHJcbiRkYXJrOiAjMzc0NzRGO1xyXG4kZ3JheS1saWdodDogI0VCRjFGNDtcclxuJGdyYXktbWVkaXVtOiAjZTBlMGUwO1xyXG4kZ3JheS1kYXJrOiAjOEI5RUE3O1xyXG4kcHJpbWFyeS1jb2xvcjogI0ZGNDA4MTtcclxuJGFjY2VudC1jb2xvcjogIzIxOTZGMztcclxuJGFjY2VudC1jb2xvci0yOiAjMUFDNjczO1xyXG4kZXJyb3I6ICNGRjQxMDA7XHJcbiRidXJudC1zaWVubmE6ICNFRTdENUE7XHJcbiRzcGluZGxlOiAjQzhFNUVGO1xyXG4kZWFzdGVybi1ibHVlOiAjMTg5N0MzO1xyXG4kd2lsZC1zdHJhd2JlcnJ5OiAjRkY0MDgxO1xyXG4kd2FybjogI2Y0NDMzNjtcclxuJGRhcmstYmx1ZTogIzJhNjM3NztcclxuXHJcbi50ZXh0LWRhcmtlciB7XHJcbiAgY29sb3I6ICRkYXJrZXI7XHJcbn1cclxuXHJcbi5ia2ctZGFya2VyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya2VyO1xyXG59XHJcblxyXG4udGV4dC1kYXJrIHtcclxuICBjb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi5ia2ctZGFyayB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRhcms7XHJcbn1cclxuXHJcbi50ZXh0LWxpZ2h0ZXIge1xyXG4gIGNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLmJrZy1saWdodGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcclxufVxyXG5cclxuLnRleHQtbGlnaHQge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLWxpZ2h0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSB7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmJrZy13aGl0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1wcmltYXJ5IHtcclxuICBjb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbn1cclxuXHJcbi50ZXh0LWFjY2VudCB7XHJcbiAgY29sb3I6ICRhY2NlbnQtY29sb3I7XHJcbn1cclxuXHJcbi5ia2ctYWNjZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LWNvbG9yO1xyXG59XHJcblxyXG4udGV4dC1ncmF5LWRhcmsge1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG59XHJcblxyXG4uYmtnLXNwaW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzcGluZGxlO1xyXG59XHJcblxyXG4uYmtnLWVhc3Rlcm4tYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLnRleHQtZWFzdGVybi1ibHVlIHtcclxuICBjb2xvcjogJGVhc3Rlcm4tYmx1ZTtcclxufVxyXG5cclxuLmJrZy1idXJudC1zaWVubmEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWJ1cm50LXNpZW5uYSB7XHJcbiAgY29sb3I6ICRidXJudC1zaWVubmE7XHJcbn1cclxuXHJcbi50ZXh0LWVycm9yIHtcclxuICBjb2xvcjogJGVycm9yO1xyXG59XHJcblxyXG4udGV4dC13YXJuIHtcclxuICBjb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi5ia2ctd2FybiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbn1cclxuXHJcbi50ZXh0LWRhcmstYmx1ZSB7XHJcbiAgY29sb3I6ICRkYXJrLWJsdWU7XHJcbn1cclxuXHJcbi5ia2ctZGFyay1ibHVlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ibHVlO1xyXG59XHJcbiIsIi50ZXh0LWRhcmtlciB7XG4gIGNvbG9yOiAjMUMyNDI4O1xufVxuXG4uYmtnLWRhcmtlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQzI0Mjg7XG59XG5cbi50ZXh0LWRhcmsge1xuICBjb2xvcjogIzM3NDc0Rjtcbn1cblxuLmJrZy1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDc0Rjtcbn1cblxuLnRleHQtbGlnaHRlciB7XG4gIGNvbG9yOiAjRUJGMUY0O1xufVxuXG4uYmtnLWxpZ2h0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJGMUY0O1xufVxuXG4udGV4dC1saWdodCB7XG4gIGNvbG9yOiAjOEI5RUE3O1xufVxuXG4uYmtnLWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhCOUVBNztcbn1cblxuLnRleHQtd2hpdGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cblxuLmJrZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICBjb2xvcjogI0ZGNDA4MTtcbn1cblxuLmJrZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNDA4MTtcbn1cblxuLnRleHQtYWNjZW50IHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbi5ia2ctYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuLnRleHQtZ3JheS1kYXJrIHtcbiAgY29sb3I6ICM4QjlFQTc7XG59XG5cbi5ia2ctc3BpbmRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOEU1RUY7XG59XG5cbi5ia2ctZWFzdGVybi1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4OTdDMztcbn1cblxuLnRleHQtZWFzdGVybi1ibHVlIHtcbiAgY29sb3I6ICMxODk3QzM7XG59XG5cbi5ia2ctYnVybnQtc2llbm5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFN0Q1QTtcbn1cblxuLnRleHQtYnVybnQtc2llbm5hIHtcbiAgY29sb3I6ICNFRTdENUE7XG59XG5cbi50ZXh0LWVycm9yIHtcbiAgY29sb3I6ICNGRjQxMDA7XG59XG5cbi50ZXh0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLmJrZy13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLnRleHQtZGFyay1ibHVlIHtcbiAgY29sb3I6ICMyYTYzNzc7XG59XG5cbi5ia2ctZGFyay1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJhNjM3Nztcbn1cblxuaDQge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICM4QjlFQTc7XG4gIG1hcmdpbi1ib3R0b206IDEuMXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuaDQgc3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG59IiwiQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2Nzcy9tYW5hZ2VtZW50L19jb2xvci1zY2hlbWUuc2Nzcyc7XHJcblxyXG5oNCB7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDEuMjVyZW07XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGNvbG9yOiAkZ3JheS1kYXJrO1xyXG4gIG1hcmdpbi1ib3R0b206IDEuMXJlbTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIHNwYW4ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgIHotaW5kZXg6IDEwO1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","import { Component } from '@angular/core';\r\nimport { UserFormService } from './user-form.service';\r\nimport { UserLoaderService } from './user-loader.service';\r\nimport { I18nComponent } from '../../../../../../i18n/containers/i18n.component';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserService } from '../../../../../core/services/users/user.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\nimport * as fromI18n from '../../../../../../i18n/reducers';\r\nimport { FormControl } from '@angular/forms';\r\nimport { CustomerErrorCodes } from '../../../../../core/constants/error-codes.constants';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MatSnackBar } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-edit',\r\n templateUrl: './edit.component.html',\r\n styleUrls: ['./edit.component.scss'],\r\n providers: [\r\n UserFormService,\r\n UserLoaderService\r\n ]\r\n})\r\nexport class EditComponent extends I18nComponent {\r\n public id: any = null;\r\n public notFound: boolean = false;\r\n public loading: boolean = false;\r\n public success: boolean = false;\r\n public hide: boolean = true;\r\n\r\n public validators: string[] = ['password', 'retypePassword'];\r\n\r\n constructor(\r\n readonly store: Store,\r\n readonly translate: TranslateService,\r\n private userFormService: UserFormService,\r\n private userLoaderService: UserLoaderService,\r\n private userService: UserService,\r\n private matSnackBack:MatSnackBar,\r\n private route: ActivatedRoute,\r\n private titleService: Title\r\n ) {\r\n super(store, translate);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n if (this.route.snapshot.paramMap.get(\"id\") === null) {\r\n this.translate.get(\"edit.titleCreate\").subscribe(x => this.titleService.setTitle(x));\r\n\r\n return;\r\n }\r\n\r\n this.userFormService.clearValidators(this.validators);\r\n\r\n this.translate.get(\"edit.titleUpdate\").subscribe(x => this.titleService.setTitle(x));\r\n\r\n this.id = this.route.snapshot.paramMap.get(\"id\");\r\n\r\n this.userService.getUser(this.id).subscribe(x => {\r\n if (x === null || x.id === null) {\r\n this.notFound = true;\r\n\r\n return;\r\n }\r\n\r\n this.userLoaderService.loadUser(x);\r\n });\r\n\r\n }\r\n\r\n get form() {\r\n return this.userFormService.form;\r\n }\r\n\r\n get customerCode() {\r\n return this.userFormService.getFormControl('customerCode') as FormControl;\r\n }\r\n\r\n get email() {\r\n return this.userFormService.getFormControl('email') as FormControl;\r\n }\r\n\r\n get phone() {\r\n return this.userFormService.getFormControl('phone') as FormControl;\r\n }\r\n\r\n get isActivated() {\r\n return this.userFormService.getFormControl('isActivated') as FormControl;\r\n }\r\n\r\n get isLicenseAccepted() {\r\n return this.userFormService.getFormControl('isLicenseAccepted') as FormControl;\r\n }\r\n\r\n get accountExpiresOnUtc() {\r\n return this.userFormService.getFormControl('accountExpiresOnUtc') as FormControl;\r\n }\r\n\r\n get webApiKey() {\r\n return this.userFormService.getFormControl('webApiKey') as FormControl;\r\n }\r\n\r\n get userName() {\r\n return this.userFormService.getFormControl('userName') as FormControl;\r\n }\r\n\r\n get firstName() {\r\n return this.userFormService.getFormControl('firstName') as FormControl;\r\n }\r\n\r\n get lastName() {\r\n return this.userFormService.getFormControl('lastName') as FormControl;\r\n }\r\n\r\n get password() {\r\n return this.userFormService.getFormControl('password') as FormControl;\r\n }\r\n\r\n get retypePassword() {\r\n return this.userFormService.getFormControl('retypePassword') as FormControl;\r\n }\r\n\r\n get customerCodeDillo() {\r\n return this.userFormService.getFormControl('customerCodeDillo') as FormControl;\r\n }\r\n\r\n get webApiKeyDillo() {\r\n return this.userFormService.getFormControl('webApiKeyDillo') as FormControl;\r\n }\r\n\r\n get dilloDid() {\r\n return this.userFormService.getFormControl(\"dilloDid\");\r\n }\r\n\r\n submit() {\r\n this.loading = true;\r\n\r\n const user = this.userFormService.createUserDto(this.id);\r\n\r\n if (this.id === null) {\r\n //create\r\n this.userService.create(user).subscribe(x => {\r\n this.loading = false;\r\n this.success = x.entity;\r\n\r\n if (x.entity == false && x.errorCode != null) {\r\n this.displayErrorMessage(x.errorCode);\r\n }\r\n }, error => {\r\n console.log('error = ', error);\r\n });\r\n }\r\n else {\r\n //update\r\n this.userService.update(user).subscribe(x => {\r\n this.loading = false;\r\n this.success = x.entity;\r\n\r\n if (x.entity == false && x.errorCode != null) {\r\n this.displayErrorMessage(x.errorCode);\r\n }\r\n\r\n }, error => {\r\n console.log('error = ', error);\r\n });\r\n }\r\n }\r\n\r\n displayErrorMessage(errorCode: string) {\r\n this.translate.get(`edit.${errorCode}`).subscribe(x => {\r\n if (x != null) {\r\n this.openSnackBar(x);\r\n }\r\n else {\r\n this.openSnackBar(\"An error occurred. Please refresh and try again.\");\r\n }\r\n });\r\n }\r\n\r\n openSnackBar(message) {\r\n this.matSnackBack.open(message, \"Ok\", {\r\n duration: 5000\r\n });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from \"@angular/forms\";\r\nimport { IUser } from \"../../../../../core/interfaces/users/user\";\r\nimport { MustMatch } from \"../../../../../core/functions/validator-function\";\r\nimport * as uuid from 'uuid';\r\n\r\n@Injectable()\r\nexport class UserFormService {\r\n public form: FormGroup;\r\n\r\n public defaultValidity = new Date(2099, 11, 31);\r\n\r\n constructor(private fb: FormBuilder) {\r\n\r\n this.form = this.fb.group({\r\n customerCode: uuid.v4(),\r\n email: [null, [\r\n Validators.required,\r\n Validators.pattern(\"^([a-zA-Z0-9_\\\\-\\\\.]+)@([a-zA-Z0-9_\\\\-\\\\.]+)\\\\.([a-zA-Z]{2,5})$\")\r\n ]],\r\n phone: [null, [\r\n Validators.required,\r\n Validators.pattern('^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$')\r\n ]],\r\n isActivated: true,\r\n isLicenseAccepted: false,\r\n accountExpiresOnUtc: [this.defaultValidity, Validators.required],\r\n webApiKey: this.generateHexString(64),\r\n firstName: [null, Validators.required],\r\n lastName: [null, Validators.required],\r\n dilloDid: [null],\r\n password: [null, [\r\n Validators.required,\r\n Validators.pattern(\"^(?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\\\\s).{6,}$\")\r\n ]],\r\n retypePassword: [\"\", Validators.required],\r\n customerCodeDillo: [null, Validators.required],\r\n webApiKeyDillo: [null, Validators.required]\r\n },\r\n {\r\n validator: MustMatch('password', 'retypePassword')\r\n }\r\n );\r\n }\r\n\r\n generateHexString(length) {\r\n let result = '';\r\n const characters = 'ABCDEF0123456789';\r\n const charactersLength = characters.length;\r\n for (let i = 0; i < length; i++) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n }\r\n return result;\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n\r\n clearValidators(controlNames: string[]) {\r\n controlNames.map(x => {\r\n const control = this.form.get(x) as FormControl;\r\n control.setValidators(null);\r\n if (x === \"retypePassword\") {\r\n this.form.validator = null;\r\n }\r\n })\r\n }\r\n\r\n createUserDto(id): IUser {\r\n const data = this.form.value;\r\n\r\n const user: IUser = {\r\n id: id,\r\n customerCode: data.customerCode,\r\n email: data.email,\r\n phone: data.phone,\r\n isActivated: data.isActivated,\r\n isLicenseAccepted: data.isLicenseAccepted,\r\n accountExpiresOnUtc: data.accountExpiresOnUtc,\r\n webApiKey: data.webApiKey,\r\n userName: data.email,\r\n firstName: data.firstName,\r\n lastName: data.lastName,\r\n password: data.password,\r\n customerCodeDillo: data.customerCodeDillo,\r\n webApiKeyDillo: data.webApiKeyDillo,\r\n inboundDilloNumber: data.dilloDid\r\n };\r\n\r\n return user;\r\n }\r\n}\r\n","import { UserFormService } from \"./user-form.service\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { IUser } from '../../../../../core/interfaces/users/user';\r\n\r\n@Injectable()\r\nexport class UserLoaderService {\r\n constructor(private userFormService: UserFormService) { }\r\n\r\n loadUser(user: IUser) {\r\n this.userFormService.form.patchValue({\r\n id: user.id,\r\n customerCode: user.customerCode,\r\n email: user.email,\r\n phone: user.phone,\r\n isActivated: user.isActivated,\r\n isLicenseAccepted: user.isLicenseAccepted,\r\n accountExpiresOnUtc: user.accountExpiresOnUtc,\r\n webApiKey: user.webApiKey,\r\n userName: user.userName,\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n password: user.password,\r\n customerCodeDillo: user.customerCodeDillo,\r\n webApiKeyDillo: user.webApiKeyDillo,\r\n dilloDid:user.inboundDilloNumber\r\n });\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvdXNlcnMvbWFuYWdlLXVzZXIvbGlzdC9saXN0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component } from '@angular/core';\r\nimport { I18nComponent } from '../../../../../../i18n/containers/i18n.component';\r\nimport { UserDataSource } from '../../../../../core/datasource/users/user.datasource';\r\nimport { IUser } from '../../../../../core/interfaces/users/user';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { UserService } from '../../../../../core/services/users/user.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\nimport * as fromI18n from '../../../../../../i18n/reducers';\r\nimport { IFilterGridData } from '../../../../../core/interfaces/common/filter-grid-data';\r\nimport { FilterGridFormService } from '../../../filter-grid/filter-grid-form.service';\r\n\r\n@Component({\r\n selector: 'app-list',\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss'],\r\n providers: [\r\n FilterGridFormService\r\n ]\r\n})\r\nexport class ListComponent extends I18nComponent {\r\n public dataSource: UserDataSource | null;\r\n public users: IUser[] = [];\r\n public userSbj: BehaviorSubject = new BehaviorSubject([]);\r\n public displayedColumns: string[] = [\"Email\", \"FirstName\", \"LastName\", \"Actions\"];\r\n\r\n public loading: boolean = false;\r\n\r\n public page: number = 1;\r\n public pageSize: number = 20;\r\n public pageSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n public filterArray: IFilterGridData[] = [];\r\n public sortField: string = null;\r\n public sortDirection: string = null;\r\n public totalItems: number;\r\n\r\n constructor(\r\n readonly store: Store,\r\n readonly translate: TranslateService,\r\n private userService: UserService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private titleService: Title,\r\n private filterGridFormService: FilterGridFormService\r\n ) {\r\n super(store, translate);\r\n\r\n //this.userService.getUsers().subscribe(x => this.userSbj.next((this.users = x)));\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.translate.get(\"list.title\").subscribe(x => this.titleService.setTitle(x));\r\n\r\n this.dataSource = new UserDataSource(this.userSbj);\r\n\r\n this.pageSubject.subscribe(p => {\r\n this.page = p;\r\n if (p == null) {\r\n return;\r\n }\r\n\r\n this.loadUsers();\r\n });\r\n\r\n this.loadUsers();\r\n }\r\n\r\n loadUsers() {\r\n this.loading = true;\r\n this.page = this.page != null ? this.page : 1;\r\n\r\n const request = this.filterGridFormService.createRequest(true, null, this.filterArray, null, false,\r\n this.page, this.pageSize, this.sortDirection, this.sortField);\r\n\r\n this.userService.getUsersWithRequest(request).subscribe({\r\n next: data => {\r\n this.userSbj.next(data.data);\r\n this.totalItems = data.total;\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n\r\n handlePage(e) {\r\n this.pageSubject.next(e.pageIndex + 1);\r\n }\r\n\r\n addFilterComponent(event: IFilterGridData) {\r\n if (event.value == null) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName != event.propertyName);\r\n }\r\n else {\r\n const existingFilter = this.filterArray.filter(x => x.propertyName == event.propertyName);\r\n\r\n if (existingFilter.length > 0) {\r\n this.filterArray = this.filterArray.filter(x => x.propertyName != event.propertyName);\r\n }\r\n\r\n this.filterArray.push(event);\r\n\r\n }\r\n\r\n this.page = 1;\r\n this.loadUsers();\r\n }\r\n\r\n sortData(event) {\r\n this.sortDirection = event.direction;\r\n this.sortField = event.active;\r\n\r\n this.page = 1;\r\n\r\n //call again the load method;\r\n this.loadUsers();\r\n }\r\n\r\n edit(id) {\r\n this.router.navigate([`./edit/${id}`], { relativeTo: this.route })\r\n }\r\n\r\n settings(customerCode) {\r\n this.router.navigate([`./settings/${customerCode}`], { relativeTo: this.route })\r\n }\r\n\r\n delete(element: IUser) {\r\n this.userService.delete(element).subscribe(x => {\r\n if (x == true) {\r\n const arr = this.userSbj.getValue();\r\n\r\n arr.forEach((item, index) => {\r\n if (item === element) { arr.splice(index, 1); }\r\n });\r\n\r\n this.userSbj.next((this.users = arr));\r\n }\r\n }, error => {\r\n //Todo: display error somewhere on the interface\r\n console.log('delete error = ', error);\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { IOrderStep } from '../../../../core/interfaces/customer/order-step';\r\nimport { ISettings } from '../../../../core/interfaces/customer/settings';\r\n\r\n@Injectable()\r\nexport class SettingsFormService {\r\n public form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.fb.group({\r\n maxOperators: [0, [\r\n Validators.required,\r\n Validators.min(1)\r\n ]],\r\n maxOffices: [0, [\r\n Validators.required,\r\n Validators.min(1)\r\n ]]\r\n });\r\n }\r\n\r\n getFormControl(property: string): FormControl {\r\n return this.form.get(property) as FormControl;\r\n }\r\n\r\n createSettingsDto(settings: ISettings, customerCode: string): ISettings {\r\n const data = this.form.value;\r\n\r\n if (settings == null) {\r\n settings = {\r\n customerCode: customerCode,\r\n slotDuration: 0,\r\n timeSystem: 0,\r\n enableAllOperatorsAvailability: false,\r\n allOperatorsAvailabilityName: null,\r\n enableHelp: false,\r\n helpName: null,\r\n helpMessage: null,\r\n urlSuffix: null,\r\n logo: null,\r\n logoMobilePosition: null,\r\n logoDesktopPosition: null,\r\n isDefaultBackgroundColor: true,\r\n backgroundColor: null,\r\n isDefaultTextColor: true,\r\n textColor: null,\r\n languageCode: null\r\n };\r\n }\r\n\r\n settings.maxOperators = data.maxOperators;\r\n settings.maxOffices = data.maxOffices;\r\n\r\n return settings;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ISettings } from '../../../../core/interfaces/customer/settings';\r\nimport { SettingsFormService } from './settings-form.service';\r\n\r\n@Injectable()\r\nexport class SettingsLoaderService {\r\n constructor(private settingsFormService: SettingsFormService) { }\r\n\r\n loadSettings(settings: ISettings) {\r\n if (settings != null) {\r\n this.settingsFormService.form.patchValue({\r\n maxOperators: settings.maxOperators,\r\n maxOffices: settings.maxOffices\r\n });\r\n }\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21hbmFnZW1lbnQvc2hhcmVkL2NvbXBvbmVudHMvdXNlcnMvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { I18nComponent } from '../../../../../i18n/containers/i18n.component';\r\nimport * as fromI18n from '../../../../../i18n/reducers';\r\nimport { ISettings } from '../../../../core/interfaces/customer/settings';\r\nimport { SettingsService } from '../../../../core/services/customer/settings.service';\r\nimport { UserService } from '../../../../core/services/users/user.service';\r\nimport { SettingsFormService } from './settings-form.service';\r\nimport { SettingsLoaderService } from './settings-loader.service';\r\n\r\n@Component({\r\n selector: 'app-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.scss'],\r\n providers: [\r\n SettingsService,\r\n UserService,\r\n SettingsLoaderService,\r\n SettingsFormService\r\n ]\r\n})\r\nexport class SettingsComponent extends I18nComponent {\r\n public customerCode: string = null;\r\n public settings: ISettings = null;\r\n\r\n public notFound: boolean = false;\r\n public loading: boolean = false;\r\n public success: boolean = false;\r\n\r\n constructor(\r\n readonly store: Store,\r\n readonly translate: TranslateService,\r\n private settingsFormService: SettingsFormService,\r\n private settingsLoaderService: SettingsLoaderService,\r\n private settingsService: SettingsService,\r\n private userService: UserService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private titleService: Title,\r\n ) {\r\n super(store, translate);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.translate.get(\"edit.title\").subscribe(x => this.titleService.setTitle(x));\r\n\r\n if (this.activatedRoute.snapshot.paramMap.get(\"customerCode\") === null) {\r\n this.notFound = true;\r\n\r\n return;\r\n }\r\n\r\n this.customerCode = this.activatedRoute.snapshot.paramMap.get(\"customerCode\");\r\n\r\n this.settingsService.getSettingsByCustomerCode(this.customerCode).subscribe(x => {\r\n if (x === null || x.customerCode === null) {\r\n this.userService.getUserByCustomerCode(this.customerCode).subscribe(y => {\r\n if (y === null || y.id === null) {\r\n this.notFound = true;\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.settings = x;\r\n this.settingsLoaderService.loadSettings(x);\r\n });\r\n }\r\n\r\n get form() {\r\n return this.settingsFormService.form;\r\n }\r\n\r\n get maxOperators() {\r\n return this.settingsFormService.getFormControl('maxOperators');\r\n }\r\n\r\n get maxOffices() {\r\n return this.settingsFormService.getFormControl('maxOffices');\r\n }\r\n\r\n submit() {\r\n this.loading = true;\r\n\r\n const settings = this.settingsFormService.createSettingsDto(this.settings, this.customerCode);\r\n\r\n this.settingsService.updateSettings(settings).subscribe(x => {\r\n this.loading = false;\r\n this.success = x;\r\n }, error => {\r\n console.log('error = ', error);\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, registerLocaleData } from '@angular/common';\r\nimport { SidenavModulesComponent } from './components/sidenav-modules/sidenav-modules.component';\r\nimport { SidenavMenuComponent } from './components/sidenav-menu/sidenav-menu.component';\r\nimport { LayoutComponent } from './components/layout/layout.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ListComponent } from './components/users/manage-user/list/list.component';\r\nimport { EditComponent } from './components/users/manage-user/edit/edit.component';\r\n\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { DateAdapter, MatListModule, MatSelectModule, MatSortModule } from '@angular/material';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatNativeDateModule, MatStepperModule } from '@angular/material';\r\nimport { MatDatepickerModule, } from '@angular/material/datepicker';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { KeywordsComponent } from './components/keywords/keywords.component';\r\nimport { InfoComponent } from './components/dialogs/info/info.component';\r\nimport { ConfirmationComponent } from './components/dialogs/confirmation/confirmation.component';\r\nimport { Translate } from '../core/functions/translate-function';\r\nimport { SingleSelectionComponent } from './components/selections/single-selection/single-selection.component';\r\nimport { MultipleSelectionComponent } from './components/selections/multiple-selection/multiple-selection.component';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { ColorPickerSketchComponent } from './components/color-pickers/color-picker-sketch/color-picker-sketch.component';\r\nimport { ColorSketchModule } from 'ngx-color/sketch';\r\nimport { DatePickerComponent } from './components/calendars/date-picker/date-picker.component';\r\nimport { TimePickerComponent } from './components/time-picker/time-picker.component';\r\nimport { NgxMaterialTimepickerModule } from 'ngx-material-timepicker';\r\nimport { CalendarModule, DateAdapter as CalendarDateAdapter } from 'angular-calendar';\r\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\r\nimport { SchedulerComponent } from './components/calendars/scheduler/scheduler.component';\r\nimport { DayViewSchedulerComponent } from './components/calendars/scheduler/day-view-scheduler/day-view-scheduler.component';\r\nimport { CalendarHeaderComponent } from './components/calendars/scheduler/calendar-header/calendar-header.component';\r\nimport { DatePickerIconComponent } from './components/calendars/date-picker-icon/date-picker-icon.component';\r\nimport { CustomDateAdapter } from './components/custom-date-adapter';\r\nimport { select, Store } from '@ngrx/store';\r\nimport * as fromI18n from '../../i18n/reducers';\r\nimport localeRo from '@angular/common/locales/ro';\r\nimport localeIt from '@angular/common/locales/it';\r\nimport { AppointmentComponent as DialogAppointmentComponent} from './components/dialogs/appointment/appointment.component';\r\nimport { AppointmentComponent } from './components/appointment/appointment.component';\r\nimport { MultipleSelectionAllCheckboxComponent } from './components/selections/multiple-selection-all-checkbox/multiple-selection-all-checkbox.component';\r\nimport { FilterGridComponent } from './components/filter-grid/filter-grid.component';\r\nimport { MatPaginatorI18n } from './components/paginator-intl';\r\nimport { ClientComponent as DialogClientComponent } from './components/dialogs/client/client.component';\r\nimport { ClientComponent } from './components/client/client.component';\r\nimport { SingleSelectionWithImageComponent } from './components/selections/single-selection-with-image/single-selection-with-image.component';\r\nimport { CalendarWithTimeSlotsComponent as DialogCalendarWithTimeSlotsComponent } from './components/dialogs/calendar-with-time-slots/calendar-with-time-slots.component';\r\nimport { CalendarWithTimeSlotsComponent } from './components/calendars/calendar-with-time-slots/calendar-with-time-slots.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { SettingsComponent } from './components/users/settings/settings.component';\r\nimport { TransactionListComponent } from './components/credit/transaction-list/transaction-list.component';\r\nimport { AppointmentNotificationComponent } from './components/appointment-notification/appointment-notification.component';\r\nimport { HtmlInfoComponent } from './components/dialogs/html-info/html-info.component';\r\nimport { ClientListComponent } from './components/client/client-list/client-list.component';\r\nimport { ClientEditComponent } from './components/client/client-edit/client-edit.component';\r\nimport { AppointmentListComponent } from './components/appointment/appointment-list/appointment-list.component';\r\nimport { AppointmentEditComponent } from './components/appointment/appointment-edit/appointment-edit.component';\r\nimport { NotificationSettingsComponent } from './components/notification-settings/notification-settings.component';\r\nimport { ExceptionDaysComponent } from './components/exception-days/exception-days.component';\r\nimport { ExceptionDaysCalendarComponent } from './components/dialogs/exception-days-calendar/exception-days-calendar.component';\r\nimport { ExceptionsByDayComponent } from './components/dialogs/exception-days-calendar/exceptions-by-day/exceptions-by-day.component';\r\nimport { ExceptionDaysComponent as DialogExceptionDaysComponent } from './components/dialogs/exception-days/exception-days.component';\r\nimport { TimeSlotsComponent } from './components/time-slots/time-slots.component';\r\nimport { TimeSlotsCalendarComponent } from './components/calendars/time-slots-calendar/time-slots-calendar.component';\r\nimport { CalendarComponent } from './components/calendars/calendar/calendar.component';\r\nimport { CalendarComponent as DialogCalendarComponent } from './components/dialogs/calendar/calendar.component';\r\nimport { CustomFieldsComponent } from './components/dialogs/custom-fields/custom-fields.component';\r\nimport { AppointmentDetailsComponent } from './components/appointment/appointment-details/appointment-details.component';\r\nimport { TimePickerComponent as BootstrapTimePickerComponent } from './components/bootstrap/time-picker/time-picker.component';\r\nimport { TimepickerActions, TimepickerConfig, TimepickerModule } from 'ngx-bootstrap/timepicker';\r\nimport { WorkingHoursComponent } from './components/office/working-hours/working-hours.component';\r\nimport { OperatorsWorkingHoursComponent } from './components/office/operators-working-hours/operators-working-hours.component';\r\nimport { ServicesWorkingHoursComponent } from './components/office/operators-working-hours/services-working-hours/services-working-hours.component';\r\nimport { WeekdayWorkingHoursComponent } from './components/office/working-hours/weekday-working-hours/weekday-working-hours.component';\r\nimport { ListInfoComponent } from './components/dialogs/list-info/list-info.component';\r\nimport { NgxColorsModule } from 'ngx-colors';\r\nimport { ColorsPickerComponent } from './components/color-pickers/colors-picker/colors-picker.component';\nimport { SingleSelectionCountryComponent } from './components/selections/single-selection-country/single-selection-country.component';\r\n\r\n//export function createTranslateLoader(http: HttpClient) {\r\n// return new TranslateHttpLoader(http, './assets/i18n/management/shared/', '.json');\r\n//}\r\n\r\n//export function createTranslateLoader(http: HttpClient) {\r\n// return new MultiTranslateHttpLoader(http, [\r\n// { prefix: \"./assets/i18n/management/shared/\", suffix: \".json\" }\r\n// ]);\r\n//}\r\n\r\nexport function createTranslateLoader(http: HttpClient) {\r\n return Translate(http, [\r\n \"/assets/i18n/management/shared/\"\r\n ]);\r\n}\r\n\r\nregisterLocaleData(localeRo);\r\nregisterLocaleData(localeIt);\r\n\r\n@NgModule({\r\n declarations: [\r\n SidenavModulesComponent,\r\n SidenavMenuComponent,\r\n LayoutComponent,\r\n ListComponent,\r\n EditComponent,\r\n KeywordsComponent,\r\n InfoComponent,\r\n ConfirmationComponent,\r\n SingleSelectionComponent,\r\n MultipleSelectionComponent,\r\n ColorPickerSketchComponent,\r\n DatePickerComponent,\r\n TimePickerComponent,\r\n SchedulerComponent,\r\n DayViewSchedulerComponent,\r\n CalendarHeaderComponent,\r\n DatePickerIconComponent,\r\n DialogAppointmentComponent,\r\n AppointmentComponent,\r\n MultipleSelectionAllCheckboxComponent,\r\n FilterGridComponent,\r\n DialogClientComponent,\r\n ClientComponent,\r\n SingleSelectionWithImageComponent,\r\n DialogCalendarWithTimeSlotsComponent,\r\n CalendarWithTimeSlotsComponent,\r\n SettingsComponent,\r\n TransactionListComponent,\r\n AppointmentNotificationComponent,\r\n HtmlInfoComponent,\r\n ClientListComponent,\r\n ClientEditComponent,\r\n AppointmentListComponent,\r\n AppointmentEditComponent,\r\n NotificationSettingsComponent,\r\n ExceptionDaysComponent,\r\n ExceptionDaysCalendarComponent,\r\n ExceptionsByDayComponent,\r\n DialogExceptionDaysComponent,\r\n TimeSlotsComponent,\r\n TimeSlotsCalendarComponent,\r\n CalendarComponent,\r\n DialogCalendarComponent,\r\n CustomFieldsComponent,\r\n AppointmentDetailsComponent,\r\n BootstrapTimePickerComponent,\r\n WorkingHoursComponent,\r\n OperatorsWorkingHoursComponent,\r\n ServicesWorkingHoursComponent,\r\n WeekdayWorkingHoursComponent,\r\n ListInfoComponent,\r\n ColorsPickerComponent,\r\n SingleSelectionCountryComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n MatGridListModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatCardModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatSelectModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n DragDropModule,\r\n MatStepperModule,\r\n MatTooltipModule,\r\n MatProgressSpinnerModule,\r\n MatDialogModule,\r\n MatAutocompleteModule,\r\n MatRadioModule,\r\n MatTabsModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n NgxMatSelectSearchModule,\r\n ColorSketchModule,\r\n NgxMaterialTimepickerModule,\r\n FlexLayoutModule,\r\n MatListModule,\r\n NgxColorsModule,\r\n TimepickerModule.forRoot(),\r\n TranslateModule.forChild({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (createTranslateLoader),\r\n deps: [HttpClient]\r\n },\r\n isolate: true\r\n }),\r\n CalendarModule.forRoot({\r\n provide: CalendarDateAdapter,\r\n useFactory: adapterFactory,\r\n }),\r\n ],\r\n exports: [\r\n SidenavModulesComponent,\r\n SidenavMenuComponent,\r\n LayoutComponent,\r\n KeywordsComponent,\r\n SingleSelectionComponent,\r\n MultipleSelectionComponent,\r\n ColorPickerSketchComponent,\r\n DatePickerComponent,\r\n TimePickerComponent,\r\n SchedulerComponent,\r\n DayViewSchedulerComponent,\r\n CalendarHeaderComponent,\r\n DatePickerIconComponent,\r\n AppointmentComponent,\r\n MultipleSelectionAllCheckboxComponent,\r\n FilterGridComponent,\r\n ClientComponent,\r\n SingleSelectionWithImageComponent,\r\n CalendarWithTimeSlotsComponent,\r\n NotificationSettingsComponent,\r\n ExceptionDaysComponent,\r\n ExceptionsByDayComponent,\r\n TimeSlotsComponent,\r\n TimeSlotsCalendarComponent,\r\n CalendarComponent,\r\n BootstrapTimePickerComponent,\r\n WorkingHoursComponent,\r\n OperatorsWorkingHoursComponent,\r\n ServicesWorkingHoursComponent,\r\n ColorsPickerComponent,\r\n SingleSelectionCountryComponent\r\n ],\r\n entryComponents: [\r\n InfoComponent,\r\n ConfirmationComponent,\r\n DialogAppointmentComponent,\r\n DialogClientComponent,\r\n DialogCalendarWithTimeSlotsComponent,\r\n HtmlInfoComponent,\r\n ExceptionDaysCalendarComponent,\r\n DialogExceptionDaysComponent,\r\n DialogCalendarComponent,\r\n CustomFieldsComponent,\r\n AppointmentDetailsComponent,\r\n ListInfoComponent\r\n ],\r\n providers: [\r\n { provide: DateAdapter, useClass: CustomDateAdapter },\r\n { provide: MatPaginatorIntl, useClass: MatPaginatorI18n },\r\n TimepickerConfig,\r\n TimepickerActions\r\n ]\r\n})\r\n\r\nexport class SharedModule {\r\n constructor(private readonly store: Store, private dateAdapter: DateAdapter) {\r\n this.store.pipe(select(fromI18n.getCurrentLanguage)).subscribe(x => {\r\n this.dateAdapter.setLocale(x);\r\n });\r\n }\r\n}\r\n","import * as fromRouter from '@ngrx/router-store';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { ActionReducerMap, Action, MetaReducer, ActionReducer } from '@ngrx/store';\r\nimport { localStorageSync } from 'ngrx-store-localstorage';\r\n\r\nexport interface State {\r\n router: fromRouter.RouterReducerState;\r\n}\r\n\r\nexport const ROOT_REDUCERS = new InjectionToken<\r\n ActionReducerMap\r\n>('Root reducers token', {\r\n factory: () => ({\r\n router: fromRouter.routerReducer\r\n })\r\n});\r\n\r\nexport function localStorageSyncReducer(reducer: ActionReducer): ActionReducer {\r\n return localStorageSync({ keys: ['i18n'], rehydrate: true })(reducer);\r\n}\r\n\r\nexport const metaReducers: Array> = [localStorageSyncReducer];\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: true\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"sourceRoot":"webpack:///"}