{"version":3,"sources":["webpack:///./node_modules/core-js/es7/reflect.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_array-from-iterable.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_metadata.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/es7.reflect.define-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.metadata.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/ol/ol.css?2db0","webpack:///./node_modules/zone.js/dist/zone.js","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app-error.handler.ts","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/assets/images/booking-icon.png","webpack:///./src/app/assets/images/demo/banner1.png","webpack:///./src/app/assets/images/demo/banner2.png","webpack:///./src/app/assets/images/demo/banner3.png","webpack:///./src/app/assets/images/demo/banner4.png","webpack:///./src/app/assets/images/home1.jpg","webpack:///./src/app/assets/images/info.png","webpack:///./src/app/assets/images/pin.png","webpack:///./src/app/assets/images/wheelchair1.jpg","webpack:///./src/app/assets/scripts/alertify.js","webpack:///./src/app/components/app.component.css","webpack:///./src/app/components/app.component.html","webpack:///./src/app/components/app.component.ts","webpack:///./src/app/components/application-setting/application-setting-editor.component.css","webpack:///./src/app/components/application-setting/application-setting-editor.component.html","webpack:///./src/app/components/application-setting/application-setting-editor.component.ts","webpack:///./src/app/components/application-setting/application-settings-management.component.css","webpack:///./src/app/components/application-setting/application-settings-management.component.html","webpack:///./src/app/components/application-setting/application-settings-management.component.ts","webpack:///./src/app/components/attendance-signin/attendance-signin.component.css","webpack:///./src/app/components/attendance-signin/attendance-signin.component.html","webpack:///./src/app/components/attendance-signin/attendance-signin.component.ts","webpack:///./src/app/components/audit/auth-log/auth-logs-management.component.css","webpack:///./src/app/components/audit/auth-log/auth-logs-management.component.html","webpack:///./src/app/components/audit/auth-log/auth-logs-management.component.ts","webpack:///./src/app/components/audit/data-log/data-log-viewer.component.css","webpack:///./src/app/components/audit/data-log/data-log-viewer.component.html","webpack:///./src/app/components/audit/data-log/data-log-viewer.component.ts","webpack:///./src/app/components/audit/data-log/data-logs-management.component.css","webpack:///./src/app/components/audit/data-log/data-logs-management.component.html","webpack:///./src/app/components/audit/data-log/data-logs-management.component.ts","webpack:///./src/app/components/audit/device-report/device-reports-management.component.css","webpack:///./src/app/components/audit/device-report/device-reports-management.component.html","webpack:///./src/app/components/audit/device-report/device-reports-management.component.ts","webpack:///./src/app/components/audit/device-status-report - Copy/device-status-reports-management.component.css","webpack:///./src/app/components/audit/device-status-report - Copy/device-status-reports-management.component.html","webpack:///./src/app/components/audit/device-status-report - Copy/device-status-reports-management.component.ts","webpack:///./src/app/components/audit/external-login-log/external-login-logs-management.component.css","webpack:///./src/app/components/audit/external-login-log/external-login-logs-management.component.html","webpack:///./src/app/components/audit/external-login-log/external-login-logs-management.component.ts","webpack:///./src/app/components/audit/order-log/order-logs-management.component.css","webpack:///./src/app/components/audit/order-log/order-logs-management.component.html","webpack:///./src/app/components/audit/order-log/order-logs-management.component.ts","webpack:///./src/app/components/audit/publication-report/publication-reports-management.component.css","webpack:///./src/app/components/audit/publication-report/publication-reports-management.component.html","webpack:///./src/app/components/audit/publication-report/publication-reports-management.component.ts","webpack:///./src/app/components/audit/updowntime-log/updowntime-logs-management.component.css","webpack:///./src/app/components/audit/updowntime-log/updowntime-logs-management.component.html","webpack:///./src/app/components/audit/updowntime-log/updowntime-logs-management.component.ts","webpack:///./src/app/components/building/building-editor.component.css","webpack:///./src/app/components/building/building-editor.component.html","webpack:///./src/app/components/building/building-editor.component.ts","webpack:///./src/app/components/building/buildings-management.component.css","webpack:///./src/app/components/building/buildings-management.component.html","webpack:///./src/app/components/building/buildings-management.component.ts","webpack:///./src/app/components/calendar/booking-grid/booking-grid-editor.component.css","webpack:///./src/app/components/calendar/booking-grid/booking-grid-editor.component.html","webpack:///./src/app/components/calendar/booking-grid/booking-grid-editor.component.ts","webpack:///./src/app/components/calendar/booking-grid/booking-grid.component.css","webpack:///./src/app/components/calendar/booking-grid/booking-grid.component.html","webpack:///./src/app/components/calendar/booking-grid/booking-grid.component.ts","webpack:///./src/app/components/calendar/booking/booking-editor.component.css","webpack:///./src/app/components/calendar/booking/booking-editor.component.html","webpack:///./src/app/components/calendar/booking/booking-editor.component.ts","webpack:///./src/app/components/calendar/booking/booking.component.css","webpack:///./src/app/components/calendar/booking/booking.component.html","webpack:///./src/app/components/calendar/booking/booking.component.ts","webpack:///./src/app/components/calendar/calendar-booking-grid/calendar-booking-grid-editor.component.css","webpack:///./src/app/components/calendar/calendar-booking-grid/calendar-booking-grid-editor.component.html","webpack:///./src/app/components/calendar/calendar-booking-grid/calendar-booking-grid-editor.component.ts","webpack:///./src/app/components/calendar/calendar-booking-grid/calendar-booking-grid.component.html","webpack:///./src/app/components/calendar/calendar-booking-grid/calendar-booking-grid.component.ts","webpack:///./src/app/components/calendar/calendar-booking-grid/day-view-scheduler.component.html","webpack:///./src/app/components/calendar/calendar-booking-grid/day-view-scheduler.component.ts","webpack:///./src/app/components/calendar/calendar-header.component.ts","webpack:///./src/app/components/calendar/calendar.component.css","webpack:///./src/app/components/calendar/calendar.component.html","webpack:///./src/app/components/calendar/calendar.component.ts","webpack:///./src/app/components/calendar/colors.ts","webpack:///./src/app/components/calendar/landing-page/landing-page.component.css","webpack:///./src/app/components/calendar/landing-page/landing-page.component.html","webpack:///./src/app/components/calendar/landing-page/landing-page.component.ts","webpack:///./src/app/components/calendar/reservations/reservation-editor.component.css","webpack:///./src/app/components/calendar/reservations/reservation-editor.component.html","webpack:///./src/app/components/calendar/reservations/reservation-editor.component.ts","webpack:///./src/app/components/calendar/reservations/reservations.component.css","webpack:///./src/app/components/calendar/reservations/reservations.component.html","webpack:///./src/app/components/calendar/reservations/reservations.component.ts","webpack:///./src/app/components/common/ImageUploader/imageuploader.component.css","webpack:///./src/app/components/common/ImageUploader/imageuploader.component.html","webpack:///./src/app/components/common/ImageUploader/imageuploader.component.ts","webpack:///./src/app/components/common/asset-selector/asset-selector.component.css","webpack:///./src/app/components/common/asset-selector/asset-selector.component.html","webpack:///./src/app/components/common/asset-selector/asset-selector.component.ts","webpack:///./src/app/components/common/contact-group-selector/contact-group-selector.component.css","webpack:///./src/app/components/common/contact-group-selector/contact-group-selector.component.html","webpack:///./src/app/components/common/contact-group-selector/contact-group-selector.component.ts","webpack:///./src/app/components/common/fileuploader/fileuploader.component.css","webpack:///./src/app/components/common/fileuploader/fileuploader.component.html","webpack:///./src/app/components/common/fileuploader/fileuploader.component.ts","webpack:///./src/app/components/common/image-viewer/image-viewer.component.css","webpack:///./src/app/components/common/image-viewer/image-viewer.component.html","webpack:///./src/app/components/common/image-viewer/image-viewer.component.ts","webpack:///./src/app/components/common/user-selector/user-selector.component.css","webpack:///./src/app/components/common/user-selector/user-selector.component.html","webpack:///./src/app/components/common/user-selector/user-selector.component.ts","webpack:///./src/app/components/common/userphonebook-selector/userphonebook-selector.component.css","webpack:///./src/app/components/common/userphonebook-selector/userphonebook-selector.component.html","webpack:///./src/app/components/common/userphonebook-selector/userphonebook-selector.component.ts","webpack:///./src/app/components/controls/asset-model/asset-model-editor.component.css","webpack:///./src/app/components/controls/asset-model/asset-model-editor.component.html","webpack:///./src/app/components/controls/asset-model/asset-model-editor.component.ts","webpack:///./src/app/components/controls/asset-model/asset-models-management.component.css","webpack:///./src/app/components/controls/asset-model/asset-models-management.component.html","webpack:///./src/app/components/controls/asset-model/asset-models-management.component.ts","webpack:///./src/app/components/controls/asset-type/asset-type-editor.component.css","webpack:///./src/app/components/controls/asset-type/asset-type-editor.component.html","webpack:///./src/app/components/controls/asset-type/asset-type-editor.component.ts","webpack:///./src/app/components/controls/asset-type/asset-types-management.component.css","webpack:///./src/app/components/controls/asset-type/asset-types-management.component.html","webpack:///./src/app/components/controls/asset-type/asset-types-management.component.ts","webpack:///./src/app/components/controls/asset/asset-editor.component.css","webpack:///./src/app/components/controls/asset/asset-editor.component.html","webpack:///./src/app/components/controls/asset/asset-editor.component.ts","webpack:///./src/app/components/controls/asset/asset-label/asset-label.component.css","webpack:///./src/app/components/controls/asset/asset-label/asset-label.component.html","webpack:///./src/app/components/controls/asset/asset-label/asset-label.component.ts","webpack:///./src/app/components/controls/asset/assets-management.component.css","webpack:///./src/app/components/controls/asset/assets-management.component.html","webpack:///./src/app/components/controls/asset/assets-management.component.ts","webpack:///./src/app/components/controls/banner-demo.component.html","webpack:///./src/app/components/controls/banner-demo.component.ts","webpack:///./src/app/components/controls/channel-info/channel-info-editor.component.css","webpack:///./src/app/components/controls/channel-info/channel-info-editor.component.html","webpack:///./src/app/components/controls/channel-info/channel-info-editor.component.ts","webpack:///./src/app/components/controls/channel-info/channel-infos-management.component.css","webpack:///./src/app/components/controls/channel-info/channel-infos-management.component.html","webpack:///./src/app/components/controls/channel-info/channel-infos-management.component.ts","webpack:///./src/app/components/controls/contactgroup/contactgroup-editor.component.css","webpack:///./src/app/components/controls/contactgroup/contactgroup-editor.component.html","webpack:///./src/app/components/controls/contactgroup/contactgroup-editor.component.ts","webpack:///./src/app/components/controls/contactgroup/contactgroups-management.component.css","webpack:///./src/app/components/controls/contactgroup/contactgroups-management.component.html","webpack:///./src/app/components/controls/contactgroup/contactgroups-management.component.ts","webpack:///./src/app/components/controls/contactgroup/emailcontact/emailcontact-editor.component.css","webpack:///./src/app/components/controls/contactgroup/emailcontact/emailcontact-editor.component.html","webpack:///./src/app/components/controls/contactgroup/emailcontact/emailcontact-editor.component.ts","webpack:///./src/app/components/controls/department/department-editor.component.css","webpack:///./src/app/components/controls/department/department-editor.component.html","webpack:///./src/app/components/controls/department/department-editor.component.ts","webpack:///./src/app/components/controls/department/departments-management.component.css","webpack:///./src/app/components/controls/department/departments-management.component.html","webpack:///./src/app/components/controls/department/departments-management.component.ts","webpack:///./src/app/components/controls/device-type/device-type-editor.component.css","webpack:///./src/app/components/controls/device-type/device-type-editor.component.html","webpack:///./src/app/components/controls/device-type/device-type-editor.component.ts","webpack:///./src/app/components/controls/device-type/device-types-management.component.css","webpack:///./src/app/components/controls/device-type/device-types-management.component.html","webpack:///./src/app/components/controls/device-type/device-types-management.component.ts","webpack:///./src/app/components/controls/email-queue/email-queues-management.component.css","webpack:///./src/app/components/controls/email-queue/email-queues-management.component.html","webpack:///./src/app/components/controls/email-queue/email-queues-management.component.ts","webpack:///./src/app/components/controls/ems/ems-editor.component.css","webpack:///./src/app/components/controls/ems/ems-editor.component.html","webpack:///./src/app/components/controls/ems/ems-editor.component.ts","webpack:///./src/app/components/controls/ems/emses-management.component.css","webpack:///./src/app/components/controls/ems/emses-management.component.html","webpack:///./src/app/components/controls/ems/emses-management.component.ts","webpack:///./src/app/components/controls/facilities/facilities-management.component.css","webpack:///./src/app/components/controls/facilities/facilities-management.component.html","webpack:///./src/app/components/controls/facilities/facilities-management.component.ts","webpack:///./src/app/components/controls/facilities/facility-editor.component.css","webpack:///./src/app/components/controls/facilities/facility-editor.component.html","webpack:///./src/app/components/controls/facilities/facility-editor.component.ts","webpack:///./src/app/components/controls/facility-type/facility-type-editor.component.css","webpack:///./src/app/components/controls/facility-type/facility-type-editor.component.html","webpack:///./src/app/components/controls/facility-type/facility-type-editor.component.ts","webpack:///./src/app/components/controls/facility-type/facility-types-management.component.css","webpack:///./src/app/components/controls/facility-type/facility-types-management.component.html","webpack:///./src/app/components/controls/facility-type/facility-types-management.component.ts","webpack:///./src/app/components/controls/image-reference-color/image-reference-color-editor.component.css","webpack:///./src/app/components/controls/image-reference-color/image-reference-color-editor.component.html","webpack:///./src/app/components/controls/image-reference-color/image-reference-color-editor.component.ts","webpack:///./src/app/components/controls/image-reference-color/image-reference-colors-management.component.css","webpack:///./src/app/components/controls/image-reference-color/image-reference-colors-management.component.html","webpack:///./src/app/components/controls/image-reference-color/image-reference-colors-management.component.ts","webpack:///./src/app/components/controls/image-reference-type/image-reference-type-editor.component.css","webpack:///./src/app/components/controls/image-reference-type/image-reference-type-editor.component.html","webpack:///./src/app/components/controls/image-reference-type/image-reference-type-editor.component.ts","webpack:///./src/app/components/controls/image-reference-type/image-reference-types-management.component.css","webpack:///./src/app/components/controls/image-reference-type/image-reference-types-management.component.html","webpack:///./src/app/components/controls/image-reference-type/image-reference-types-management.component.ts","webpack:///./src/app/components/controls/institution/institution-editor.component.css","webpack:///./src/app/components/controls/institution/institution-editor.component.html","webpack:///./src/app/components/controls/institution/institution-editor.component.ts","webpack:///./src/app/components/controls/institution/institutions-management.component.css","webpack:///./src/app/components/controls/institution/institutions-management.component.html","webpack:///./src/app/components/controls/institution/institutions-management.component.ts","webpack:///./src/app/components/controls/locations-tree/location-tree-editor.component.css","webpack:///./src/app/components/controls/locations-tree/location-tree-editor.component.html","webpack:///./src/app/components/controls/locations-tree/location-tree-editor.component.ts","webpack:///./src/app/components/controls/locations-tree/locations-tree-management.component.css","webpack:///./src/app/components/controls/locations-tree/locations-tree-management.component.html","webpack:///./src/app/components/controls/locations-tree/locations-tree-management.component.ts","webpack:///./src/app/components/controls/locations/location-editor.component.css","webpack:///./src/app/components/controls/locations/location-editor.component.html","webpack:///./src/app/components/controls/locations/location-editor.component.ts","webpack:///./src/app/components/controls/locations/locations-management.component.css","webpack:///./src/app/components/controls/locations/locations-management.component.html","webpack:///./src/app/components/controls/locations/locations-management.component.ts","webpack:///./src/app/components/controls/media/media-editor.component.css","webpack:///./src/app/components/controls/media/media-editor.component.html","webpack:///./src/app/components/controls/media/media-editor.component.ts","webpack:///./src/app/components/controls/media/medias-management.component.css","webpack:///./src/app/components/controls/media/medias-management.component.html","webpack:///./src/app/components/controls/media/medias-management.component.ts","webpack:///./src/app/components/controls/module/module-editor.component.css","webpack:///./src/app/components/controls/module/module-editor.component.html","webpack:///./src/app/components/controls/module/module-editor.component.ts","webpack:///./src/app/components/controls/module/modules-management.component.css","webpack:///./src/app/components/controls/module/modules-management.component.html","webpack:///./src/app/components/controls/module/modules-management.component.ts","webpack:///./src/app/components/controls/notifications-viewer.component.css","webpack:///./src/app/components/controls/notifications-viewer.component.html","webpack:///./src/app/components/controls/notifications-viewer.component.ts","webpack:///./src/app/components/controls/role-editor.component.css","webpack:///./src/app/components/controls/role-editor.component.html","webpack:///./src/app/components/controls/role-editor.component.ts","webpack:///./src/app/components/controls/roles-management.component.css","webpack:///./src/app/components/controls/roles-management.component.html","webpack:///./src/app/components/controls/roles-management.component.ts","webpack:///./src/app/components/controls/search-box.component.css","webpack:///./src/app/components/controls/search-box.component.html","webpack:///./src/app/components/controls/search-box.component.ts","webpack:///./src/app/components/controls/statistics-demo.component.css","webpack:///./src/app/components/controls/statistics-demo.component.html","webpack:///./src/app/components/controls/statistics-demo.component.ts","webpack:///./src/app/components/controls/todo-demo.component.css","webpack:///./src/app/components/controls/todo-demo.component.html","webpack:///./src/app/components/controls/todo-demo.component.ts","webpack:///./src/app/components/controls/user-group/user-group-editor.component.css","webpack:///./src/app/components/controls/user-group/user-group-editor.component.html","webpack:///./src/app/components/controls/user-group/user-group-editor.component.ts","webpack:///./src/app/components/controls/user-group/user-groups-management.component.css","webpack:///./src/app/components/controls/user-group/user-groups-management.component.html","webpack:///./src/app/components/controls/user-group/user-groups-management.component.ts","webpack:///./src/app/components/controls/user-info.component.css","webpack:///./src/app/components/controls/user-info.component.html","webpack:///./src/app/components/controls/user-info.component.ts","webpack:///./src/app/components/controls/user-preferences.component.css","webpack:///./src/app/components/controls/user-preferences.component.html","webpack:///./src/app/components/controls/user-preferences.component.ts","webpack:///./src/app/components/controls/usercardid/usercardid-editor.component.css","webpack:///./src/app/components/controls/usercardid/usercardid-editor.component.html","webpack:///./src/app/components/controls/usercardid/usercardid-editor.component.ts","webpack:///./src/app/components/controls/userphonebook/userphonebook-editor.component.css","webpack:///./src/app/components/controls/userphonebook/userphonebook-editor.component.html","webpack:///./src/app/components/controls/userphonebook/userphonebook-editor.component.ts","webpack:///./src/app/components/controls/userphonebook/userphonebooks-management.component.css","webpack:///./src/app/components/controls/userphonebook/userphonebooks-management.component.html","webpack:///./src/app/components/controls/userphonebook/userphonebooks-management.component.ts","webpack:///./src/app/components/controls/users-management.component.css","webpack:///./src/app/components/controls/users-management.component.html","webpack:///./src/app/components/controls/users-management.component.ts","webpack:///./src/app/components/controls/uservehicle/uservehicle-editor.component.css","webpack:///./src/app/components/controls/uservehicle/uservehicle-editor.component.html","webpack:///./src/app/components/controls/uservehicle/uservehicle-editor.component.ts","webpack:///./src/app/components/controls/uservehicle/uservehicle-management.component.css","webpack:///./src/app/components/controls/uservehicle/uservehicle-management.component.html","webpack:///./src/app/components/controls/uservehicle/uservehicle-management.component.ts","webpack:///./src/app/components/dashboard/available-room/available-room.component.css","webpack:///./src/app/components/dashboard/available-room/available-room.component.html","webpack:///./src/app/components/dashboard/available-room/available-room.component.ts","webpack:///./src/app/components/dashboard/device-for-approval/device-for-approval.component.css","webpack:///./src/app/components/dashboard/device-for-approval/device-for-approval.component.html","webpack:///./src/app/components/dashboard/device-for-approval/device-for-approval.component.ts","webpack:///./src/app/components/dashboard/pib-device-list/pib-device-list.component.css","webpack:///./src/app/components/dashboard/pib-device-list/pib-device-list.component.html","webpack:///./src/app/components/dashboard/pib-device-list/pib-device-list.component.ts","webpack:///./src/app/components/dashboard/signage/location-panel/location-panel.component.css","webpack:///./src/app/components/dashboard/signage/location-panel/location-panel.component.html","webpack:///./src/app/components/dashboard/signage/location-panel/location-panel.component.ts","webpack:///./src/app/components/dashboard/signage/push-message-dialog/push-message-dialog.component.css","webpack:///./src/app/components/dashboard/signage/push-message-dialog/push-message-dialog.component.html","webpack:///./src/app/components/dashboard/signage/push-message-dialog/push-message-dialog.component.ts","webpack:///./src/app/components/dashboard/signage/signage-dashboard-container/signage-dashboard-container.component.css","webpack:///./src/app/components/dashboard/signage/signage-dashboard-container/signage-dashboard-container.component.html","webpack:///./src/app/components/dashboard/signage/signage-dashboard-container/signage-dashboard-container.component.ts","webpack:///./src/app/components/dashboard/upcoming-events/upcoming-events.component.css","webpack:///./src/app/components/dashboard/upcoming-events/upcoming-events.component.html","webpack:///./src/app/components/dashboard/upcoming-events/upcoming-events.component.ts","webpack:///./src/app/components/device-manager/device-manager.component.html","webpack:///./src/app/components/device-manager/device-manager.component.ts","webpack:///./src/app/components/device-manager/device-manager.css","webpack:///./src/app/components/device-manager/unknown-device/device-editor.component.css","webpack:///./src/app/components/device-manager/unknown-device/device-editor.component.html","webpack:///./src/app/components/device-manager/unknown-device/device-editor.component.ts","webpack:///./src/app/components/device-manager/unknown-device/devices-management.component.css","webpack:///./src/app/components/device-manager/unknown-device/devices-management.component.html","webpack:///./src/app/components/device-manager/unknown-device/devices-management.component.ts","webpack:///./src/app/components/device-warning/device-warning.component.css","webpack:///./src/app/components/device-warning/device-warning.component.html","webpack:///./src/app/components/device-warning/device-warning.component.ts","webpack:///./src/app/components/directory-listing-category/directory-listing-category-editor.component.css","webpack:///./src/app/components/directory-listing-category/directory-listing-category-editor.component.html","webpack:///./src/app/components/directory-listing-category/directory-listing-category-editor.component.ts","webpack:///./src/app/components/directory-listing-category/directory-listing-categorys-management.component.css","webpack:///./src/app/components/directory-listing-category/directory-listing-categorys-management.component.html","webpack:///./src/app/components/directory-listing-category/directory-listing-categorys-management.component.ts","webpack:///./src/app/components/directory-listing/directory-listing-editor.component.css","webpack:///./src/app/components/directory-listing/directory-listing-editor.component.html","webpack:///./src/app/components/directory-listing/directory-listing-editor.component.ts","webpack:///./src/app/components/directory-listing/directory-listings-management.component.css","webpack:///./src/app/components/directory-listing/directory-listings-management.component.html","webpack:///./src/app/components/directory-listing/directory-listings-management.component.ts","webpack:///./src/app/components/employee-data/employee-data-editor.component.css","webpack:///./src/app/components/employee-data/employee-data-editor.component.html","webpack:///./src/app/components/employee-data/employee-data-editor.component.ts","webpack:///./src/app/components/employee-data/employee-datas-management.component.css","webpack:///./src/app/components/employee-data/employee-datas-management.component.html","webpack:///./src/app/components/employee-data/employee-datas-management.component.ts","webpack:///./src/app/components/employee-designation/employee-designation-editor.component.css","webpack:///./src/app/components/employee-designation/employee-designation-editor.component.html","webpack:///./src/app/components/employee-designation/employee-designation-editor.component.ts","webpack:///./src/app/components/employee-designation/employee-designations-management.component.css","webpack:///./src/app/components/employee-designation/employee-designations-management.component.html","webpack:///./src/app/components/employee-designation/employee-designations-management.component.ts","webpack:///./src/app/components/employee-schedule/employee-schedule-assign.component.html","webpack:///./src/app/components/employee-schedule/employee-schedule-assign.component.ts","webpack:///./src/app/components/employee-schedule/employee-schedule-editor.component.css","webpack:///./src/app/components/employee-schedule/employee-schedule-editor.component.html","webpack:///./src/app/components/employee-schedule/employee-schedule-editor.component.ts","webpack:///./src/app/components/employee-schedule/employee-schedules-management.component.css","webpack:///./src/app/components/employee-schedule/employee-schedules-management.component.html","webpack:///./src/app/components/employee-schedule/employee-schedules-management.component.ts","webpack:///./src/app/components/ems-profile/ems-profile-editor.component.css","webpack:///./src/app/components/ems-profile/ems-profile-editor.component.html","webpack:///./src/app/components/ems-profile/ems-profile-editor.component.ts","webpack:///./src/app/components/ems-profile/ems-profiles.component.css","webpack:///./src/app/components/ems-profile/ems-profiles.component.html","webpack:///./src/app/components/ems-profile/ems-profiles.component.ts","webpack:///./src/app/components/ems-schedule/ems-schedule-editor.component.css","webpack:///./src/app/components/ems-schedule/ems-schedule-editor.component.html","webpack:///./src/app/components/ems-schedule/ems-schedule-editor.component.ts","webpack:///./src/app/components/ems-schedule/ems-schedules.component.css","webpack:///./src/app/components/ems-schedule/ems-schedules.component.html","webpack:///./src/app/components/ems-schedule/ems-schedules.component.ts","webpack:///./src/app/components/facilities/facilities.component.css","webpack:///./src/app/components/facilities/facilities.component.html","webpack:///./src/app/components/facilities/facilities.component.ts","webpack:///./src/app/components/feedback/feedback.component.css","webpack:///./src/app/components/feedback/feedback.component.html","webpack:///./src/app/components/feedback/feedback.component.ts","webpack:///./src/app/components/floor/floor-editor.component.css","webpack:///./src/app/components/floor/floor-editor.component.html","webpack:///./src/app/components/floor/floor-editor.component.ts","webpack:///./src/app/components/floor/floors-management.component.css","webpack:///./src/app/components/floor/floors-management.component.html","webpack:///./src/app/components/floor/floors-management.component.ts","webpack:///./src/app/components/forgot-password/forgot-password.component.css","webpack:///./src/app/components/forgot-password/forgot-password.component.html","webpack:///./src/app/components/forgot-password/forgot-password.component.ts","webpack:///./src/app/components/frs-device-manager/frs-device-manager.component.html","webpack:///./src/app/components/frs-device-manager/frs-device-manager.component.ts","webpack:///./src/app/components/frs-device-manager/frs-device-manager.css","webpack:///./src/app/components/frs-device-manager/frs-unknown-device/frs-device-editor.component.css","webpack:///./src/app/components/frs-device-manager/frs-unknown-device/frs-device-editor.component.html","webpack:///./src/app/components/frs-device-manager/frs-unknown-device/frs-device-editor.component.ts","webpack:///./src/app/components/frs-device-manager/frs-unknown-device/frs-devices-management.component.css","webpack:///./src/app/components/frs-device-manager/frs-unknown-device/frs-devices-management.component.html","webpack:///./src/app/components/frs-device-manager/frs-unknown-device/frs-devices-management.component.ts","webpack:///./src/app/components/frs-template-editor/frs-preview/frs-preview.component.css","webpack:///./src/app/components/frs-template-editor/frs-preview/frs-preview.component.html","webpack:///./src/app/components/frs-template-editor/frs-preview/frs-preview.component.ts","webpack:///./src/app/components/frs-template-editor/frs-save-dialog/frs-save-dialog.component.css","webpack:///./src/app/components/frs-template-editor/frs-save-dialog/frs-save-dialog.component.html","webpack:///./src/app/components/frs-template-editor/frs-save-dialog/frs-save-dialog.component.ts","webpack:///./src/app/components/frs-template-editor/frs-template-editor.component.css","webpack:///./src/app/components/frs-template-editor/frs-template-editor.component.html","webpack:///./src/app/components/frs-template-editor/frs-template-editor.component.ts","webpack:///./src/app/components/home/home.component.css","webpack:///./src/app/components/home/home.component.html","webpack:///./src/app/components/home/home.component.ts","webpack:///./src/app/components/imageUpload/image-list.component.css","webpack:///./src/app/components/imageUpload/image-list.component.html","webpack:///./src/app/components/imageUpload/image-list.component.ts","webpack:///./src/app/components/imageUpload/image-upload.component.css","webpack:///./src/app/components/imageUpload/image-upload.component.html","webpack:///./src/app/components/imageUpload/image-upload.component.ts","webpack:///./src/app/components/kioskSettings/kiosk-settings-edit.component.css","webpack:///./src/app/components/kioskSettings/kiosk-settings-edit.component.html","webpack:///./src/app/components/kioskSettings/kiosk-settings-edit.component.ts","webpack:///./src/app/components/kioskSettings/kiosk-settings-list.component.css","webpack:///./src/app/components/kioskSettings/kiosk-settings-list.component.html","webpack:///./src/app/components/kioskSettings/kiosk-settings-list.component.ts","webpack:///./src/app/components/login/external-login.component.ts","webpack:///./src/app/components/login/login.component.css","webpack:///./src/app/components/login/login.component.html","webpack:///./src/app/components/login/login.component.ts","webpack:///./src/app/components/map/map-editor.component.css","webpack:///./src/app/components/map/map-editor.component.html","webpack:///./src/app/components/map/map-editor.component.ts","webpack:///./src/app/components/map/maps-management.component.css","webpack:///./src/app/components/map/maps-management.component.html","webpack:///./src/app/components/map/maps-management.component.ts","webpack:///./src/app/components/meal-order-system/bento-asset/bento-asset-editor.component.css","webpack:///./src/app/components/meal-order-system/bento-asset/bento-asset-editor.component.html","webpack:///./src/app/components/meal-order-system/bento-asset/bento-asset-editor.component.ts","webpack:///./src/app/components/meal-order-system/bento-asset/bento-assets-management.component.css","webpack:///./src/app/components/meal-order-system/bento-asset/bento-assets-management.component.html","webpack:///./src/app/components/meal-order-system/bento-asset/bento-assets-management.component.ts","webpack:///./src/app/components/meal-order-system/bento-asset/new-multiple-bento-asset.html","webpack:///./src/app/components/meal-order-system/bento-box-type/bento-box-type-editor.component.css","webpack:///./src/app/components/meal-order-system/bento-box-type/bento-box-type-editor.component.html","webpack:///./src/app/components/meal-order-system/bento-box-type/bento-box-type-editor.component.ts","webpack:///./src/app/components/meal-order-system/bento-box-type/bento-box-types-management.component.css","webpack:///./src/app/components/meal-order-system/bento-box-type/bento-box-types-management.component.html","webpack:///./src/app/components/meal-order-system/bento-box-type/bento-box-types-management.component.ts","webpack:///./src/app/components/meal-order-system/cancel-order-request/cancel-order-request-editor.component.css","webpack:///./src/app/components/meal-order-system/cancel-order-request/cancel-order-request-editor.component.html","webpack:///./src/app/components/meal-order-system/cancel-order-request/cancel-order-request-editor.component.ts","webpack:///./src/app/components/meal-order-system/cancel-order-request/cancel-order-requests-management.component.css","webpack:///./src/app/components/meal-order-system/cancel-order-request/cancel-order-requests-management.component.html","webpack:///./src/app/components/meal-order-system/cancel-order-request/cancel-order-requests-management.component.ts","webpack:///./src/app/components/meal-order-system/carton-asset/carton-asset-editor.component.css","webpack:///./src/app/components/meal-order-system/carton-asset/carton-asset-editor.component.html","webpack:///./src/app/components/meal-order-system/carton-asset/carton-asset-editor.component.ts","webpack:///./src/app/components/meal-order-system/carton-asset/carton-assets-management.component.css","webpack:///./src/app/components/meal-order-system/carton-asset/carton-assets-management.component.html","webpack:///./src/app/components/meal-order-system/carton-asset/carton-assets-management.component.ts","webpack:///./src/app/components/meal-order-system/carton-type/carton-type-editor.component.css","webpack:///./src/app/components/meal-order-system/carton-type/carton-type-editor.component.html","webpack:///./src/app/components/meal-order-system/carton-type/carton-type-editor.component.ts","webpack:///./src/app/components/meal-order-system/carton-type/carton-types-management.component.css","webpack:///./src/app/components/meal-order-system/carton-type/carton-types-management.component.html","webpack:///./src/app/components/meal-order-system/carton-type/carton-types-management.component.ts","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-calendar/caterer-calendar.component.css","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-calendar/caterer-calendar.component.html","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-calendar/caterer-calendar.component.ts","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-dish-calendar/caterer-dish-calendar.component.css","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-dish-calendar/caterer-dish-calendar.component.html","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-dish-calendar/caterer-dish-calendar.component.ts","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-info-editor.component.css","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-info-editor.component.html","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-info-editor.component.ts","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-infos-management.component.css","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-infos-management.component.html","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-infos-management.component.ts","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-selector/caterer-selector.component.css","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-selector/caterer-selector.component.html","webpack:///./src/app/components/meal-order-system/caterer-info/caterer-selector/caterer-selector.component.ts","webpack:///./src/app/components/meal-order-system/class-batch/class-batch-editor.component.css","webpack:///./src/app/components/meal-order-system/class-batch/class-batch-editor.component.html","webpack:///./src/app/components/meal-order-system/class-batch/class-batch-editor.component.ts","webpack:///./src/app/components/meal-order-system/class-batch/class-batches-management.component.css","webpack:///./src/app/components/meal-order-system/class-batch/class-batches-management.component.html","webpack:///./src/app/components/meal-order-system/class-batch/class-batches-management.component.ts","webpack:///./src/app/components/meal-order-system/class-level/class-level-editor.component.css","webpack:///./src/app/components/meal-order-system/class-level/class-level-editor.component.html","webpack:///./src/app/components/meal-order-system/class-level/class-level-editor.component.ts","webpack:///./src/app/components/meal-order-system/class-level/class-levels-management.component.css","webpack:///./src/app/components/meal-order-system/class-level/class-levels-management.component.html","webpack:///./src/app/components/meal-order-system/class-level/class-levels-management.component.ts","webpack:///./src/app/components/meal-order-system/class/class-editor.component.css","webpack:///./src/app/components/meal-order-system/class/class-editor.component.html","webpack:///./src/app/components/meal-order-system/class/class-editor.component.ts","webpack:///./src/app/components/meal-order-system/class/classes-management.component.css","webpack:///./src/app/components/meal-order-system/class/classes-management.component.html","webpack:///./src/app/components/meal-order-system/class/classes-management.component.ts","webpack:///./src/app/components/meal-order-system/contact-us-detail/contact-us-detail-editor.component.css","webpack:///./src/app/components/meal-order-system/contact-us-detail/contact-us-detail-editor.component.html","webpack:///./src/app/components/meal-order-system/contact-us-detail/contact-us-detail-editor.component.ts","webpack:///./src/app/components/meal-order-system/contact-us-detail/contact-us-details-management.component.css","webpack:///./src/app/components/meal-order-system/contact-us-detail/contact-us-details-management.component.html","webpack:///./src/app/components/meal-order-system/contact-us-detail/contact-us-details-management.component.ts","webpack:///./src/app/components/meal-order-system/contact-us-subject/contact-us-subject-editor.component.css","webpack:///./src/app/components/meal-order-system/contact-us-subject/contact-us-subject-editor.component.html","webpack:///./src/app/components/meal-order-system/contact-us-subject/contact-us-subject-editor.component.ts","webpack:///./src/app/components/meal-order-system/contact-us-subject/contact-us-subjects-management.component.css","webpack:///./src/app/components/meal-order-system/contact-us-subject/contact-us-subjects-management.component.html","webpack:///./src/app/components/meal-order-system/contact-us-subject/contact-us-subjects-management.component.ts","webpack:///./src/app/components/meal-order-system/cuisine/cuisine-editor.component.css","webpack:///./src/app/components/meal-order-system/cuisine/cuisine-editor.component.html","webpack:///./src/app/components/meal-order-system/cuisine/cuisine-editor.component.ts","webpack:///./src/app/components/meal-order-system/cuisine/cuisines-management.component.css","webpack:///./src/app/components/meal-order-system/cuisine/cuisines-management.component.html","webpack:///./src/app/components/meal-order-system/cuisine/cuisines-management.component.ts","webpack:///./src/app/components/meal-order-system/delivery-order/delivery-order-editor.component.css","webpack:///./src/app/components/meal-order-system/delivery-order/delivery-order-editor.component.html","webpack:///./src/app/components/meal-order-system/delivery-order/delivery-order-editor.component.ts","webpack:///./src/app/components/meal-order-system/delivery-order/delivery-orders-management.component.css","webpack:///./src/app/components/meal-order-system/delivery-order/delivery-orders-management.component.html","webpack:///./src/app/components/meal-order-system/delivery-order/delivery-orders-management.component.ts","webpack:///./src/app/components/meal-order-system/dish-cycle/dish-cycle-editor.component.css","webpack:///./src/app/components/meal-order-system/dish-cycle/dish-cycle-editor.component.html","webpack:///./src/app/components/meal-order-system/dish-cycle/dish-cycle-editor.component.ts","webpack:///./src/app/components/meal-order-system/dish-cycle/dish-cycles-management.component.css","webpack:///./src/app/components/meal-order-system/dish-cycle/dish-cycles-management.component.html","webpack:///./src/app/components/meal-order-system/dish-cycle/dish-cycles-management.component.ts","webpack:///./src/app/components/meal-order-system/dish-cycle/view-menu/view-menu.component.css","webpack:///./src/app/components/meal-order-system/dish-cycle/view-menu/view-menu.component.html","webpack:///./src/app/components/meal-order-system/dish-cycle/view-menu/view-menu.component.ts","webpack:///./src/app/components/meal-order-system/dish-type/dish-type-editor.component.css","webpack:///./src/app/components/meal-order-system/dish-type/dish-type-editor.component.html","webpack:///./src/app/components/meal-order-system/dish-type/dish-type-editor.component.ts","webpack:///./src/app/components/meal-order-system/dish-type/dish-types-management.component.css","webpack:///./src/app/components/meal-order-system/dish-type/dish-types-management.component.html","webpack:///./src/app/components/meal-order-system/dish-type/dish-types-management.component.ts","webpack:///./src/app/components/meal-order-system/dishes/dish-editor.component.css","webpack:///./src/app/components/meal-order-system/dishes/dish-editor.component.html","webpack:///./src/app/components/meal-order-system/dishes/dish-editor.component.ts","webpack:///./src/app/components/meal-order-system/dishes/dish-preview/dish-preview.component.css","webpack:///./src/app/components/meal-order-system/dishes/dish-preview/dish-preview.component.html","webpack:///./src/app/components/meal-order-system/dishes/dish-preview/dish-preview.component.ts","webpack:///./src/app/components/meal-order-system/dishes/dish-selector/dish-selector.component.css","webpack:///./src/app/components/meal-order-system/dishes/dish-selector/dish-selector.component.html","webpack:///./src/app/components/meal-order-system/dishes/dish-selector/dish-selector.component.ts","webpack:///./src/app/components/meal-order-system/dishes/dishes-management.component.css","webpack:///./src/app/components/meal-order-system/dishes/dishes-management.component.html","webpack:///./src/app/components/meal-order-system/dishes/dishes-management.component.ts","webpack:///./src/app/components/meal-order-system/dishing-process/dishing-processs-management.component.css","webpack:///./src/app/components/meal-order-system/dishing-process/dishing-processs-management.component.html","webpack:///./src/app/components/meal-order-system/dishing-process/dishing-processs-management.component.ts","webpack:///./src/app/components/meal-order-system/do-process/do-processs-management.component.css","webpack:///./src/app/components/meal-order-system/do-process/do-processs-management.component.html","webpack:///./src/app/components/meal-order-system/do-process/do-processs-management.component.ts","webpack:///./src/app/components/meal-order-system/driver/driver-editor.component.css","webpack:///./src/app/components/meal-order-system/driver/driver-editor.component.html","webpack:///./src/app/components/meal-order-system/driver/driver-editor.component.ts","webpack:///./src/app/components/meal-order-system/driver/drivers-management.component.css","webpack:///./src/app/components/meal-order-system/driver/drivers-management.component.html","webpack:///./src/app/components/meal-order-system/driver/drivers-management.component.ts","webpack:///./src/app/components/meal-order-system/email-template/email-template-editor.component.css","webpack:///./src/app/components/meal-order-system/email-template/email-template-editor.component.html","webpack:///./src/app/components/meal-order-system/email-template/email-template-editor.component.ts","webpack:///./src/app/components/meal-order-system/email-template/email-templates-management.component.css","webpack:///./src/app/components/meal-order-system/email-template/email-templates-management.component.html","webpack:///./src/app/components/meal-order-system/email-template/email-templates-management.component.ts","webpack:///./src/app/components/meal-order-system/interest-group/interest-group-editor.component.css","webpack:///./src/app/components/meal-order-system/interest-group/interest-group-editor.component.html","webpack:///./src/app/components/meal-order-system/interest-group/interest-group-editor.component.ts","webpack:///./src/app/components/meal-order-system/interest-group/interest-group-email.component.css","webpack:///./src/app/components/meal-order-system/interest-group/interest-group-email.component.html","webpack:///./src/app/components/meal-order-system/interest-group/interest-group-email.component.ts","webpack:///./src/app/components/meal-order-system/interest-group/interest-groups-management.component.css","webpack:///./src/app/components/meal-order-system/interest-group/interest-groups-management.component.html","webpack:///./src/app/components/meal-order-system/interest-group/interest-groups-management.component.ts","webpack:///./src/app/components/meal-order-system/meal-allocation/meal-allocations-management.component.css","webpack:///./src/app/components/meal-order-system/meal-allocation/meal-allocations-management.component.html","webpack:///./src/app/components/meal-order-system/meal-allocation/meal-allocations-management.component.ts","webpack:///./src/app/components/meal-order-system/meal-allocation/print-allocation.component.css","webpack:///./src/app/components/meal-order-system/meal-allocation/print-allocation.component.html","webpack:///./src/app/components/meal-order-system/meal-allocation/print-allocation.component.ts","webpack:///./src/app/components/meal-order-system/meal-period/meal-period-editor.component.css","webpack:///./src/app/components/meal-order-system/meal-period/meal-period-editor.component.html","webpack:///./src/app/components/meal-order-system/meal-period/meal-period-editor.component.ts","webpack:///./src/app/components/meal-order-system/meal-period/meal-periods-management.component.css","webpack:///./src/app/components/meal-order-system/meal-period/meal-periods-management.component.html","webpack:///./src/app/components/meal-order-system/meal-period/meal-periods-management.component.ts","webpack:///./src/app/components/meal-order-system/meal-type/meal-type-editor.component.css","webpack:///./src/app/components/meal-order-system/meal-type/meal-type-editor.component.html","webpack:///./src/app/components/meal-order-system/meal-type/meal-type-editor.component.ts","webpack:///./src/app/components/meal-order-system/meal-type/meal-types-management.component.css","webpack:///./src/app/components/meal-order-system/meal-type/meal-types-management.component.html","webpack:///./src/app/components/meal-order-system/meal-type/meal-types-management.component.ts","webpack:///./src/app/components/meal-order-system/menu-cycle/menu-cycle-editor.component.css","webpack:///./src/app/components/meal-order-system/menu-cycle/menu-cycle-editor.component.html","webpack:///./src/app/components/meal-order-system/menu-cycle/menu-cycle-editor.component.ts","webpack:///./src/app/components/meal-order-system/menu-cycle/menu-cycles-management.component.css","webpack:///./src/app/components/meal-order-system/menu-cycle/menu-cycles-management.component.html","webpack:///./src/app/components/meal-order-system/menu-cycle/menu-cycles-management.component.ts","webpack:///./src/app/components/meal-order-system/menu-cycle/view-menu/view-menu.component.css","webpack:///./src/app/components/meal-order-system/menu-cycle/view-menu/view-menu.component.html","webpack:///./src/app/components/meal-order-system/menu-cycle/view-menu/view-menu.component.ts","webpack:///./src/app/components/meal-order-system/menus/dish-selector/dish-selector-editor.component.css","webpack:///./src/app/components/meal-order-system/menus/dish-selector/dish-selector-editor.component.html","webpack:///./src/app/components/meal-order-system/menus/dish-selector/dish-selector-editor.component.ts","webpack:///./src/app/components/meal-order-system/menus/menu-editor.component.css","webpack:///./src/app/components/meal-order-system/menus/menu-editor.component.html","webpack:///./src/app/components/meal-order-system/menus/menu-editor.component.ts","webpack:///./src/app/components/meal-order-system/menus/menus-management.component.css","webpack:///./src/app/components/meal-order-system/menus/menus-management.component.html","webpack:///./src/app/components/meal-order-system/menus/menus-management.component.ts","webpack:///./src/app/components/meal-order-system/notification-event/notification-event-editor.component.css","webpack:///./src/app/components/meal-order-system/notification-event/notification-event-editor.component.html","webpack:///./src/app/components/meal-order-system/notification-event/notification-event-editor.component.ts","webpack:///./src/app/components/meal-order-system/notification-event/notification-events-management.component.css","webpack:///./src/app/components/meal-order-system/notification-event/notification-events-management.component.html","webpack:///./src/app/components/meal-order-system/notification-event/notification-events-management.component.ts","webpack:///./src/app/components/meal-order-system/outlet-profile/outlet-profile-editor.component.css","webpack:///./src/app/components/meal-order-system/outlet-profile/outlet-profile-editor.component.html","webpack:///./src/app/components/meal-order-system/outlet-profile/outlet-profile-editor.component.ts","webpack:///./src/app/components/meal-order-system/outlet-profile/outlet-profiles-management.component.css","webpack:///./src/app/components/meal-order-system/outlet-profile/outlet-profiles-management.component.html","webpack:///./src/app/components/meal-order-system/outlet-profile/outlet-profiles-management.component.ts","webpack:///./src/app/components/meal-order-system/outlet/caterer-selector/caterer-selector.component.css","webpack:///./src/app/components/meal-order-system/outlet/caterer-selector/caterer-selector.component.html","webpack:///./src/app/components/meal-order-system/outlet/caterer-selector/caterer-selector.component.ts","webpack:///./src/app/components/meal-order-system/outlet/class-roster/class-roster-editor.component.css","webpack:///./src/app/components/meal-order-system/outlet/class-roster/class-roster-editor.component.html","webpack:///./src/app/components/meal-order-system/outlet/class-roster/class-roster-editor.component.ts","webpack:///./src/app/components/meal-order-system/outlet/class-roster/class-rosters-management.component.css","webpack:///./src/app/components/meal-order-system/outlet/class-roster/class-rosters-management.component.html","webpack:///./src/app/components/meal-order-system/outlet/class-roster/class-rosters-management.component.ts","webpack:///./src/app/components/meal-order-system/outlet/dish-calendar/dish-calendar.component.css","webpack:///./src/app/components/meal-order-system/outlet/dish-calendar/dish-calendar.component.html","webpack:///./src/app/components/meal-order-system/outlet/dish-calendar/dish-calendar.component.ts","webpack:///./src/app/components/meal-order-system/outlet/meal-session/meal-session-editor.component.css","webpack:///./src/app/components/meal-order-system/outlet/meal-session/meal-session-editor.component.html","webpack:///./src/app/components/meal-order-system/outlet/meal-session/meal-session-editor.component.ts","webpack:///./src/app/components/meal-order-system/outlet/order-delivery-report/order-delivery-report.component.css","webpack:///./src/app/components/meal-order-system/outlet/order-delivery-report/order-delivery-report.component.html","webpack:///./src/app/components/meal-order-system/outlet/order-delivery-report/order-delivery-report.component.ts","webpack:///./src/app/components/meal-order-system/outlet/order-meal-summary/order-meal-summary.component.css","webpack:///./src/app/components/meal-order-system/outlet/order-meal-summary/order-meal-summary.component.html","webpack:///./src/app/components/meal-order-system/outlet/order-meal-summary/order-meal-summary.component.ts","webpack:///./src/app/components/meal-order-system/outlet/order-report/order-report.component.css","webpack:///./src/app/components/meal-order-system/outlet/order-report/order-report.component.html","webpack:///./src/app/components/meal-order-system/outlet/order-report/order-report.component.ts","webpack:///./src/app/components/meal-order-system/outlet/outlet-calendar/outlet-calendar.component.css","webpack:///./src/app/components/meal-order-system/outlet/outlet-calendar/outlet-calendar.component.html","webpack:///./src/app/components/meal-order-system/outlet/outlet-calendar/outlet-calendar.component.ts","webpack:///./src/app/components/meal-order-system/outlet/outlet-editor.component.css","webpack:///./src/app/components/meal-order-system/outlet/outlet-editor.component.html","webpack:///./src/app/components/meal-order-system/outlet/outlet-editor.component.ts","webpack:///./src/app/components/meal-order-system/outlet/outlets-management.component.css","webpack:///./src/app/components/meal-order-system/outlet/outlets-management.component.html","webpack:///./src/app/components/meal-order-system/outlet/outlets-management.component.ts","webpack:///./src/app/components/meal-order-system/outlet/print-label/print-label.component.css","webpack:///./src/app/components/meal-order-system/outlet/print-label/print-label.component.html","webpack:///./src/app/components/meal-order-system/outlet/print-label/print-label.component.ts","webpack:///./src/app/components/meal-order-system/outlet/store-selector-details/store-selector-details.component.css","webpack:///./src/app/components/meal-order-system/outlet/store-selector-details/store-selector-details.component.html","webpack:///./src/app/components/meal-order-system/outlet/store-selector-details/store-selector-details.component.ts","webpack:///./src/app/components/meal-order-system/outlet/store-selector/store-selector.component.css","webpack:///./src/app/components/meal-order-system/outlet/store-selector/store-selector.component.html","webpack:///./src/app/components/meal-order-system/outlet/store-selector/store-selector.component.ts","webpack:///./src/app/components/meal-order-system/outlet/view-dish/view-dish.component.css","webpack:///./src/app/components/meal-order-system/outlet/view-dish/view-dish.component.html","webpack:///./src/app/components/meal-order-system/outlet/view-dish/view-dish.component.ts","webpack:///./src/app/components/meal-order-system/outlet/view-menu/view-menu.component.css","webpack:///./src/app/components/meal-order-system/outlet/view-menu/view-menu.component.html","webpack:///./src/app/components/meal-order-system/outlet/view-menu/view-menu.component.ts","webpack:///./src/app/components/meal-order-system/packing-allocation/packing-allocation-editor.component.css","webpack:///./src/app/components/meal-order-system/packing-allocation/packing-allocation-editor.component.html","webpack:///./src/app/components/meal-order-system/packing-allocation/packing-allocation-editor.component.ts","webpack:///./src/app/components/meal-order-system/packing-allocation/packing-allocations-management.component.css","webpack:///./src/app/components/meal-order-system/packing-allocation/packing-allocations-management.component.html","webpack:///./src/app/components/meal-order-system/packing-allocation/packing-allocations-management.component.ts","webpack:///./src/app/components/meal-order-system/packing-process/packing-processs-management.component.css","webpack:///./src/app/components/meal-order-system/packing-process/packing-processs-management.component.html","webpack:///./src/app/components/meal-order-system/packing-process/packing-processs-management.component.ts","webpack:///./src/app/components/meal-order-system/payment-type/payment-type-editor.component.css","webpack:///./src/app/components/meal-order-system/payment-type/payment-type-editor.component.html","webpack:///./src/app/components/meal-order-system/payment-type/payment-type-editor.component.ts","webpack:///./src/app/components/meal-order-system/payment-type/payment-types-management.component.css","webpack:///./src/app/components/meal-order-system/payment-type/payment-types-management.component.html","webpack:///./src/app/components/meal-order-system/payment-type/payment-types-management.component.ts","webpack:///./src/app/components/meal-order-system/restriction-type/restriction-type-editor.component.css","webpack:///./src/app/components/meal-order-system/restriction-type/restriction-type-editor.component.html","webpack:///./src/app/components/meal-order-system/restriction-type/restriction-type-editor.component.ts","webpack:///./src/app/components/meal-order-system/restriction-type/restriction-types-management.component.css","webpack:///./src/app/components/meal-order-system/restriction-type/restriction-types-management.component.html","webpack:///./src/app/components/meal-order-system/restriction-type/restriction-types-management.component.ts","webpack:///./src/app/components/meal-order-system/restriction/restriction-editor.component.css","webpack:///./src/app/components/meal-order-system/restriction/restriction-editor.component.html","webpack:///./src/app/components/meal-order-system/restriction/restriction-editor.component.ts","webpack:///./src/app/components/meal-order-system/restriction/restrictions-management.component.css","webpack:///./src/app/components/meal-order-system/restriction/restrictions-management.component.html","webpack:///./src/app/components/meal-order-system/restriction/restrictions-management.component.ts","webpack:///./src/app/components/meal-order-system/route/route-editor.component.css","webpack:///./src/app/components/meal-order-system/route/route-editor.component.html","webpack:///./src/app/components/meal-order-system/route/route-editor.component.ts","webpack:///./src/app/components/meal-order-system/route/routes-management.component.css","webpack:///./src/app/components/meal-order-system/route/routes-management.component.html","webpack:///./src/app/components/meal-order-system/route/routes-management.component.ts","webpack:///./src/app/components/meal-order-system/staff-type/staff-type-editor.component.css","webpack:///./src/app/components/meal-order-system/staff-type/staff-type-editor.component.html","webpack:///./src/app/components/meal-order-system/staff-type/staff-type-editor.component.ts","webpack:///./src/app/components/meal-order-system/staff-type/staff-types-management.component.css","webpack:///./src/app/components/meal-order-system/staff-type/staff-types-management.component.html","webpack:///./src/app/components/meal-order-system/staff-type/staff-types-management.component.ts","webpack:///./src/app/components/meal-order-system/staff/staff-editor.component.css","webpack:///./src/app/components/meal-order-system/staff/staff-editor.component.html","webpack:///./src/app/components/meal-order-system/staff/staff-editor.component.ts","webpack:///./src/app/components/meal-order-system/staff/staffs-management.component.css","webpack:///./src/app/components/meal-order-system/staff/staffs-management.component.html","webpack:///./src/app/components/meal-order-system/staff/staffs-management.component.ts","webpack:///./src/app/components/meal-order-system/store-info/do-selector/do-selector.component.css","webpack:///./src/app/components/meal-order-system/store-info/do-selector/do-selector.component.html","webpack:///./src/app/components/meal-order-system/store-info/do-selector/do-selector.component.ts","webpack:///./src/app/components/meal-order-system/store-info/inventory-detail/inventory-detail.component.css","webpack:///./src/app/components/meal-order-system/store-info/inventory-detail/inventory-detail.component.html","webpack:///./src/app/components/meal-order-system/store-info/inventory-detail/inventory-detail.component.ts","webpack:///./src/app/components/meal-order-system/store-info/inventory-selector/inventory-selector.component.css","webpack:///./src/app/components/meal-order-system/store-info/inventory-selector/inventory-selector.component.html","webpack:///./src/app/components/meal-order-system/store-info/inventory-selector/inventory-selector.component.ts","webpack:///./src/app/components/meal-order-system/store-info/receive-do/receive-do.component.css","webpack:///./src/app/components/meal-order-system/store-info/receive-do/receive-do.component.html","webpack:///./src/app/components/meal-order-system/store-info/receive-do/receive-do.component.ts","webpack:///./src/app/components/meal-order-system/store-info/store-info-editor.component.css","webpack:///./src/app/components/meal-order-system/store-info/store-info-editor.component.html","webpack:///./src/app/components/meal-order-system/store-info/store-info-editor.component.ts","webpack:///./src/app/components/meal-order-system/store-info/store-infos-management.component.css","webpack:///./src/app/components/meal-order-system/store-info/store-infos-management.component.html","webpack:///./src/app/components/meal-order-system/store-info/store-infos-management.component.ts","webpack:///./src/app/components/meal-order-system/student-group/student-group-editor.component.css","webpack:///./src/app/components/meal-order-system/student-group/student-group-editor.component.html","webpack:///./src/app/components/meal-order-system/student-group/student-group-editor.component.ts","webpack:///./src/app/components/meal-order-system/student-group/student-groups-management.component.css","webpack:///./src/app/components/meal-order-system/student-group/student-groups-management.component.html","webpack:///./src/app/components/meal-order-system/student-group/student-groups-management.component.ts","webpack:///./src/app/components/meal-order-system/student-group/student-selector/student-selector.component.css","webpack:///./src/app/components/meal-order-system/student-group/student-selector/student-selector.component.html","webpack:///./src/app/components/meal-order-system/student-group/student-selector/student-selector.component.ts","webpack:///./src/app/components/meal-order-system/student/create-account-multiple.html","webpack:///./src/app/components/meal-order-system/student/notification-dialog.component.ts","webpack:///./src/app/components/meal-order-system/student/student-calendar/student-calendar.component.css","webpack:///./src/app/components/meal-order-system/student/student-calendar/student-calendar.component.html","webpack:///./src/app/components/meal-order-system/student/student-calendar/student-calendar.component.ts","webpack:///./src/app/components/meal-order-system/student/student-editor.component.css","webpack:///./src/app/components/meal-order-system/student/student-editor.component.html","webpack:///./src/app/components/meal-order-system/student/student-editor.component.ts","webpack:///./src/app/components/meal-order-system/student/students-management.component.css","webpack:///./src/app/components/meal-order-system/student/students-management.component.html","webpack:///./src/app/components/meal-order-system/student/students-management.component.ts","webpack:///./src/app/components/meal-order-system/token-order-bulk/token-order-bulk-editor.component.css","webpack:///./src/app/components/meal-order-system/token-order-bulk/token-order-bulk-editor.component.html","webpack:///./src/app/components/meal-order-system/token-order-bulk/token-order-bulk-editor.component.ts","webpack:///./src/app/components/meal-order-system/token-order-bulk/token-orders-bulk-management.component.css","webpack:///./src/app/components/meal-order-system/token-order-bulk/token-orders-bulk-management.component.html","webpack:///./src/app/components/meal-order-system/token-order-bulk/token-orders-bulk-management.component.ts","webpack:///./src/app/components/meal-order-system/token-order-payment/token-order-payment-thankyou/token-order-payment-thankyou.component.css","webpack:///./src/app/components/meal-order-system/token-order-payment/token-order-payment-thankyou/token-order-payment-thankyou.component.html","webpack:///./src/app/components/meal-order-system/token-order-payment/token-order-payment-thankyou/token-order-payment-thankyou.component.ts","webpack:///./src/app/components/meal-order-system/token-order-payment/token-order-payment.component.css","webpack:///./src/app/components/meal-order-system/token-order-payment/token-order-payment.component.html","webpack:///./src/app/components/meal-order-system/token-order-payment/token-order-payment.component.ts","webpack:///./src/app/components/meal-order-system/token-order/token-order-editor.component.css","webpack:///./src/app/components/meal-order-system/token-order/token-order-editor.component.html","webpack:///./src/app/components/meal-order-system/token-order/token-order-editor.component.ts","webpack:///./src/app/components/meal-order-system/token-order/token-orders-management.component.css","webpack:///./src/app/components/meal-order-system/token-order/token-orders-management.component.html","webpack:///./src/app/components/meal-order-system/token-order/token-orders-management.component.ts","webpack:///./src/app/components/meal-order-system/tracking-status/tracking-status-editor.component.css","webpack:///./src/app/components/meal-order-system/tracking-status/tracking-status-editor.component.html","webpack:///./src/app/components/meal-order-system/tracking-status/tracking-status-editor.component.ts","webpack:///./src/app/components/meal-order-system/tracking-status/tracking-statuss-management.component.css","webpack:///./src/app/components/meal-order-system/tracking-status/tracking-statuss-management.component.html","webpack:///./src/app/components/meal-order-system/tracking-status/tracking-statuss-management.component.ts","webpack:///./src/app/components/meal-order-system/transaction-fee/transaction-fee-editor.component.css","webpack:///./src/app/components/meal-order-system/transaction-fee/transaction-fee-editor.component.html","webpack:///./src/app/components/meal-order-system/transaction-fee/transaction-fee-editor.component.ts","webpack:///./src/app/components/meal-order-system/transaction-fee/transaction-fees-management.component.css","webpack:///./src/app/components/meal-order-system/transaction-fee/transaction-fees-management.component.html","webpack:///./src/app/components/meal-order-system/transaction-fee/transaction-fees-management.component.ts","webpack:///./src/app/components/meal-order-system/voucher-type/voucher-type-editor.component.css","webpack:///./src/app/components/meal-order-system/voucher-type/voucher-type-editor.component.html","webpack:///./src/app/components/meal-order-system/voucher-type/voucher-type-editor.component.ts","webpack:///./src/app/components/meal-order-system/voucher-type/voucher-types-management.component.css","webpack:///./src/app/components/meal-order-system/voucher-type/voucher-types-management.component.html","webpack:///./src/app/components/meal-order-system/voucher-type/voucher-types-management.component.ts","webpack:///./src/app/components/meal-order-system/voucher/voucher-editor.component.css","webpack:///./src/app/components/meal-order-system/voucher/voucher-editor.component.html","webpack:///./src/app/components/meal-order-system/voucher/voucher-editor.component.ts","webpack:///./src/app/components/meal-order-system/voucher/vouchers-management.component.css","webpack:///./src/app/components/meal-order-system/voucher/vouchers-management.component.html","webpack:///./src/app/components/meal-order-system/voucher/vouchers-management.component.ts","webpack:///./src/app/components/meal-order-system/waiver/waiver-editor.component.css","webpack:///./src/app/components/meal-order-system/waiver/waiver-editor.component.html","webpack:///./src/app/components/meal-order-system/waiver/waiver-editor.component.ts","webpack:///./src/app/components/meal-order-system/waiver/waivers-management.component.css","webpack:///./src/app/components/meal-order-system/waiver/waivers-management.component.html","webpack:///./src/app/components/meal-order-system/waiver/waivers-management.component.ts","webpack:///./src/app/components/media-extension/media-extension-editor.component.css","webpack:///./src/app/components/media-extension/media-extension-editor.component.html","webpack:///./src/app/components/media-extension/media-extension-editor.component.ts","webpack:///./src/app/components/media-extension/media-extensions-management.component.css","webpack:///./src/app/components/media-extension/media-extensions-management.component.html","webpack:///./src/app/components/media-extension/media-extensions-management.component.ts","webpack:///./src/app/components/meeting-room/meeting-room.component.css","webpack:///./src/app/components/meeting-room/meeting-room.component.html","webpack:///./src/app/components/meeting-room/meeting-room.component.ts","webpack:///./src/app/components/menu/menu-panel/menu-panel.component.css","webpack:///./src/app/components/menu/menu-panel/menu-panel.component.html","webpack:///./src/app/components/menu/menu-panel/menu-panel.component.ts","webpack:///./src/app/components/menu/sub-menu-panel/sub-menu-panel.component.css","webpack:///./src/app/components/menu/sub-menu-panel/sub-menu-panel.component.html","webpack:///./src/app/components/menu/sub-menu-panel/sub-menu-panel.component.ts","webpack:///./src/app/components/no-navigation_app.component.css","webpack:///./src/app/components/no_navigation_app.component.html","webpack:///./src/app/components/no_navigation_app.component.ts","webpack:///./src/app/components/not-found/not-found.component.css","webpack:///./src/app/components/not-found/not-found.component.html","webpack:///./src/app/components/not-found/not-found.component.ts","webpack:///./src/app/components/occupancy-log/occupancy-log-editor.component.css","webpack:///./src/app/components/occupancy-log/occupancy-log-editor.component.html","webpack:///./src/app/components/occupancy-log/occupancy-log-editor.component.ts","webpack:///./src/app/components/occupancy-log/occupancy-logs-management.component.css","webpack:///./src/app/components/occupancy-log/occupancy-logs-management.component.html","webpack:///./src/app/components/occupancy-log/occupancy-logs-management.component.ts","webpack:///./src/app/components/pib-device-manager/pib-device-manager.component.html","webpack:///./src/app/components/pib-device-manager/pib-device-manager.component.ts","webpack:///./src/app/components/pib-device-manager/pib-device-manager.css","webpack:///./src/app/components/pib-device-manager/pib-unknown-device/pib-device-editor.component.css","webpack:///./src/app/components/pib-device-manager/pib-unknown-device/pib-device-editor.component.html","webpack:///./src/app/components/pib-device-manager/pib-unknown-device/pib-device-editor.component.ts","webpack:///./src/app/components/pib-device-manager/pib-unknown-device/pib-devices-management.component.css","webpack:///./src/app/components/pib-device-manager/pib-unknown-device/pib-devices-management.component.html","webpack:///./src/app/components/pib-device-manager/pib-unknown-device/pib-devices-management.component.ts","webpack:///./src/app/components/playlistCreator/playlist-creator.component.css","webpack:///./src/app/components/playlistCreator/playlist-creator.component.html","webpack:///./src/app/components/playlistCreator/playlist-creator.component.ts","webpack:///./src/app/components/playlistManagement/playlists-management.component.css","webpack:///./src/app/components/playlistManagement/playlists-management.component.html","webpack:///./src/app/components/playlistManagement/playlists-management.component.ts","webpack:///./src/app/components/public-holiday/public-holiday-editor.component.css","webpack:///./src/app/components/public-holiday/public-holiday-editor.component.html","webpack:///./src/app/components/public-holiday/public-holiday-editor.component.ts","webpack:///./src/app/components/public-holiday/public-holidays-management.component.css","webpack:///./src/app/components/public-holiday/public-holidays-management.component.html","webpack:///./src/app/components/public-holiday/public-holidays-management.component.ts","webpack:///./src/app/components/queue-table-map/queue-table-map-editor.component.css","webpack:///./src/app/components/queue-table-map/queue-table-map-editor.component.html","webpack:///./src/app/components/queue-table-map/queue-table-map-editor.component.ts","webpack:///./src/app/components/queue-table-map/queue-table-map-simulator.html","webpack:///./src/app/components/queue-table-map/queue-table-maps-management.component.css","webpack:///./src/app/components/queue-table-map/queue-table-maps-management.component.html","webpack:///./src/app/components/queue-table-map/queue-table-maps-management.component.ts","webpack:///./src/app/components/register/register.component.css","webpack:///./src/app/components/register/register.component.html","webpack:///./src/app/components/register/register.component.ts","webpack:///./src/app/components/reports/report-container/report-container.component.css","webpack:///./src/app/components/reports/report-container/report-container.component.html","webpack:///./src/app/components/reports/report-container/report-container.component.ts","webpack:///./src/app/components/reports/reservations/reservations.component.css","webpack:///./src/app/components/reports/reservations/reservations.component.html","webpack:///./src/app/components/reports/reservations/reservations.component.ts","webpack:///./src/app/components/reports/user-account/user-accounts-management.component.css","webpack:///./src/app/components/reports/user-account/user-accounts-management.component.html","webpack:///./src/app/components/reports/user-account/user-accounts-management.component.ts","webpack:///./src/app/components/reports/user-role/user-roles-management.component.css","webpack:///./src/app/components/reports/user-role/user-roles-management.component.html","webpack:///./src/app/components/reports/user-role/user-roles-management.component.ts","webpack:///./src/app/components/reports/vehicle-logs/vehicle-logs.component.css","webpack:///./src/app/components/reports/vehicle-logs/vehicle-logs.component.html","webpack:///./src/app/components/reports/vehicle-logs/vehicle-logs.component.ts","webpack:///./src/app/components/reservations/picture-editor/picture-editor.component.css","webpack:///./src/app/components/reservations/picture-editor/picture-editor.component.html","webpack:///./src/app/components/reservations/picture-editor/picture-editor.component.ts","webpack:///./src/app/components/reservations/reservation-editor.component.css","webpack:///./src/app/components/reservations/reservation-editor.component.html","webpack:///./src/app/components/reservations/reservation-editor.component.ts","webpack:///./src/app/components/reservations/reservation-picture.component.css","webpack:///./src/app/components/reservations/reservation-picture.component.html","webpack:///./src/app/components/reservations/reservation-picture.component.ts","webpack:///./src/app/components/reservations/reservations.component.css","webpack:///./src/app/components/reservations/reservations.component.html","webpack:///./src/app/components/reservations/reservations.component.ts","webpack:///./src/app/components/reset-password/reset-password.component.css","webpack:///./src/app/components/reset-password/reset-password.component.html","webpack:///./src/app/components/reset-password/reset-password.component.ts","webpack:///./src/app/components/root-app.component.css","webpack:///./src/app/components/root-app.component.html","webpack:///./src/app/components/root-app.component.ts","webpack:///./src/app/components/service-contract/service-contract-editor.component.css","webpack:///./src/app/components/service-contract/service-contract-editor.component.html","webpack:///./src/app/components/service-contract/service-contract-editor.component.ts","webpack:///./src/app/components/service-contract/service-contracts-management.component.css","webpack:///./src/app/components/service-contract/service-contracts-management.component.html","webpack:///./src/app/components/service-contract/service-contracts-management.component.ts","webpack:///./src/app/components/settings/settings.component.css","webpack:///./src/app/components/settings/settings.component.html","webpack:///./src/app/components/settings/settings.component.ts","webpack:///./src/app/components/signage/signage-compilation/signage-compilation-editor.component.css","webpack:///./src/app/components/signage/signage-compilation/signage-compilation-editor.component.html","webpack:///./src/app/components/signage/signage-compilation/signage-compilation-editor.component.ts","webpack:///./src/app/components/signage/signage-compilation/signage-compilations-management.component.css","webpack:///./src/app/components/signage/signage-compilation/signage-compilations-management.component.html","webpack:///./src/app/components/signage/signage-compilation/signage-compilations-management.component.ts","webpack:///./src/app/components/signage/signage-component-types/clock/clock-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/clock/clock-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/clock/clock.component.ts","webpack:///./src/app/components/signage/signage-component-types/emergency-message/emergency-message-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/emergency-message/emergency-message-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/emergency-message/emergency-message.component.ts","webpack:///./src/app/components/signage/signage-component-types/employee-name/employee-name-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/employee-name/employee-name-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/employee-name/employee-name.component.ts","webpack:///./src/app/components/signage/signage-component-types/free-html/free-html-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/free-html/free-html-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/free-html/free-html.component.ts","webpack:///./src/app/components/signage/signage-component-types/free-text/free-text-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/free-text/free-text-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/free-text/free-text.component.ts","webpack:///./src/app/components/signage/signage-component-types/location-name/location-name-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/location-name/location-name-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/location-name/location-name.component.ts","webpack:///./src/app/components/signage/signage-component-types/missed-queue/missed-queue-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/missed-queue/missed-queue-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/missed-queue/missed-queue.component.html","webpack:///./src/app/components/signage/signage-component-types/missed-queue/missed-queue.component.ts","webpack:///./src/app/components/signage/signage-component-types/multi-booking/multi-booking-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/multi-booking/multi-booking-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/multi-booking/multi-booking.component.html","webpack:///./src/app/components/signage/signage-component-types/multi-booking/multi-booking.component.ts","webpack:///./src/app/components/signage/signage-component-types/multi-queue/multi-queue-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/multi-queue/multi-queue-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/multi-queue/multi-queue.component.html","webpack:///./src/app/components/signage/signage-component-types/multi-queue/multi-queue.component.ts","webpack:///./src/app/components/signage/signage-component-types/playlist/playlist-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/playlist/playlist-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/playlist/playlist.component.css","webpack:///./src/app/components/signage/signage-component-types/playlist/playlist.component.html","webpack:///./src/app/components/signage/signage-component-types/playlist/playlist.component.ts","webpack:///./src/app/components/signage/signage-component-types/signage-component-type-wrapper.component.ts","webpack:///./src/app/components/signage/signage-component-types/single-booking/single-booking-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/single-booking/single-booking-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/single-booking/single-booking.component.html","webpack:///./src/app/components/signage/signage-component-types/single-booking/single-booking.component.ts","webpack:///./src/app/components/signage/signage-component-types/single-queue/single-queue-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/single-queue/single-queue-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/single-queue/single-queue.component.ts","webpack:///./src/app/components/signage/signage-component-types/text-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/text-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/text-display.component.ts","webpack:///./src/app/components/signage/signage-component-types/video/video-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/video/video-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/video/video.component.ts","webpack:///./src/app/components/signage/signage-component-types/vjs-player.component.css","webpack:///./src/app/components/signage/signage-component-types/vjs-player.component.ts","webpack:///./src/app/components/signage/signage-component-types/web-frame/web-frame-configuration.component.html","webpack:///./src/app/components/signage/signage-component-types/web-frame/web-frame-configuration.component.ts","webpack:///./src/app/components/signage/signage-component-types/web-frame/web-frame.component.ts","webpack:///./src/app/components/signage/signage-component/signage-component-editor.component.css","webpack:///./src/app/components/signage/signage-component/signage-component-editor.component.html","webpack:///./src/app/components/signage/signage-component/signage-component-editor.component.ts","webpack:///./src/app/components/signage/signage-component/signage-components-management.component.css","webpack:///./src/app/components/signage/signage-component/signage-components-management.component.html","webpack:///./src/app/components/signage/signage-component/signage-components-management.component.ts","webpack:///./src/app/components/signage/signage-display/signage-display.component.css","webpack:///./src/app/components/signage/signage-display/signage-display.component.html","webpack:///./src/app/components/signage/signage-display/signage-display.component.ts","webpack:///./src/app/components/signage/signage-publication/signage-publication-editor.component.css","webpack:///./src/app/components/signage/signage-publication/signage-publication-editor.component.html","webpack:///./src/app/components/signage/signage-publication/signage-publication-editor.component.scss","webpack:///./src/app/components/signage/signage-publication/signage-publication-editor.component.ts","webpack:///./src/app/components/signage/signage-publication/signage-publications-management.component.css","webpack:///./src/app/components/signage/signage-publication/signage-publications-management.component.html","webpack:///./src/app/components/signage/signage-publication/signage-publications-management.component.ts","webpack:///./src/app/components/smartroom-scheduler-log/details-log-viewer.component.css","webpack:///./src/app/components/smartroom-scheduler-log/details-log-viewer.component.html","webpack:///./src/app/components/smartroom-scheduler-log/details-log-viewer.component.ts","webpack:///./src/app/components/smartroom-scheduler-log/smartroom-scheduler-logs-management.component.css","webpack:///./src/app/components/smartroom-scheduler-log/smartroom-scheduler-logs-management.component.html","webpack:///./src/app/components/smartroom-scheduler-log/smartroom-scheduler-logs-management.component.ts","webpack:///./src/app/components/template-editor/pibdisplay/pibdisplay.component.css","webpack:///./src/app/components/template-editor/pibdisplay/pibdisplay.component.html","webpack:///./src/app/components/template-editor/pibdisplay/pibdisplay.component.ts","webpack:///./src/app/components/template-editor/preview/preview.component.css","webpack:///./src/app/components/template-editor/preview/preview.component.html","webpack:///./src/app/components/template-editor/preview/preview.component.ts","webpack:///./src/app/components/template-editor/save-dialog/save-dialog.component.css","webpack:///./src/app/components/template-editor/save-dialog/save-dialog.component.html","webpack:///./src/app/components/template-editor/save-dialog/save-dialog.component.ts","webpack:///./src/app/components/template-editor/template-editor.component.css","webpack:///./src/app/components/template-editor/template-editor.component.html","webpack:///./src/app/components/template-editor/template-editor.component.ts","webpack:///./src/app/components/wayfinder-landscape-view/wayfinder-landscape-view.component.css","webpack:///./src/app/components/wayfinder-landscape-view/wayfinder-landscape-view.component.html","webpack:///./src/app/components/wayfinder-landscape-view/wayfinder-landscape-view.component.ts","webpack:///./src/app/components/wayfinder-view/wayfinder-view.component.css","webpack:///./src/app/components/wayfinder-view/wayfinder-view.component.html","webpack:///./src/app/components/wayfinder-view/wayfinder-view.component.ts","webpack:///./src/app/directives/autofocus.directive.ts","webpack:///./src/app/directives/bootstrap-datepicker.directive.ts","webpack:///./src/app/directives/bootstrap-select.directive.ts","webpack:///./src/app/directives/bootstrap-tab.directive.ts","webpack:///./src/app/directives/bootstrap-toggle.directive.ts","webpack:///./src/app/directives/equal-validator.directive.ts","webpack:///./src/app/directives/last-element.directive.ts","webpack:///./src/app/directives/signage-component-type.directive.ts","webpack:///./src/app/helpers/enums.ts","webpack:///./src/app/helpers/moment-utc-adapter.ts","webpack:///./src/app/material-module.ts","webpack:///./src/app/models/application-setting.model.ts","webpack:///./src/app/models/asset-model.model.ts","webpack:///./src/app/models/asset-type.model.ts","webpack:///./src/app/models/asset.model.ts","webpack:///./src/app/models/building.model.ts","webpack:///./src/app/models/channel-info.model.ts","webpack:///./src/app/models/contactgroup.model.ts","webpack:///./src/app/models/contactgroupmember.model.ts","webpack:///./src/app/models/dashboard.model.ts","webpack:///./src/app/models/department.model.ts","webpack:///./src/app/models/device-type.model.ts","webpack:///./src/app/models/device.model.ts","webpack:///./src/app/models/directory-listing-category.model.ts","webpack:///./src/app/models/directory-listing.model.ts","webpack:///./src/app/models/employee-data.model.ts","webpack:///./src/app/models/employee-designation.model.ts","webpack:///./src/app/models/employee-schedule-shift.model.ts","webpack:///./src/app/models/employee-schedule.model.ts","webpack:///./src/app/models/ems-profile.model.ts","webpack:///./src/app/models/ems-schedule.model.ts","webpack:///./src/app/models/ems.model.ts","webpack:///./src/app/models/enums.ts","webpack:///./src/app/models/epaper.model.ts","webpack:///./src/app/models/facility-type.model.ts","webpack:///./src/app/models/facility.model.ts","webpack:///./src/app/models/floor.model.ts","webpack:///./src/app/models/image-reference-color.model.ts","webpack:///./src/app/models/image-reference-type.model.ts","webpack:///./src/app/models/image.model.ts","webpack:///./src/app/models/institution.model.ts","webpack:///./src/app/models/kiosk-settings.model.ts","webpack:///./src/app/models/line.model.ts","webpack:///./src/app/models/location-tree.model.ts","webpack:///./src/app/models/location.model.ts","webpack:///./src/app/models/map.model.ts","webpack:///./src/app/models/meal-order-payment/address.model.ts","webpack:///./src/app/models/meal-order-payment/body-pay-load.model.ts","webpack:///./src/app/models/meal-order-payment/fomo-payment-response.model.ts","webpack:///./src/app/models/meal-order-payment/order-payment-request.ts","webpack:///./src/app/models/meal-order-payment/order-payment-response.ts","webpack:///./src/app/models/meal-order-payment/order.model.ts","webpack:///./src/app/models/meal-order-payment/payment-item.model.ts","webpack:///./src/app/models/meal-order-payment/payment-options.model.ts","webpack:///./src/app/models/meal-order-payment/payment-result.model.ts","webpack:///./src/app/models/meal-order-payment/token-ordered.model.ts","webpack:///./src/app/models/meal-order-payment/transaction-options.model.ts","webpack:///./src/app/models/meal-order/bento-asset.model.ts","webpack:///./src/app/models/meal-order/bento-box-type.model.ts","webpack:///./src/app/models/meal-order/cancel-order-request.model.ts","webpack:///./src/app/models/meal-order/carton-asset.model.ts","webpack:///./src/app/models/meal-order/carton-type.model.ts","webpack:///./src/app/models/meal-order/caterer-info.model.ts","webpack:///./src/app/models/meal-order/class-batch.model.ts","webpack:///./src/app/models/meal-order/class-level.model.ts","webpack:///./src/app/models/meal-order/class.model.ts","webpack:///./src/app/models/meal-order/contact-us-subject.model.ts","webpack:///./src/app/models/meal-order/cuisine.model.ts","webpack:///./src/app/models/meal-order/delivery-order.model.ts","webpack:///./src/app/models/meal-order/dish-cycle.ts","webpack:///./src/app/models/meal-order/dish-type.model.ts","webpack:///./src/app/models/meal-order/dish.model.ts","webpack:///./src/app/models/meal-order/driver.model.ts","webpack:///./src/app/models/meal-order/email-template.ts","webpack:///./src/app/models/meal-order/interest-group.model.ts","webpack:///./src/app/models/meal-order/meal-period.model.ts","webpack:///./src/app/models/meal-order/meal-session.model.ts","webpack:///./src/app/models/meal-order/meal-type.model.ts","webpack:///./src/app/models/meal-order/menu-cycle.model.ts","webpack:///./src/app/models/meal-order/menu.model.ts","webpack:///./src/app/models/meal-order/notification-event.model.ts","webpack:///./src/app/models/meal-order/outlet-class-roster.model.ts","webpack:///./src/app/models/meal-order/outlet.model.ts","webpack:///./src/app/models/meal-order/payment-type.model.ts","webpack:///./src/app/models/meal-order/restriction-type.model.ts","webpack:///./src/app/models/meal-order/restriction.model.ts","webpack:///./src/app/models/meal-order/route.model.ts","webpack:///./src/app/models/meal-order/staff-type.model.ts","webpack:///./src/app/models/meal-order/staff.model.ts","webpack:///./src/app/models/meal-order/store-info.model.ts","webpack:///./src/app/models/meal-order/store-inventory.model.ts","webpack:///./src/app/models/meal-order/student-group.model.ts","webpack:///./src/app/models/meal-order/student.model.ts","webpack:///./src/app/models/meal-order/token-order.model.ts","webpack:///./src/app/models/meal-order/tracking-status.model.ts","webpack:///./src/app/models/meal-order/transaction-fee.model.ts","webpack:///./src/app/models/meal-order/voucher-type.model.ts","webpack:///./src/app/models/meal-order/voucher.model.ts","webpack:///./src/app/models/meal-order/waiver.model.ts","webpack:///./src/app/models/media-extension.model.ts","webpack:///./src/app/models/media.model.ts","webpack:///./src/app/models/menu.model.ts","webpack:///./src/app/models/module.model.ts","webpack:///./src/app/models/notification.model.ts","webpack:///./src/app/models/occupancy-log.model.ts","webpack:///./src/app/models/permission.model.ts","webpack:///./src/app/models/playlist.model.ts","webpack:///./src/app/models/point.model.ts","webpack:///./src/app/models/public-holiday.model.ts","webpack:///./src/app/models/queue-table-map-group.model.ts","webpack:///./src/app/models/reservation.model.ts","webpack:///./src/app/models/reservationtime.model.ts","webpack:///./src/app/models/role.model.ts","webpack:///./src/app/models/service-contract.model.ts","webpack:///./src/app/models/sieve-filter.model.ts","webpack:///./src/app/models/signage-compilation.model.ts","webpack:///./src/app/models/signage-component-type.model.ts","webpack:///./src/app/models/signage-component.model.ts","webpack:///./src/app/models/signage-publication.model.ts","webpack:///./src/app/models/signage-schedule.model.ts","webpack:///./src/app/models/user-edit.model.ts","webpack:///./src/app/models/user-login.model.ts","webpack:///./src/app/models/user.model.ts","webpack:///./src/app/models/userGroup.model.ts","webpack:///./src/app/models/usercardid.model.ts","webpack:///./src/app/models/userphonebook.model.ts","webpack:///./src/app/models/userreward.model.ts","webpack:///./src/app/models/uservehicle.model.ts","webpack:///./src/app/models/userwallet.model.ts","webpack:///./src/app/pipes/datetime.pipe.ts","webpack:///./src/app/pipes/group-by.pipe.ts","webpack:///./src/app/services/account-endpoint.service.ts","webpack:///./src/app/services/account.service.ts","webpack:///./src/app/services/alert.service.ts","webpack:///./src/app/services/animations.ts","webpack:///./src/app/services/app-title.service.ts","webpack:///./src/app/services/app-translation.service.ts","webpack:///./src/app/services/application-setting.service.ts","webpack:///./src/app/services/asset.service.ts","webpack:///./src/app/services/audit.service.ts","webpack:///./src/app/services/auth-guard.service.ts","webpack:///./src/app/services/auth.service.ts","webpack:///./src/app/services/booking.service.ts","webpack:///./src/app/services/building.service.ts","webpack:///./src/app/services/calendar.service.ts","webpack:///./src/app/services/channel-info.service.ts","webpack:///./src/app/services/common-endpoint.service.ts","webpack:///./src/app/services/configuration.service.ts","webpack:///./src/app/services/contactgroup.service.ts","webpack:///./src/app/services/dashboard.service.ts","webpack:///./src/app/services/db-Keys.ts","webpack:///./src/app/services/department.service.ts","webpack:///./src/app/services/device.service.ts","webpack:///./src/app/services/directory-listing-category.service.ts","webpack:///./src/app/services/directory-listing.service.ts","webpack:///./src/app/services/emailqueue.service.ts","webpack:///./src/app/services/employee-data.service.ts","webpack:///./src/app/services/employee-designation.service.ts","webpack:///./src/app/services/employee-schedule.service.ts","webpack:///./src/app/services/ems-profile.service.ts","webpack:///./src/app/services/ems-schedule.service.ts","webpack:///./src/app/services/ems.service.ts","webpack:///./src/app/services/endpoint-factory.service.ts","webpack:///./src/app/services/epaper.service.ts","webpack:///./src/app/services/facility-type.service.ts","webpack:///./src/app/services/facility.service.ts","webpack:///./src/app/services/file.service.ts","webpack:///./src/app/services/floor.service.ts","webpack:///./src/app/services/image-file.service.ts","webpack:///./src/app/services/image-reference-color.service.ts","webpack:///./src/app/services/image-reference-type.service.ts","webpack:///./src/app/services/institution.service.ts","webpack:///./src/app/services/jwt-helper.ts","webpack:///./src/app/services/kiosk-settings.service.ts","webpack:///./src/app/services/local-store-manager.service.ts","webpack:///./src/app/services/location.service.ts","webpack:///./src/app/services/map.service.ts","webpack:///./src/app/services/meal-order-payment/api.service.ts","webpack:///./src/app/services/meal-order/class.service.ts","webpack:///./src/app/services/meal-order/delivery.service.ts","webpack:///./src/app/services/meal-order/dish.service.ts","webpack:///./src/app/services/meal-order/email.service.ts","webpack:///./src/app/services/meal-order/meal.service.ts","webpack:///./src/app/services/meal-order/menu.service.ts","webpack:///./src/app/services/meal-order/payment.service.ts","webpack:///./src/app/services/meal-order/restriction.service.ts","webpack:///./src/app/services/meal-order/staff.service.ts","webpack:///./src/app/services/meal-order/student.service.ts","webpack:///./src/app/services/meal-order/user.service.ts","webpack:///./src/app/services/media-extension.service.ts","webpack:///./src/app/services/media.service.ts","webpack:///./src/app/services/module.service.ts","webpack:///./src/app/services/notification-endpoint.service.ts","webpack:///./src/app/services/notification.service.ts","webpack:///./src/app/services/occupancy-log.service.ts","webpack:///./src/app/services/pib.service.ts","webpack:///./src/app/services/playlist.service.ts","webpack:///./src/app/services/queue-table-map.service.ts","webpack:///./src/app/services/reservation.service.ts","webpack:///./src/app/services/service-contract.service.ts","webpack:///./src/app/services/shape.service.ts","webpack:///./src/app/services/signage-compilation.service.ts","webpack:///./src/app/services/signage-component-type.service.ts","webpack:///./src/app/services/signage-component.service.ts","webpack:///./src/app/services/signage-publication.service.ts","webpack:///./src/app/services/smartroom.service.ts","webpack:///./src/app/services/text-node.service.ts","webpack:///./src/app/services/userGroup.service.ts","webpack:///./src/app/services/utilities.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts","webpack:///min-document (ignored)","webpack:///zlib (ignored)","webpack:///fs (ignored)","webpack:///http (ignored)","webpack:///https (ignored)","webpack:///url (ignored)"],"names":[],"mappings":"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AG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;;;;;;AC/Ia;AACb,kBAAkB,mBAAO,CAAC,wEAAiB;AAC3C,cAAc,mBAAO,CAAC,wDAAS;AAC/B,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC,YAAY,mBAAO,CAAC,4DAAW;AAC/B,wBAAwB,mBAAO,CAAC,0EAAkB;AAClD,WAAW,mBAAO,CAAC,sDAAQ;AAC3B,eAAe,mBAAO,CAAC,sFAAwB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;ACpFa;AACb,aAAa,mBAAO,CAAC,4DAAW;AAChC,cAAc,mBAAO,CAAC,4DAAW;AACjC,eAAe,mBAAO,CAAC,gEAAa;AACpC,kBAAkB,mBAAO,CAAC,wEAAiB;AAC3C,WAAW,mBAAO,CAAC,wDAAS;AAC5B,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A;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;ACpEA,eAAe,mBAAO,CAAC,sDAAQ;AAC/B;;AAEA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iCAAiC,SAAS,EAAE;AAC5C,CAAC,YAAY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;AAC3D,iCAAiC,aAAa;AAC9C;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;;;;;ACrBA;AACA,UAAU;AACV;;;;;;;;;;;;ACFA;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA,WAAW,mBAAO,CAAC,sDAAQ;AAC3B,eAAe,mBAAO,CAAC,kEAAc;AACrC,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,cAAc,mBAAO,CAAC,kEAAc;AACpC;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,0DAAU;AAChC,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDA,UAAU,mBAAO,CAAC,4DAAW;AAC7B,cAAc,mBAAO,CAAC,4DAAW;AACjC,aAAa,mBAAO,CAAC,4DAAW;AAChC,iDAAiD,mBAAO,CAAC,sEAAgB;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClDa;AACb;AACA,cAAc,mBAAO,CAAC,sEAAgB;AACtC,WAA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;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;;;;;;;;;;;ACdH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;AC9QA,uC;;;;;;;;;;;;ACAA,kEAAa;AACb;AACA,4EAA4E,OAAO;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAA0C,GAAG,oCAAO,OAAO;AAAA;AAAA;AAAA;AAAA,oGAAC;AAChE,QAAQ,SAAS;AACjB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kBAAkB;AAC7D,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qEAAqE,+CAA+C,EAAE;AACtH,kEAAkE,4CAA4C,EAAE;AAChH,sFAAsF,gEAAgE,EAAE;AACxJ,gEAAgE,0CAA0C;AAC1G;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B,EAAE;AACvE;AACA;AACA;AACA,4CAA4C,6DAA6D,EAAE;AAC3G,2CAA2C,WAAW,EAAE;AACxD;AACA,sCAAsC,aAAa,EAAE;AACrD,wCAAwC,WAAW,EAAE;AACrD,oCAAoC,aAAa,EAAE;AACnD,yCAAyC,aAAa,EAAE;AACxD,8CAA8C,aAAa,EAAE;AAC7D,qCAAqC,cAAc,EAAE;AACrD,2CAA2C,kBAAkB,EAAE;AAC/D,+CAA+C,aAAa,EAAE;AAC9D,yDAAyD,kBAAkB,EAAE;AAC7E,uCAAuC,kBAAkB,EAAE;AAC3D,qCAAqC,WAAW,EAAE;AAClD,qCAAqC,aAAa,EAAE;AACpD,8CAA8C,aAAa,EAAE;AAC7D,2CAA2C,WAAW,EAAE;AACxD,gDAAgD,aAAa,EAAE;AAC/D,4CAA4C,aAAa,EAAE;AAC3D,yCAAyC,aAAa,EAAE;AACxD;AACA;AACA,iCAAiC;AACjC;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gIAAgI,wBAAwB,oCAAoC;AAC5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,sEAAsE;AAC1J;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAoD;AAChG;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,yEAAyE,gBAAgB;AACzF,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qBAAqB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sBAAsB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU,oCAAoC,EAAE,EAAE;AACtG,mDAAmD,UAAU,kCAAkC,EAAE;AACjG,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sBAAsB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,0BAA0B,EAAE;AAC1F;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,oCAAoC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,yDAAyD,aAAa,gBAAgB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sBAAsB;AACpE,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA;AACA,cAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,6BAA6B,EAAE;AACxF;AACA;AACA;AACA;AACA,kDAAkD,kDAAkD,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iDAAiD,EAAE;AACxF,kCAAkC,0BAA0B,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wDAAwD;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,sEAAsE,gBAAgB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,0BAA0B,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,+BAA+B,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,EAAE;AAChB;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sBAAsB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA,cAAc,EAAE;AAChB;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,EAAE;AAChB,yFAAyF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,EAAE;AAChB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,0CAA0C;AAChH;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;;;;;;;;;;;ACh8GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,4E;;;;;;;;;;;;;;;;;;;;;;;;ACZyD;AAKzD,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,0DAAY;IAE7C,qCAAqC;IAErC;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAGD,WAAW,CAAC,KAAU;QAClB,kCAAkC;QAClC,0DAA0D;QAC1D,GAAG;QAEH,6JAA6J;QAC7J,wGAAwG;QAExG,2IAA2I;QAC3I,mCAAmC;QAEnC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;CACJ;AAtBY,eAAe;IAD3B,gEAAU,EAAE;;GACA,eAAe,CAsB3B;AAtB2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLa;AACsC;AAEX;AACH;AACwB;AACZ;AAEM;AACK;AAGlC;AACI;AACoC;AACG;AACpB;AACoB;AACH;AACT;AACkB;AACqB;AACH;AAExB;AACmC;AAC/B;AAC3C;AAC0B;AACP;AAC+B;AACT;AACkB;AACiB;AACM;AAC7C;AACM;AACO;AACgC;AACnC;AACc;AAC9B;AAC6B;AACb;AACY;AACzB;AACA;AACsB;AACC;AACS;AACN;AAClB;AACgC;AACnB;AACU;AAC3B;AACT;AACuC;AACS;AACrB;AACd;AAChB;AAC0B;AAC0C;AAC1B;AACnC;AACN;AAC6B;AACX;AACiB;AACf;AACA;AACsC;AACG;AACpE;AACiE;AAC7B;AACG;AACM;AACvB;AACV;AAC2B;AACM;AACrB;AACe;AACS;AACf;AACI;AACiB;AACvB;AACc;AACkB;AACd;AACP;AACA;AACM;AAChB;AACH;AACgB;AACM;AACK;AACR;AACA;AACG;AACS;AACH;AACG;AACV;AACf;AACD;AACuB;AACpB;AACW;AACH;AACA;AACe;AACH;AACvB;AACH;AAEwB;AACF;AACI;AACZ;AACoB;AAChB;AACP;AAEoD;AAClC;AACT;AACd;AACc;AACjB;AAC+B;AACG;AACX;AACY;AACK;AAClB;AAC1B;AACiB;AACR;AACkB;AACf;AAC2B;AAC/B;AAKpH,MAAM,MAAM,GAAW;IACrB,4FAA4F;IAC5F,yEAAyE;IACzE,kFAAkF;IAClF,iGAAiG;IACjG,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AC2D;AACL;AAC1B;AACgB;AACU;AACC;AAClB;AACnD;AACO;AACkC;AAC7C;AACqB;AAC4B;AACY;AACmB;AACV;AACjB;AACrB;AACjB;AACqB;AACJ;AACe;AACtB;AACmD;AACZ;AACR;AAClD;AAC6E;AACV;AACjB;AACT;AACa;AACJ;AACH;AACY;AACtC;AACuD;AACvC;AACM;AACO;AACgB;AACpC;AACqD;AACZ;AACnC;AACQ;AACgB;AAC3B;AACiD;AACV;AAC/C;AACyD;AACV;AAC/C;AACsB;AACa;AAC3B;AACY;AACmB;AACU;AAChC;AACV;AACP;AAC3B;AAC8E;AAC3B;AACG;AACgC;AACU;AACxD;AACoB;AACU;AAC/C;AACqB;AACV;AACgB;AAClD;AACM;AAC6B;AACV;AACzB;AACJ;AACuB;AACU;AACoE;AAC3B;AACtB;AACU;AAC3C;AACsC;AACkC;AACrE;AACgE;AAC3B;AACD;AACjB;AACnC;AAC6C;AACa;AACmB;AACV;AACU;AAClD;AACmB;AACU;AAC3C;AAC6C;AACU;AAC/C;AACqC;AACF;AAC2B;AACA;AAC3B;AACzB;AAC6B;AAChB;AACA;AAEnC;AACuE;AAC3B;AAC1D;AAC2C;AACZ;AACjB;AACmF;AACpC;AACV;AACxC;AACK;AACjB;AACmC;AACW;AACR;AACW;AACW;AACP;AACkB;AAC1D;AACsB;AACW;AACzB;AACrB;AAC2C;AACzC;AACqB;AACmC;AACU;AACvE;AACwD;AACA;AACjD;AACuC;AACsC;AACU;AAC3D;AAC8D;AACV;AAClD;AAClC;AAC2F;AACtE;AACoD;AACmB;AAC3B;AACnB;AAC2C;AAC3B;AACA;AACV;AACa;AACV;AACnD;AACqB;AAC8C;AACV;AACvB;AACgC;AACrB;AACD;AAC6B;AAC3B;AACe;AACnD;AACyD;AAC5E;AAC4D;AACU;AACf;AAC2B;AAC1D;AACJ;AACuE;AACN;AACrB;AACe;AACrB;AACiB;AACU;AAChB;AACjB;AAClC;AACE;AACgC;AACU;AACI;AACU;AACkB;AACV;AACd;AACU;AAChD;AAC+B;AACA;AACM;AACnD;AACA;AACuD;AACA;AACM;AAC5B;AACY;AACb;AACmB;AACnD;AAC0C;AACmB;AACc;AACV;AACS;AACtB;AAC+B;AACX;AACxB;AACU;AACM;AACV;AACK;AACU;AAC7D;AAC2C;AACiC;AACjC;AACU;AACP;AACU;AACD;AACU;AACb;AACU;AACG;AACV;AACZ;AACA;AACH;AACD;AACV;AACuB;AACN;AACN;AAC0B;AAC7B;AACgC;AAC5B;AACH;AACkB;AACM;AACA;AACV;AACpB;AACU;AACF;AACU;AACA;AACe;AACb;AACU;AACjC;AACU;AACb;AACU;AACiB;AACO;AACF;AACd;AACc;AACZ;AACa;AACA;AACG;AACtB;AACU;AACoB;AAC1B;AACU;AACR;AACT;AACU;AACnD;AACuG;AAC9C;AACgB;AACb;AACV;AACmB;AACV;AACzD;AACgD;AACd;AACwB;AACd;AACb;AACU;AAE+B;AACV;AACG;AACrE;AAC+E;AACX;AACV;AACF;AACc;AACU;AACzB;AACoB;AACU;AAC5C;AAC0B;AACJ;AACL;AAClB;AACU;AACvD;AACyE;AACf;AAC2B;AAC/B;AAK7G,MAAM,aAAa,GAAG,CAAC,aAAmC,EAAE,EAAE;IACnE,OAAO,GAAG,EAAE;QACV,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3B,aAAa,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC,CAAC;AAqXF,IAAa,SAAS,GAAtB,MAAa,SAAS;CACrB;AADY,SAAS;IAnXrB,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,uEAAa;YACb,4FAAuB;YACvB,qEAAgB;YAChB,0DAAW;YACX,kEAAmB;YACnB,qEAAkB,EAAE,yEAAe;YACnC,iEAAc;YACd,qEAAgB;YAChB,aAAa;YACb,qEAAe;YACf,mEAAkB,CAAC,OAAO,EAAE;YAC5B,oEAAe,CAAC,OAAO,CAAC;gBACtB,MAAM,EAAE;oBACN,OAAO,EAAE,oEAAe;oBACxB,QAAQ,EAAE,0FAAuB;iBAClC;aACF,CAAC;YACF,mEAAkB;YAClB,2EAAkB;YAClB,wDAAY,CAA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AACA,mBAAmB,gCAAgC;AACnD;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,gDAAgD,SAAS;AACzD,wGAAwG,IAAI;AAC5G,wFAAwF,IAAI;AAC5F,gGAAgG,QAAQ;AACxG,IAAI;AACJ;AACA,8CAA8C,SAAS;AACvD,6CAA6C,OAAO,KAAK,SAAS;AAClE;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,uCAAuC,SAAS;;AAEhD;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,4BAA4B,SAAS;AACrC,4BAA4B,IAAI,8BAA8B,QAAQ;AACtE;AACA;AACA,4BAA4B,SAAS;AACrC,4BAA4B,IAAI,8BAA8B,QAAQ;AACtE;AACA;AACA,4BAA4B,SAAS;AACrC,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB,EAAE;AACjD,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,2FAA2F;AAC3G;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,uDAAuD,KAAK;AAC5D;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAsD,EAAE;AACnF;AACA,IAAI;;AAEJ;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA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AAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,qFAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,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CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,6EAAe,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,6EAAe,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACj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AAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,6EAAe,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,6EAAe,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,6EAAe,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,6EAAe,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,6EAAe,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;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C,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,IAAI,6EAAe,CAAC,EAAE,EAAE,OAAO,EAAE,OA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","file":"main.js","sourcesContent":["require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.6.1' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","// extracted by mini-css-extract-plugin","'use strict';\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n/**\n * @license Angular v14.0.0-next.5\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n})((function () {\n 'use strict';\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n ((function (global) {\n var performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n var symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) {\n return symbolPrefix + name;\n }\n var checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n var Zone = /** @class */ (function () {\n function Zone(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Zone, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: false,\n configurable: true\n });\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__load_patch = function (name, fn, ignoreDuplicate) {\n if (ignoreDuplicate === void 0) { ignoreDuplicate = false; }\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n var perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n };\n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n var newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(\"can not reschedule task to \".concat(this.name, \" which is descendants of the original zone \").concat(task.zone.name));\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n return Zone;\n }());\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); },\n onScheduleTask: function (delegate, _, target, task) { return delegate.scheduleTask(target, task); },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); },\n onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); }\n };\n var _ZoneDelegate = /** @class */ (function () {\n function _ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n _ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n _ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n _ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n _ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n _ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n _ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n _ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n };\n _ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n };\n // tslint:disable-next-line:require-internal-with-underscore\n _ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n };\n return _ZoneDelegate;\n }());\n var ZoneTask = /** @class */ (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n var self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n ZoneTask.invokeTask = function (task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n Object.defineProperty(ZoneTask.prototype, \"zone\", {\n get: function () {\n return this._zone;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: false,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n // tslint:disable-next-line:require-internal-with-underscore\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(\"\".concat(this.type, \" '\").concat(this.source, \"': can not transition to '\").concat(toState, \"', expecting state '\").concat(fromState1, \"'\").concat(fromState2 ? ' or \\'' + fromState2 + '\\'' : '', \", was '\").concat(this._state, \"'.\"));\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n };\n return ZoneTask;\n }());\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n var nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var patches = {};\n var _api = {\n symbol: __symbol__,\n currentZoneFrame: function () { return _currentZoneFrame; },\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; },\n patchEventTarget: function () { return []; },\n patchOnProperties: noop,\n patchMethod: function () { return noop; },\n bindArguments: function () { return []; },\n patchThen: function () { return noop; },\n patchMacroTask: function () { return noop; },\n patchEventPrototype: function () { return noop; },\n isIEOrEdge: function () { return false; },\n getGlobalObjects: function () { return undefined; },\n ObjectDefineProperty: function () { return noop; },\n ObjectGetOwnPropertyDescriptor: function () { return undefined; },\n ObjectCreate: function () { return undefined; },\n ArraySlice: function () { return []; },\n patchClass: function () { return noop; },\n wrapWithCurrentZone: function () { return noop; },\n filterProperties: function () { return []; },\n attachOriginToPatched: function () { return noop; },\n _redefineProperty: function () { return noop; },\n patchCallbacks: function () { return noop; },\n nativeScheduleMicroTask: nativeScheduleMicroTask\n };\n var _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n var _currentTask = null;\n var _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n }))(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n /// \n // issue #989, to reduce bundle size, use short name\n /** Object.getOwnPropertyDescriptor */\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n /** Object.defineProperty */\n var ObjectDefineProperty = Object.defineProperty;\n /** Object.getPrototypeOf */\n var ObjectGetPrototypeOf = Object.getPrototypeOf;\n /** Object.create */\n var ObjectCreate = Object.create;\n /** Array.prototype.slice */\n var ArraySlice = Array.prototype.slice;\n /** addEventListener string const */\n var ADD_EVENT_LISTENER_STR = 'addEventListener';\n /** removeEventListener string const */\n var REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n /** zoneSymbol addEventListener */\n var ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n /** zoneSymbol removeEventListener */\n var ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n /** true string const */\n var TRUE_STR = 'true';\n /** false string const */\n var FALSE_STR = 'false';\n /** Zone symbol prefix string const. */\n var ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\n function wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n }\n function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n }\n var zoneSymbol$1 = Zone.__symbol__;\n var isWindowExists = typeof window !== 'undefined';\n var internalWindow = isWindowExists ? window : undefined;\n var _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\n var REMOVE_ATTRIBUTE = 'removeAttribute';\n function bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n }\n function patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function (i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1);\n if (!isPropertyWritable(prototypeDesc)) {\n return \"continue\";\n }\n prototype[name_1] = (function (delegate) {\n var patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n }\n function isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n }\n var isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\n var isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n // we are in electron of nw, so we are both browser and nodejs\n // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n // this code.\n var isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\n var zoneSymbolEventNames$1 = {};\n var wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n var eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol$1('ON_PROPERTY' + event.type);\n }\n var target = this || event.target || _global;\n var listener = target[eventNameSymbol];\n var result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signiture\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n var errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n };\n function patchProperty(obj, prop, prototype) {\n var desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n var onPropPatchedSymbol = zoneSymbol$1('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n var originalDescGet = desc.get;\n var originalDescSet = desc.set;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol$1('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n var previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n var target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n var listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n var value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n }\n function patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n }\n var originalInstanceKey = zoneSymbol$1('originalInstance');\n // wrap some native API on `window`\n function patchClass(className) {\n var OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol$1(className)] = OriginalClass;\n _global[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n }\n function patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol$1(name);\n var delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n var patchDelegate_1 = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate_1(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n }\n // TODO: @JiaLiPassion, support cancel task later if necessary\n function patchMacroTask(obj, funcName, metaCreator) {\n var setNative = null;\n function scheduleTask(task) {\n var data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) {\n var meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n }; });\n }\n function attachOriginToPatched(patched, original) {\n patched[zoneSymbol$1('OriginalDelegate')] = original;\n }\n var isDetectedIEOrEdge = false;\n var ieOrEdge = false;\n function isIE() {\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n }\n function isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n var ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) {\n var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n var className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n var __symbol__ = api.symbol;\n var _uncaughtPromiseErrors = [];\n var isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var creationTrace = '__creationTrace__';\n api.onUnhandledError = function (e) {\n if (api.showUncaughtError()) {\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = function () {\n var _loop_2 = function () {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_2();\n }\n };\n var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var symbolFinally = __symbol__('finally');\n var symbolParentPromiseValue = __symbol__('parentPromiseValue');\n var symbolParentPromiseState = __symbol__('parentPromiseState');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n var TYPE_ERROR = 'Promise resolved with itself';\n var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n var trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n var uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var promiseState = promise[symbolState];\n var delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected :\n forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n var parentPromiseValue = promise[symbolValue];\n var isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n var noop = function () { };\n var AggregateError = global.AggregateError;\n var ZoneAwarePromise = /** @class */ (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return ZONE_AWARE_PROMISE_TO_STRING;\n };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.any = function (values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n var promises = [];\n var count = 0;\n try {\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var v = values_1[_i];\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n var finished = false;\n var errors = [];\n return new ZoneAwarePromise(function (resolve, reject) {\n for (var i = 0; i < promises.length; i++) {\n promises[i].then(function (v) {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, function (err) {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n };\n ;\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n return ZoneAwarePromise.allWithCallback(values);\n };\n ZoneAwarePromise.allSettled = function (values) {\n var P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: function (value) { return ({ status: 'fulfilled', value: value }); },\n errorCallback: function (err) { return ({ status: 'rejected', reason: err }); }\n });\n };\n ZoneAwarePromise.allWithCallback = function (values, callback) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n var unresolvedCount = 2;\n var valueIndex = 0;\n var resolvedValues = [];\n var _loop_3 = function (value) {\n if (!isThenable(value)) {\n value = this_1.resolve(value);\n }\n var curValueIndex = valueIndex;\n try {\n value.then(function (value) {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, function (err) {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n };\n var this_1 = this;\n for (var _i = 0, values_3 = values; _i < values_3.length; _i++) {\n var value = values_3[_i];\n _loop_3(value);\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n };\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.toStringTag, {\n get: function () {\n return 'Promise';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ZoneAwarePromise.prototype, Symbol.species, {\n get: function () {\n return ZoneAwarePromise;\n },\n enumerable: false,\n configurable: true\n });\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n ZoneAwarePromise.prototype.finally = function (onFinally) {\n var C = this.constructor[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n var chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n var resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', function (delegate) { return zoneify(delegate); });\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n });\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // override Function.prototype.toString to make zone.js patched function\n // look like native function\n Zone.__load_patch('toString', function (global) {\n // patch Func.prototype.toString to let them look like native\n var originalFunctionToString = Function.prototype.toString;\n var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol$1('OriginalDelegate');\n var PROMISE_SYMBOL = zoneSymbol$1('Promise');\n var ERROR_SYMBOL = zoneSymbol$1('Error');\n var newFunctionToString = function toString() {\n if (typeof this === 'function') {\n var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n var nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n var nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n var originalObjectToString = Object.prototype.toString;\n var PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n });\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var passiveSupported = false;\n if (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n }\n // an identifier to tell ZoneTask do not create a new invoke closure\n var OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n };\n var zoneSymbolEventNames = {};\n var globalSources = {};\n var EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\n var IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol$1('propagationStopped');\n function prepareEventNames(eventName, eventNameToString) {\n var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n function patchEventTarget(_global, api, apis, patchOptions) {\n var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n var zoneSymbolAddEventListener = zoneSymbol$1(ADD_EVENT_LISTENER);\n var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n var PREPEND_EVENT_LISTENER = 'prependListener';\n var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n var invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n var delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = function (event) { return delegate.handleEvent(event); };\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n var error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n var options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n var target = context || event.target || _global;\n var tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n var errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n var err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n var copyTasks = tasks.slice();\n for (var i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n var err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n var _loop_4 = function (i) {\n var err = errors[i];\n api.nativeScheduleMicroTask(function () {\n throw err;\n });\n };\n for (var i = 0; i < errors.length; i++) {\n _loop_4(i);\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n var globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n var globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n var useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n var validateHandler = patchOptions && patchOptions.vh;\n var checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n var returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n var proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n var eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n var taskData = {};\n var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n var nativeRemoveEventListener = proto[zoneSymbol$1(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n var nativeListeners = proto[zoneSymbol$1(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n var nativeRemoveAllListeners = proto[zoneSymbol$1(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n var nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol$1(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return Object.assign(Object.assign({}, options), { passive: true });\n }\n return options;\n }\n var customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n var customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n var symbolEventNames = zoneSymbolEventNames[task.eventName];\n var symbolEventName = void 0;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n var customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n var customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n var compareTaskCallbackVsDelegate = function (task, delegate) {\n var typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n var unpatchedEvents = Zone[zoneSymbol$1('UNPATCHED_EVENTS')];\n var passiveEvents = _global[zoneSymbol$1('PASSIVE_EVENTS')];\n var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) {\n if (returnTarget === void 0) { returnTarget = false; }\n if (prepend === void 0) { prepend = false; }\n return function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n var isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n var passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n var options = buildEventListenerOptions(arguments[2], passive);\n if (unpatchedEvents) {\n // check upatched list\n for (var i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var once = options && typeof options === 'object' ? options.once : false;\n var zone = Zone.current;\n var symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n var symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n var existingTasks = target[symbolEventName];\n var isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (var i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n var source;\n var constructorName = target.constructor['name'];\n var targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var options = arguments[2];\n var capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n var delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n var symbolEventNames = zoneSymbolEventNames[eventName];\n var symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n var existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (var i = 0; i < existingTasks.length; i++) {\n var existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n var onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var listeners = [];\n var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (var i = 0; i < tasks.length; i++) {\n var task = tasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n var target = this || _global;\n var eventName = arguments[0];\n if (!eventName) {\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n var symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n var symbolEventName = symbolEventNames[FALSE_STR];\n var symbolCaptureEventName = symbolEventNames[TRUE_STR];\n var tasks = target[symbolEventName];\n var captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n var removeTasks = tasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n var removeTasks = captureTasks.slice();\n for (var i = 0; i < removeTasks.length; i++) {\n var task = removeTasks[i];\n var delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n var results = [];\n for (var i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n }\n function findEventTasks(target, eventName) {\n if (!eventName) {\n var foundTasks = [];\n for (var prop in target) {\n var match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n var evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n var tasks = target[prop];\n if (tasks) {\n for (var i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n var symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n var captureFalseTasks = target[symbolEventName[FALSE_STR]];\n var captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n }\n function patchEventPrototype(global, api) {\n var Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n }; });\n }\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCallbacks(api, target, targetName, method, callbacks) {\n var symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n var nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = \"\".concat(targetName, \".\").concat(method, \"::\") + callback;\n var prototype = opts.prototype;\n if (prototype.hasOwnProperty(callback)) {\n var descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n var tip = ignoreProperties.filter(function (ip) { return ip.target === target; });\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n var targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; });\n }\n function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n var filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n }\n /**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\n function getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter(function (name) { return name.startsWith('on') && name.length > 2; })\n .map(function (name) { return name.substring(2); });\n }\n function propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n var ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n var patchTargets = [];\n if (isBrowser) {\n var internalWindow_1 = window;\n patchTargets = patchTargets.concat([\n 'Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement',\n 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker'\n ]);\n var ignoreErrorProperties = isIE() ? [{ target: internalWindow_1, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow_1, getOnEventNames(internalWindow_1), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow_1));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest',\n 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket'\n ]);\n for (var i = 0; i < patchTargets.length; i++) {\n var target = _global[patchTargets[i]];\n target && target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('util', function (global, Zone, api) {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n var eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n var SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = function () { return ({\n globalSources: globalSources,\n zoneSymbolEventNames: zoneSymbolEventNames,\n eventNames: eventNames,\n isBrowser: isBrowser,\n isMix: isMix,\n isNode: isNode,\n TRUE_STR: TRUE_STR,\n FALSE_STR: FALSE_STR,\n ZONE_SYMBOL_PREFIX: ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR: ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR: REMOVE_EVENT_LISTENER_STR\n }); };\n });\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\n var zoneSymbol;\n var _defineProperty;\n var _getOwnPropertyDescriptor;\n var _create;\n var unconfigurablesKey;\n function propertyPatch() {\n zoneSymbol = Zone.__symbol__;\n _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty;\n _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\n _create = Object.create;\n unconfigurablesKey = zoneSymbol('unconfigurables');\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) {\n Object.defineProperty(obj, prop, props[prop]);\n });\n for (var _i = 0, _a = Object.getOwnPropertySymbols(props); _i < _a.length; _i++) {\n var sym = _a[_i];\n var desc = Object.getOwnPropertyDescriptor(props, sym);\n // Since `Object.getOwnPropertySymbols` returns *all* symbols,\n // including non-enumberable ones, retrieve property descriptor and check\n // enumerability there. Proceed with the rewrite only when a property is\n // enumberable to make the logic consistent with the way regular\n // properties are retrieved (via `Object.keys`, which respects\n // `enumerable: false` flag). More information:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties#retrieval\n if (desc === null || desc === void 0 ? void 0 : desc.enumerable) {\n Object.defineProperty(obj, sym, props[sym]);\n }\n }\n return obj;\n };\n Object.create = function (proto, propertiesObject) {\n if (typeof propertiesObject === 'object' && !Object.isFrozen(propertiesObject)) {\n Object.keys(propertiesObject).forEach(function (prop) {\n propertiesObject[prop] = rewriteDescriptor(proto, prop, propertiesObject[prop]);\n });\n }\n return _create(proto, propertiesObject);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (desc && isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n }\n function _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n }\n function isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n }\n function rewriteDescriptor(obj, prop, desc) {\n // issue-927, if the desc is frozen, don't try to change the desc\n if (!Object.isFrozen(desc)) {\n desc.configurable = true;\n }\n if (!desc.configurable) {\n // issue-927, if the obj is frozen, don't try to set the desc to obj\n if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n if (obj[unconfigurablesKey]) {\n obj[unconfigurablesKey][prop] = true;\n }\n }\n return desc;\n }\n function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(),\n // let's retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var swallowError = false;\n if (prop === 'createdCallback' || prop === 'attachedCallback' ||\n prop === 'detachedCallback' || prop === 'attributeChangedCallback') {\n // We only swallow the error in registerElement patch\n // this is the work around since some applications\n // fail if we throw the error\n swallowError = true;\n }\n if (!swallowError) {\n throw error;\n }\n // TODO: @JiaLiPassion, Some application such as `registerElement` patch\n // still need to swallow the error, in the future after these applications\n // are updated, the following logic can be removed.\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = desc.toString();\n }\n console.log(\"Attempting to configure '\".concat(prop, \"' with descriptor '\").concat(descJson, \"' on object '\").concat(obj, \"' and got error, giving up: \").concat(error));\n }\n }\n else {\n throw error;\n }\n }\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetLegacyPatch(_global, api) {\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, globalSources = _a.globalSources, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\n var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\n var EVENT_TARGET = 'EventTarget';\n var apis = [];\n var isWtf = _global['wtf'];\n var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(',');\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;\n var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false;\n var ieOrEdge = api.isIEOrEdge();\n var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:';\n var FUNCTION_WRAPPER = '[object FunctionWrapper]';\n var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }';\n var pointerEventsMap = {\n 'MSPointerCancel': 'pointercancel',\n 'MSPointerDown': 'pointerdown',\n 'MSPointerEnter': 'pointerenter',\n 'MSPointerHover': 'pointerhover',\n 'MSPointerLeave': 'pointerleave',\n 'MSPointerMove': 'pointermove',\n 'MSPointerOut': 'pointerout',\n 'MSPointerOver': 'pointerover',\n 'MSPointerUp': 'pointerup'\n };\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n // predefine all task.source string\n for (var i = 0; i < WTF_ISSUE_555_ARRAY.length; i++) {\n var target = WTF_ISSUE_555_ARRAY[i];\n var targets = globalSources[target] = {};\n for (var j = 0; j < eventNames.length; j++) {\n var eventName = eventNames[j];\n targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName;\n }\n }\n var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) {\n if (!isDisableIECheck && ieOrEdge) {\n if (isEnableCrossContextCheck) {\n try {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n else {\n var testString = delegate.toString();\n if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n }\n else if (isEnableCrossContextCheck) {\n try {\n delegate.toString();\n }\n catch (error) {\n nativeDelegate.apply(target, args);\n return false;\n }\n }\n return true;\n };\n var apiTypes = [];\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n apiTypes.push(type && type.prototype);\n }\n // vh is validateHandler to check event handler\n // is valid or not(for security check)\n api.patchEventTarget(_global, api, apiTypes, {\n vh: checkIEAndCrossContext,\n transferEventName: function (eventName) {\n var pointerEventName = pointerEventsMap[eventName];\n return pointerEventName || eventName;\n }\n });\n Zone[api.symbol('patchEventTarget')] = !!_global[EVENT_TARGET];\n return true;\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // we have to patch the instance since the proto is non-configurable\n function apply(api, _global) {\n var _a = api.getGlobalObjects(), ADD_EVENT_LISTENER_STR = _a.ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR = _a.REMOVE_EVENT_LISTENER_STR;\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n api.patchEventTarget(_global, api, [WS.prototype]);\n }\n _global.WebSocket = function (x, y) {\n var socket = arguments.length > 1 ? new WS(x, y) : new WS(x);\n var proxySocket;\n var proxySocketProto;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = api.ObjectGetOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = api.ObjectCreate(socket);\n // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror'\n // but proxySocket not, so we will keep socket as prototype and pass it to\n // patchOnProperties method\n proxySocketProto = socket;\n [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n var args = api.ArraySlice.call(arguments);\n if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) {\n var eventName = args.length > 0 ? args[0] : undefined;\n if (eventName) {\n var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName);\n socket[propertySymbol] = proxySocket[propertySymbol];\n }\n }\n return socket[propName].apply(socket, args);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n api.patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto);\n return proxySocket;\n };\n var globalWebSocket = _global['WebSocket'];\n for (var prop in WS) {\n globalWebSocket[prop] = WS[prop];\n }\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function propertyDescriptorLegacyPatch(api, _global) {\n var _a = api.getGlobalObjects(), isNode = _a.isNode, isMix = _a.isMix;\n if (isNode && !isMix) {\n return;\n }\n if (!canPatchViaPropertyDescriptor(api, _global)) {\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents(api);\n api.patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(api, _global);\n }\n Zone[api.symbol('patchEvents')] = true;\n }\n }\n function canPatchViaPropertyDescriptor(api, _global) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((isBrowser || isMix) &&\n !api.ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = api.ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n // try to use onclick to detect whether we can patch via propertyDescriptor\n // because XMLHttpRequest is not available in service worker\n if (desc) {\n api.ObjectDefineProperty(Element.prototype, 'onclick', {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var div = document.createElement('div');\n var result = !!div.onclick;\n api.ObjectDefineProperty(Element.prototype, 'onclick', desc);\n return result;\n }\n }\n var XMLHttpRequest = _global['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return false;\n }\n var ON_READY_STATE_CHANGE = 'onreadystatechange';\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n var xhrDesc = api.ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE);\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n // and if XMLHttpRequest.prototype.onreadystatechange is undefined,\n // we should set a real desc instead a fake one\n if (xhrDesc) {\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {});\n return result;\n }\n else {\n var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = api.symbol('fake');\n api.ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, {\n enumerable: true,\n configurable: true,\n get: function () {\n return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1];\n },\n set: function (value) {\n this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value;\n }\n });\n var req = new XMLHttpRequest();\n var detectFunc = function () { };\n req.onreadystatechange = detectFunc;\n var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc;\n req.onreadystatechange = null;\n return result;\n }\n }\n var globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n ];\n var documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n ];\n var windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplayconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n ];\n var htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n ];\n var ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n ];\n var webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\n var formEventNames = ['autocomplete', 'autocompleteerror'];\n var detailEventNames = ['toggle'];\n var eventNames = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], globalEventHandlersEventNames, true), webglEventNames, true), formEventNames, true), detailEventNames, true), documentEventNames, true), windowEventNames, true), htmlElementEventNames, true), ieElementEventNames, true);\n // Whenever any eventListener fires, we check the eventListener target and all parents\n // for `onwhatever` properties and replace them with zone-bound functions\n // - Chrome (for now)\n function patchViaCapturingAllTheEvents(api) {\n var unboundKey = api.symbol('unbound');\n var _loop_5 = function (i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = api.wrapWithCurrentZone(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_5(i);\n }\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function registerElementPatch(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, document, 'Document', 'registerElement', callbacks);\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n (function (_global) {\n var symbolPrefix = _global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) {\n return symbolPrefix + name;\n }\n _global[__symbol__('legacyPatch')] = function () {\n var Zone = _global['Zone'];\n Zone.__load_patch('defineProperty', function (global, Zone, api) {\n api._redefineProperty = _redefineProperty;\n propertyPatch();\n });\n Zone.__load_patch('registerElement', function (global, Zone, api) {\n registerElementPatch(global, api);\n });\n Zone.__load_patch('EventTargetLegacy', function (global, Zone, api) {\n eventTargetLegacyPatch(global, api);\n propertyDescriptorLegacyPatch(api, global);\n });\n };\n })(typeof window !== 'undefined' ?\n window :\n typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {});\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var taskSymbol = zoneSymbol$1('zoneTask');\n function patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative.call(window, task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var options_1 = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n var callback_1 = args[0];\n args[0] = function timer() {\n try {\n return callback_1.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n if (!(options_1.isPeriodic)) {\n if (typeof options_1.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[options_1.handleId];\n }\n else if (options_1.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n options_1.handleId[taskSymbol] = null;\n }\n }\n }\n };\n var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options_1, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var id = args[0];\n var task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function patchCustomElements(_global, api) {\n var _a = api.getGlobalObjects(), isBrowser = _a.isBrowser, isMix = _a.isMix;\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n var _a = api.getGlobalObjects(), eventNames = _a.eventNames, zoneSymbolEventNames = _a.zoneSymbolEventNames, TRUE_STR = _a.TRUE_STR, FALSE_STR = _a.FALSE_STR, ZONE_SYMBOL_PREFIX = _a.ZONE_SYMBOL_PREFIX;\n // predefine all __zone_symbol__ + eventName + true/false string\n for (var i = 0; i < eventNames.length; i++) {\n var eventName = eventNames[i];\n var falseEventName = eventName + FALSE_STR;\n var trueEventName = eventName + TRUE_STR;\n var symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n var EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n }\n function patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n }\n /**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n Zone.__load_patch('legacy', function (global) {\n var legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n });\n Zone.__load_patch('queueMicrotask', function (global, Zone, api) {\n api.patchMethod(global, 'queueMicrotask', function (delegate) {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n });\n Zone.__load_patch('timers', function (global) {\n var set = 'set';\n var clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n });\n Zone.__load_patch('requestAnimationFrame', function (global) {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n });\n Zone.__load_patch('blocking', function (global, Zone) {\n var blockingMethods = ['alert', 'prompt', 'confirm'];\n for (var i = 0; i < blockingMethods.length; i++) {\n var name_2 = blockingMethods[i];\n patchMethod(global, name_2, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n });\n Zone.__load_patch('EventTarget', function (global, Zone, api) {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n });\n Zone.__load_patch('MutationObserver', function (global, Zone, api) {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n });\n Zone.__load_patch('IntersectionObserver', function (global, Zone, api) {\n patchClass('IntersectionObserver');\n });\n Zone.__load_patch('FileReader', function (global, Zone, api) {\n patchClass('FileReader');\n });\n Zone.__load_patch('on_property', function (global, Zone, api) {\n propertyDescriptorPatch(api, global);\n });\n Zone.__load_patch('customElements', function (global, Zone, api) {\n patchCustomElements(global, api);\n });\n Zone.__load_patch('XHR', function (global, Zone) {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n var XHR_TASK = zoneSymbol$1('xhrTask');\n var XHR_SYNC = zoneSymbol$1('xhrSync');\n var XHR_LISTENER = zoneSymbol$1('xhrListener');\n var XHR_SCHEDULED = zoneSymbol$1('xhrScheduled');\n var XHR_URL = zoneSymbol$1('xhrURL');\n var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol$1('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n var XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget_1) {\n var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n var READY_STATE_CHANGE = 'readystatechange';\n var SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n var data = task.data;\n var target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n var listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n var newListener = target[XHR_LISTENER] = function () {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n var oriInvoke_1 = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n var loadTasks = target[Zone.__symbol__('loadfalse')];\n for (var i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke_1.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n var storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n }; });\n var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n var fetchTaskAborting = zoneSymbol$1('fetchTaskAborting');\n var fetchTaskScheduling = zoneSymbol$1('fetchTaskScheduling');\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n }; });\n var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n }; });\n }\n });\n Zone.__load_patch('geolocation', function (global) {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n });\n Zone.__load_patch('PromiseRejectionEvent', function (global, Zone) {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol$1('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol$1('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n });\n}));\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\";","import { Injectable, ErrorHandler } from \"@angular/core\";\r\nimport { AlertService, MessageSeverity } from './services/alert.service';\r\n\r\n\r\n@Injectable()\r\nexport class AppErrorHandler extends ErrorHandler {\r\n\r\n //private alertService: AlertService;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n\r\n handleError(error: any) {\r\n //if (this.alertService == null) {\r\n // this.alertService = this.injector.get(AlertService);\r\n //}\r\n\r\n //this.alertService.showStickyMessage(\"Fatal Error!\", \"An unresolved error has occured. Please reload the page to correct this error\", MessageSeverity.warn);\r\n //this.alertService.showStickyMessage(\"Unhandled Error\", error.message || error, MessageSeverity.error);\r\n\r\n //if (confirm(\"Fatal Error!\\nAn unresolved error has occured. Do you want to reload the page to correct this?\\n\\nError: \" + error.message))\r\n // window.location.reload(true);\r\n\r\n super.handleError(error);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule, Router, ActivatedRoute } from '@angular/router';\r\n\r\nimport { LoginComponent } from \"./components/login/login.component\";\r\nimport { HomeComponent } from \"./components/home/home.component\";\r\nimport { ReservationsComponent } from \"./components/reservations/reservations.component\";\r\nimport { SettingsComponent } from \"./components/settings/settings.component\";\r\nimport { NotFoundComponent } from \"./components/not-found/not-found.component\";\r\nimport { FacilitiesComponent } from \"./components/facilities/facilities.component\";\r\nimport { ImageUploadsComponent } from \"./components/imageUpload/image-upload.component\";\r\nimport { CalendarComponent } from \"./components/calendar/calendar.component\";\r\nimport { BookingComponent } from \"./components/calendar/booking/booking.component\";\r\nimport { AuthService } from './services/auth.service';\r\nimport { AuthGuard } from './services/auth-guard.service';\r\nimport { DeviceManagerComponent } from './components/device-manager/device-manager.component';\r\nimport { BookingGridComponent } from './components/calendar/booking-grid/booking-grid.component';\r\nimport { RegisterComponent } from './components/register/register.component';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\r\nimport { ExternalLoginComponent } from './components/login/external-login.component';\r\nimport { AttendanceSignInComponent } from './components/attendance-signin/attendance-signin.component';\r\nimport { UserPhonebooksManagementComponent } from './components/controls/userphonebook/userphonebooks-management.component';\r\nimport { ContactGroupsManagementComponent } from './components/controls/contactgroup/contactgroups-management.component';\r\nimport { ReportsReservationListComponent } from './components/reports/reservations/reservations.component';\r\nimport { TemplateEditorComponent } from './components/template-editor/template-editor.component';\r\nimport { PIBDevicesManagementComponent } from './components/pib-device-manager/pib-unknown-device/pib-devices-management.component';\r\nimport { TemplateEditorPreviewDialog } from './components/template-editor/preview/preview.component';\r\nimport { AppComponent } from './components/app.component';\r\nimport { NoNavigationAppComponent } from './components/no_navigation_app.component';\r\nimport { FeedbackComponent } from './components/feedback/feedback.component';\r\nimport { FRSTemplateEditorComponent } from './components/frs-template-editor/frs-template-editor.component';\r\nimport { PIBDisplayComponent } from './components/template-editor/pibdisplay/pibdisplay.component';\r\nimport { UserVehiclesManagementComponent } from './components/controls/uservehicle/uservehicle-management.component';\r\nimport { SignageComponentsManagementComponent } from './components/signage/signage-component/signage-components-management.component';\r\nimport { SignageCompilationsManagementComponent } from './components/signage/signage-compilation/signage-compilations-management.component';\r\nimport { MeetingRoomDisplayComponent } from './components/meeting-room/meeting-room.component';\r\nimport { DeviceDisplayWarningComponent } from './components/device-warning/device-warning.component';\r\nimport { ReportContainerComponent } from './components/reports/report-container/report-container.component';\r\nimport { SignagePublicationsManagementComponent } from './components/signage/signage-publication/signage-publications-management.component';\r\nimport { SignageDisplayComponent } from './components/signage/signage-display/signage-display.component';\r\nimport { QueueTableMapsManagementComponent } from './components/queue-table-map/queue-table-maps-management.component';\r\nimport { WayfinderComponent } from './components/wayfinder-view/wayfinder-view.component'\r\nimport { WayfinderLandscapeComponent } from './components/wayfinder-landscape-view/wayfinder-landscape-view.component'\r\nimport { CalendarLandingPageComponent } from './components/calendar/landing-page/landing-page.component';\r\nimport { DevicesManagementComponent } from './components/device-manager/unknown-device/devices-management.component';\r\nimport { UsersManagementComponent } from './components/controls/users-management.component';\r\nimport { RolesManagementComponent } from './components/controls/roles-management.component';\r\nimport { UserGroupsManagementComponent } from './components/controls/user-group/user-groups-management.component';\r\nimport { DepartmentsManagementComponent } from './components/controls/department/departments-management.component';\r\nimport { LocationsTreeManagementComponent } from './components/controls/locations-tree/locations-tree-management.component';\r\nimport { InstitutionsManagementComponent } from './components/controls/institution/institutions-management.component';\r\nimport { BuildingsManagementComponent } from './components/building/buildings-management.component';\r\nimport { ApplicationSettingsManagementComponent } from './components/application-setting/application-settings-management.component';\r\nimport { FacilitiesManagementComponent } from './components/controls/facilities/facilities-management.component';\r\nimport { FacilityTypesManagementComponent } from './components/controls/facility-type/facility-types-management.component';\r\nimport { EmsesManagementComponent } from './components/controls/ems/emses-management.component';\r\nimport { EmsProfilesComponent } from './components/ems-profile/ems-profiles.component';\r\nimport { EmployeeSchedulesManagementComponent } from './components/employee-schedule/employee-schedules-management.component';\r\nimport { EmployeeDesignationsManagementComponent } from './components/employee-designation/employee-designations-management.component';\r\nimport { EmployeeDatasManagementComponent } from './components/employee-data/employee-datas-management.component';\r\nimport { MediasManagementComponent } from './components/controls/media/medias-management.component';\r\nimport { ImageListsComponent } from './components/imageUpload/image-list.component';\r\nimport { PlaylistsManagementComponent } from './components/playlistManagement/playlists-management.component';\r\nimport { DirectoryListingCategorysManagementComponent } from './components/directory-listing-category/directory-listing-categorys-management.component';\r\nimport { DirectoryListingsManagementComponent } from './components/directory-listing/directory-listings-management.component';\r\nimport { FloorsManagementComponent } from './components/floor/floors-management.component';\r\nimport { MapsManagementComponent } from './components/map/maps-management.component';\r\nimport { OccupancyLogsManagementComponent } from './components/occupancy-log/occupancy-logs-management.component';\r\nimport { ModulesManagementComponent } from './components/controls/module/modules-management.component';\r\nimport { MediaExtensionsManagementComponent } from './components/media-extension/media-extensions-management.component';\r\nimport { AuthLogsManagementComponent } from './components/audit/auth-log/auth-logs-management.component';\r\nimport { DataLogsManagementComponent } from './components/audit/data-log/data-logs-management.component';\r\nimport { ImageReferenceTypesManagementComponent } from './components/controls/image-reference-type/image-reference-types-management.component';\r\nimport { ImageReferenceColorsManagementComponent } from './components/controls/image-reference-color/image-reference-colors-management.component';\r\nimport { UserInfoComponent } from './components/controls/user-info.component';\r\nimport { SmartRoomSchedulerLogsManagementComponent } from './components/smartroom-scheduler-log/smartroom-scheduler-logs-management.component';\r\nimport { AssetTypesManagementComponent } from './components/controls/asset-type/asset-types-management.component';\r\nimport { AssetModelsManagementComponent } from './components/controls/asset-model/asset-models-management.component';\r\nimport { ServiceContractsManagementComponent } from './components/service-contract/service-contracts-management.component';\r\nimport { AssetsManagementComponent } from './components/controls/asset/assets-management.component';\r\nimport { EmsSchedulesComponent } from './components/ems-schedule/ems-schedules.component';\r\nimport { EmailQueuesManagementComponent } from './components/controls/email-queue/email-queues-management.component';\r\nimport { UpDownTimeLogsManagementComponent } from './components/audit/updowntime-log/updowntime-logs-management.component';\r\nimport { KioskSettingsListComponent } from './components/kioskSettings/kiosk-settings-list.component';\r\nimport { DeviceTypesManagementComponent } from './components/controls/device-type/device-types-management.component';\r\nimport { ClassLevelsManagementComponent } from './components/meal-order-system/class-level/class-levels-management.component';\r\nimport { ClassesManagementComponent } from './components/meal-order-system/class/classes-management.component';\r\nimport { StudentsManagementComponent } from './components/meal-order-system/student/students-management.component';\r\nimport { StudentGroupsManagementComponent } from './components/meal-order-system/student-group/student-groups-management.component';\r\nimport { StaffsManagementComponent } from './components/meal-order-system/staff/staffs-management.component';\r\nimport { StaffTypesManagementComponent } from './components/meal-order-system/staff-type/staff-types-management.component';\r\nimport { RestrictionTypesManagementComponent } from './components/meal-order-system/restriction-type/restriction-types-management.component';\r\nimport { RestrictionsManagementComponent } from './components/meal-order-system/restriction/restrictions-management.component';\r\nimport { DishTypesManagementComponent } from './components/meal-order-system/dish-type/dish-types-management.component';\r\nimport { MealTypesManagementComponent } from './components/meal-order-system/meal-type/meal-types-management.component';\r\nimport { MealPeriodsManagementComponent } from './components/meal-order-system/meal-period/meal-periods-management.component';\r\nimport { DishesManagementComponent } from './components/meal-order-system/dishes/dishes-management.component';\r\nimport { MenusManagementComponent } from './components/meal-order-system/menus/menus-management.component';\r\nimport { MenuCyclesManagementComponent } from './components/meal-order-system/menu-cycle/menu-cycles-management.component';\r\nimport { CatererInfosManagementComponent } from './components/meal-order-system/caterer-info/caterer-infos-management.component';\r\nimport { BentoBoxTypesManagementComponent } from './components/meal-order-system/bento-box-type/bento-box-types-management.component';\r\nimport { BentoAssetsManagementComponent } from './components/meal-order-system/bento-asset/bento-assets-management.component';\r\nimport { CartonTypesManagementComponent } from './components/meal-order-system/carton-type/carton-types-management.component';\r\nimport { CartonAssetsManagementComponent } from './components/meal-order-system/carton-asset/carton-assets-management.component';\r\nimport { TrackingStatussManagementComponent } from './components/meal-order-system/tracking-status/tracking-statuss-management.component';\r\nimport { DeliveryOrdersManagementComponent } from './components/meal-order-system/delivery-order/delivery-orders-management.component';\r\nimport { DishingProcesssManagementComponent } from './components/meal-order-system/dishing-process/dishing-processs-management.component';\r\nimport { ClassBatchesManagementComponent } from './components/meal-order-system/class-batch/class-batches-management.component';\r\nimport { DishPreviewComponent } from './components/meal-order-system/dishes/dish-preview/dish-preview.component';\r\nimport { OutletsManagementComponent } from './components/meal-order-system/outlet/outlets-management.component';\r\nimport { OutletProfilesManagementComponent } from './components/meal-order-system/outlet-profile/outlet-profiles-management.component';\r\nimport { CuisinesManagementComponent } from './components/meal-order-system/cuisine/cuisines-management.component';\r\nimport { TokenOrdersManagementComponent } from './components/meal-order-system/token-order/token-orders-management.component';\r\nimport { StoreInfosManagementComponent } from './components/meal-order-system/store-info/store-infos-management.component';\r\nimport { DoProcesssManagementComponent } from './components/meal-order-system/do-process/do-processs-management.component';\r\nimport { PackingProcesssManagementComponent } from './components/meal-order-system/packing-process/packing-processs-management.component';\r\nimport { InterestGroupsManagementComponent } from './components/meal-order-system/interest-group/interest-groups-management.component';\r\nimport { DriversManagementComponent } from './components/meal-order-system/driver/drivers-management.component';\r\nimport { RoutesManagementComponent } from './components/meal-order-system/route/routes-management.component';\r\nimport { MenuCycleCalendar } from './models/meal-order/menu-cycle-calendar.model';\r\nimport { MenuCycleCalendarComponent } from './components/meal-order-system/caterer-info/caterer-calendar/caterer-calendar.component';\r\nimport { OutletMenuCycleCalendarComponent } from './components/meal-order-system/outlet/outlet-calendar/outlet-calendar.component';\r\nimport { StudentMenuCycleCalendarComponent } from './components/meal-order-system/student/student-calendar/student-calendar.component';\r\nimport { DishCyclesManagementComponent } from './components/meal-order-system/dish-cycle/dish-cycles-management.component';\r\nimport { DishCycleCalendarComponent } from './components/meal-order-system/caterer-info/caterer-dish-calendar/caterer-dish-calendar.component';\r\nimport { OutletDishCycleCalendarComponent } from './components/meal-order-system/outlet/dish-calendar/dish-calendar.component';\r\nimport { ChannelInfosManagementComponent } from './components/controls/channel-info/channel-infos-management.component';\r\n\r\nimport { TokenOrderPaymentThankyouComponent } from './components/meal-order-system/token-order-payment/token-order-payment-thankyou/token-order-payment-thankyou.component';\r\nimport { TransactionFeesManagementComponent } from './components/meal-order-system/transaction-fee/transaction-fees-management.component';\r\nimport { PaymentTypesManagementComponent } from './components/meal-order-system/payment-type/payment-types-management.component';\r\nimport { VouchersManagementComponent } from './components/meal-order-system/voucher/vouchers-management.component';\r\nimport { VoucherTypesManagementComponent } from './components/meal-order-system/voucher-type/voucher-types-management.component';\r\nimport { WaiversManagementComponent } from './components/meal-order-system/waiver/waivers-management.component';\r\nimport { ContactUsDetailsManagementComponent } from './components/meal-order-system/contact-us-detail/contact-us-details-management.component';\r\nimport { ContactUsSubjectsManagementComponent } from './components/meal-order-system/contact-us-subject/contact-us-subjects-management.component';\r\nimport { EmailTemplatesManagementComponent } from './components/meal-order-system/email-template/email-templates-management.component';\r\nimport { NotificationEventsManagementComponent } from './components/meal-order-system/notification-event/notification-events-management.component';\r\nimport { CancelOrderRequestsManagementComponent } from './components/meal-order-system/cancel-order-request/cancel-order-requests-management.component';\r\nimport { ExternalLoginLogsManagementComponent } from './components/audit/external-login-log/external-login-logs-management.component';\r\nimport { OrderLogsManagementComponent } from './components/audit/order-log/order-logs-management.component';\r\nimport { UserAccountsReportManagementComponent } from './components/reports/user-account/user-accounts-management.component';\r\nimport { PublicHolidaysManagementComponent } from './components/public-holiday/public-holidays-management.component';\r\nimport { PublicationReportsManagementComponent } from './components/audit/publication-report/publication-reports-management.component';\r\nimport { DeviceReportsManagementComponent } from './components/audit/device-report/device-reports-management.component';\r\nimport { DeviceStatusReportsManagementComponent } from './components/audit/device-status-report - Copy/device-status-reports-management.component';\r\nimport { UserRolesReportManagementComponent } from './components/reports/user-role/user-roles-management.component';\r\n\r\n \r\n\r\n\r\nconst routes: Routes = [\r\n //{ path: \"\", component: HomeComponent, canActivate: [AuthGuard], data: { title: \"Home\" } },\r\n //{ path: \"login\", component: LoginComponent, data: { title: \"Login\" } },\r\n //{ path: \"register\", component: RegisterComponent, data: { title: \"Register\" } },\r\n //{ path: \"resetpassword\", component: ResetPasswordComponent, data: { title: \"ResetPassword\" } },\r\n //{ path: \"forgotpassword\", component: ForgotPasswordComponent, data: { title: \"Forgot Password\" } },\r\n //{ path: \"reservations\", component: ReservationsComponent, canActivate: [AuthGuard], data: { title: \"Reservations\" } },\r\n //{ path: \"calendar\", component: CalendarComponent, canActivate: [AuthGuard], data: { title: \"Calendar\" } },\r\n //{ path: \"bookings\", component: BookingGridComponent, canActivate: [AuthGuard], data: { title: \"Book\" } },\r\n //{ path: \"facilities\", component: FacilitiesComponent, canActivate: [AuthGuard], data: { title: \"Facilities\" } },\r\n //{ path: \"settings\", component: SettingsComponent, canActivate: [AuthGuard], data: { title: \"Settings\" } },\r\n //{ path: \"devices\", component: DeviceManagerComponent, canActivate: [AuthGuard], data: { title: \"Devices\" } },\r\n //{ path: \"contactgroups\", component: ContactGroupsManagementComponent, canActivate: [AuthGuard], data: { title: \"Contact Groups\" } },\r\n //{ path: \"phonebooks\", component: UserPhonebooksManagementComponent, canActivate: [AuthGuard], data: { title: \"My Contacts\" } },\r\n //{ path: \"reports\", component: ReportsReservationListComponent, canActivate: [AuthGuard], data: { title: \"Reports\" } },\r\n //{ path: \"templateeditor\", component: TemplateEditorComponent, canActivate: [AuthGuard], data: { title: \"Template Editor\" } },\r\n //{ path: \"pibdevices\", component: PIBDevicesManagementComponent, data: { title: \"PIB Devices\" } },\r\n //{ path: \"home\", redirectTo: \"/\", pathMatch: \"full\" },\r\n ////{ path: \"signinwithgoogle\", redirectTo: \"/authorization/SignInWithGoogle\", pathMatch: \"full\" },\r\n //{ path: \"externallogin\", component: ExternalLoginComponent, data: { title: \"Login\" } },\r\n ////{ path: \"attendance\", redirectTo: \"/authorization/AttendanceSignIn\", pathMatch: \"full\" },\r\n //{ path: \"attendance\", component: AttendanceSignInComponent, data: { title: \"Attendance\" } },\r\n //{ path: \"pibdevicetemplate\", component: TemplateEditorPreviewDialog, canActivate: [AuthGuard], data: { title: \"PIB Display\" } },\r\n ////{ path: \"**\", component: NotFoundComponent, data: { title: \"Page Not Found\" } }\r\n\r\n //-------------------------\r\n //Site routes goes here \r\n {\r\n path: '',\r\n component: AppComponent,\r\n children: [\r\n { path: \"\", component: HomeComponent, canActivate: [AuthGuard], data: { title: \"Home\" } },\r\n \r\n \r\n { path: \"reservations\", component: ReservationsComponent, canActivate: [AuthGuard], data: { title: \"Reservations\" } },\r\n { path: \"calendar\", component: CalendarLandingPageComponent, canActivate: [AuthGuard], data: { title: \"Calendar\" } },\r\n { path: \"bookings\", component: BookingGridComponent, canActivate: [AuthGuard], data: { title: \"Book\" } },\r\n { path: \"facilities\", component: FacilitiesComponent, canActivate: [AuthGuard], data: { title: \"Facilities\" } },\r\n { path: \"signagecomponents\", component: SignageComponentsManagementComponent, canActivate: [AuthGuard], data: { title: \"Signage Components\" } },\r\n { path: \"signagecompilations\", component: SignageCompilationsManagementComponent, canActivate: [AuthGuard], data: { title: \"Signage Compilations\" } },\r\n { path: \"signagepublications\", component: SignagePublicationsManagementComponent, canActivate: [AuthGuard], data: { title: \"Signage Publications\" } },\r\n { path: \"settings\", component: SettingsComponent, canActivate: [AuthGuard], data: { title: \"Settings\" } },\r\n { path: \"devices\", component: DeviceManagerComponent, canActivate: [AuthGuard], data: { title: \"Devices\" } },\r\n { path: \"devices/:type\", component: DevicesManagementComponent, canActivate: [AuthGuard], data: { title: \"Devices\" } },\r\n { path: \"uservehicles\", component: UserVehiclesManagementComponent, canActivate: [AuthGuard], data: { title: \"Vehicles\" } },\r\n { path: \"contactgroups\", component: ContactGroupsManagementComponent, canActivate: [AuthGuard], data: { title: \"Contact Groups\" } },\r\n { path: \"phonebooks\", component: UserPhonebooksManagementComponent, canActivate: [AuthGuard], data: { title: \"My Contacts\" } },\r\n { path: \"reports\", component: ReportContainerComponent, canActivate: [AuthGuard], data: { title: \"Reports\" } },\r\n { path: \"templateeditor\", component: TemplateEditorComponent, canActivate: [AuthGuard], data: { title: \"Template Editor\" } },\r\n { path: \"pibdevices\", component: PIBDevicesManagementComponent, data: { title: \"PIB Devices\" } },\r\n { path: \"queuemonitor\", component: QueueTableMapsManagementComponent, data: { title: \"Queue Monitor\" } },\r\n { path: \"frstemplateeditor\", component: FRSTemplateEditorComponent, canActivate: [AuthGuard], data: { title: \"FRS Template Editor\" } },\r\n { path: \"home\", redirectTo: \"/\", pathMatch: \"full\" },\r\n { path: \"imguploads\", component: ImageUploadsComponent, canActivate: [AuthGuard], data: { title: \"Image Uploads\" } },\r\n { path: \"users\", component: UsersManagementComponent, canActivate: [AuthGuard], data: { title: \"System Users\" } },\r\n { path: \"roles\", component: RolesManagementComponent, canActivate: [AuthGuard], data: { title: \"System Roles\" } },\r\n { path: \"usergroups\", component: UserGroupsManagementComponent, canActivate: [AuthGuard], data: { title: \"System User Groups\" } },\r\n { path: \"locations\", component: LocationsTreeManagementComponent, canActivate: [AuthGuard], data: { title: \"Locations\" } },\r\n { path: \"institutions\", component: InstitutionsManagementComponent, canActivate: [AuthGuard], data: { title: \"Institutions\" } },\r\n { path: \"departments\", component: DepartmentsManagementComponent, canActivate: [AuthGuard], data: { title: \"Departments\" } },\r\n { path: \"buildings\", component: BuildingsManagementComponent, canActivate: [AuthGuard], data: { title: \"Buildings\" } },\r\n { path: \"kiosksettings\", component: KioskSettingsListComponent, canActivate: [AuthGuard], data: { title: \"Kiosk Settings\" } },\r\n { path: \"applicationsettings\", component: ApplicationSettingsManagementComponent, canActivate: [AuthGuard], data: { title: \"Application Settings\" } },\r\n { path: \"equipments\", component: FacilitiesManagementComponent, canActivate: [AuthGuard], data: { title: \"Equipments\" } },\r\n { path: \"facilitytypes\", component: FacilityTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Equipment Types\" } },\r\n { path: \"ems\", component: EmsesManagementComponent, canActivate: [AuthGuard], data: { title: \"EMS\" } },\r\n { path: \"emsprofile\", component: EmsProfilesComponent, canActivate: [AuthGuard], data: { title: \"EMS Profile\" } },\r\n { path: \"emsschedule\", component: EmsSchedulesComponent, canActivate: [AuthGuard], data: { title: \"EMS Schedule\" } },\r\n { path: \"employeeschedule\", component: EmployeeSchedulesManagementComponent, canActivate: [AuthGuard], data: { title: \"Employee Schedule\" } },\r\n { path: \"employeedesignation\", component: EmployeeDesignationsManagementComponent, canActivate: [AuthGuard], data: { title: \"Employee Designation\" } },\r\n { path: \"employee\", component: EmployeeDatasManagementComponent, canActivate: [AuthGuard], data: { title: \"Employee\" } },\r\n { path: \"mediagroup\", component: MediasManagementComponent, canActivate: [AuthGuard], data: { title: \"Media Group\" } },\r\n { path: \"medialibrary\", component: ImageListsComponent, canActivate: [AuthGuard], data: { title: \"Media Library\" } },\r\n { path: \"playlist\", component: PlaylistsManagementComponent, canActivate: [AuthGuard], data: { title: \"Playlist\" } },\r\n { path: \"directorylistingcategory\", component: DirectoryListingCategorysManagementComponent, canActivate: [AuthGuard], data: { title: \"Directory Listing Category\" } },\r\n { path: \"mediaextension\", component: MediaExtensionsManagementComponent, canActivate: [AuthGuard], data: { title: \"Media Extension\" } },\r\n { path: \"directorylistings\", component: DirectoryListingsManagementComponent, canActivate: [AuthGuard], data: { title: \"Directory Listing\" } },\r\n { path: \"buildings\", component: BuildingsManagementComponent, canActivate: [AuthGuard], data: { title: \"Building\" } },\r\n { path: \"floors\", component: FloorsManagementComponent, canActivate: [AuthGuard], data: { title: \"Floor\" } },\r\n { path: \"maps\", component: MapsManagementComponent, canActivate: [AuthGuard], data: { title: \"Maps\" } },\r\n { path: \"occupancylogs\", component: OccupancyLogsManagementComponent, canActivate: [AuthGuard], data: { title: \"Occupancy Logs\" } },\r\n { path: \"modules\", component: ModulesManagementComponent, canActivate: [AuthGuard], data: { title: \"Module Settings\" } },\r\n { path: \"authlogs\", component: AuthLogsManagementComponent, canActivate: [AuthGuard], data: { title: \"Authentication Logs\" } },\r\n { path: \"updowntimelogs\", component: UpDownTimeLogsManagementComponent, canActivate: [AuthGuard], data: { title: \"Up Down Time Logs\" } },\r\n { path: \"auditlogs\", component: DataLogsManagementComponent, canActivate: [AuthGuard], data: { title: \"Audit Logs\" } },\r\n { path: \"imagereferencetypes\", component: ImageReferenceTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Image Reference Types\" } },\r\n { path: \"imagereferencecolors\", component: ImageReferenceColorsManagementComponent, canActivate: [AuthGuard], data: { title: \"Image Reference Colors\" } },\r\n { path: \"profile\", component: UserInfoComponent, canActivate: [AuthGuard], data: { title: \"Profile\" } },\r\n { path: \"smartroomschedulerlogs\", component: SmartRoomSchedulerLogsManagementComponent, canActivate: [AuthGuard], data: { title: \"Smart Room Scheduler Logs\" } },\r\n { path: \"publicholidays\", component: PublicHolidaysManagementComponent, canActivate: [AuthGuard], data: { title: \"Public Holidays\" } },\r\n { path: \"assettypes\", component: AssetTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Asset Types\" } },\r\n { path: \"assetmodels\", component: AssetModelsManagementComponent, canActivate: [AuthGuard], data: { title: \"Asset Models\" } },\r\n { path: \"assets\", component: AssetsManagementComponent, canActivate: [AuthGuard], data: { title: \"Assets\" } },\r\n { path: \"servicecontracts\", component: ServiceContractsManagementComponent, canActivate: [AuthGuard], data: { title: \"Service Contracts\" } },\r\n { path: \"emailqueues\", component: EmailQueuesManagementComponent, canActivate: [AuthGuard], data: { title: \"Email Queues\" } },\r\n { path: \"devicetypes\", component: DeviceTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Device Types\" } },\r\n { path: \"channelinfos\", component: ChannelInfosManagementComponent, canActivate: [AuthGuard], data: { title: \"Channel Infos\" } },\r\n { path: \"classbatches\", component: ClassBatchesManagementComponent, canActivate: [AuthGuard], data: { title: \"Class Batches\" } },\r\n { path: \"classlevels\", component: ClassLevelsManagementComponent, canActivate: [AuthGuard], data: { title: \"Class Levels\" } },\r\n { path: \"classes\", component: ClassesManagementComponent, canActivate: [AuthGuard], data: { title: \"Classes\" } },\r\n { path: \"students\", component: StudentsManagementComponent, canActivate: [AuthGuard], data: { title: \"Students\" } },\r\n { path: \"studentgroups\", component: StudentGroupsManagementComponent, canActivate: [AuthGuard], data: { title: \"Student Groups\" } },\r\n { path: \"stafftypes\", component: StaffTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Staff Types\" } },\r\n { path: \"staffs\", component: StaffsManagementComponent, canActivate: [AuthGuard], data: { title: \"Staffs\" } },\r\n { path: \"restrictiontypes\", component: RestrictionTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Restriction Types\" } },\r\n { path: \"restrictions\", component: RestrictionsManagementComponent, canActivate: [AuthGuard], data: { title: \"Restrictions\" } },\r\n { path: \"dishtypes\", component: DishTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Dish Types\" } },\r\n { path: \"caterers\", component: CatererInfosManagementComponent, canActivate: [AuthGuard], data: { title: \"Caterers\" } },\r\n { path: \"bentoboxtypes\", component: BentoBoxTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Bento Box Types\" } },\r\n { path: \"cartontypes\", component: CartonTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Carton Types\" } },\r\n { path: \"deliveryorders\", component: DeliveryOrdersManagementComponent, canActivate: [AuthGuard], data: { title: \"Delivery Orders\" } },\r\n { path: \"trackingstatus\", component: TrackingStatussManagementComponent, canActivate: [AuthGuard], data: { title: \"Tracking Status\" } },\r\n { path: \"storeinfo\", component: StoreInfosManagementComponent, canActivate: [AuthGuard], data: { title: \"Store\" } },\r\n { path: \"bentoassets\", component: BentoAssetsManagementComponent, canActivate: [AuthGuard], data: { title: \"Bento Assets\" } },\r\n { path: \"dishingprocess\", component: DishingProcesssManagementComponent, canActivate: [AuthGuard], data: { title: \"Dishing Process\" } },\r\n { path: \"packingprocess\", component: PackingProcesssManagementComponent, canActivate: [AuthGuard], data: { title: \"Packing Process\" } },\r\n { path: \"doprocess\", component: DoProcesssManagementComponent, canActivate: [AuthGuard], data: { title: \"Carton To DO\" } },\r\n { path: \"cartonassets\", component: CartonAssetsManagementComponent, canActivate: [AuthGuard], data: { title: \"Carton Assets\" } },\r\n { path: \"mealtypes\", component: MealTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Meal Types\" } },\r\n { path: \"mealperiods\", component: MealPeriodsManagementComponent, canActivate: [AuthGuard], data: { title: \"Meal Periods\" } },\r\n { path: \"dishes\", component: DishesManagementComponent, canActivate: [AuthGuard], data: { title: \"Dishes\" } },\r\n { path: \"menus\", component: MenusManagementComponent, canActivate: [AuthGuard], data: { title: \"Menus\" } },\r\n { path: \"menucycles\", component: MenuCyclesManagementComponent, canActivate: [AuthGuard], data: { title: \"Menu Cyles\" } },\r\n { path: \"cuisines\", component: CuisinesManagementComponent, canActivate: [AuthGuard], data: { title: \"Cuisines\" } },\r\n { path: \"tokenorders\", component: TokenOrdersManagementComponent, canActivate: [AuthGuard], data: { title: \"Meal Orders\" } },\r\n { path: \"outlets\", component: OutletsManagementComponent, canActivate: [AuthGuard], data: { title: \"Outlets\" } },\r\n { path: \"outletprofiles\", component: OutletProfilesManagementComponent, canActivate: [AuthGuard], data: { title: \"Outlet Profiles\" } },\r\n { path: \"interestgroups\", component: InterestGroupsManagementComponent, canActivate: [AuthGuard], data: { title: \"Interest Groups\" } },\r\n { path: \"drivers\", component: DriversManagementComponent, canActivate: [AuthGuard], data: { title: \"Drivers\" } },\r\n { path: \"routes\", component: RoutesManagementComponent, canActivate: [AuthGuard], data: { title: \"Routes\" } },\r\n { path: \"menucyclecalendars\", component: MenuCycleCalendarComponent, canActivate: [AuthGuard], data: { title: \"Menu Cycle Calendar\" } },\r\n { path: \"menucyclecalendars/:catererId\", component: MenuCycleCalendarComponent, canActivate: [AuthGuard], data: { title: \"Menu Cycle Calendar\" } },\r\n { path: \"outletcalendars/:id/:catererId\", component: OutletMenuCycleCalendarComponent, canActivate: [AuthGuard], data: { title: \"Outlet Calendar\" } },\r\n { path: \"outletdishcalendars/:id/:catererId\", component: OutletDishCycleCalendarComponent, canActivate: [AuthGuard], data: { title: \"Outlet Calendar\" } },\r\n { path: \"studentcalendars/:id\", component: StudentMenuCycleCalendarComponent, canActivate: [AuthGuard], data: { title: \"Student Calendar\" } },\r\n { path: \"dishcycles\", component: DishCyclesManagementComponent, canActivate: [AuthGuard], data: { title: \"Menu Cyles\" } },\r\n { path: \"dishcyclecalendars\", component: DishCycleCalendarComponent, canActivate: [AuthGuard], data: { title: \"Dish Cycle Calendar\" } },\r\n { path: \"dishcyclecalendars/:catererId\", component: DishCycleCalendarComponent, canActivate: [AuthGuard], data: { title: \"Dish Cycle Calendar\" } },\r\n { path: \"paymentthankyou\", component: TokenOrderPaymentThankyouComponent, canActivate: [AuthGuard], data: { title: \"Payment Thankyou\" } },\r\n { path: \"paymenttypes\", component: PaymentTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Payment Types\" } },\r\n { path: \"transactionfees\", component: TransactionFeesManagementComponent, canActivate: [AuthGuard], data: { title: \"Transaction Fees\" } },\r\n { path: \"vouchertypes\", component: VoucherTypesManagementComponent, canActivate: [AuthGuard], data: { title: \"Voucher Types\" } },\r\n { path: \"vouchers\", component: VouchersManagementComponent, canActivate: [AuthGuard], data: { title: \"Vouchers\" } },\r\n { path: \"waivers\", component: WaiversManagementComponent, canActivate: [AuthGuard], data: { title: \"Waivers\" } },\r\n { path: \"contactussubjects\", component: ContactUsSubjectsManagementComponent, canActivate: [AuthGuard], data: { title: \"Contact Us Subjects\" } },\r\n { path: \"contactusdetails\", component: ContactUsDetailsManagementComponent, canActivate: [AuthGuard], data: { title: \"Contact Us Details\" } },\r\n { path: \"emailtemplates\", component: EmailTemplatesManagementComponent, canActivate: [AuthGuard], data: { title: \"Email Templates\" } },\r\n { path: \"notificationevents\", component: NotificationEventsManagementComponent, canActivate: [AuthGuard], data: { title: \"Notification Events\" } },\r\n { path: \"cancelorderrequests\", component: CancelOrderRequestsManagementComponent, canActivate: [AuthGuard], data: { title: \"Cancel Order Requests\" } },\r\n { path: \"externalapploginlogs\", component: ExternalLoginLogsManagementComponent, canActivate: [AuthGuard], data: { title: \"Order Portal Login Logs\" } },\r\n { path: \"orderlogs\", component: OrderLogsManagementComponent, canActivate: [AuthGuard], data: { title: \"Order Report\" } },\r\n { path: \"publicationreports\", component: PublicationReportsManagementComponent, canActivate: [AuthGuard], data: { title: \"Publication Report\" } },\r\n { path: \"devicereports\", component: DeviceReportsManagementComponent, canActivate: [AuthGuard], data: { title: \"Device Report\" } },\r\n { path: \"devicestatusreports\", component: DeviceStatusReportsManagementComponent, canActivate: [AuthGuard], data: { title: \"Device Status Report\" } },\r\n { path: \"useraccountreport\", component: UserAccountsReportManagementComponent, canActivate: [AuthGuard], data: { title: \"User Account Report\" } },\r\n { path: \"rolereport\", component: UserRolesReportManagementComponent, canActivate: [AuthGuard], data: { title: \"Role Report\" } },\r\n\r\n //{ path: \"display/:mac\", redirectTo: \"/display/:mac\" },\r\n //{ path: \"signinwithgoogle\", redirectTo: \"/authorization/SignInWithGoogle\", pathMatch: \"full\" },\r\n \r\n //{ path: \"attendance\", redirectTo: \"/authorization/AttendanceSignIn\", pathMatch: \"full\" },\r\n //{ path: \"attendance\", component: AttendanceSignInComponent, data: { title: \"Attendance\" } },\r\n\r\n //{ path: \"**\", component: NotFoundComponent, data: { title: \"Page Not Found\" } }\r\n ]\r\n },\r\n // App routes goes here here\r\n {\r\n path: '',\r\n component: NoNavigationAppComponent,\r\n children: [\r\n { path: \"pibdisplay\", component: PIBDisplayComponent, data: { title: \"PIB Display\" } },\r\n { path: \"pibdevicetemplate\", component: TemplateEditorPreviewDialog, data: { title: \"PIB Display\" } },\r\n { path: \"meetingroom\", component: MeetingRoomDisplayComponent, data: { title: \"Meeting Room Display\" } },\r\n { path: \"meetingroom/:mac_address\", component: MeetingRoomDisplayComponent, data: { title: \"Meeting Room Display\" } },\r\n { path: \"meetingroom/:mac_address/:server\", component: MeetingRoomDisplayComponent, data: { title: \"Meeting Room Display\" } },\r\n { path: \"attendance\", component: AttendanceSignInComponent, data: { title: \"Attendance\" } },\r\n { path: \"forgotpassword\", component: ForgotPasswordComponent, data: { title: \"Forgot Password\" } },\r\n { path: \"register\", component: RegisterComponent, data: { title: \"Register\" } },\r\n { path: \"resetpassword\", component: ResetPasswordComponent, data: { title: \"ResetPassword\" } },\r\n { path: \"login\", component: LoginComponent, data: { title: \"Login\" } },\r\n { path: \"externallogin\", component: ExternalLoginComponent, data: { title: \"Login\" } },\r\n { path: \"feedback\", component: FeedbackComponent, data: { title: \"Feedback\" } },\r\n { path: \"signagedisplay/:mac_address\", component: SignageDisplayComponent, data: { title: \"Signage Display\" } },\r\n { path: \"signagedisplay/:mac_address/:publication_id\", component: SignageDisplayComponent, data: { title: \"Signage Display\" } },\r\n { path: \"kiosk\", component: WayfinderComponent, data: { title: \"Kiosk\" } },\r\n { path: \"kiosk/:point_id\", component: WayfinderComponent, data: { title: \"Kiosk\" } },\r\n { path: \"kioskL\", component: WayfinderLandscapeComponent, data: { title: \"Kiosk\" } },\r\n { path: \"kioskL/:point_id\", component: WayfinderLandscapeComponent, data: { title: \"Kiosk\" } },\r\n { path: \"devicewarning/:msg/\", component: DeviceDisplayWarningComponent, data: { title: \"Device\" } },\r\n { path: \"devicewarning/:msg/:id\", component: DeviceDisplayWarningComponent, data: { title: \"Device\" } },\r\n { path: \"devicewarning/:msg/:id/:address\", component: DeviceDisplayWarningComponent, data: { title: \"Device\" } },\r\n { path: \"preview/dish/:id\", component: DishPreviewComponent, data: { title: \"Dish Preview\" } },\r\n\r\n ]\r\n }\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n providers: [AuthService, AuthGuard]\r\n})\r\nexport class AppRoutingModule {\r\n \r\n}\r\n","import 'core-js/es6/reflect';\r\nimport 'core-js/es7/reflect';\r\nimport 'zone.js/dist/zone';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { NgModule, ErrorHandler, LOCALE_ID, APP_INITIALIZER } from \"@angular/core\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { CommonModule } from '@angular/common';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { FlatpickrModule } from 'angularx-flatpickr';\r\nimport { CalendarModule, DateAdapter, CalendarUtils } from 'angular-calendar';\r\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\r\nimport { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MaterialModule } from './material-module';\r\nimport { MatDialogModule, MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n \r\n\r\nimport { TranslateModule, TranslateLoader } from \"@ngx-translate/core\";\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { ToastaModule } from 'ngx-toasta';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { TooltipModule } from \"ngx-bootstrap/tooltip\";\r\nimport { PopoverModule } from \"ngx-bootstrap/popover\";\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\nimport { CarouselModule } from 'ngx-bootstrap/carousel';\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { TreeModule } from 'ng2-tree';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppErrorHandler } from './app-error.handler';\r\nimport { AppTitleService } from './services/app-title.service';\r\nimport { AppTranslationService, TranslateLanguageLoader } from './services/app-translation.service';\r\nimport { ConfigurationService } from './services/configuration.service';\r\nimport { AlertService } from './services/alert.service';\r\nimport { LocalStoreManager } from './services/local-store-manager.service';\r\nimport { EndpointFactory } from './services/endpoint-factory.service';\r\nimport { NotificationService } from './services/notification.service';\r\nimport { NotificationEndpoint } from './services/notification-endpoint.service';\r\nimport { AccountService } from './services/account.service';\r\nimport { AccountEndpoint } from './services/account-endpoint.service';\r\nimport { FacilityService } from './services/facility.service';\r\nimport { FacilityTypeService } from './services/facility-type.service';\r\nimport { CommonEndpoint } from './services/common-endpoint.service';\r\nimport { ReservationService } from './services/reservation.service';\r\nimport { DeviceService } from './services/device.service';\r\nimport { InstitutionService } from './services/institution.service';\r\nimport { LocationService } from './services/location.service';\r\n\r\nimport { EqualValidator } from './directives/equal-validator.directive';\r\nimport { LastElementDirective } from './directives/last-element.directive';\r\nimport { AutofocusDirective } from './directives/autofocus.directive';\r\nimport { BootstrapTabDirective } from './directives/bootstrap-tab.directive';\r\nimport { BootstrapToggleDirective } from './directives/bootstrap-toggle.directive';\r\nimport { BootstrapSelectDirective } from './directives/bootstrap-select.directive';\r\nimport { BootstrapDatepickerDirective } from './directives/bootstrap-datepicker.directive';\r\nimport { GroupByPipe } from './pipes/group-by.pipe';\r\nimport { DateOnlyPipe } from './pipes/datetime.pipe';\r\nimport { DateTimeOnlyPipe } from './pipes/datetime.pipe';\r\n\r\nimport { AppComponent } from \"./components/app.component\";\r\nimport { LoginComponent } from \"./components/login/login.component\";\r\nimport { HomeComponent } from \"./components/home/home.component\";\r\nimport { SettingsComponent } from \"./components/settings/settings.component\";\r\nimport { NotFoundComponent } from \"./components/not-found/not-found.component\";\r\nimport { FacilitiesComponent } from \"./components/facilities/facilities.component\";\r\nimport { ReservationsComponent } from \"./components/reservations/reservations.component\";\r\nimport { ReservationEditorComponent } from \"./components/reservations/reservation-editor.component\";\r\nimport { ReservationPictureComponent } from \"./components/reservations/reservation-picture.component\";\r\nimport { PictureEditorComponent } from './components/reservations/picture-editor/picture-editor.component';\r\nimport { CalendarComponent } from \"./components/calendar/calendar.component\";\r\nimport { BookingComponent } from \"./components/calendar/booking/booking.component\";\r\nimport { BookingEditorComponent } from \"./components/calendar/booking/booking-editor.component\";\r\nimport { BookingGridComponent } from \"./components/calendar/booking-grid/booking-grid.component\";\r\nimport { BookingGridEditorComponent } from \"./components/calendar/booking-grid/booking-grid-editor.component\";\r\nimport { CalendarHeaderComponent } from './components/calendar/calendar-header.component';\r\nimport { DayViewSchedulerComponent, DayViewSchedulerCalendarUtils } from './components/calendar/calendar-booking-grid/day-view-scheduler.component';\r\n\r\nimport { BannerDemoComponent } from \"./components/controls/banner-demo.component\";\r\nimport { TodoDemoComponent } from \"./components/controls/todo-demo.component\";\r\nimport { StatisticsDemoComponent } from \"./components/controls/statistics-demo.component\";\r\nimport { NotificationsViewerComponent } from \"./components/controls/notifications-viewer.component\";\r\nimport { UpcomingEventsComponent } from \"./components//dashboard/upcoming-events/upcoming-events.component\";\r\nimport { SearchBoxComponent } from \"./components/controls/search-box.component\";\r\nimport { UserInfoComponent } from \"./components/controls/user-info.component\";\r\nimport { UserPreferencesComponent } from \"./components/controls/user-preferences.component\";\r\nimport { UsersManagementComponent } from \"./components/controls/users-management.component\";\r\nimport { RolesManagementComponent } from \"./components/controls/roles-management.component\";\r\nimport { RoleEditorComponent } from \"./components/controls/role-editor.component\";\r\nimport { FacilitiesManagementComponent } from \"./components/controls/facilities/facilities-management.component\";\r\nimport { FacilityEditorComponent } from \"./components/controls/facilities/facility-editor.component\";\r\nimport { FacilityTypesManagementComponent } from \"./components/controls/facility-type/facility-types-management.component\";\r\nimport { FacilityTypeEditorComponent } from \"./components/controls/facility-type/facility-type-editor.component\";\r\nimport { DeviceManagerComponent } from \"./components/device-manager/device-manager.component\";\r\n\r\nimport { DevicesManagementComponent } from \"./components/device-manager/unknown-device/devices-management.component\";\r\nimport { DeviceEditorComponent } from \"./components/device-manager/unknown-device/device-editor.component\";\r\n\r\nimport { LocationsManagementComponent } from \"./components/controls/locations/locations-management.component\";\r\nimport { LocationEditorComponent } from \"./components/controls/locations/location-editor.component\";\r\nimport { MatInputModule, MatFormFieldModule, MAT_LABEL_GLOBAL_OPTIONS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { ReservationListComponent } from './components/calendar/reservations/reservations.component';\r\nimport { ReservationListEditorComponent } from './components/calendar/reservations/reservation-editor.component';\r\n\r\nimport { InstitutionsManagementComponent } from \"./components/controls/institution/institutions-management.component\";\r\nimport { InstitutionEditorComponent } from \"./components/controls/institution/institution-editor.component\";\r\nimport { LocationsTreeManagementComponent } from './components/controls/locations-tree/locations-tree-management.component';\r\nimport { LocationTreeEditorComponent } from './components/controls/locations-tree/location-tree-editor.component';\r\nimport { FileUploadComponent } from './components/common/fileuploader/fileuploader.component';\r\nimport { ImageUploadComponent } from './components/common/ImageUploader/imageuploader.component';\r\nimport { FileService } from './services/file.service';\r\nimport { ImageFileService } from './services/image-file.service';\r\nimport { PlaylistService } from './services/playlist.service';\r\nimport { CalendarBookingGridComponent } from './components/calendar/calendar-booking-grid/calendar-booking-grid.component';\r\nimport { CalendarBookingGridEditorComponent } from './components/calendar/calendar-booking-grid/calendar-booking-grid-editor.component';\r\nimport { BookingService } from './services/booking.service';\r\nimport { DashboardService } from './services/dashboard.service';\r\nimport { DeviceForApprovalComponent } from './components/dashboard/device-for-approval/device-for-approval.component';\r\nimport { DashboardAvailableRoomComponent } from './components/dashboard/available-room/available-room.component';\r\nimport { DepartmentEditorComponent } from './components/controls/department/department-editor.component';\r\nimport { DepartmentsManagementComponent } from './components/controls/department/departments-management.component';\r\nimport { DepartmentService } from './services/department.service';\r\nimport { RegisterComponent } from './components/register/register.component';\r\nimport { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';\r\nimport { ResetPasswordComponent } from './components/reset-password/reset-password.component';\r\nimport { ExternalLoginComponent } from './components/login/external-login.component';\r\nimport { AttendanceSignInComponent } from './components/attendance-signin/attendance-signin.component';\r\nimport { ContactGroupsManagementComponent } from './components/controls/contactgroup/contactgroups-management.component';\r\nimport { ContactGroupEditorComponent } from './components/controls/contactgroup/contactgroup-editor.component';\r\nimport { ContactGroupService } from './services/contactgroup.service';\r\nimport { CGNewContactEmailEditorComponent } from './components/controls/contactgroup/emailcontact/emailcontact-editor.component';\r\nimport { ContactGroupSelectorComponent } from './components/common/contact-group-selector/contact-group-selector.component';\r\nimport { UserSelectorComponent } from './components/common/user-selector/user-selector.component';\r\nimport { UserPhonebookEditorComponent } from './components/controls/userphonebook/userphonebook-editor.component';\r\nimport { UserPhonebooksManagementComponent } from './components/controls/userphonebook/userphonebooks-management.component';\r\nimport { UserPhonebookSelectorComponent } from './components/common/userphonebook-selector/userphonebook-selector.component';\r\nimport { ReportsReservationListComponent } from './components/reports/reservations/reservations.component';\r\nimport { ShapeService } from './services/shape.service';\r\nimport { TextNodeService } from './services/text-node.service';\r\nimport { TemplateEditorComponent } from './components/template-editor/template-editor.component';\r\nimport { PIBService } from './services/pib.service';\r\nimport { KioskSettingsService } from './services/kiosk-settings.service';\r\nimport { TemplateEditorPreviewDialog } from './components/template-editor/preview/preview.component';\r\nimport { TemplateSaveDialogPreviewDialog } from './components/template-editor/save-dialog/save-dialog.component';\r\nimport { PIBDevicesManagementComponent } from './components/pib-device-manager/pib-unknown-device/pib-devices-management.component';\r\nimport { PIBDeviceEditorComponent } from './components/pib-device-manager/pib-unknown-device/pib-device-editor.component';\r\nimport { PIBDeviceManagerComponent } from './components/pib-device-manager/pib-device-manager.component';\r\nimport { NoNavigationAppComponent } from './components/no_navigation_app.component';\r\nimport { RootAppComponent } from './components/root-app.component';\r\nimport { ImageUploadsComponent } from \"./components/imageUpload/image-upload.component\";\r\nimport { ImageListsComponent } from \"./components/imageUpload/image-list.component\";\r\nimport { PlaylistCreatorComponent } from \"./components/playlistCreator/playlist-creator.component\";\r\nimport { FeedbackComponent } from './components/feedback/feedback.component';\r\nimport { FRSTemplateSaveDialogPreviewDialog } from './components/frs-template-editor/frs-save-dialog/frs-save-dialog.component';\r\nimport { FRSTemplateEditorPreviewDialog } from './components/frs-template-editor/frs-preview/frs-preview.component';\r\nimport { FRSTemplateEditorComponent } from './components/frs-template-editor/frs-template-editor.component';\r\nimport { EpaperService } from './services/epaper.service';\r\nimport { EpaperDevicesManagementComponent } from './components/frs-device-manager/frs-unknown-device/frs-devices-management.component';\r\nimport { EpaperDeviceEditorComponent } from './components/frs-device-manager/frs-unknown-device/frs-device-editor.component';\r\nimport { EpaperDeviceManagerComponent } from './components/frs-device-manager/frs-device-manager.component';\r\nimport { PIBDisplayComponent } from './components/template-editor/pibdisplay/pibdisplay.component';\r\nimport { PIBDeviceStatusListComponent } from './components/dashboard/pib-device-list/pib-device-list.component';\r\nimport { UserVehicleEditorComponent } from './components/controls/uservehicle/uservehicle-editor.component';\r\nimport { UserCardIdEditorComponent } from './components/controls/usercardid/usercardid-editor.component';\r\nimport { UserVehiclesManagementComponent } from './components/controls/uservehicle/uservehicle-management.component';\r\nimport { SignageComponentService } from './services/signage-component.service';\r\nimport { SignageComponentsManagementComponent } from './components/signage/signage-component/signage-components-management.component';\r\nimport { MeetingRoomDisplayComponent } from './components/meeting-room/meeting-room.component';\r\nimport { DeviceDisplayWarningComponent } from './components/device-warning/device-warning.component';\r\nimport { ReportContainerComponent } from './components/reports/report-container/report-container.component';\r\nimport { SignageComponentEditorComponent } from './components/signage/signage-component/signage-component-editor.component';\r\nimport { SignageComponentTypeService } from './services/signage-component-type.service';\r\nimport { SignageComponentTypeWrapperComponent } from './components/signage/signage-component-types/signage-component-type-wrapper.component';\r\nimport { FreeHTMLConfiguration } from './components/signage/signage-component-types/free-html/free-html-configuration.component';\r\nimport { SignageComponentTypeDirective } from './directives/signage-component-type.directive';\r\nimport { FreeHTML } from './components/signage/signage-component-types/free-html/free-html.component';\r\nimport { ClockConfiguration } from './components/signage/signage-component-types/clock/clock-configuration.component';\r\nimport { Clock } from './components/signage/signage-component-types/clock/clock.component';\r\nimport { SignageCompilationsManagementComponent } from './components/signage/signage-compilation/signage-compilations-management.component';\r\nimport { SignageCompilationEditorComponent } from './components/signage/signage-compilation/signage-compilation-editor.component';\r\nimport { SignageCompilationService } from './services/signage-compilation.service';\r\nimport { SignagePublicationsManagementComponent } from './components/signage/signage-publication/signage-publications-management.component';\r\nimport { SignagePublicationEditorComponent } from './components/signage/signage-publication/signage-publication-editor.component';\r\nimport { SignagePublicationService } from './services/signage-publication.service';\r\nimport { SignageDisplayComponent } from './components/signage/signage-display/signage-display.component';\r\nimport { VideoConfiguration } from './components/signage/signage-component-types/video/video-configuration.component';\r\nimport { Video } from './components/signage/signage-component-types/video/video.component';\r\nimport { VjsPlayerComponent } from './components/signage/signage-component-types/vjs-player.component';\r\nimport { ApplicationSettingEditorComponent } from './components/application-setting/application-setting-editor.component';\r\nimport { ApplicationSettingsManagementComponent } from './components/application-setting/application-settings-management.component';\r\nimport { MediasManagementComponent } from './components/controls/media/medias-management.component';\r\nimport { MediaEditorComponent } from './components/controls/media/media-editor.component';\r\nimport { ApplicationSettingService } from './services/application-setting.service';\r\nimport { MediaService } from './services/media.service';\r\nimport { SignagePlaylistConfiguration } from './components/signage/signage-component-types/playlist/playlist-configuration.component';\r\nimport { SignagePlaylist } from './components/signage/signage-component-types/playlist/playlist.component';\r\nimport { PlaylistsManagementComponent } from './components/playlistManagement/playlists-management.component';\r\nimport { DirectoryListingCategoryEditorComponent } from './components/directory-listing-category/directory-listing-category-editor.component';\r\nimport { DirectoryListingCategorysManagementComponent } from './components/directory-listing-category/directory-listing-categorys-management.component';\r\nimport { DirectoryListingCategoryService } from './services/directory-listing-category.service';\r\nimport { DirectoryListingEditorComponent } from './components/directory-listing/directory-listing-editor.component';\r\nimport { DirectoryListingsManagementComponent } from './components/directory-listing/directory-listings-management.component';\r\nimport { DirectoryListingService } from './services/directory-listing.service';\r\nimport { BuildingsManagementComponent } from './components/building/buildings-management.component';\r\nimport { BuildingEditorComponent } from './components/building/building-editor.component';\r\nimport { ReportsVehicleLogListComponent } from './components/reports/vehicle-logs/vehicle-logs.component';\r\nimport { FRSHubConnections } from './models/user.model';\r\nimport { BuildingService } from './services/building.service';\r\nimport { FloorsManagementComponent } from './components/floor/floors-management.component';\r\nimport { FloorEditorComponent } from './components/floor/floor-editor.component';\r\nimport { FloorService } from './services/floor.service';\r\nimport { MapService } from './services/map.service';\r\nimport { MapEditorComponent } from './components/map/map-editor.component';\r\nimport { MapsManagementComponent } from './components/map/maps-management.component';\r\nimport { EmergencyMessageConfiguration } from './components/signage/signage-component-types/emergency-message/emergency-message-configuration.component';\r\nimport { EmergencyMessage } from './components/signage/signage-component-types/emergency-message/emergency-message.component';\r\nimport { OccupancyLogEditorComponent } from './components/occupancy-log/occupancy-log-editor.component';\r\nimport { OccupancyLogsManagementComponent } from './components/occupancy-log/occupancy-logs-management.component';\r\nimport { OccupancyLogService } from './services/occupancy-log.service';\r\nimport { QueueTableMapEditorComponent } from './components/queue-table-map/queue-table-map-editor.component';\r\nimport { QueueTableMapSimulator, QueueTableMapsManagementComponent } from './components/queue-table-map/queue-table-maps-management.component';\r\nimport { QueueTableMapService } from './services/queue-table-map.service';\r\nimport { SingleQueueConfiguration } from './components/signage/signage-component-types/single-queue/single-queue-configuration.component';\r\nimport { SingleQueue } from './components/signage/signage-component-types/single-queue/single-queue.component';\r\nimport { TextConfiguration } from './components/signage/signage-component-types/text-configuration.component';\r\nimport { ModuleEditorComponent } from './components/controls/module/module-editor.component';\r\nimport { ModuleService } from './services/module.service';\r\nimport { ModulesManagementComponent } from './components/controls/module/modules-management.component';\r\nimport { MultiQueue, NgInit } from './components/signage/signage-component-types/multi-queue/multi-queue.component';\r\nimport { MultiQueueConfiguration } from './components/signage/signage-component-types/multi-queue/multi-queue-configuration.component';\r\nimport { EmployeeDesignationEditorComponent } from './components/employee-designation/employee-designation-editor.component';\r\nimport { EmployeeDesignationsManagementComponent } from './components/employee-designation/employee-designations-management.component';\r\nimport { EmployeeDesignationService } from './services/employee-designation.service';\r\nimport { EmployeeDataEditorComponent } from './components/employee-data/employee-data-editor.component';\r\nimport { EmployeeDatasManagementComponent } from './components/employee-data/employee-datas-management.component';\r\nimport { EmployeeDataService } from './services/employee-data.service';\r\nimport { EmployeeScheduleEditorComponent } from './components/employee-schedule/employee-schedule-editor.component';\r\nimport { EmployeeSchedulesManagementComponent } from './components/employee-schedule/employee-schedules-management.component';\r\nimport { EmployeeScheduleService } from './services/employee-schedule.service';\r\nimport { EmployeeScheduleAssignComponent } from './components/employee-schedule/employee-schedule-assign.component';\r\nimport { EmployeeName } from './components/signage/signage-component-types/employee-name/employee-name.component';\r\nimport { EmployeeNameConfiguration } from './components/signage/signage-component-types/employee-name/employee-name-configuration.component';\r\nimport { LocationNameConfiguration } from './components/signage/signage-component-types/location-name/location-name-configuration.component';\r\nimport { LocationName } from './components/signage/signage-component-types/location-name/location-name.component';\r\nimport { WayfinderComponent } from './components/wayfinder-view/wayfinder-view.component'\r\nimport { WayfinderLandscapeComponent } from './components/wayfinder-landscape-view/wayfinder-landscape-view.component'\r\nimport { KioskSettingsListComponent } from './components/kioskSettings/kiosk-settings-list.component';\r\nimport { KioskSettingsEditComponent } from './components/kioskSettings/kiosk-settings-edit.component';\r\n\r\nimport { CarouselModule as OwlCarousel } from 'ngx-owl-carousel-o';\r\nimport { MissedQueueConfiguration } from './components/signage/signage-component-types/missed-queue/missed-queue-configuration.component';\r\nimport { MissedQueue } from './components/signage/signage-component-types/missed-queue/missed-queue.component';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\nimport { EmsesManagementComponent } from './components/controls/ems/emses-management.component';\r\nimport { EmsEditorComponent } from './components/controls/ems/ems-editor.component';\r\nimport { EmsProfileService } from './services/ems-profile.service';\r\nimport { SignageDashboardContainerComponent } from './components/dashboard/signage/signage-dashboard-container/signage-dashboard-container.component';\r\nimport { UserGroupsManagementComponent } from './components/controls/user-group/user-groups-management.component';\r\nimport { UserGroupEditorComponent } from './components/controls/user-group/user-group-editor.component';\r\nimport { UserGroupService } from './services/userGroup.service';\r\nimport { EmsScheduleService } from './services/ems-schedule.service';\r\nimport { EmsService } from './services/ems.service';\r\nimport { EmsProfilesComponent } from './components/ems-profile/ems-profiles.component';\r\nimport { EmsProfileEditorComponent } from './components/ems-profile/ems-profile-editor.component';\r\nimport { EmsSchedulesComponent } from './components/ems-schedule/ems-schedules.component';\r\nimport { EmsScheduleEditorComponent } from './components/ems-schedule/ems-schedule-editor.component';\r\nimport { LocationPanelComponent } from './components/dashboard/signage/location-panel/location-panel.component';\r\nimport { CalendarLandingPageComponent } from './components/calendar/landing-page/landing-page.component';\r\nimport { DevicePushMessageDialog } from './components/dashboard/signage/push-message-dialog/push-message-dialog.component';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { MenuPanelComponent } from './components/menu/menu-panel/menu-panel.component';\r\nimport { SubMenuPanelComponent } from './components/menu/sub-menu-panel/sub-menu-panel.component';\r\nimport { TreeModule as CirclonTreeModule } from 'angular-tree-component';\r\nimport { NgxImageZoomModule } from 'ngx-image-zoom';\r\nimport { ImageViewerComponent } from './components/common/image-viewer/image-viewer.component';\r\nimport { ImageZoomModule } from 'angular2-image-zoom';\r\nimport { MediaExtensionService } from './services/media-extension.service';\r\nimport { MediaExtensionEditorComponent } from './components/media-extension/media-extension-editor.component';\r\nimport { MediaExtensionsManagementComponent } from './components/media-extension/media-extensions-management.component';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { AuthLogsManagementComponent } from './components/audit/auth-log/auth-logs-management.component';\r\nimport { DataLogsManagementComponent } from './components/audit/data-log/data-logs-management.component';\r\nimport { AuditService } from './services/audit.service';\r\nimport { DataLogViewerComponent } from './components/audit/data-log/data-log-viewer.component';\r\nimport { ImageReferenceTypeEditorComponent } from './components/controls/image-reference-type/image-reference-type-editor.component';\r\nimport { ImageReferenceTypesManagementComponent } from './components/controls/image-reference-type/image-reference-types-management.component';\r\nimport { ImageReferenceTypeService } from './services/image-reference-type.service';\r\nimport { ImageReferenceColorsManagementComponent } from './components/controls/image-reference-color/image-reference-colors-management.component';\r\nimport { ImageReferenceColorEditorComponent } from './components/controls/image-reference-color/image-reference-color-editor.component';\r\nimport { ImageReferenceColorService } from './services/image-reference-color.service';\r\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\r\nimport { SmartRoomSchedulerLogsManagementComponent } from './components/smartroom-scheduler-log/smartroom-scheduler-logs-management.component';\r\nimport { SmartRoomSchedulerService } from './services/smartroom.service';\r\nimport { SmartRoomSchedulerDetailsViewerComponent } from './components/smartroom-scheduler-log/details-log-viewer.component';\r\nimport { SingleBookingConfiguration } from './components/signage/signage-component-types/single-booking/single-booking-configuration.component';\r\nimport { SingleBooking } from './components/signage/signage-component-types/single-booking/single-booking.component';\r\nimport { TextDisplay } from './components/signage/signage-component-types/text-display.component';\r\nimport { MultiBookingConfiguration } from './components/signage/signage-component-types/multi-booking/multi-booking-configuration.component';\r\nimport { MultiBooking } from './components/signage/signage-component-types/multi-booking/multi-booking.component';\r\nimport { AssetTypesManagementComponent } from './components/controls/asset-type/asset-types-management.component';\r\nimport { AssetTypeEditorComponent } from './components/controls/asset-type/asset-type-editor.component';\r\nimport { AssetModelsManagementComponent } from './components/controls/asset-model/asset-models-management.component';\r\nimport { AssetModelEditorComponent } from './components/controls/asset-model/asset-model-editor.component';\r\nimport { AssetService } from './services/asset.service';\r\nimport { ServiceContractService } from './services/service-contract.service';\r\nimport { ServiceContractsManagementComponent } from './components/service-contract/service-contracts-management.component';\r\nimport { ServiceContractEditorComponent } from './components/service-contract/service-contract-editor.component';\r\nimport { AssetEditorComponent } from './components/controls/asset/asset-editor.component';\r\nimport { AssetQrCodeComponent, AssetsManagementComponent } from './components/controls/asset/assets-management.component';\r\nimport { AssetSelectorComponent } from './components/common/asset-selector/asset-selector.component';\r\nimport { AssetLabelComponent } from './components/controls/asset/asset-label/asset-label.component';\r\nimport { FreeTextConfiguration } from './components/signage/signage-component-types/free-text/free-text-configuration.component';\r\nimport { FreeText } from './components/signage/signage-component-types/free-text/free-text.component';\r\nimport { EmailQueuesManagementComponent } from './components/controls/email-queue/email-queues-management.component';\r\nimport { EmailQueueService } from './services/emailqueue.service';\r\nimport { UpDownTimeLogsManagementComponent } from './components/audit/updowntime-log/updowntime-logs-management.component';\r\nimport { QRCodeModule } from 'angular2-qrcode';\r\nimport { DeviceTypeEditorComponent } from './components/controls/device-type/device-type-editor.component';\r\nimport { DeviceTypesManagementComponent } from './components/controls/device-type/device-types-management.component';\r\nimport { WebFrame } from './components/signage/signage-component-types/web-frame/web-frame.component';\r\nimport { WebFrameConfiguration } from './components/signage/signage-component-types/web-frame/web-frame-configuration.component';\r\nimport { StudentService } from './services/meal-order/student.service';\r\nimport { ClassService } from './services/meal-order/class.service';\r\nimport { CreateAccountMultiple, StudentsManagementComponent } from './components/meal-order-system/student/students-management.component';\r\nimport { StudentGroupsManagementComponent } from './components/meal-order-system/student-group/student-groups-management.component';\r\nimport { ClassesManagementComponent } from './components/meal-order-system/class/classes-management.component';\r\nimport { ClassLevelsManagementComponent } from './components/meal-order-system/class-level/class-levels-management.component';\r\nimport { StudentEditorComponent } from './components/meal-order-system/student/student-editor.component';\r\nimport { StudentGroupEditorComponent } from './components/meal-order-system/student-group/student-group-editor.component';\r\nimport { StudentSelectorComponent } from './components/meal-order-system/student-group/student-selector/student-selector.component';\r\nimport { ClassLevelEditorComponent } from './components/meal-order-system/class-level/class-level-editor.component';\r\nimport { ClassEditorComponent } from './components/meal-order-system/class/class-editor.component';\r\nimport { UserService } from './services/meal-order/user.service';\r\nimport { StaffService } from './services/meal-order/staff.service';\r\nimport { StaffEditorComponent } from './components/meal-order-system/staff/staff-editor.component';\r\nimport { StaffsManagementComponent } from './components/meal-order-system/staff/staffs-management.component';\r\nimport { StaffTypeEditorComponent } from './components/meal-order-system/staff-type/staff-type-editor.component';\r\nimport { StaffTypesManagementComponent } from './components/meal-order-system/staff-type/staff-types-management.component';\r\nimport { RestrictionTypesManagementComponent } from './components/meal-order-system/restriction-type/restriction-types-management.component';\r\nimport { RestrictionTypeEditorComponent } from './components/meal-order-system/restriction-type/restriction-type-editor.component';\r\nimport { RestrictionEditorComponent } from './components/meal-order-system/restriction/restriction-editor.component';\r\nimport { RestrictionsManagementComponent } from './components/meal-order-system/restriction/restrictions-management.component';\r\nimport { RestrictionService } from './services/meal-order/restriction.service';\r\nimport { MealTypeEditorComponent } from './components/meal-order-system/meal-type/meal-type-editor.component';\r\nimport { DishTypeEditorComponent } from './components/meal-order-system/dish-type/dish-type-editor.component';\r\nimport { MealPeriodEditorComponent } from './components/meal-order-system/meal-period/meal-period-editor.component';\r\nimport { DishService } from './services/meal-order/dish.service';\r\nimport { MealService } from './services/meal-order/meal.service';\r\nimport { DishTypesManagementComponent } from './components/meal-order-system/dish-type/dish-types-management.component';\r\nimport { MealTypesManagementComponent } from './components/meal-order-system/meal-type/meal-types-management.component';\r\nimport { MealPeriodsManagementComponent } from './components/meal-order-system/meal-period/meal-periods-management.component';\r\nimport { DishEditorComponent } from './components/meal-order-system/dishes/dish-editor.component';\r\nimport { DishesManagementComponent } from './components/meal-order-system/dishes/dishes-management.component';\r\nimport { MenuEditorComponent } from './components/meal-order-system/menus/menu-editor.component';\r\nimport { TokenOrderEditorComponent } from './components/meal-order-system/token-order/token-order-editor.component';\r\nimport { MenuService } from './services/meal-order/menu.service';\r\nimport { MenusManagementComponent } from './components/meal-order-system/menus/menus-management.component';\r\nimport { TokenOrdersManagementComponent } from './components/meal-order-system/token-order/token-orders-management.component';\r\nimport { TokenOrdersBulkManagementComponent } from './components/meal-order-system/token-order-bulk/token-orders-bulk-management.component';\r\nimport { TokenOrderBulkEditorComponent } from './components/meal-order-system/token-order-bulk/token-order-bulk-editor.component';\r\nimport { MealAllocationssManagementComponent } from './components/meal-order-system/meal-allocation/meal-allocations-management.component';\r\nimport { PrintAllocationComponent } from './components/meal-order-system/meal-allocation/print-allocation.component';\r\nimport { PackingAllocationssManagementComponent } from './components/meal-order-system/packing-allocation/packing-allocations-management.component';\r\nimport { PackingAllocationEditorComponent } from './components/meal-order-system/packing-allocation/packing-allocation-editor.component';\r\nimport { MenuCycleEditorComponent } from './components/meal-order-system/menu-cycle/menu-cycle-editor.component';\r\nimport { MenuCyclesManagementComponent } from './components/meal-order-system/menu-cycle/menu-cycles-management.component';\r\nimport { CatererInfosManagementComponent } from './components/meal-order-system/caterer-info/caterer-infos-management.component';\r\nimport { CatererInfoEditorComponent } from './components/meal-order-system/caterer-info/caterer-info-editor.component';\r\nimport { BentoBoxTypeEditorComponent } from './components/meal-order-system/bento-box-type/bento-box-type-editor.component';\r\nimport { BentoBoxTypesManagementComponent } from './components/meal-order-system/bento-box-type/bento-box-types-management.component';\r\nimport { DeliveryService } from './services/meal-order/delivery.service';\r\nimport { BentoAssetEditorComponent } from './components/meal-order-system/bento-asset/bento-asset-editor.component';\r\nimport { BentoAssetsManagementComponent, NewMultipleBentoAsset } from './components/meal-order-system/bento-asset/bento-assets-management.component';\r\nimport { CartonTypeEditorComponent } from './components/meal-order-system/carton-type/carton-type-editor.component';\r\nimport { CartonTypesManagementComponent } from './components/meal-order-system/carton-type/carton-types-management.component';\r\nimport { CartonAssetEditorComponent } from './components/meal-order-system/carton-asset/carton-asset-editor.component';\r\nimport { CartonAssetsManagementComponent } from './components/meal-order-system/carton-asset/carton-assets-management.component';\r\nimport { TrackingStatusEditorComponent } from './components/meal-order-system/tracking-status/tracking-status-editor.component';\r\nimport { TrackingStatussManagementComponent } from './components/meal-order-system/tracking-status/tracking-statuss-management.component';\r\nimport { DeliveryOrderEditorComponent } from './components/meal-order-system/delivery-order/delivery-order-editor.component';\r\nimport { DeliveryOrdersManagementComponent } from './components/meal-order-system/delivery-order/delivery-orders-management.component';\r\nimport { DishingProcesssManagementComponent } from './components/meal-order-system/dishing-process/dishing-processs-management.component';\r\nimport { ClassBatchesManagementComponent } from './components/meal-order-system/class-batch/class-batches-management.component';\r\nimport { ClassBatchEditorComponent } from './components/meal-order-system/class-batch/class-batch-editor.component';\r\nimport { DishSelectorComponent } from './components/meal-order-system/dishes/dish-selector/dish-selector.component';\r\nimport { DishPreviewComponent } from './components/meal-order-system/dishes/dish-preview/dish-preview.component';\r\nimport { OutletsManagementComponent } from './components/meal-order-system/outlet/outlets-management.component';\r\nimport { OutletEditorComponent } from './components/meal-order-system/outlet/outlet-editor.component';\r\nimport { CatererSelectorComponent } from './components/meal-order-system/outlet/caterer-selector/caterer-selector.component';\r\nimport { StoreSelectorComponent } from './components/meal-order-system/outlet/store-selector/store-selector.component';\r\nimport { OrderReportComponent } from './components/meal-order-system/outlet/order-report/order-report.component';\r\nimport { OrderDeliveryReportComponent } from './components/meal-order-system/outlet/order-delivery-report/order-delivery-report.component';\r\nimport { PrintLabelComponent } from './components/meal-order-system/outlet/print-label/print-label.component';\r\nimport { StoreSelectorDetailsComponent } from './components/meal-order-system/outlet/store-selector-details/store-selector-details.component';\r\nimport { DOSelectorComponent } from './components/meal-order-system/store-info/do-selector/do-selector.component';\r\nimport { ReceiveDOComponent } from './components/meal-order-system/store-info/receive-do/receive-do.component';\r\nimport { InventoryDetailComponent } from './components/meal-order-system/store-info/inventory-detail/inventory-detail.component';\r\nimport { InventorySelectorComponent } from './components/meal-order-system/store-info/inventory-selector/inventory-selector.component';\r\nimport { OutletProfilesManagementComponent } from './components/meal-order-system/outlet-profile/outlet-profiles-management.component';\r\nimport { OutletProfileEditorComponent } from './components/meal-order-system/outlet-profile/outlet-profile-editor.component';\r\nimport { CuisineEditorComponent } from './components/meal-order-system/cuisine/cuisine-editor.component';\r\nimport { CuisinesManagementComponent } from './components/meal-order-system/cuisine/cuisines-management.component';\r\nimport { StoreInfoEditorComponent } from './components/meal-order-system/store-info/store-info-editor.component';\r\nimport { StoreInfosManagementComponent } from './components/meal-order-system/store-info/store-infos-management.component';\r\nimport { DoProcesssManagementComponent } from './components/meal-order-system/do-process/do-processs-management.component';\r\nimport { PackingProcesssManagementComponent } from './components/meal-order-system/packing-process/packing-processs-management.component';\r\nimport { InterestGroupEditorComponent } from './components/meal-order-system/interest-group/interest-group-editor.component';\r\nimport { InterestGroupsManagementComponent } from './components/meal-order-system/interest-group/interest-groups-management.component';\r\nimport { DriverEditorComponent } from './components/meal-order-system/driver/driver-editor.component';\r\nimport { DriversManagementComponent } from './components/meal-order-system/driver/drivers-management.component';\r\nimport { RouteEditorComponent } from './components/meal-order-system/route/route-editor.component';\r\nimport { RoutesManagementComponent } from './components/meal-order-system/route/routes-management.component';\r\nimport { MealSessionEditorComponent } from './components/meal-order-system/outlet/meal-session/meal-session-editor.component';\r\nimport { MenuCycleCalendarComponent } from './components/meal-order-system/caterer-info/caterer-calendar/caterer-calendar.component';\r\nimport { CatererApprovalComponent } from './components/meal-order-system/caterer-info/caterer-selector/caterer-selector.component';\r\nimport { ViewMenuCycleMenuComponent } from './components/meal-order-system/menu-cycle/view-menu/view-menu.component';\r\nimport { OutletMenuCycleCalendarComponent } from './components/meal-order-system/outlet/outlet-calendar/outlet-calendar.component';\r\nimport { OutletViewMenuCycleMenuComponent } from './components/meal-order-system/outlet/view-menu/view-menu.component';\r\nimport { OutletClassRosterEditorComponent } from './components/meal-order-system/outlet/class-roster/class-roster-editor.component';\r\nimport { MenuDishSelectorEditorComponent } from './components/meal-order-system/menus/dish-selector/dish-selector-editor.component';\r\nimport { StudentMenuCycleCalendarComponent } from './components/meal-order-system/student/student-calendar/student-calendar.component';\r\nimport { DishCycleEditorComponent } from './components/meal-order-system/dish-cycle/dish-cycle-editor.component';\r\nimport { DishCyclesManagementComponent } from './components/meal-order-system/dish-cycle/dish-cycles-management.component';\r\nimport { DishCycleCalendarComponent } from './components/meal-order-system/caterer-info/caterer-dish-calendar/caterer-dish-calendar.component';\r\nimport { ViewDishCycleMenuComponent } from './components/meal-order-system/dish-cycle/view-menu/view-menu.component';\r\nimport { OutletDishCycleCalendarComponent } from './components/meal-order-system/outlet/dish-calendar/dish-calendar.component';\r\nimport { OutletViewDishCycleMenuComponent } from './components/meal-order-system/outlet/view-dish/view-dish.component';\r\nimport { ChannelInfoEditorComponent } from './components/controls/channel-info/channel-info-editor.component';\r\nimport { ChannelInfosManagementComponent } from './components/controls/channel-info/channel-infos-management.component';\r\nimport { ChannelInfoService } from './services/channel-info.service';\r\nimport { TokenOrderPaymentThankyouComponent } from './components/meal-order-system/token-order-payment/token-order-payment-thankyou/token-order-payment-thankyou.component';\r\nimport { TokenOrderPaymentComponent } from './components/meal-order-system/token-order-payment/token-order-payment.component';\r\nimport { OutletClassRostersManagementComponent } from './components/meal-order-system/outlet/class-roster/class-rosters-management.component';\r\nimport { PaymentTypesManagementComponent } from './components/meal-order-system/payment-type/payment-types-management.component';\r\nimport { PaymentTypeEditorComponent } from './components/meal-order-system/payment-type/payment-type-editor.component';\r\nimport { TransactionFeesManagementComponent } from './components/meal-order-system/transaction-fee/transaction-fees-management.component';\r\nimport { TransactionFeeEditorComponent } from './components/meal-order-system/transaction-fee/transaction-fee-editor.component';\r\nimport { PaymentService } from './services/meal-order/payment.service';\r\nimport { VoucherTypeEditorComponent } from './components/meal-order-system/voucher-type/voucher-type-editor.component';\r\nimport { VoucherEditorComponent } from './components/meal-order-system/voucher/voucher-editor.component';\r\nimport { VoucherTypesManagementComponent } from './components/meal-order-system/voucher-type/voucher-types-management.component';\r\nimport { VouchersManagementComponent } from './components/meal-order-system/voucher/vouchers-management.component';\r\nimport { WaiverEditorComponent } from './components/meal-order-system/waiver/waiver-editor.component';\r\nimport { WaiversManagementComponent } from './components/meal-order-system/waiver/waivers-management.component';\r\nimport { ContactUsSubject } from './models/meal-order/contact-us-subject.model';\r\nimport { ContactUsDetailsManagementComponent } from './components/meal-order-system/contact-us-detail/contact-us-details-management.component';\r\nimport { ContactUsDetailEditorComponent } from './components/meal-order-system/contact-us-detail/contact-us-detail-editor.component';\r\nimport { ContactUsSubjectEditorComponent } from './components/meal-order-system/contact-us-subject/contact-us-subject-editor.component';\r\nimport { EmailService } from './services/meal-order/email.service';\r\nimport { ContactUsSubjectsManagementComponent } from './components/meal-order-system/contact-us-subject/contact-us-subjects-management.component';\r\nimport { EmailTemplatesManagementComponent } from './components/meal-order-system/email-template/email-templates-management.component';\r\nimport { EmailTemplateEditorComponent } from './components/meal-order-system/email-template/email-template-editor.component';\r\nimport { InterestGroupEmailComponent } from './components/meal-order-system/interest-group/interest-group-email.component';\r\nimport { NotificationEventEditorComponent } from './components/meal-order-system/notification-event/notification-event-editor.component';\r\nimport { NotificationEventsManagementComponent } from './components/meal-order-system/notification-event/notification-events-management.component';\r\nimport { StudentNotificationDialogComponent } from './components/meal-order-system/student/notification-dialog.component';\r\nimport { CancelOrderRequestEditorComponent } from './components/meal-order-system/cancel-order-request/cancel-order-request-editor.component';\r\nimport { CancelOrderRequestsManagementComponent } from './components/meal-order-system/cancel-order-request/cancel-order-requests-management.component';\r\nimport { OrderLogsManagementComponent } from './components/audit/order-log/order-logs-management.component';\r\nimport { ExternalLoginLogsManagementComponent } from './components/audit/external-login-log/external-login-logs-management.component';\r\nimport { OrderMealSummaryComponent } from './components/meal-order-system/outlet/order-meal-summary/order-meal-summary.component';\r\nimport { UserAccountsReportManagementComponent } from './components/reports/user-account/user-accounts-management.component';\r\nimport { PublicHolidayEditorComponent } from './components/public-holiday/public-holiday-editor.component';\r\nimport { PublicHolidaysManagementComponent } from './components/public-holiday/public-holidays-management.component';\r\nimport { CalendarService } from './services/calendar.service';\r\nimport { PublicationReportsManagementComponent } from './components/audit/publication-report/publication-reports-management.component';\r\nimport { DeviceReportsManagementComponent } from './components/audit/device-report/device-reports-management.component';\r\nimport { DeviceStatusReportsManagementComponent } from './components/audit/device-status-report - Copy/device-status-reports-management.component';\r\nimport { UserRolesReportManagementComponent } from './components/reports/user-role/user-roles-management.component';\r\n \r\n \r\n\r\n\r\nexport const configFactory = (configService: ConfigurationService) => {\r\n return () => {\r\n configService.loadConfig();\r\n configService.loadMenus();\r\n }\r\n};\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule, MatDialogModule,\r\n MatInputModule,\r\n AppRoutingModule,\r\n //BaseModule,\r\n ImageZoomModule,\r\n NgxImageZoomModule.forRoot(),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useClass: TranslateLanguageLoader\r\n }\r\n }),\r\n NgxDocViewerModule,\r\n NgxDatatableModule,\r\n ToastaModule.forRoot(),\r\n TooltipModule.forRoot(),\r\n PopoverModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n CarouselModule.forRoot(),\r\n ModalModule.forRoot(),\r\n OwlCarousel,\r\n ChartsModule,\r\n CommonModule,\r\n NgbModalModule,\r\n MaterialModule,\r\n ColorPickerModule,\r\n FlatpickrModule.forRoot(),\r\n CalendarModule.forRoot({\r\n provide: DateAdapter,\r\n useFactory: adapterFactory\r\n }),\r\n TreeModule,\r\n NgxMatSelectSearchModule,\r\n CirclonTreeModule,\r\n PdfViewerModule,\r\n QRCodeModule,\r\n //NgSelectModule, FormsModule\r\n //MOSClassModule, MOSStudentModule\r\n ],\r\n declarations: [\r\n AppComponent, NoNavigationAppComponent, RootAppComponent,\r\n TemplateEditorComponent, TemplateEditorPreviewDialog, TemplateSaveDialogPreviewDialog,\r\n PIBDisplayComponent,\r\n FRSTemplateEditorComponent, FRSTemplateEditorPreviewDialog, FRSTemplateSaveDialogPreviewDialog,\r\n LoginComponent, ExternalLoginComponent,\r\n RegisterComponent,\r\n AttendanceSignInComponent,\r\n ForgotPasswordComponent,\r\n ResetPasswordComponent,\r\n HomeComponent,\r\n FacilitiesComponent,\r\n ReservationsComponent, ReservationEditorComponent, ReservationPictureComponent,\r\n UpcomingEventsComponent, DeviceForApprovalComponent, DashboardAvailableRoomComponent, PIBDeviceStatusListComponent, MeetingRoomDisplayComponent,\r\n ReservationListComponent, ReservationListEditorComponent,\r\n CalendarComponent, CalendarHeaderComponent, DayViewSchedulerComponent, CalendarLandingPageComponent,\r\n BookingComponent, BookingEditorComponent,\r\n BookingGridComponent, BookingGridEditorComponent,\r\n CalendarBookingGridComponent, CalendarBookingGridEditorComponent,\r\n SettingsComponent,\r\n UsersManagementComponent, UserInfoComponent, UserPreferencesComponent,\r\n RolesManagementComponent, RoleEditorComponent,\r\n NotFoundComponent,\r\n NotificationsViewerComponent,\r\n SearchBoxComponent,\r\n StatisticsDemoComponent, TodoDemoComponent, BannerDemoComponent,\r\n EqualValidator,\r\n LastElementDirective,\r\n AutofocusDirective,\r\n BootstrapTabDirective,\r\n BootstrapToggleDirective,\r\n BootstrapSelectDirective,\r\n BootstrapDatepickerDirective,\r\n SignageComponentTypeDirective,\r\n GroupByPipe,\r\n DateTimeOnlyPipe, DateOnlyPipe,\r\n FacilitiesManagementComponent, FacilityEditorComponent,\r\n FacilityTypesManagementComponent, FacilityTypeEditorComponent,\r\n SignageComponentsManagementComponent, SignageComponentEditorComponent,\r\n SignageCompilationsManagementComponent, SignageCompilationEditorComponent,\r\n SignagePublicationsManagementComponent, SignagePublicationEditorComponent,\r\n DeviceManagerComponent,\r\n DeviceEditorComponent, DevicesManagementComponent,\r\n LocationEditorComponent, LocationsManagementComponent,\r\n LocationTreeEditorComponent, LocationsTreeManagementComponent,\r\n InstitutionsManagementComponent, InstitutionEditorComponent,\r\n DepartmentsManagementComponent, DepartmentEditorComponent,\r\n ContactGroupsManagementComponent, ContactGroupEditorComponent, CGNewContactEmailEditorComponent,\r\n FileUploadComponent, ImageUploadComponent, ContactGroupSelectorComponent, UserSelectorComponent,\r\n UserPhonebookEditorComponent, UserPhonebooksManagementComponent, UserPhonebookSelectorComponent,\r\n AssetSelectorComponent,\r\n ReportsReservationListComponent,\r\n PIBDevicesManagementComponent, PIBDeviceEditorComponent, PIBDeviceManagerComponent,\r\n ImageUploadsComponent, ImageListsComponent, PlaylistCreatorComponent, PlaylistsManagementComponent, FeedbackComponent, PictureEditorComponent,\r\n EpaperDevicesManagementComponent, EpaperDeviceEditorComponent, EpaperDeviceManagerComponent, UserVehicleEditorComponent, UserCardIdEditorComponent, UserVehiclesManagementComponent, SignageComponentTypeWrapperComponent, VjsPlayerComponent, FreeHTMLConfiguration, FreeHTML,\r\n DeviceDisplayWarningComponent,\r\n ReportContainerComponent,\r\n KioskSettingsListComponent, KioskSettingsEditComponent,\r\n VideoConfiguration, Video,\r\n SignagePlaylistConfiguration, SignagePlaylist,\r\n ClockConfiguration, Clock,\r\n EmergencyMessageConfiguration, EmergencyMessage,\r\n SingleQueueConfiguration, SingleQueue,\r\n EmployeeNameConfiguration, EmployeeName,\r\n LocationNameConfiguration, LocationName,\r\n FreeTextConfiguration, FreeText,\r\n SingleBookingConfiguration, SingleBooking,\r\n MultiBookingConfiguration, MultiBooking,\r\n WebFrameConfiguration, WebFrame,\r\n MultiQueueConfiguration, MultiQueue, NgInit,\r\n MissedQueueConfiguration, MissedQueue,\r\n SignageDisplayComponent,\r\n TextConfiguration,\r\n TextDisplay,\r\n ApplicationSettingEditorComponent, ApplicationSettingsManagementComponent,\r\n DirectoryListingCategoryEditorComponent, DirectoryListingCategorysManagementComponent,\r\n\r\n MediaExtensionEditorComponent, MediaExtensionsManagementComponent,\r\n EmployeeDesignationEditorComponent, EmployeeDesignationsManagementComponent,\r\n EmployeeScheduleEditorComponent, EmployeeScheduleAssignComponent, EmployeeSchedulesManagementComponent,\r\n EmployeeDataEditorComponent, EmployeeDatasManagementComponent,\r\n QueueTableMapEditorComponent, QueueTableMapsManagementComponent, QueueTableMapSimulator, NewMultipleBentoAsset, CreateAccountMultiple,\r\n OccupancyLogEditorComponent, OccupancyLogsManagementComponent,\r\n DirectoryListingEditorComponent, DirectoryListingsManagementComponent,\r\n BuildingEditorComponent, BuildingsManagementComponent,\r\n FloorEditorComponent, FloorsManagementComponent,\r\n MapEditorComponent, MapsManagementComponent,\r\n MediasManagementComponent, MediaEditorComponent,\r\n DeviceDisplayWarningComponent,\r\n ReportsVehicleLogListComponent,\r\n ModulesManagementComponent, ModuleEditorComponent,\r\n WayfinderComponent, WayfinderLandscapeComponent,\r\n EmsProfilesComponent, EmsProfileEditorComponent,\r\n SignageDashboardContainerComponent,\r\n UserGroupsManagementComponent, UserGroupEditorComponent,\r\n EmsSchedulesComponent, EmsScheduleEditorComponent,\r\n EmsesManagementComponent, EmsEditorComponent,\r\n LocationPanelComponent,\r\n DevicePushMessageDialog,\r\n MenuPanelComponent, SubMenuPanelComponent,\r\n ImageViewerComponent,\r\n AuthLogsManagementComponent, UpDownTimeLogsManagementComponent, DataLogsManagementComponent, DataLogViewerComponent,\r\n ImageReferenceTypesManagementComponent, ImageReferenceTypeEditorComponent,\r\n ImageReferenceColorsManagementComponent, ImageReferenceColorEditorComponent,\r\n SmartRoomSchedulerLogsManagementComponent, SmartRoomSchedulerDetailsViewerComponent,\r\n PublicHolidaysManagementComponent, PublicHolidayEditorComponent,\r\n AssetTypesManagementComponent, AssetTypeEditorComponent,\r\n AssetModelsManagementComponent, AssetModelEditorComponent,\r\n AssetsManagementComponent, AssetEditorComponent, AssetQrCodeComponent,\r\n ServiceContractsManagementComponent, ServiceContractEditorComponent,\r\n EmailQueuesManagementComponent,\r\n DeviceTypesManagementComponent, DeviceTypeEditorComponent,\r\n ChannelInfosManagementComponent, ChannelInfoEditorComponent,\r\n StudentsManagementComponent, StudentEditorComponent,\r\n StudentGroupsManagementComponent, StudentGroupEditorComponent, StudentSelectorComponent,\r\n ClassBatchesManagementComponent, ClassBatchEditorComponent,\r\n ClassLevelsManagementComponent, ClassLevelEditorComponent,\r\n ClassesManagementComponent, ClassEditorComponent,\r\n StaffTypesManagementComponent, StaffTypeEditorComponent,\r\n StaffsManagementComponent, StaffEditorComponent,\r\n RestrictionTypesManagementComponent, RestrictionTypeEditorComponent,\r\n RestrictionsManagementComponent, RestrictionEditorComponent,\r\n DishTypeEditorComponent, DishTypesManagementComponent,\r\n CuisineEditorComponent, CuisinesManagementComponent,\r\n CatererInfoEditorComponent, CatererInfosManagementComponent,\r\n OutletEditorComponent, OutletsManagementComponent, OutletProfileEditorComponent, OutletProfilesManagementComponent,\r\n BentoAssetEditorComponent, BentoAssetsManagementComponent, DishingProcesssManagementComponent, PackingProcesssManagementComponent, DoProcesssManagementComponent,\r\n CartonAssetEditorComponent, CartonAssetsManagementComponent,\r\n BentoBoxTypeEditorComponent, BentoBoxTypesManagementComponent,\r\n CartonTypeEditorComponent, CartonTypesManagementComponent,\r\n DeliveryOrderEditorComponent, DeliveryOrdersManagementComponent,\r\n TrackingStatusEditorComponent, TrackingStatussManagementComponent,\r\n StoreInfoEditorComponent, StoreInfosManagementComponent,\r\n MealTypeEditorComponent, MealTypesManagementComponent,\r\n MealPeriodEditorComponent, MealPeriodsManagementComponent, AssetLabelComponent,\r\n DishEditorComponent, DishesManagementComponent, DishSelectorComponent, DishPreviewComponent, TokenOrderEditorComponent, TokenOrderBulkEditorComponent, TokenOrdersBulkManagementComponent,\r\n MenuEditorComponent, MenusManagementComponent, TokenOrdersManagementComponent, MenuCycleEditorComponent, MenuCyclesManagementComponent, MealAllocationssManagementComponent, PrintAllocationComponent,\r\n CatererSelectorComponent, CatererApprovalComponent, DOSelectorComponent, ReceiveDOComponent, InventorySelectorComponent, InventoryDetailComponent, StoreSelectorComponent, StoreSelectorDetailsComponent,\r\n DriverEditorComponent, DriversManagementComponent, RouteEditorComponent, RoutesManagementComponent, OrderReportComponent, OrderMealSummaryComponent, PrintLabelComponent, PackingAllocationssManagementComponent, PackingAllocationEditorComponent,\r\n InterestGroupEditorComponent, InterestGroupsManagementComponent, MealSessionEditorComponent, OrderDeliveryReportComponent,\r\n MenuCycleCalendarComponent, ViewMenuCycleMenuComponent, OutletMenuCycleCalendarComponent, OutletViewMenuCycleMenuComponent,\r\n OutletClassRosterEditorComponent, MenuDishSelectorEditorComponent, OutletClassRostersManagementComponent, \r\n StudentMenuCycleCalendarComponent, TokenOrderPaymentComponent, TokenOrderPaymentThankyouComponent ,\r\n DishCycleEditorComponent, DishCyclesManagementComponent, DishCycleCalendarComponent, ViewDishCycleMenuComponent, OutletDishCycleCalendarComponent, OutletViewDishCycleMenuComponent,\r\n PaymentTypesManagementComponent, PaymentTypeEditorComponent,\r\n TransactionFeesManagementComponent, TransactionFeeEditorComponent,\r\n VoucherTypesManagementComponent, VoucherTypeEditorComponent, VouchersManagementComponent, VoucherEditorComponent,\r\n WaiversManagementComponent, WaiverEditorComponent,\r\n ContactUsDetailsManagementComponent, ContactUsDetailEditorComponent,\r\n ContactUsSubjectEditorComponent, ContactUsSubjectsManagementComponent,\r\n EmailTemplatesManagementComponent, EmailTemplateEditorComponent,\r\n InterestGroupEmailComponent,\r\n NotificationEventEditorComponent, NotificationEventsManagementComponent,\r\n StudentNotificationDialogComponent,\r\n CancelOrderRequestsManagementComponent, CancelOrderRequestEditorComponent,\r\n OrderLogsManagementComponent, PublicationReportsManagementComponent, DeviceReportsManagementComponent, DeviceStatusReportsManagementComponent, ExternalLoginLogsManagementComponent,\r\n UserAccountsReportManagementComponent,\r\n UserRolesReportManagementComponent\r\n ],\r\n providers: [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl },\r\n { provide: ErrorHandler, useClass: AppErrorHandler },\r\n {\r\n provide: MatDialogRef,\r\n useValue: {}\r\n }, {\r\n provide: MAT_DIALOG_DATA,\r\n useValue: {} // Add any data you wish to test if it is passed/used correctly\r\n },\r\n { provide: MAT_LABEL_GLOBAL_OPTIONS, useValue: { float: 'always' } },\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: LOCALE_ID, useValue: \"en-SG\" },\r\n {\r\n provide: CalendarUtils,\r\n useClass: DayViewSchedulerCalendarUtils\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configFactory,\r\n deps: [ConfigurationService],\r\n multi: true\r\n },\r\n FRSHubConnections,\r\n ShapeService,\r\n TextNodeService,\r\n AlertService,\r\n ConfigurationService,\r\n AppTitleService,\r\n AppTranslationService,\r\n NotificationService,\r\n NotificationEndpoint,\r\n AccountService,\r\n AccountEndpoint,\r\n LocalStoreManager,\r\n EndpointFactory,\r\n FacilityService,\r\n CalendarService,\r\n FacilityTypeService,\r\n SignageComponentService,\r\n SignageComponentTypeService,\r\n SignageCompilationService,\r\n SignagePublicationService,\r\n CommonEndpoint,\r\n ReservationService,\r\n BookingService,\r\n DeviceService,\r\n ChannelInfoService,\r\n InstitutionService,\r\n DepartmentService,\r\n LocationService,\r\n FileService,\r\n ImageFileService,\r\n PlaylistService,\r\n KioskSettingsService,\r\n DashboardService,\r\n ContactGroupService,\r\n PIBService,\r\n ApplicationSettingService,\r\n DirectoryListingCategoryService,\r\n MediaExtensionService,\r\n EmployeeDesignationService,\r\n EmployeeScheduleService,\r\n EmployeeDataService,\r\n OccupancyLogService,\r\n QueueTableMapService,\r\n BuildingService,\r\n FloorService,\r\n MapService,\r\n DirectoryListingService,\r\n MediaService,\r\n EpaperService,\r\n EpaperService,\r\n ModuleService,\r\n UserGroupService,\r\n EmsProfileService,\r\n EmsScheduleService,\r\n EmsService,\r\n AuditService,\r\n ImageReferenceTypeService,\r\n ImageReferenceColorService,\r\n SmartRoomSchedulerService,\r\n AssetService,\r\n ServiceContractService,\r\n EmailQueueService,\r\n ClassService, StudentService, UserService, StaffService, DeliveryService, RestrictionService,\r\n MealService, DishService, MenuService, PaymentService, EmailService\r\n ],\r\n bootstrap: [RootAppComponent],\r\n exports: [CalendarComponent, CalendarHeaderComponent, BookingComponent, CalendarLandingPageComponent, MenuPanelComponent, SubMenuPanelComponent],\r\n entryComponents: [LocationEditorComponent, LocationsManagementComponent, LocationTreeEditorComponent, LocationsTreeManagementComponent, BookingEditorComponent, BookingComponent,\r\n DeviceEditorComponent, DevicesManagementComponent, DeviceManagerComponent, BookingGridEditorComponent, BookingGridComponent,\r\n InstitutionEditorComponent, InstitutionsManagementComponent,\r\n FacilityTypeEditorComponent, FacilityTypesManagementComponent,\r\n SignageComponentEditorComponent, SignageComponentsManagementComponent,\r\n DepartmentEditorComponent, DepartmentsManagementComponent,\r\n ContactGroupEditorComponent, ContactGroupsManagementComponent, CGNewContactEmailEditorComponent,\r\n FacilityEditorComponent, FacilitiesManagementComponent, CalendarBookingGridEditorComponent, CalendarBookingGridComponent, ContactGroupSelectorComponent, UserSelectorComponent, AssetSelectorComponent,\r\n UserPhonebookEditorComponent, UserPhonebooksManagementComponent, UserPhonebookSelectorComponent, TemplateEditorPreviewDialog, TemplateSaveDialogPreviewDialog, PIBDeviceEditorComponent,\r\n ImageUploadsComponent, ImageListsComponent, PlaylistCreatorComponent, PlaylistsManagementComponent, FRSTemplateEditorPreviewDialog, FRSTemplateSaveDialogPreviewDialog,\r\n ApplicationSettingEditorComponent, ApplicationSettingsManagementComponent,\r\n MediasManagementComponent, MediaEditorComponent,\r\n DirectoryListingEditorComponent, DirectoryListingsManagementComponent,\r\n DirectoryListingCategoryEditorComponent, DirectoryListingCategorysManagementComponent,\r\n MediaExtensionEditorComponent, MediaExtensionsManagementComponent,\r\n EmployeeDesignationEditorComponent, EmployeeDesignationsManagementComponent,\r\n EmployeeScheduleEditorComponent, EmployeeScheduleAssignComponent, EmployeeSchedulesManagementComponent,\r\n EmployeeDataEditorComponent, EmployeeDatasManagementComponent,\r\n OccupancyLogEditorComponent, OccupancyLogsManagementComponent,\r\n QueueTableMapEditorComponent, QueueTableMapsManagementComponent, QueueTableMapSimulator, NewMultipleBentoAsset, CreateAccountMultiple,\r\n BuildingEditorComponent, BuildingsManagementComponent,\r\n FloorEditorComponent, FloorsManagementComponent,\r\n MapEditorComponent, MapsManagementComponent,\r\n EpaperDeviceEditorComponent, PIBDisplayComponent,\r\n UserVehicleEditorComponent, UserCardIdEditorComponent, FreeHTMLConfiguration, FreeHTML, PictureEditorComponent,\r\n VideoConfiguration, Video,\r\n SignagePlaylistConfiguration, SignagePlaylist,\r\n KioskSettingsEditComponent, KioskSettingsListComponent,\r\n ClockConfiguration, Clock,\r\n SingleQueueConfiguration, SingleQueue,\r\n EmployeeNameConfiguration, EmployeeName,\r\n LocationNameConfiguration, LocationName,\r\n FreeTextConfiguration, FreeText,\r\n SingleBookingConfiguration, SingleBooking,\r\n MultiBookingConfiguration, MultiBooking,\r\n WebFrameConfiguration, WebFrame,\r\n MultiQueueConfiguration, MultiQueue,\r\n MissedQueueConfiguration, MissedQueue,\r\n EmsesManagementComponent, EmsEditorComponent,\r\n\r\n EmergencyMessageConfiguration, EmergencyMessage,\r\n SignageDisplayComponent,\r\n UserInfoComponent,\r\n ModuleEditorComponent,\r\n SignageDashboardContainerComponent,\r\n UserGroupsManagementComponent, UserGroupEditorComponent,\r\n LocationPanelComponent, DevicePushMessageDialog, ImageViewerComponent,\r\n AuthLogsManagementComponent, UpDownTimeLogsManagementComponent, DataLogsManagementComponent, DataLogViewerComponent,\r\n ImageReferenceTypeEditorComponent, ImageReferenceColorEditorComponent,\r\n SmartRoomSchedulerDetailsViewerComponent,\r\n PublicHolidayEditorComponent,\r\n AssetTypeEditorComponent,\r\n AssetModelEditorComponent,\r\n AssetEditorComponent,\r\n AssetQrCodeComponent,\r\n ServiceContractEditorComponent,\r\n DeviceTypeEditorComponent,\r\n ChannelInfoEditorComponent, AssetLabelComponent,\r\n ClassBatchEditorComponent, ClassLevelEditorComponent, ClassEditorComponent, StudentEditorComponent, StaffTypeEditorComponent, StaffEditorComponent,\r\n RestrictionTypeEditorComponent, RestrictionEditorComponent, StudentGroupEditorComponent, StudentSelectorComponent,\r\n MealTypeEditorComponent, DishTypeEditorComponent, CatererInfoEditorComponent, BentoBoxTypeEditorComponent, CartonTypeEditorComponent, DeliveryOrderEditorComponent, TrackingStatusEditorComponent, StoreInfoEditorComponent, BentoAssetEditorComponent, CartonAssetEditorComponent, MealPeriodEditorComponent,\r\n DishEditorComponent, DishSelectorComponent, MenuEditorComponent, MenuCycleEditorComponent, TokenOrderEditorComponent, TokenOrdersManagementComponent, TokenOrderBulkEditorComponent, TokenOrdersBulkManagementComponent, MealAllocationssManagementComponent, PrintAllocationComponent,\r\n OutletEditorComponent, OutletProfileEditorComponent, CatererSelectorComponent, DOSelectorComponent, ReceiveDOComponent, InventorySelectorComponent, InventoryDetailComponent, CatererApprovalComponent, StoreSelectorComponent, DriverEditorComponent, RouteEditorComponent, StoreSelectorDetailsComponent,\r\n CuisineEditorComponent, InterestGroupEditorComponent, MealSessionEditorComponent, OrderReportComponent, OrderMealSummaryComponent, PrintLabelComponent, PackingAllocationssManagementComponent, PackingAllocationEditorComponent,\r\n ViewMenuCycleMenuComponent, OutletViewMenuCycleMenuComponent, TokenOrderPaymentComponent, OrderDeliveryReportComponent,\r\n OutletClassRosterEditorComponent, MenuDishSelectorEditorComponent, StudentMenuCycleCalendarComponent, OutletClassRostersManagementComponent,\r\n DishCycleEditorComponent, ViewDishCycleMenuComponent, OutletDishCycleCalendarComponent, OutletViewDishCycleMenuComponent,\r\n PaymentTypeEditorComponent,\r\n TransactionFeeEditorComponent,\r\n VoucherTypeEditorComponent, VoucherEditorComponent, WaiverEditorComponent,\r\n ContactUsDetailEditorComponent, ContactUsSubjectEditorComponent, EmailTemplateEditorComponent,\r\n InterestGroupEmailComponent,\r\n NotificationEventEditorComponent, StudentNotificationDialogComponent, CancelOrderRequestEditorComponent,\r\n UserRolesReportManagementComponent,\r\n ],\r\n})\r\nexport class AppModule {\r\n}\r\n\r\n\r\n\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n","module.exports = __webpack_public_path__ + \"booking-icon.png\";","module.exports = __webpack_public_path__ + \"banner1.png\";","module.exports = __webpack_public_path__ + \"banner2.png\";","module.exports = __webpack_public_path__ + \"banner3.png\";","module.exports = __webpack_public_path__ + \"banner4.png\";","module.exports = __webpack_public_path__ + \"home1.jpg\";","module.exports = __webpack_public_path__ + \"info.png\";","module.exports = __webpack_public_path__ + \"pin.png\";","module.exports = __webpack_public_path__ + \"wheelchair1.jpg\";","/**\r\n * alertify\r\n * An unobtrusive customizable JavaScript notification system\r\n *\r\n * @author Fabien Doiron \r\n * @copyright Fabien Doiron 2013\r\n * @license MIT \r\n * @link http://fabien-d.github.com/alertify.js/\r\n * @module alertify\r\n * @version 0.3.11\r\n */\r\n(function (global, undefined) {\r\n\t\"use strict\";\r\n\r\n\tvar document = global.document,\r\n\t Alertify;\r\n\r\n\tAlertify = function () {\r\n\r\n\t\tvar _alertify = {},\r\n\t\t dialogs = {},\r\n\t\t isopen = false,\r\n\t\t keys = { ENTER: 13, ESC: 27, SPACE: 32 },\r\n\t\t queue = [],\r\n\t\t $, btnCancel, btnOK, btnReset, btnResetBack, btnFocus, elCallee, elCover, elDialog, elLog, form, input, getTransitionEvent;\r\n\r\n\t\t/**\r\n\t\t * Markup pieces\r\n\t\t * @type {Object}\r\n\t\t */\r\n\t\tdialogs = {\r\n\t\t\tbuttons : {\r\n\t\t\t\tholder : \"\",\r\n\t\t\t\tsubmit : \"\",\r\n\t\t\t\tok : \"\",\r\n\t\t\t\tcancel : \"\"\r\n\t\t\t},\r\n\t\t\tinput : \"
\",\r\n\t\t\tmessage : \"

{{message}}

\",\r\n\t\t\tlog : \"
{{message}}
\"\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Return the proper transitionend event\r\n\t\t * @return {String} Transition type string\r\n\t\t */\r\n\t\tgetTransitionEvent = function () {\r\n\t\t\tvar t,\r\n\t\t\t type,\r\n\t\t\t supported = false,\r\n\t\t\t el = document.createElement(\"fakeelement\"),\r\n\t\t\t transitions = {\r\n\t\t\t\t \"WebkitTransition\" : \"webkitTransitionEnd\",\r\n\t\t\t\t \"MozTransition\" : \"transitionend\",\r\n\t\t\t\t \"OTransition\" : \"otransitionend\",\r\n\t\t\t\t \"transition\" : \"transitionend\"\r\n\t\t\t };\r\n\r\n\t\t\tfor (t in transitions) {\r\n\t\t\t\tif (el.style[t] !== undefined) {\r\n\t\t\t\t\ttype = transitions[t];\r\n\t\t\t\t\tsupported = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttype : type,\r\n\t\t\t\tsupported : supported\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Shorthand for document.getElementById()\r\n\t\t *\r\n\t\t * @param {String} id A specific element ID\r\n\t\t * @return {Object} HTML element\r\n\t\t */\r\n\t\t$ = function (id) {\r\n\t\t\treturn document.getElementById(id);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Alertify private object\r\n\t\t * @type {Object}\r\n\t\t */\r\n\t\t_alertify = {\r\n\r\n\t\t\t/**\r\n\t\t\t * Labels object\r\n\t\t\t * @type {Object}\r\n\t\t\t */\r\n\t\t\tlabels : {\r\n\t\t\t\tok : \"OK\",\r\n\t\t\t\tcancel : \"Cancel\"\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Delay number\r\n\t\t\t * @type {Number}\r\n\t\t\t */\r\n\t\t\tdelay : 5000,\r\n\r\n\t\t\t/**\r\n\t\t\t * Whether buttons are reversed (default is secondary/primary)\r\n\t\t\t * @type {Boolean}\r\n\t\t\t */\r\n\t\t\tbuttonReverse : false,\r\n\r\n\t\t\t/**\r\n\t\t\t * Which button should be focused by default\r\n\t\t\t * @type {String}\t\"ok\" (default), \"cancel\", or \"none\"\r\n\t\t\t */\r\n\t\t\tbuttonFocus : \"ok\",\r\n\r\n\t\t\t/**\r\n\t\t\t * Set the transition event on load\r\n\t\t\t * @type {[type]}\r\n\t\t\t */\r\n\t\t\ttransition : undefined,\r\n\r\n\t\t\t/**\r\n\t\t\t * Set the proper button click events\r\n\t\t\t *\r\n\t\t\t * @param {Function} fn [Optional] Callback function\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\taddListeners : function (fn) {\r\n\t\t\t\tvar hasOK = (typeof btnOK !== \"undefined\"),\r\n\t\t\t\t hasCancel = (typeof btnCancel !== \"undefined\"),\r\n\t\t\t\t hasInput = (typeof input !== \"undefined\"),\r\n\t\t\t\t val = \"\",\r\n\t\t\t\t self = this,\r\n\t\t\t\t ok, cancel, common, key, reset;\r\n\r\n\t\t\t\t// ok event handler\r\n\t\t\t\tok = function (event) {\r\n\t\t\t\t\tif (typeof event.preventDefault !== \"undefined\") event.preventDefault();\r\n\t\t\t\t\tcommon(event);\r\n\t\t\t\t\tif (typeof input !== \"undefined\") val = input.value;\r\n\t\t\t\t\tif (typeof fn === \"function\") {\r\n\t\t\t\t\t\tif (typeof input !== \"undefined\") {\r\n\t\t\t\t\t\t\tfn(true, val);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse fn(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// cancel event handler\r\n\t\t\t\tcancel = function (event) {\r\n\t\t\t\t\tif (typeof event.preventDefault !== \"undefined\") event.preventDefault();\r\n\t\t\t\t\tcommon(event);\r\n\t\t\t\t\tif (typeof fn === \"function\") fn(false);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// common event handler (keyup, ok and cancel)\r\n\t\t\t\tcommon = function (event) {\r\n\t\t\t\t\tself.hide();\r\n\t\t\t\t\tself.unbind(document.body, \"keyup\", key);\r\n\t\t\t\t\tself.unbind(btnReset, \"focus\", reset);\r\n\t\t\t\t\tif (hasOK) self.unbind(btnOK, \"click\", ok);\r\n\t\t\t\t\tif (hasCancel) self.unbind(btnCancel, \"click\", cancel);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// keyup handler\r\n\t\t\t\tkey = function (event) {\r\n\t\t\t\t\tvar keyCode = event.keyCode;\r\n\t\t\t\t\tif ((keyCode === keys.SPACE && !hasInput) || (hasInput && keyCode === keys.ENTER)) ok(event);\r\n\t\t\t\t\tif (keyCode === keys.ESC && hasCancel) cancel(event);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// reset focus to first item in the dialog\r\n\t\t\t\treset = function (event) {\r\n\t\t\t\t\tif (hasInput) input.focus();\r\n\t\t\t\t\telse if (!hasCancel || self.buttonReverse) btnOK.focus();\r\n\t\t\t\t\telse btnCancel.focus();\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// handle reset focus link\r\n\t\t\t\t// this ensures that the keyboard focus does not\r\n\t\t\t\t// ever leave the dialog box until an action has\r\n\t\t\t\t// been taken\r\n\t\t\t\tthis.bind(btnReset, \"focus\", reset);\r\n\t\t\t\tthis.bind(btnResetBack, \"focus\", reset);\r\n\t\t\t\t// handle OK click\r\n\t\t\t\tif (hasOK) this.bind(btnOK, \"click\", ok);\r\n\t\t\t\t// handle Cancel click\r\n\t\t\t\tif (hasCancel) this.bind(btnCancel, \"click\", cancel);\r\n\t\t\t\t// listen for keys, Cancel => ESC\r\n\t\t\t\tthis.bind(document.body, \"keyup\", key);\r\n\t\t\t\tif (!this.transition.supported) {\r\n\t\t\t\t\tthis.setFocus();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Bind events to elements\r\n\t\t\t *\r\n\t\t\t * @param {Object} el HTML Object\r\n\t\t\t * @param {Event} event Event to attach to element\r\n\t\t\t * @param {Function} fn Callback function\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tbind : function (el, event, fn) {\r\n\t\t\t\tif (typeof el.addEventListener === \"function\") {\r\n\t\t\t\t\tel.addEventListener(event, fn, false);\r\n\t\t\t\t} else if (el.attachEvent) {\r\n\t\t\t\t\tel.attachEvent(\"on\" + event, fn);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Use alertify as the global error handler (using window.onerror)\r\n\t\t\t *\r\n\t\t\t * @return {boolean} success\r\n\t\t\t */\r\n\t\t\thandleErrors : function () {\r\n\t\t\t\tif (typeof global.onerror !== \"undefined\") {\r\n\t\t\t\t\tvar self = this;\r\n\t\t\t\t\tglobal.onerror = function (msg, url, line) {\r\n\t\t\t\t\t\tself.error(\"[\" + msg + \" on line \" + line + \" of \" + url + \"]\", 0);\r\n\t\t\t\t\t};\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Append button HTML strings\r\n\t\t\t *\r\n\t\t\t * @param {String} secondary The secondary button HTML string\r\n\t\t\t * @param {String} primary The primary button HTML string\r\n\t\t\t *\r\n\t\t\t * @return {String} The appended button HTML strings\r\n\t\t\t */\r\n\t\t\tappendButtons : function (secondary, primary) {\r\n\t\t\t\treturn this.buttonReverse ? primary + secondary : secondary + primary;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Build the proper message box\r\n\t\t\t *\r\n\t\t\t * @param {Object} item Current object in the queue\r\n\t\t\t *\r\n\t\t\t * @return {String} An HTML string of the message box\r\n\t\t\t */\r\n\t\t\tbuild : function (item) {\r\n\t\t\t\tvar html = \"\",\r\n\t\t\t\t type = item.type,\r\n\t\t\t\t message = item.message,\r\n\t\t\t\t css = item.cssClass || \"\";\r\n\r\n\t\t\t\thtml += \"
\";\r\n\t\t\t\thtml += \"Reset Focus\";\r\n\r\n\t\t\t\tif (_alertify.buttonFocus === \"none\") html += \"\";\r\n\r\n\t\t\t\t// doens't require an actual form\r\n\t\t\t\tif (type === \"prompt\") html += \"
\";\r\n\r\n\t\t\t\thtml += \"
\";\r\n\t\t\t\thtml += dialogs.message.replace(\"{{message}}\", message);\r\n\r\n\t\t\t\tif (type === \"prompt\") html += dialogs.input;\r\n\r\n\t\t\t\thtml += dialogs.buttons.holder;\r\n\t\t\t\thtml += \"
\";\r\n\r\n\t\t\t\tif (type === \"prompt\") html += \"
\";\r\n\r\n\t\t\t\thtml += \"Reset Focus\";\r\n\t\t\t\thtml += \"
\";\r\n\r\n\t\t\t\tswitch (type) {\r\n\t\t\t\tcase \"confirm\":\r\n\t\t\t\t\thtml = html.replace(\"{{buttons}}\", this.appendButtons(dialogs.buttons.cancel, dialogs.buttons.ok));\r\n\t\t\t\t\thtml = html.replace(\"{{ok}}\", this.labels.ok).replace(\"{{cancel}}\", this.labels.cancel);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"prompt\":\r\n\t\t\t\t\thtml = html.replace(\"{{buttons}}\", this.appendButtons(dialogs.buttons.cancel, dialogs.buttons.submit));\r\n\t\t\t\t\thtml = html.replace(\"{{ok}}\", this.labels.ok).replace(\"{{cancel}}\", this.labels.cancel);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"alert\":\r\n\t\t\t\t\thtml = html.replace(\"{{buttons}}\", dialogs.buttons.ok);\r\n\t\t\t\t\thtml = html.replace(\"{{ok}}\", this.labels.ok);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telDialog.className = \"alertify alertify-\" + type + \" \" + css;\r\n\t\t\t\telCover.className = \"alertify-cover\";\r\n\t\t\t\treturn html;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Close the log messages\r\n\t\t\t *\r\n\t\t\t * @param {Object} elem HTML Element of log message to close\r\n\t\t\t * @param {Number} wait [optional] Time (in ms) to wait before automatically hiding the message, if 0 never hide\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tclose : function (elem, wait) {\r\n\t\t\t\t// Unary Plus: +\"2\" === 2\r\n\t\t\t\tvar timer = (wait && !isNaN(wait)) ? +wait : this.delay,\r\n\t\t\t\t self = this,\r\n\t\t\t\t hideElement, transitionDone;\r\n\r\n\t\t\t\t// set click event on log messages\r\n\t\t\t\tthis.bind(elem, \"click\", function () {\r\n\t\t\t\t\thideElement(elem);\r\n\t\t\t\t});\r\n\t\t\t\t// Hide the dialog box after transition\r\n\t\t\t\t// This ensure it doens't block any element from being clicked\r\n\t\t\t\ttransitionDone = function (event) {\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t// unbind event so function only gets called once\r\n\t\t\t\t\tself.unbind(this, self.transition.type, transitionDone);\r\n\t\t\t\t\t// remove log message\r\n\t\t\t\t\telLog.removeChild(this);\r\n\t\t\t\t\tif (!elLog.hasChildNodes()) elLog.className += \" alertify-logs-hidden\";\r\n\t\t\t\t};\r\n\t\t\t\t// this sets the hide class to transition out\r\n\t\t\t\t// or removes the child if css transitions aren't supported\r\n\t\t\t\thideElement = function (el) {\r\n\t\t\t\t\t// ensure element exists\r\n\t\t\t\t\tif (typeof el !== \"undefined\" && el.parentNode === elLog) {\r\n\t\t\t\t\t\t// whether CSS transition exists\r\n\t\t\t\t\t\tif (self.transition.supported) {\r\n\t\t\t\t\t\t\tself.bind(el, self.transition.type, transitionDone);\r\n\t\t\t\t\t\t\tel.className += \" alertify-log-hide\";\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telLog.removeChild(el);\r\n\t\t\t\t\t\t\tif (!elLog.hasChildNodes()) elLog.className += \" alertify-logs-hidden\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// never close (until click) if wait is set to 0\r\n\t\t\t\tif (wait === 0) return;\r\n\t\t\t\t// set timeout to auto close the log message\r\n\t\t\t\tsetTimeout(function () { hideElement(elem); }, timer);\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Create a dialog box\r\n\t\t\t *\r\n\t\t\t * @param {String} message The message passed from the callee\r\n\t\t\t * @param {String} type Type of dialog to create\r\n\t\t\t * @param {Function} fn [Optional] Callback function\r\n\t\t\t * @param {String} placeholder [Optional] Default value for prompt input field\r\n\t\t\t * @param {String} cssClass [Optional] Class(es) to append to dialog box\r\n\t\t\t *\r\n\t\t\t * @return {Object}\r\n\t\t\t */\r\n\t\t\tdialog : function (message, type, fn, placeholder, cssClass) {\r\n\t\t\t\t// set the current active element\r\n\t\t\t\t// this allows the keyboard focus to be resetted\r\n\t\t\t\t// after the dialog box is closed\r\n\t\t\t\telCallee = document.activeElement;\r\n\t\t\t\t// check to ensure the alertify dialog element\r\n\t\t\t\t// has been successfully created\r\n\t\t\t\tvar check = function () {\r\n\t\t\t\t\tif ((elLog && elLog.scrollTop !== null) && (elCover && elCover.scrollTop !== null)) return;\r\n\t\t\t\t\telse check();\r\n\t\t\t\t};\r\n\t\t\t\t// error catching\r\n\t\t\t\tif (typeof message !== \"string\") throw new Error(\"message must be a string\");\r\n\t\t\t\tif (typeof type !== \"string\") throw new Error(\"type must be a string\");\r\n\t\t\t\tif (typeof fn !== \"undefined\" && typeof fn !== \"function\") throw new Error(\"fn must be a function\");\r\n\t\t\t\t// initialize alertify if it hasn't already been done\r\n\t\t\t\tthis.init();\r\n\t\t\t\tcheck();\r\n\r\n\t\t\t\tqueue.push({ type: type, message: message, callback: fn, placeholder: placeholder, cssClass: cssClass });\r\n\t\t\t\tif (!isopen) this.setup();\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Extend the log method to create custom methods\r\n\t\t\t *\r\n\t\t\t * @param {String} type Custom method name\r\n\t\t\t *\r\n\t\t\t * @return {Function}\r\n\t\t\t */\r\n\t\t\textend : function (type) {\r\n\t\t\t\tif (typeof type !== \"string\") throw new Error(\"extend method must have exactly one paramter\");\r\n\t\t\t\treturn function (message, wait) {\r\n\t\t\t\t\tthis.log(message, type, wait);\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t};\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Hide the dialog and rest to defaults\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\thide : function () {\r\n\t\t\t\tvar transitionDone,\r\n\t\t\t\t self = this;\r\n\t\t\t\t// remove reference from queue\r\n\t\t\t\tqueue.splice(0,1);\r\n\t\t\t\t// if items remaining in the queue\r\n\t\t\t\tif (queue.length > 0) this.setup(true);\r\n\t\t\t\telse {\r\n\t\t\t\t\tisopen = false;\r\n\t\t\t\t\t// Hide the dialog box after transition\r\n\t\t\t\t\t// This ensure it doens't block any element from being clicked\r\n\t\t\t\t\ttransitionDone = function (event) {\r\n\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t// unbind event so function only gets called once\r\n\t\t\t\t\t\tself.unbind(elDialog, self.transition.type, transitionDone);\r\n\t\t\t\t\t};\r\n\t\t\t\t\t// whether CSS transition exists\r\n\t\t\t\t\tif (this.transition.supported) {\r\n\t\t\t\t\t\tthis.bind(elDialog, this.transition.type, transitionDone);\r\n\t\t\t\t\t\telDialog.className = \"alertify alertify-hide alertify-hidden\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\telDialog.className = \"alertify alertify-hide alertify-hidden alertify-isHidden\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telCover.className = \"alertify-cover alertify-cover-hidden\";\r\n\t\t\t\t\t// set focus to the last element or body\r\n\t\t\t\t\t// after the dialog is closed\r\n\t\t\t\t\telCallee.focus();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Initialize Alertify\r\n\t\t\t * Create the 2 main elements\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tinit : function () {\r\n\t\t\t\t// ensure legacy browsers support html5 tags\r\n\t\t\t\tdocument.createElement(\"nav\");\r\n\t\t\t\tdocument.createElement(\"article\");\r\n\t\t\t\tdocument.createElement(\"section\");\r\n\t\t\t\t// cover\r\n\t\t\t\tif ($(\"alertify-cover\") == null) {\r\n\t\t\t\t\telCover = document.createElement(\"div\");\r\n\t\t\t\t\telCover.setAttribute(\"id\", \"alertify-cover\");\r\n\t\t\t\t\telCover.className = \"alertify-cover alertify-cover-hidden\";\r\n\t\t\t\t\tdocument.body.appendChild(elCover);\r\n\t\t\t\t}\r\n\t\t\t\t// main element\r\n\t\t\t\tif ($(\"alertify\") == null) {\r\n\t\t\t\t\tisopen = false;\r\n\t\t\t\t\tqueue = [];\r\n\t\t\t\t\telDialog = document.createElement(\"section\");\r\n\t\t\t\t\telDialog.setAttribute(\"id\", \"alertify\");\r\n\t\t\t\t\telDialog.className = \"alertify alertify-hidden\";\r\n\t\t\t\t\tdocument.body.appendChild(elDialog);\r\n\t\t\t\t}\r\n\t\t\t\t// log element\r\n\t\t\t\tif ($(\"alertify-logs\") == null) {\r\n\t\t\t\t\telLog = document.createElement(\"section\");\r\n\t\t\t\t\telLog.setAttribute(\"id\", \"alertify-logs\");\r\n\t\t\t\t\telLog.className = \"alertify-logs alertify-logs-hidden\";\r\n\t\t\t\t\tdocument.body.appendChild(elLog);\r\n\t\t\t\t}\r\n\t\t\t\t// set tabindex attribute on body element\r\n\t\t\t\t// this allows script to give it focus\r\n\t\t\t\t// after the dialog is closed\r\n\t\t\t\tdocument.body.setAttribute(\"tabindex\", \"0\");\r\n\t\t\t\t// set transition type\r\n\t\t\t\tthis.transition = getTransitionEvent();\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Show a new log message box\r\n\t\t\t *\r\n\t\t\t * @param {String} message The message passed from the callee\r\n\t\t\t * @param {String} type [Optional] Optional type of log message\r\n\t\t\t * @param {Number} wait [Optional] Time (in ms) to wait before auto-hiding the log\r\n\t\t\t *\r\n\t\t\t * @return {Object}\r\n\t\t\t */\r\n\t\t\tlog : function (message, type, wait) {\r\n\t\t\t\t// check to ensure the alertify dialog element\r\n\t\t\t\t// has been successfully created\r\n\t\t\t\tvar check = function () {\r\n\t\t\t\t\tif (elLog && elLog.scrollTop !== null) return;\r\n\t\t\t\t\telse check();\r\n\t\t\t\t};\r\n\t\t\t\t// initialize alertify if it hasn't already been done\r\n\t\t\t\tthis.init();\r\n\t\t\t\tcheck();\r\n\r\n\t\t\t\telLog.className = \"alertify-logs\";\r\n\t\t\t\tthis.notify(message, type, wait);\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Add new log message\r\n\t\t\t * If a type is passed, a class name \"alertify-log-{type}\" will get added.\r\n\t\t\t * This allows for custom look and feel for various types of notifications.\r\n\t\t\t *\r\n\t\t\t * @param {String} message The message passed from the callee\r\n\t\t\t * @param {String} type [Optional] Type of log message\r\n\t\t\t * @param {Number} wait [Optional] Time (in ms) to wait before auto-hiding\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tnotify : function (message, type, wait) {\r\n\t\t\t\tvar log = document.createElement(\"article\");\r\n\t\t\t\tlog.className = \"alertify-log\" + ((typeof type === \"string\" && type !== \"\") ? \" alertify-log-\" + type : \"\");\r\n\t\t\t\tlog.innerHTML = message;\r\n\t\t\t\t// append child\r\n\t\t\t\telLog.appendChild(log);\r\n\t\t\t\t// triggers the CSS animation\r\n\t\t\t\tsetTimeout(function() { log.className = log.className + \" alertify-log-show\"; }, 50);\r\n\t\t\t\tthis.close(log, wait);\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Set properties\r\n\t\t\t *\r\n\t\t\t * @param {Object} args Passing parameters\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tset : function (args) {\r\n\t\t\t\tvar k;\r\n\t\t\t\t// error catching\r\n\t\t\t\tif (typeof args !== \"object\" && args instanceof Array) throw new Error(\"args must be an object\");\r\n\t\t\t\t// set parameters\r\n\t\t\t\tfor (k in args) {\r\n\t\t\t\t\tif (args.hasOwnProperty(k)) {\r\n\t\t\t\t\t\tthis[k] = args[k];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Common place to set focus to proper element\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tsetFocus : function () {\r\n\t\t\t\tif (input) {\r\n\t\t\t\t\tinput.focus();\r\n\t\t\t\t\tinput.select();\r\n\t\t\t\t}\r\n\t\t\t\telse btnFocus.focus();\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Initiate all the required pieces for the dialog box\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tsetup : function (fromQueue) {\r\n\t\t\t\tvar item = queue[0],\r\n\t\t\t\t self = this,\r\n\t\t\t\t transitionDone;\r\n\r\n\t\t\t\t// dialog is open\r\n\t\t\t\tisopen = true;\r\n\t\t\t\t// Set button focus after transition\r\n\t\t\t\ttransitionDone = function (event) {\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\tself.setFocus();\r\n\t\t\t\t\t// unbind event so function only gets called once\r\n\t\t\t\t\tself.unbind(elDialog, self.transition.type, transitionDone);\r\n\t\t\t\t};\r\n\t\t\t\t// whether CSS transition exists\r\n\t\t\t\tif (this.transition.supported && !fromQueue) {\r\n\t\t\t\t\tthis.bind(elDialog, this.transition.type, transitionDone);\r\n\t\t\t\t}\r\n\t\t\t\t// build the proper dialog HTML\r\n\t\t\t\telDialog.innerHTML = this.build(item);\r\n\t\t\t\t// assign all the common elements\r\n\t\t\t\tbtnReset = $(\"alertify-resetFocus\");\r\n\t\t\t\tbtnResetBack = $(\"alertify-resetFocusBack\");\r\n\t\t\t\tbtnOK = $(\"alertify-ok\") || undefined;\r\n\t\t\t\tbtnCancel = $(\"alertify-cancel\") || undefined;\r\n\t\t\t\tbtnFocus = (_alertify.buttonFocus === \"cancel\") ? btnCancel : ((_alertify.buttonFocus === \"none\") ? $(\"alertify-noneFocus\") : btnOK),\r\n\t\t\t\tinput = $(\"alertify-text\") || undefined;\r\n\t\t\t\tform = $(\"alertify-form\") || undefined;\r\n\t\t\t\t// add placeholder value to the input field\r\n\t\t\t\tif (typeof item.placeholder === \"string\" && item.placeholder !== \"\") input.value = item.placeholder;\r\n\t\t\t\tif (fromQueue) this.setFocus();\r\n\t\t\t\tthis.addListeners(item.callback);\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Unbind events to elements\r\n\t\t\t *\r\n\t\t\t * @param {Object} el HTML Object\r\n\t\t\t * @param {Event} event Event to detach to element\r\n\t\t\t * @param {Function} fn Callback function\r\n\t\t\t *\r\n\t\t\t * @return {undefined}\r\n\t\t\t */\r\n\t\t\tunbind : function (el, event, fn) {\r\n\t\t\t\tif (typeof el.removeEventListener === \"function\") {\r\n\t\t\t\t\tel.removeEventListener(event, fn, false);\r\n\t\t\t\t} else if (el.detachEvent) {\r\n\t\t\t\t\tel.detachEvent(\"on\" + event, fn);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn {\r\n\t\t\talert : function (message, fn, cssClass) { _alertify.dialog(message, \"alert\", fn, \"\", cssClass); return this; },\r\n\t\t\tconfirm : function (message, fn, cssClass) { _alertify.dialog(message, \"confirm\", fn, \"\", cssClass); return this; },\r\n\t\t\textend : _alertify.extend,\r\n\t\t\tinit : _alertify.init,\r\n\t\t\tlog : function (message, type, wait) { _alertify.log(message, type, wait); return this; },\r\n\t\t\tprompt : function (message, fn, placeholder, cssClass) { _alertify.dialog(message, \"prompt\", fn, placeholder, cssClass); return this; },\r\n\t\t\tsuccess : function (message, wait) { _alertify.log(message, \"success\", wait); return this; },\r\n\t\t\terror : function (message, wait) { _alertify.log(message, \"error\", wait); return this; },\r\n\t\t\tset : function (args) { _alertify.set(args); },\r\n\t\t\tlabels : _alertify.labels,\r\n\t\t\tdebug : _alertify.handleErrors\r\n\t\t};\r\n\t};\r\n\r\n\t// AMD and window support\r\n\tif (typeof define === \"function\") {\r\n\t\tdefine([], function () { return new Alertify(); });\r\n\t} else if (typeof global.alertify === \"undefined\") {\r\n\t\tglobal.alertify = new Alertify();\r\n\t}\r\n\r\n}(window));\r\n","module.exports = \"\\r\\n#mainContent.app-component {\\r\\n position: relative;\\r\\n padding-top: 50px;\\r\\n padding-bottom: 50px;\\r\\n}\\r\\n\\r\\n\\r\\n.appTitle.app-component {\\r\\n line-height: 50px;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-fixed-top.app-component,\\r\\n.navbar-fixed-bottom.app-component {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-brand.app-component {\\r\\n float: none;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-brand.app-component > img {\\r\\n display: inline;\\r\\n height: 35px;\\r\\n }\\r\\n\\r\\n\\r\\nnav {\\r\\n background-color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-inner.app-component {\\r\\n padding-left: 0px;\\r\\n border-radius: 0px;\\r\\n box-shadow: none;\\r\\n background-color: #007f7b;\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-inner.toolbar.app-component {\\r\\n background-color: #fafafa;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar.app-component .nav > .active > a,\\r\\n.navbar.app-component .nav > .active > a:hover,\\r\\n.navbar.app-component .nav > .active > a:focus {\\r\\n background-color: #ffffff;\\r\\n box-shadow: none;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar.app-component .nav > li {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar.app-component .nav > li > a {\\r\\n color: white;\\r\\n font-weight: bold;\\r\\n -webkit-text-shadow: none;\\r\\n text-shadow: none;\\r\\n height: 30px;\\r\\n padding-top: 6px;\\r\\n padding-bottom: 0px;\\r\\n }\\r\\n\\r\\n\\r\\n.navbar-fixed-top.app-component .navbar-inner.app-component,\\r\\n.navbar-static-top.app-component .navbar-inner.app-component {\\r\\n box-shadow: 0 1px 00px rgba(0, 0, 0, 0);\\r\\n}\\r\\n\\r\\n\\r\\n.nav.navBarPadding.app-component {\\r\\n margin-left: 5px;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n\\r\\np.navbar-text.app-component {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n\\r\\np.navbar-text.app-component a {\\r\\n color: #fff;\\r\\n }\\r\\n\\r\\n\\r\\n.navbar.app-component .brand {\\r\\n margin-top: 2px;\\r\\n color: #fff;\\r\\n -webkit-text-shadow: none;\\r\\n text-shadow: none;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-toggle.app-component {\\r\\n border: 1px solid white;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-toggle.app-component .icon-bar {\\r\\n background-color: white;\\r\\n }\\r\\n\\r\\n\\r\\n@media screen and (max-width: 992px) {\\r\\n #mainContent.app-component {\\r\\n /*padding-top: 200px;*/\\r\\n }\\r\\n\\r\\n .navbar-brand.app-component {\\r\\n font-size: 12pt;\\r\\n }\\r\\n\\r\\n /*.nav.navBarPadding.app-component {\\r\\n margin-left: -10px;\\r\\n }*/\\r\\n\\r\\n .nav.app-component > li > a {\\r\\n padding-right: 5px;\\r\\n padding-left: 5px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media screen and (max-width: 768px) {\\r\\n .nav-pills.app-component > li {\\r\\n float: none;\\r\\n margin: 0;\\r\\n }\\r\\n\\r\\n .nav-pills.app-component > li + li {\\r\\n margin-left: 0;\\r\\n margin-top: 1px;\\r\\n }\\r\\n\\r\\n .navbar-collapse.app-component {\\r\\n padding-right: 30px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media (min-width: 768px) {\\r\\n a.user-name.app-component {\\r\\n max-width: 45px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .navbar-toggle.app-component {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n a.user-name.app-component {\\r\\n max-width: 100px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media (min-width: 1200px) {\\r\\n a.user-name.app-component {\\r\\n max-width: 250px;\\r\\n }\\r\\n\\r\\n .container {\\r\\n width: 100% !important;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\na.user-name.app-component {\\r\\n display: inline-block;\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\r\\n vertical-align: bottom;\\r\\n}\\r\\n\\r\\n\\r\\n/*footer.app-component {\\r\\n margin-top: 10px;\\r\\n font-weight: bold;\\r\\n}*/\\r\\n\\r\\n\\r\\n.navbar-inner.footer.app-component {\\r\\n background-color: #f5f5f5;\\r\\n box-shadow: none;\\r\\n height: 40px;\\r\\n}\\r\\n\\r\\n\\r\\n.vcenter_text.app-component {\\r\\n line-height: 40px;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.prebootShow.app-component {\\r\\n opacity: 1 !important;\\r\\n}\\r\\n\\r\\n\\r\\n.prebootStep.app-component {\\r\\n opacity: 0;\\r\\n transition: .5s ease-in-out all;\\r\\n}\\r\\n\\r\\n\\r\\n/*.menuItemsContainer, .navbar-collapse.collapse, .navbar-collapse {\\r\\n overflow-x: hidden !important;\\r\\n}*/\\r\\n\\r\\n\\r\\n.nav-pills > li > a {\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n\\r\\n/*.dropdown-submenu {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n .dropdown-submenu > .dropdown-menu {\\r\\n top: 0;\\r\\n left: 100%;\\r\\n margin-top: -6px;\\r\\n margin-left: -1px;\\r\\n -webkit-border-radius: 0 6px 6px 6px;\\r\\n -moz-border-radius: 0 6px 6px;\\r\\n border-radius: 0 6px 6px 6px;\\r\\n }\\r\\n\\r\\n .dropdown-submenu:hover > .dropdown-menu {\\r\\n display: block;\\r\\n }\\r\\n\\r\\n .dropdown-submenu > a:after {\\r\\n display: block;\\r\\n content: \\\" \\\";\\r\\n float: right;\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-color: transparent;\\r\\n border-style: solid;\\r\\n border-width: 5px 0 5px 5px;\\r\\n border-left-color: #ccc;\\r\\n margin-top: 5px;\\r\\n margin-right: -10px;\\r\\n }\\r\\n\\r\\n .dropdown-submenu:hover > a:after {\\r\\n border-left-color: #fff;\\r\\n }\\r\\n\\r\\n .dropdown-submenu.pull-left {\\r\\n float: none;\\r\\n }\\r\\n\\r\\n .dropdown-submenu.pull-left > .dropdown-menu {\\r\\n left: -100%;\\r\\n margin-left: 10px;\\r\\n -webkit-border-radius: 6px 0 6px 6px;\\r\\n -moz-border-radius: 6px 0 6px 6px;\\r\\n border-radius: 6px 0 6px 6px;\\r\\n }\\r\\n */\\r\\n\\r\\n\\r\\n.nav .open > a, .nav .open > a:focus, .nav .open > a:hover {\\r\\n background-color: #0b9c97;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar .nav li a:hover, .navbar.nav li.toolbaritem a:hover, .nav.nav-tabsNOTUSE li a:hover {\\r\\n background-color: #0b9c97;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n\\r\\n.dropdown-menu > app-sub-menu-panel > li > a {\\r\\n display: block;\\r\\n padding: 3px 20px;\\r\\n clear: both;\\r\\n font-weight: 400;\\r\\n line-height: 1.42857143;\\r\\n color: #333;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n\\r\\n.dropdown-menu {\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hcHAuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtBQUN0Qjs7O0FBR0E7RUFDRSxpQkFBaUI7QUFDbkI7OztBQUdBOztFQUVFLGFBQWE7QUFDZjs7O0FBR0E7RUFDRSxXQUFXO0VBQ1gsV0FBVztBQUNiOzs7QUFFRTtJQUNFLGVBQWU7SUFDZixZQUFZO0VBQ2Q7OztBQUVGO0VBQ0UseUJBQXlCO0FBQzNCOzs7QUFFQTtFQUNFLGlCQUFpQjtFQUVqQixrQkFBa0I7RUFHbEIsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtFQUN6QixzQkFBc0I7QUFDeEI7OztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOzs7QUFHQTs7O0VBR0UseUJBQXlCO0VBRXpCLGdCQUFnQjtFQUNoQixjQUFjO0FBQ2hCOzs7QUFFQTtFQUNFLGVBQWU7QUFDakI7OztBQUVFO0lBQ0UsWUFBWTtJQUNaLGlCQUFpQjtJQUNqQix5QkFBeUI7SUFDekIsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VBQ3JCOzs7QUFHRjs7RUFJRSx1Q0FBdUM7QUFDekM7OztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjs7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7OztBQUVFO0lBQ0UsV0FBVztFQUNiOzs7QUFFRjtFQUNFLGVBQWU7RUFDZixXQUFXO0VBQ1gseUJBQXlCO0VBQ3pCLGlCQUFpQjtBQUNuQjs7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7OztBQUVFO0lBQ0UsdUJBQXVCO0VBQ3pCOzs7QUFNRjtFQUNFO0lBQ0Usc0JBQXNCO0VBQ3hCOztFQUVBO0lBQ0UsZUFBZTtFQUNqQjs7RUFFQTs7TUFFSTs7RUFFSjtJQUNFLGtCQUFrQjtJQUNsQixpQkFBaUI7RUFDbkI7QUFDRjs7O0FBR0E7RUFDRTtJQUNFLFdBQVc7SUFDWCxTQUFTO0VBQ1g7O0lBRUU7TUFDRSxjQUFjO01BQ2QsZUFBZTtJQUNqQjs7RUFFRjtJQUNFLG1CQUFtQjtFQUNyQjtBQUNGOzs7QUFHQTtFQUNFO0lBQ0UsZUFBZTtFQUNqQjtBQUNGOzs7QUFHQTtFQUNFO0lBQ0UsYUFBYTtFQUNmOztFQUVBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0FBQ0Y7OztBQUVBO0VBQ0U7SUFDRSxnQkFBZ0I7RUFDbEI7O0VBRUE7SUFDRSxzQkFBc0I7RUFDeEI7QUFDRjs7O0FBR0E7RUFDRSxxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsc0JBQXNCO0FBQ3hCOzs7QUFJQTs7O0VBR0U7OztBQUdGO0VBQ0UseUJBQXlCO0VBR3pCLGdCQUFnQjtFQUNoQixZQUFZO0FBQ2Q7OztBQUlBO0VBQ0UsaUJBQWlCO0VBQ2pCLHNCQUFzQjtBQUN4Qjs7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkI7OztBQUVBO0VBQ0UsVUFBVTtFQUNWLCtCQUErQjtBQUNqQzs7O0FBRUE7O0VBRUU7OztBQUdGO0VBQ0Usa0JBQWtCO0FBQ3BCOzs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7OztBQUVIO0VBQ0UseUJBQXlCO0VBQ3pCLGNBQWM7QUFDaEI7OztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLGNBQWM7QUFDaEI7OztBQUNBO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtFQUN2QixXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCOzs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXBwLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuI21haW5Db250ZW50LmFwcC1jb21wb25lbnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nLXRvcDogNTBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxufVxyXG5cclxuXHJcbi5hcHBUaXRsZS5hcHAtY29tcG9uZW50IHtcclxuICBsaW5lLWhlaWdodDogNTBweDtcclxufVxyXG5cclxuXHJcbi5uYXZiYXItZml4ZWQtdG9wLmFwcC1jb21wb25lbnQsXHJcbi5uYXZiYXItZml4ZWQtYm90dG9tLmFwcC1jb21wb25lbnQge1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcblxyXG4ubmF2YmFyLWJyYW5kLmFwcC1jb21wb25lbnQge1xyXG4gIGZsb2F0OiBub25lO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4gIC5uYXZiYXItYnJhbmQuYXBwLWNvbXBvbmVudCA+IGltZyB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgfVxyXG5cclxubmF2IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcblxyXG4ubmF2YmFyLWlubmVyLmFwcC1jb21wb25lbnQge1xyXG4gIHBhZGRpbmctbGVmdDogMHB4O1xyXG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XHJcbiAgLW1vei1ib3gtc2hhZG93OiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2Y3YjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG59XHJcblxyXG4ubmF2YmFyLWlubmVyLnRvb2xiYXIuYXBwLWNvbXBvbmVudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcclxufVxyXG5cclxuXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gLmFjdGl2ZSA+IGEsXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gbGkge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuICAubmF2YmFyLmFwcC1jb21wb25lbnQgLm5hdiA+IGxpID4gYSB7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIC13ZWJraXQtdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIHBhZGRpbmctdG9wOiA2cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG4gIH1cclxuXHJcblxyXG4ubmF2YmFyLWZpeGVkLXRvcC5hcHAtY29tcG9uZW50IC5uYXZiYXItaW5uZXIuYXBwLWNvbXBvbmVudCxcclxuLm5hdmJhci1zdGF0aWMtdG9wLmFwcC1jb21wb25lbnQgLm5hdmJhci1pbm5lci5hcHAtY29tcG9uZW50IHtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDAwcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDAwcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBib3gtc2hhZG93OiAwIDFweCAwMHB4IHJnYmEoMCwgMCwgMCwgMCk7XHJcbn1cclxuXHJcbi5uYXYubmF2QmFyUGFkZGluZy5hcHAtY29tcG9uZW50IHtcclxuICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbn1cclxuXHJcbnAubmF2YmFyLXRleHQuYXBwLWNvbXBvbmVudCB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbiAgcC5uYXZiYXItdGV4dC5hcHAtY29tcG9uZW50IGEge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgfVxyXG5cclxuLm5hdmJhci5hcHAtY29tcG9uZW50IC5icmFuZCB7XHJcbiAgbWFyZ2luLXRvcDogMnB4O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIC13ZWJraXQtdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5uYXZiYXItdG9nZ2xlLmFwcC1jb21wb25lbnQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xyXG59XHJcblxyXG4gIC5uYXZiYXItdG9nZ2xlLmFwcC1jb21wb25lbnQgLmljb24tYmFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICNtYWluQ29udGVudC5hcHAtY29tcG9uZW50IHtcclxuICAgIC8qcGFkZGluZy10b3A6IDIwMHB4OyovXHJcbiAgfVxyXG5cclxuICAubmF2YmFyLWJyYW5kLmFwcC1jb21wb25lbnQge1xyXG4gICAgZm9udC1zaXplOiAxMnB0O1xyXG4gIH1cclxuXHJcbiAgLyoubmF2Lm5hdkJhclBhZGRpbmcuYXBwLWNvbXBvbmVudCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xyXG4gICAgfSovXHJcblxyXG4gIC5uYXYuYXBwLWNvbXBvbmVudCA+IGxpID4gYSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5uYXYtcGlsbHMuYXBwLWNvbXBvbmVudCA+IGxpIHtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgICAubmF2LXBpbGxzLmFwcC1jb21wb25lbnQgPiBsaSArIGxpIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbi10b3A6IDFweDtcclxuICAgIH1cclxuXHJcbiAgLm5hdmJhci1jb2xsYXBzZS5hcHAtY29tcG9uZW50IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgYS51c2VyLW5hbWUuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBtYXgtd2lkdGg6IDQ1cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgLm5hdmJhci10b2dnbGUuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgYS51c2VyLW5hbWUuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMHB4O1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gIGEudXNlci1uYW1lLmFwcC1jb21wb25lbnQge1xyXG4gICAgbWF4LXdpZHRoOiAyNTBweDtcclxuICB9XHJcblxyXG4gIC5jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5hLnVzZXItbmFtZS5hcHAtY29tcG9uZW50IHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbn1cclxuXHJcblxyXG5cclxuLypmb290ZXIuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn0qL1xyXG5cclxuXHJcbi5uYXZiYXItaW5uZXIuZm9vdGVyLmFwcC1jb21wb25lbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xyXG4gIC1tb3otYm94LXNoYWRvdzogbm9uZTtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIGhlaWdodDogNDBweDtcclxufVxyXG5cclxuXHJcblxyXG4udmNlbnRlcl90ZXh0LmFwcC1jb21wb25lbnQge1xyXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5wcmVib290U2hvdy5hcHAtY29tcG9uZW50IHtcclxuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wcmVib290U3RlcC5hcHAtY29tcG9uZW50IHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHRyYW5zaXRpb246IC41cyBlYXNlLWluLW91dCBhbGw7XHJcbn1cclxuXHJcbi8qLm1lbnVJdGVtc0NvbnRhaW5lciwgLm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZSwgLm5hdmJhci1jb2xsYXBzZSB7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbn0qL1xyXG5cclxuXHJcbi5uYXYtcGlsbHMgPiBsaSA+IGEge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxufVxyXG5cclxuLyouZHJvcGRvd24tc3VibWVudSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4gIC5kcm9wZG93bi1zdWJtZW51ID4gLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMTAwJTtcclxuICAgIG1hcmdpbi10b3A6IC02cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMCA2cHggNnB4IDZweDtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czogMCA2cHggNnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMCA2cHggNnB4IDZweDtcclxuICB9XHJcblxyXG4gIC5kcm9wZG93bi1zdWJtZW51OmhvdmVyID4gLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24tc3VibWVudSA+IGE6YWZ0ZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBjb250ZW50OiBcIiBcIjtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6IDVweCAwIDVweCA1cHg7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogI2NjYztcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24tc3VibWVudTpob3ZlciA+IGE6YWZ0ZXIge1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24tc3VibWVudS5wdWxsLWxlZnQge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAgIC5kcm9wZG93bi1zdWJtZW51LnB1bGwtbGVmdCA+IC5kcm9wZG93bi1tZW51IHtcclxuICAgICAgbGVmdDogLTEwMCU7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDZweCAwIDZweCA2cHg7XHJcbiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogNnB4IDAgNnB4IDZweDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogNnB4IDAgNnB4IDZweDtcclxuICAgIH1cclxuICAqL1xyXG5cclxuLm5hdiAub3BlbiA+IGEsIC5uYXYgLm9wZW4gPiBhOmZvY3VzLCAubmF2IC5vcGVuID4gYTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBiOWM5NztcclxuICBjb2xvcjogI2ZmZmZmZjtcclxufVxyXG5cclxuLm5hdmJhciAubmF2IGxpIGE6aG92ZXIsIC5uYXZiYXIubmF2IGxpLnRvb2xiYXJpdGVtIGE6aG92ZXIsIC5uYXYubmF2LXRhYnNOT1RVU0UgbGkgYTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBiOWM5NztcclxuICBjb2xvcjogI2ZmZmZmZjtcclxufVxyXG4uZHJvcGRvd24tbWVudSA+IGFwcC1zdWItbWVudS1wYW5lbCA+IGxpID4gYSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcGFkZGluZzogM3B4IDIwcHg7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcclxuICBjb2xvcjogIzMzMztcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4uZHJvcGRvd24tbWVudSB7XHJcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n Welcome to FRS!\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n FRS © {{getYear()}}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","import { Component, ViewEncapsulation, OnInit, OnDestroy, ViewChildren, AfterViewInit, QueryList, ElementRef } from \"@angular/core\";\r\nimport { Router, NavigationStart, NavigationEnd, ActivatedRoute } from '@angular/router';\r\nimport { ToastaService, ToastaConfig, ToastOptions, ToastData } from 'ngx-toasta';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport 'rxjs/add/operator/skip';\r\nimport 'rxjs/add/operator/debounceTime';\r\nimport * as signalR from '@aspnet/signalr';\r\n\r\nimport { AlertService, AlertDialog, DialogType, AlertMessage, MessageSeverity } from '../services/alert.service';\r\nimport { NotificationService } from \"../services/notification.service\";\r\nimport { AppTranslationService } from \"../services/app-translation.service\";\r\nimport { AccountService } from '../services/account.service';\r\nimport { LocalStoreManager } from '../services/local-store-manager.service';\r\nimport { AppTitleService } from '../services/app-title.service';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { ConfigurationService } from '../services/configuration.service';\r\nimport { Permission } from '../models/permission.model';\r\nimport { LoginComponent } from \"../components/login/login.component\";\r\nimport { ExternalLoginComponent } from \"./login/external-login.component\";\r\nimport { FRSHubConnections } from \"../models/user.model\";\r\nimport { Filter } from \"../models/sieve-filter.model\";\r\nimport { Notification } from '../models/notification.model';\r\nvar alertify: any = require('../assets/scripts/alertify.js');\r\n//var oldSignalR: any = require('../assets/scripts/jquery.signalR-2.3.0.min.js');\r\n\r\n@Component({\r\n selector: \"app-root\",\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AppComponent implements OnInit, AfterViewInit {\r\n\r\n messageSubscription: any;\r\n stickMessageSubscription: any;\r\n dialogSubscription: any;\r\n\r\n isRegister = false;\r\n isForgotPassword = false;\r\n isResetPassword = false;\r\n isAttendance = false;\r\n isPIBDeviceTemplate = false;\r\n isAppLoaded: boolean;\r\n isUserLoggedIn: boolean;\r\n shouldShowLoginModal: boolean;\r\n removePrebootScreen: boolean;\r\n newNotificationCount = 0;\r\n appTitle = \"FRS\";\r\n resetUserId = '';\r\n resetCode = '';\r\n appLogo = require(\"../assets/images/booking-icon.png\");\r\n initLink = '/';\r\n stickyToasties: number[] = [];\r\n\r\n dataLoadingConsecutiveFailurs = 0;\r\n notificationsLoadingSubscription: any;\r\n\r\n @ViewChildren('loginModal,loginControl')\r\n modalLoginControls: QueryList;\r\n\r\n loginModal: ModalDirective;\r\n loginControl: LoginComponent;\r\n\r\n loginStatusSubscription: any;\r\n interval: any;\r\n menu: any;\r\n\r\n private connection: signalR.HubConnection;\r\n\r\n get notificationsTitle() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n if (this.newNotificationCount)\r\n return `${gT(\"app.Notifications\")} (${this.newNotificationCount} ${gT(\"app.New\")})`;\r\n else\r\n return gT(\"app.Notifications\");\r\n }\r\n\r\n\r\n constructor(private storageManager: LocalStoreManager, private toastaService: ToastaService, private toastaConfig: ToastaConfig,\r\n private accountService: AccountService, private alertService: AlertService, private notificationService: NotificationService, private appTitleService: AppTitleService,\r\n private authService: AuthService, private translationService: AppTranslationService, public configurations: ConfigurationService, public router: Router,\r\n public activatedRoute: ActivatedRoute, private connections: FRSHubConnections) {\r\n this.configurations.loadMenus()\r\n .then(menu => {\r\n this.menu = menu;\r\n console.log(this.menu);\r\n });\r\n\r\n //if (this.accountService.currentUser == null || this.authService.isSessionExpired) {\r\n // console.log(this.authService.refreshToken);\r\n // console.log(this.authService.idToken);\r\n // this.accountService.refreshLoggedInUser().subscribe(user => {\r\n // console.log(user);\r\n // if (user == null) {\r\n // this.authService.logout();\r\n // this.authService.redirectForLogin();\r\n // }\r\n \r\n // },\r\n // error => {\r\n // console.log(error);\r\n // });\r\n //}\r\n\r\n \r\n //if (this.accountService.currentUser == null || this.authService.isSessionExpired) {\r\n // this.authService.logout();\r\n // this.authService.redirectForLogin();\r\n //}\r\n\r\n storageManager.initialiseStorageSyncListener();\r\n\r\n translationService.addLanguages([\"en\", \"fr\", \"de\", \"pt\", \"ar\", \"ko\"]);\r\n translationService.setDefaultLanguage('en');\r\n\r\n\r\n this.toastaConfig.theme = 'bootstrap';\r\n this.toastaConfig.position = 'top-right';\r\n this.toastaConfig.limit = 100;\r\n this.toastaConfig.showClose = true;\r\n\r\n this.appTitleService.appName = this.appTitle;\r\n\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n console.log('NavigationStart');\r\n //reset all loading messages\r\n this.alertService.resetStickyMessage();\r\n this.alertService.resetToastMessage();\r\n this.alertService.stopLoadingMessage();\r\n var ev = (event);\r\n let url = (event).url;\r\n if (url.toLowerCase().indexOf('/resetpassword?') > -1 && !this.isResetPassword) {\r\n this.isResetPassword = true;\r\n this.storageManager.deleteData('resetUrl');\r\n this.storageManager.saveSessionData(url, 'resetUrl');\r\n //var queryParamSection = url.split('?')[1];\r\n //var params = queryParamSection.split('&');\r\n //this.resetUserId = params[0].split('=')[1];\r\n //this.resetCode = params[1].split('=')[1];\r\n //this.authService.resetUserId = this.resetUserId;\r\n //this.authService.resetCode = this.resetCode;\r\n location.replace(this.authService.resetPasswordUrl);\r\n //this.router.navigate([this.authService.resetPasswordUrl], { queryParams: { userId: this.resetUserId, code: this.resetCode } });\r\n //this.authService.gotoPage(this.authService.resetPasswordUrl)\r\n }\r\n }\r\n });\r\n\r\n //this.activatedRoute.queryParams.debounceTime(500).skip(1).subscribe(params => {\r\n // console.log(params);\r\n //});\r\n\r\n //this.activatedRoute.queryParams\r\n // .filter(queryParams => Object.keys(queryParams).length > 0 === window.location.href.includes('?'))\r\n // .subscribe(queryParams =>\r\n // console.log(queryParams)\r\n // );\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n //this.router.events.subscribe(event => {\r\n // if (event instanceof NavigationStart || event instanceof NavigationEnd) {\r\n // let url = (event).url;\r\n\r\n // if (url == '/register') {\r\n // this.authService.logout();\r\n // this.isRegister = true;\r\n // this.authService.reLoginDelegate = () => null;\r\n // } else if (url == '/forgotpassword') {\r\n // this.authService.logout();\r\n // this.isForgotPassword = true;\r\n // this.authService.reLoginDelegate = () => null;\r\n // }\r\n\r\n\r\n // }\r\n //});\r\n if (!this.isResetPassword) {\r\n this.modalLoginControls.changes.subscribe((controls: QueryList) => {\r\n controls.forEach(control => {\r\n if (control) {\r\n if (control instanceof LoginComponent) {\r\n this.loginControl = control;\r\n this.loginControl.modalClosedCallback = () => this.loginModal.hide();\r\n }\r\n else {\r\n this.loginModal = control;\r\n this.loginModal.show();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n\r\n onLoginModalShown() {\r\n this.alertService.showStickyMessage(\"Session Expired\", \"Your Session has expired. Please log in again\", MessageSeverity.info);\r\n }\r\n\r\n\r\n onLoginModalHidden() {\r\n this.alertService.resetStickyMessage();\r\n this.loginControl.reset();\r\n this.shouldShowLoginModal = false;\r\n\r\n if (this.authService.isSessionExpired)\r\n this.alertService.showStickyMessage(\"Session Expired\", \"Your Session has expired. Please log in again to renew your session\", MessageSeverity.warn);\r\n }\r\n\r\n\r\n onLoginModalHide() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n if (this.loginStatusSubscription)\r\n this.loginStatusSubscription.unsubscribe();\r\n if (this.messageSubscription)\r\n this.messageSubscription.unsubscribe();\r\n if (this.stickMessageSubscription)\r\n this.stickMessageSubscription.unsubscribe();\r\n\r\n this.shouldShowLoginModal = false;\r\n this.initLink = this.router.url;\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart || event instanceof NavigationEnd) {\r\n let url = (event).url.toLowerCase();\r\n if (url == '/register') {\r\n this.authService.logout();\r\n this.isRegister = true;\r\n this.authService.reLoginDelegate = () => null;\r\n } else if (url == '/forgotpassword') {\r\n this.authService.logout();\r\n this.isForgotPassword = true;\r\n this.authService.reLoginDelegate = () => null;\r\n } else if (url == '/resetpassword') {\r\n this.authService.logout();\r\n this.isResetPassword = true;\r\n this.authService.reLoginDelegate = () => null;\r\n } else if (url == '/attendance') {\r\n this.authService.logout();\r\n this.isAttendance = true;\r\n this.authService.reLoginDelegate = () => null;\r\n } else if (url == '/pibdevicetemplate') {\r\n this.authService.logout();\r\n this.isPIBDeviceTemplate = true;\r\n this.authService.reLoginDelegate = () => this.shouldShowLoginModal = false;\r\n }\r\n\r\n\r\n }\r\n });\r\n\r\n if (!this.isRegister && !this.isAttendance && !this.isForgotPassword && !this.isResetPassword && !this.isPIBDeviceTemplate) {\r\n this.isUserLoggedIn = this.authService.isLoggedIn;\r\n\r\n // 1 sec to ensure all the effort to get the css animation working is appreciated :|, Preboot screen is removed .5 sec later\r\n setTimeout(() => this.isAppLoaded = true, 1000);\r\n setTimeout(() => this.removePrebootScreen = true, 1500);\r\n\r\n setTimeout(() => {\r\n if (this.isUserLoggedIn) {\r\n this.alertService.resetStickyMessage();\r\n\r\n if (!this.authService.isSessionExpired)\r\n this.alertService.showMessage(\"Login\", `Welcome back ${this.userName}!`, MessageSeverity.default);\r\n else {\r\n this.shouldShowLoginModal = true;\r\n this.alertService.showStickyMessage(\"Session Expired\", \"Your Session has expired. Please log in again\", MessageSeverity.warn);\r\n }\r\n }\r\n }, 2000);\r\n\r\n\r\n this.dialogSubscription = this.alertService.getDialogEvent().subscribe(alert => this.showDialog(alert));\r\n this.messageSubscription = this.alertService.getMessageEvent().subscribe(message => this.showToast(message, false));\r\n this.stickMessageSubscription = this.alertService.getStickyMessageEvent().subscribe(message => this.showToast(message, true));\r\n\r\n this.authService.reLoginDelegate = () => this.shouldShowLoginModal = true;\r\n\r\n this.loginStatusSubscription = this.authService.getLoginStatusEvent().subscribe(isLoggedIn => {\r\n this.isUserLoggedIn = isLoggedIn;\r\n\r\n\r\n if (this.isUserLoggedIn) {\r\n this.initUserHub();\r\n this.initNotificationsLoading();\r\n }\r\n else {\r\n this.unsubscribeNotifications();\r\n }\r\n\r\n setTimeout(() => {\r\n if (!this.isUserLoggedIn && !this.isRegister && !this.isAttendance && !this.isPIBDeviceTemplate) {\r\n this.alertService.showMessage(\"Session Ended!\", \"\", MessageSeverity.default);\r\n this.logout();\r\n }\r\n }, 500);\r\n });\r\n\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n let url = (event).url;\r\n\r\n if (url !== url.toLowerCase()) {\r\n this.router.navigateByUrl((event).url.toLowerCase());\r\n }\r\n }\r\n });\r\n\r\n this.connections.sessionInterval = setInterval(() => {\r\n //console.log('I am running every 30 seconds - ' + new Date().toISOString());\r\n //refresh session when access token expired\r\n if (this.accountService.currentUser == null || this.authService.isSessionExpired) {\r\n this.accountService.refreshLoggedInUser().subscribe(user => { console.log(user); },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server. Please log in again.\", MessageSeverity.error);\r\n });\r\n }\r\n //if (this.isUserLoggedIn) {\r\n // if (this.accountService.currentUser == null || this.authService.isSessionExpired) {\r\n // this.authService.logout();\r\n // this.authService.redirectForLogin();\r\n // clearInterval(this.connections.sessionInterval);\r\n // }\r\n //}\r\n }, 5 * 60 * 1000);\r\n }\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeNotifications();\r\n if (this.loginStatusSubscription)\r\n this.loginStatusSubscription.unsubscribe();\r\n if (this.messageSubscription)\r\n this.messageSubscription.unsubscribe();\r\n if (this.stickMessageSubscription)\r\n this.stickMessageSubscription.unsubscribe();\r\n if (this.dialogSubscription)\r\n this.dialogSubscription.unsubscribe();\r\n\r\n }\r\n\r\n\r\n private unsubscribeNotifications() {\r\n if (this.notificationsLoadingSubscription)\r\n this.notificationsLoadingSubscription.unsubscribe();\r\n }\r\n\r\n initUserHub() {\r\n this.connection = this.authService.signalRConnection(this.configurations.baseUrl + \"/hub/user?email=\" + this.accountService.currentUser.email, true);\r\n if (this.connection != null) {\r\n this.connection.on(\"NotificationTriggered\", (notification: Notification) => {\r\n var notifications = this.notificationService.recentNotifications;\r\n if (!notifications) notifications = [];\r\n notifications.push(notification);\r\n this.notificationService.recentNotifications = notifications;\r\n this.newNotificationCount++;\r\n });\r\n }\r\n }\r\n\r\n initNotificationsLoading() {\r\n var filter = new Filter(1, 10);\r\n filter.sorts = 'date';\r\n filter.page = 1;\r\n filter.filters = `(UserId)==${this.accountService.currentUser.id},(IsActive)==true,(IsRead)==false`;\r\n this.notificationsLoadingSubscription = this.notificationService.getNewNotifications(filter)\r\n .subscribe(notifications => {\r\n this.dataLoadingConsecutiveFailurs = 0;\r\n this.newNotificationCount = notifications.filter(n => !n.isRead).length;\r\n },\r\n error => {\r\n this.alertService.logError(error);\r\n\r\n if (this.dataLoadingConsecutiveFailurs++ < 20)\r\n setTimeout(() => this.initNotificationsLoading(), 5000);\r\n //else\r\n // this.alertService.showStickyMessage(\"Load Error\", \"Loading new notifications from the server failed!\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n markNotificationsAsRead() {\r\n\r\n let recentNotifications = this.notificationService.recentNotifications;\r\n\r\n if (recentNotifications.length) {\r\n this.notificationService.readUnreadNotification(recentNotifications.map(n => n.id), true)\r\n .subscribe(response => {\r\n for (let n of recentNotifications) {\r\n n.isRead = true;\r\n }\r\n\r\n this.newNotificationCount = recentNotifications.filter(n => !n.isRead).length;\r\n },\r\n error => {\r\n this.alertService.logError(error);\r\n this.alertService.showMessage(\"Notification Error\", \"Marking read notifications failed\", MessageSeverity.error);\r\n\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n showDialog(dialog: AlertDialog) {\r\n\r\n alertify.set({\r\n labels: {\r\n ok: dialog.okLabel || \"OK\",\r\n cancel: dialog.cancelLabel || \"Cancel\"\r\n }\r\n });\r\n\r\n switch (dialog.type) {\r\n case DialogType.alert:\r\n alertify.alert(dialog.message);\r\n\r\n break\r\n case DialogType.confirm:\r\n alertify\r\n .confirm(dialog.message, (e) => {\r\n if (e) {\r\n dialog.okCallback();\r\n }\r\n else {\r\n if (dialog.cancelCallback)\r\n dialog.cancelCallback();\r\n }\r\n });\r\n\r\n break;\r\n case DialogType.prompt:\r\n alertify\r\n .prompt(dialog.message, (e, val) => {\r\n if (e) {\r\n dialog.okCallback(val);\r\n }\r\n else {\r\n if (dialog.cancelCallback)\r\n dialog.cancelCallback();\r\n }\r\n }, dialog.defaultValue);\r\n\r\n break;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n showToast(message: AlertMessage, isSticky: boolean) {\r\n\r\n if (message == null) {\r\n for (let id of this.stickyToasties.slice(0)) {\r\n this.toastaService.clear(id);\r\n }\r\n\r\n return;\r\n }\r\n\r\n let toastOptions: ToastOptions = {\r\n title: message.summary,\r\n msg: message.detail,\r\n timeout: isSticky ? 0 : 4000\r\n };\r\n\r\n\r\n if (isSticky) {\r\n toastOptions.onAdd = (toast: ToastData) => this.stickyToasties.push(toast.id);\r\n\r\n toastOptions.onRemove = (toast: ToastData) => {\r\n let index = this.stickyToasties.indexOf(toast.id, 0);\r\n\r\n if (index > -1) {\r\n this.stickyToasties.splice(index, 1);\r\n }\r\n\r\n toast.onAdd = null;\r\n toast.onRemove = null;\r\n };\r\n }\r\n\r\n\r\n switch (message.severity) {\r\n case MessageSeverity.default: this.toastaService.default(toastOptions); break;\r\n case MessageSeverity.info: this.toastaService.info(toastOptions); break;\r\n case MessageSeverity.success: this.toastaService.success(toastOptions); break;\r\n case MessageSeverity.error: this.toastaService.error(toastOptions); break;\r\n case MessageSeverity.warn: this.toastaService.warning(toastOptions); break;\r\n case MessageSeverity.wait: this.toastaService.wait(toastOptions); break;\r\n }\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n this.authService.redirectLogoutUser();\r\n }\r\n\r\n selectMenu(event) {\r\n\r\n }\r\n\r\n getYear() {\r\n return new Date().getUTCFullYear();\r\n }\r\n\r\n\r\n get userName(): string {\r\n return this.authService.currentUser ? this.authService.currentUser.userName : \"\";\r\n }\r\n\r\n\r\n get fullName(): string {\r\n return this.authService.currentUser ? this.authService.currentUser.fullName : \"\";\r\n }\r\n\r\n\r\n get canViewReservations() {\r\n return this.accountService.userHasPermission(Permission.addReservationsPermission);\r\n }\r\n\r\n get canViewFacilities() {\r\n return this.accountService.userHasPermission(Permission.viewFacilitiesPermission);\r\n }\r\n\r\n get canViewDevices() {\r\n return this.accountService.userHasPermission(Permission.viewDevicesPermission);\r\n }\r\n\r\n get canViewFacilityTypes() {\r\n return this.accountService.userHasPermission(Permission.viewFacilityTypesPermission);\r\n }\r\n\r\n get canViewLocations() {\r\n return this.accountService.userHasPermission(Permission.viewLocationsPermission);\r\n }\r\n\r\n get canViewPhonebooks() {\r\n return this.accountService.userHasPermission(Permission.viewUserPhonebooksPermission);\r\n }\r\n\r\n get canManageContactGroups() {\r\n return this.accountService.userHasPermission(Permission.manageContactGroupsPermission);\r\n }\r\n\r\n get canViewReports() {\r\n return this.accountService.userHasPermission(Permission.viewReportsPermission);\r\n }\r\n\r\n get canManagePIBTemplates() {\r\n return this.accountService.userHasPermission(Permission.viewPIBTemplatesPermission);\r\n }\r\n\r\n get canManagePIBDevices() {\r\n return this.accountService.userHasPermission(Permission.viewPIBDevicesTemplatesPermission);\r\n }\r\n\r\n get canViewVehicles() {\r\n return this.accountService.userHasPermission(Permission.manageUserVehiclesPermission);\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXBwbGljYXRpb24tc2V0dGluZy9hcHBsaWNhdGlvbi1zZXR0aW5nLWVkaXRvci5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"

{{'pageHeader.ApplicationSettings' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{'applicationSettings.editor.KeyRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'applicationSettings.editor.ValueRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'applicationSettings.editor.DescriptionRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n {{applicationSettingEdit.institutionKey}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n {{institution.key}} - {{institution.description}}\\r\\n \\r\\n {{'applicationSettings.editor.InstitutionRequired' | 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\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { ApplicationSetting } from 'src/app/models/application-setting.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ApplicationSettingService } from 'src/app/services/application-setting.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'application-setting-editor',\r\n templateUrl: './application-setting-editor.component.html',\r\n styleUrls: ['./application-setting-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ApplicationSettingEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewApplicationSetting = false;\r\n private originalApplicationSetting: ApplicationSetting = new ApplicationSetting();\r\n private applicationSettingEdit: ApplicationSetting = new ApplicationSetting();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { key: false, value: false, description: false };\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('key')\r\n private key;\r\n\r\n @ViewChild('value')\r\n private value;\r\n\r\n @ViewChild('description')\r\n private description;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private applicationSettingService: ApplicationSettingService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.applicationSetting) != typeof (undefined)) {\r\n if (data.applicationSetting.id) {\r\n this.editApplicationSetting(data.applicationSetting);\r\n } else {\r\n this.newApplicationSetting();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private validate() {\r\n this.validation = { key: false, value: false, description: false };\r\n if (this.applicationSettingEdit.key && this.applicationSettingEdit.key.trim().length == 0) {\r\n this.validation.key = true;\r\n this.key.control.setErrors({});\r\n }\r\n\r\n if (this.applicationSettingEdit.value && this.applicationSettingEdit.value.trim().length == 0) {\r\n this.validation.value = true;\r\n this.value.control.setErrors({});\r\n }\r\n\r\n if (this.applicationSettingEdit.description && this.applicationSettingEdit.description.trim().length == 0) {\r\n this.validation.description = true;\r\n this.description.control.setErrors({});\r\n }\r\n\r\n if (this.validation.key || this.validation.value || this.validation.description) {\r\n this.showValidationErrors = true;\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.applicationSettingEdit.id) {\r\n this.applicationSettingService.newApplicationSetting(this.applicationSettingEdit).subscribe(applicationSetting => this.saveSuccessHelper(applicationSetting), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.applicationSettingService.updateApplicationSetting(this.applicationSettingEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(applicationSetting?: ApplicationSetting) {\r\n if (applicationSetting)\r\n Object.assign(this.applicationSettingEdit, applicationSetting);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewApplicationSetting) {\r\n this.alertService.showMessage(\"Success\", `Application Setting \\\"${this.applicationSettingEdit.key}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to application setting \\\"${this.applicationSettingEdit.key}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.applicationSettingEdit = new ApplicationSetting();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newApplicationSetting() {\r\n this.showValidationErrors = true;\r\n this.isNewApplicationSetting = true;\r\n this.applicationSettingEdit = new ApplicationSetting();\r\n this.applicationSettingEdit.institutionId = this.accountService.currentUser.institutionId;\r\n return this.applicationSettingEdit;\r\n }\r\n\r\n editApplicationSetting(applicationSetting: ApplicationSetting) {\r\n if (applicationSetting) {\r\n this.isNewApplicationSetting = false;\r\n this.showValidationErrors = true;\r\n this.originalApplicationSetting = applicationSetting;\r\n this.applicationSettingEdit = new ApplicationSetting();\r\n Object.assign(this.applicationSettingEdit, applicationSetting);\r\n\r\n return this.applicationSettingEdit;\r\n }\r\n else {\r\n return this.newApplicationSetting();\r\n }\r\n }\r\n\r\n get canManageApplicationSettings() {\r\n return true;//this.accountService.userHasPermission(Permission.manageApplicationSettingPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hcHBsaWNhdGlvbi1zZXR0aW5nL2FwcGxpY2F0aW9uLXNldHRpbmdzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2FwcGxpY2F0aW9uLXNldHRpbmcvYXBwbGljYXRpb24tc2V0dGluZ3MtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Application Settings

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'applicationSettings.management.Edit' | translate}}\\r\\n {{'applicationSettings.management.Details' | translate}}\\r\\n \\r\\n {{'applicationSettings.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { ApplicationSettingService } from 'src/app/services/application-setting.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { ApplicationSetting } from 'src/app/models/application-setting.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { ApplicationSettingEditorComponent } from './application-setting-editor.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'application-settings-management',\r\n templateUrl: './application-settings-management.component.html',\r\n styleUrls: ['./application-settings-management.component.css']\r\n})\r\nexport class ApplicationSettingsManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: ApplicationSetting[] = [];\r\n rowsCache: ApplicationSetting[] = [];\r\n allPermissions: Permission[] = [];\r\n editedApplicationSetting: ApplicationSetting;\r\n sourceApplicationSetting: ApplicationSetting;\r\n editingApplicationSettingName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('applicationSettingEditor')\r\n applicationSettingEditor: ApplicationSettingEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private applicationSettingService: ApplicationSettingService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(applicationSetting: ApplicationSetting): void {\r\n const dialogRef = this.dialog.open(ApplicationSettingEditorComponent, {\r\n data: { header: this.header, applicationSetting: applicationSetting },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'key', name: gT('applicationSettings.management.Key') },\r\n { prop: 'value', name: gT('applicationSettings.management.Value') },\r\n { prop: 'description', name: gT('applicationSettings.management.Description') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.applicationSettingEditor.changesSavedCallback = () => {\r\n this.addNewApplicationSettingToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.applicationSettingEditor.changesCancelledCallback = () => {\r\n this.editedApplicationSetting = null;\r\n this.sourceApplicationSetting = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewApplicationSettingToList() {\r\n if (this.sourceApplicationSetting) {\r\n Object.assign(this.sourceApplicationSetting, this.editedApplicationSetting);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceApplicationSetting, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceApplicationSetting, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedApplicationSetting = null;\r\n this.sourceApplicationSetting = null;\r\n }\r\n else {\r\n let applicationSetting = new ApplicationSetting();\r\n Object.assign(applicationSetting, this.editedApplicationSetting);\r\n this.editedApplicationSetting = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (applicationSetting).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, applicationSetting);\r\n this.rows.splice(0, 0, applicationSetting);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.applicationSettingService.getApplicationSettingByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let applicationSettings = results[0];\r\n let permissions = results[1];\r\n\r\n applicationSettings.forEach((applicationSetting, index, applicationSettings) => {\r\n (applicationSetting).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...applicationSettings];\r\n this.rows = applicationSettings;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve application setting from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.key, r.value));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingApplicationSettingName = null;\r\n this.applicationSettingEditor.resetForm(true);\r\n }\r\n\r\n\r\n newApplicationSetting() {\r\n this.editingApplicationSettingName = null;\r\n this.sourceApplicationSetting = null;\r\n this.editedApplicationSetting = this.applicationSettingEditor.newApplicationSetting();\r\n this.header = 'New Application Setting';\r\n this.openDialog(this.editedApplicationSetting);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editApplicationSetting(row: ApplicationSetting) {\r\n this.editingApplicationSettingName = { key: row.key };\r\n this.sourceApplicationSetting = row;\r\n this.editedApplicationSetting = this.applicationSettingEditor.editApplicationSetting(row);\r\n this.header = 'Edit Application Setting';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedApplicationSetting);\r\n }\r\n\r\n deleteApplicationSetting(row: ApplicationSetting) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.key + '\\\" application setting?', DialogType.confirm, () => this.deleteApplicationSettingHelper(row));\r\n }\r\n\r\n\r\n deleteApplicationSettingHelper(row: ApplicationSetting) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.applicationSettingService.deleteApplicationSetting(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the application setting.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageApplicationSettings() {\r\n return true;//this.accountService.userHasPermission(Permission.manageApplicationSettingPermission);\r\n }\r\n\r\n}\r\n","module.exports = \".boxshadow {\\r\\n position: relative;\\r\\n box-shadow: 1px 2px 4px rgba(0, 0, 0, .5);\\r\\n padding: 10px;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n\\r\\n .boxshadow::after {\\r\\n content: '';\\r\\n position: absolute;\\r\\n z-index: -1; /* hide shadow behind image */\\r\\n box-shadow: 0 15px 20px rgba(0, 0, 0, 0.3);\\r\\n width: 70%;\\r\\n left: 15%; /* one half of the remaining 30% */\\r\\n height: 100px;\\r\\n bottom: 0;\\r\\n }\\r\\n\\r\\n\\r\\n .cardshadow {\\r\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\\r\\n}\\r\\n\\r\\n\\r\\n .separator-hr {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n\\r\\n .last-control-group {\\r\\n margin-bottom: -25px;\\r\\n}\\r\\n\\r\\n\\r\\n @media (min-width: 768px) {\\r\\n .login-container {\\r\\n width: 700px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n /*@media (min-width: 992px) {\\r\\n .login-container {\\r\\n width: 700px;\\r\\n }\\r\\n}*/\\r\\n\\r\\n\\r\\n @media (min-width: 1200px) {\\r\\n .login-container {\\r\\n width: 730px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n .row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n\\r\\n .separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n\\r\\n .edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n\\r\\n .last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n .edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n\\r\\n .password-separator-hr {\\r\\n margin: 5px;\\r\\n border-style: none;\\r\\n}\\r\\n\\r\\n\\r\\n .form-group {\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n\\r\\n input.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n .password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n\\r\\n .hint-sm {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n\\r\\n .checkbox.user-enabled {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\n .unblock-user {\\r\\n margin-left: 34px;\\r\\n}\\r\\n\\r\\n\\r\\n @media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n .center-content{\\r\\n margin: 70px auto;\\r\\n /*width: 50%;*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdHRlbmRhbmNlLXNpZ25pbi9hdHRlbmRhbmNlLXNpZ25pbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksa0JBQWtCO0lBR2xCLHlDQUF5QztJQUN6QyxhQUFhO0lBQ2IsaUJBQWlCO0FBQ3JCOzs7SUFHSTtRQUNJLFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIsV0FBVyxFQUFFLDZCQUE2QjtRQUcxQywwQ0FBMEM7UUFDMUMsVUFBVTtRQUNWLFNBQVMsRUFBRSxrQ0FBa0M7UUFDN0MsYUFBYTtRQUNiLFNBQVM7SUFDYjs7O0lBR0o7SUFDSSw0RUFBNEU7QUFDaEY7OztJQUdBO0lBQ0ksU0FBUztBQUNiOzs7SUFFQTtJQUNJLG9CQUFvQjtBQUN4Qjs7O0lBSUE7SUFDSTtRQUNJLFlBQVk7SUFDaEI7QUFDSjs7O0lBRUE7Ozs7RUFJRTs7O0lBRUY7SUFDSTtRQUNJLFlBQVk7SUFDaEI7QUFDSjs7O0lBRUE7RUFDRSxpQ0FBaUM7QUFDbkM7OztJQUVBO0VBQ0UsYUFBYTtFQUNiLHdCQUF3QjtBQUMxQjs7O0lBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsd0JBQXdCO0FBQzFCOzs7SUFFQTtFQUNFLGVBQWU7QUFDakI7OztJQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOzs7SUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7QUFDcEI7OztJQUdBO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7O0lBRUE7RUFDRSxzQkFBc0I7QUFDeEI7OztJQUdBO0VBQ0UsZ0JBQWdCO0FBQ2xCOzs7SUFFQTtFQUNFLGNBQWM7QUFDaEI7OztJQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCOzs7SUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7O0lBRUE7RUFDRTtJQUNFLGlCQUFpQjtFQUNuQjtBQUNGOzs7SUFFQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hdHRlbmRhbmNlLXNpZ25pbi9hdHRlbmRhbmNlLXNpZ25pbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJveHNoYWRvdyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAtbW96LWJveC1zaGFkb3c6IDFweCAycHggNHB4IHJnYmEoMCwgMCwgMCwwLjUpO1xyXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAxcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIC41KTtcclxuICAgIGJveC1zaGFkb3c6IDFweCAycHggNHB4IHJnYmEoMCwgMCwgMCwgLjUpO1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG59XHJcblxyXG5cclxuICAgIC5ib3hzaGFkb3c6OmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgei1pbmRleDogLTE7IC8qIGhpZGUgc2hhZG93IGJlaGluZCBpbWFnZSAqL1xyXG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAxNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogMCAxNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAgICAgICB3aWR0aDogNzAlO1xyXG4gICAgICAgIGxlZnQ6IDE1JTsgLyogb25lIGhhbGYgb2YgdGhlIHJlbWFpbmluZyAzMCUgKi9cclxuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgIH1cclxuXHJcblxyXG4uY2FyZHNoYWRvdyB7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNnB4IDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xyXG59XHJcblxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5sYXN0LWNvbnRyb2wtZ3JvdXAge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTI1cHg7XHJcbn1cclxuXHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgICAubG9naW4tY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogNzAwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAubG9naW4tY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogNzAwcHg7XHJcbiAgICB9XHJcbn0qL1xyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gICAgLmxvZ2luLWNvbnRhaW5lciB7XHJcbiAgICAgICAgd2lkdGg6IDczMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luOiAwIDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luOiAxMHB4IDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuLnBhc3N3b3JkLXNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luOiA1cHg7XHJcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG59XHJcblxyXG5cclxuLmZvcm0tZ3JvdXAge1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbi5oaW50LXNtIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmNoZWNrYm94LnVzZXItZW5hYmxlZCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4udW5ibG9jay11c2VyIHtcclxuICBtYXJnaW4tbGVmdDogMzRweDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICB9XHJcbn1cclxuXHJcbi5jZW50ZXItY29udGVudHtcclxuICBtYXJnaW46IDcwcHggYXV0bztcclxuICAvKndpZHRoOiA1MCU7Ki9cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n

Attendance

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n calendar_today\\r\\n {{event.startDateTime | date: 'longDate'}}\\r\\n
\\r\\n
\\r\\n access_time\\r\\n {{event.startDateTime | date:'shortTime'}}\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n {{event.locationName}}\\r\\n

\\r\\n {{event.longDescription}}\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, OnDestroy, Input, ViewChild } from \"@angular/core\";\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { User } from \"src/app/models/user.model\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\nimport { UserEdit } from \"src/app/models/user-edit.model\";\r\nimport { ActivatedRoute, NavigationStart, Router, NavigationEnd } from \"@angular/router\";\r\nimport { ReservationService } from \"src/app/services/reservation.service\";\r\nimport { Reservation } from \"src/app/models/reservation.model\";\r\n\r\n@Component({\r\n selector: \"app-attendance-signin\",\r\n templateUrl: './attendance-signin.component.html',\r\n styleUrls: ['./attendance-signin.component.css']\r\n})\r\n\r\nexport class AttendanceSignInComponent implements OnInit, OnDestroy {\r\n\r\n private reservationId = '';\r\n private userNameEmail = '';\r\n private name = '';\r\n private company = '';\r\n private designation = '';\r\n public formResetToggle = true;\r\n showValidationErrors = true;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n private event: Reservation;\r\n\r\n private isSaving = false;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n //ViewChilds Required because ngIf hides template variables from global scope\r\n @ViewChild('userName')\r\n private userName;\r\n\r\n constructor(private alertService: AlertService, private authService: AuthService, private reservationService: ReservationService, private configurations: ConfigurationService,\r\n public router: Router, private route: ActivatedRoute) {\r\n \r\n }\r\n\r\n\r\n ngOnInit() {\r\n if (this.router.url.indexOf('/attendance') > -1) {\r\n this.authService.reLoginDelegate = () => null;\r\n var queryParams = this.router.url.split('?')[1];\r\n var queryParamSection = queryParams.split('&');\r\n this.reservationId = queryParamSection[0].split('=')[1];\r\n //this.userNameEmail = queryParamSection[1].split('=')[1];\r\n this.reservationService.getReservation(this.reservationId).subscribe(reservation => {\r\n this.event = reservation.data;\r\n });\r\n }\r\n\r\n //this.router.events.subscribe(event => {\r\n // if (event instanceof NavigationStart) {\r\n // let url = (event).url;\r\n // if (url.toLowerCase().indexOf('/register') > -1) {\r\n // debugger;\r\n // var queryParamSection = url.split('?')[1];\r\n // this.userEdit.email = queryParamSection.split('=')[1];\r\n // }\r\n // }\r\n\r\n // if (event instanceof NavigationEnd) {\r\n // let url = (event).url;\r\n // if (url.toLowerCase().indexOf('/register') > -1) {\r\n // debugger;\r\n // var queryParamSection = url.split('?')[1];\r\n // this.userEdit.email = queryParamSection.split('=')[1];\r\n // }\r\n // }\r\n //});\r\n\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n \r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.reservationService.validateAttendance(this.reservationId, this.userNameEmail, this.name, this.company, this.designation)\r\n .subscribe(data => {\r\n let message = data.isSuccess && data.data.isUserValid ? data.data.message : 'Failed to add your attendance to the event - ' + data.data.message;\r\n if (data.isSuccess && data.data.isUserValid) {\r\n this.form.reset();\r\n this.alertService.showMessage(\"Success\", message, MessageSeverity.success);\r\n } else {\r\n this.alertService.showMessage(\"Error\", message, MessageSeverity.error);\r\n }\r\n\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => this.saveFailedHelper(error));\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n //resetForm(replace = false) {\r\n\r\n // if (!replace) {\r\n // this.form.reset();\r\n // }\r\n // else {\r\n // this.formResetToggle = false;\r\n\r\n // setTimeout(() => {\r\n // this.formResetToggle = true;\r\n // });\r\n // }\r\n //}\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9hdXRoLWxvZy9hdXRoLWxvZ3MtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXVkaXQvYXV0aC1sb2cvYXV0aC1sb2dzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Authentication Logs

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{value}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { AuthLog } from 'src/app/models/auth-log.model';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchBoxComponent } from '../../controls/search-box.component';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n selector: 'auth-logs-management',\r\n templateUrl: './auth-logs-management.component.html',\r\n styleUrls: ['./auth-logs-management.component.css']\r\n})\r\nexport class AuthLogsManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: AuthLog[] = [];\r\n rowsCache: AuthLog[] = [];\r\n editingAuthLogName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('authLogTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private authLogService: AuditService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-createdDate';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'userName', name: 'User Name', width: 300, canAutoResize: false },\r\n { prop: 'message', name: 'Message'},\r\n { prop: 'createdDate', name: 'Date', pipe: new DateTimeOnlyPipe('en-SG'), canAutoResize: false, width: 200 },\r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(UserName|Message)@=' + this.keyword + ',(AuditAuthDateRange)==' + this.start.toDateString() + '|' + this.end.toDateString();\r\n \r\n this.authLogService.getAuthLogsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n console.log(this.pagedResult);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let authLogs = results.pagedData;\r\n\r\n authLogs.forEach((authLog, index, authLogs) => {\r\n (authLog).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...authLogs];\r\n this.rows = authLogs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve authentication logs from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n downloadResults() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_AuthLogs.xlsx';\r\n\r\n this.authLogService.downloadAuthLogReport(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n get canManageAuthLogs() {\r\n return this.accountService.userHasPermission(Permission.viewAuthLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: 11px !important;\\r\\n font-weight: 400 !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9kYXRhLWxvZy9kYXRhLWxvZy12aWV3ZXIuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFHQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0UsMEJBQTBCO0VBQzFCLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXVkaXQvZGF0YS1sb2cvZGF0YS1sb2ctdmlld2VyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcclxuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AuditLog } from 'src/app/models/audit-log';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\n\r\n@Component({\r\n selector: 'data-log-viewer',\r\n templateUrl: './data-log-viewer.component.html',\r\n styleUrls: ['./data-log-viewer.component.css']\r\n})\r\nexport class DataLogViewerComponent implements OnInit{\r\n\r\n private id: string;\r\n private details: AuditLog[];\r\n columns: any[] = [];\r\n rows: AuditLog[] = [];\r\n rowsCache: AuditLog[] = [];\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('dataLogDetailsTable') table: any;\r\n\r\n constructor(private auditService: AuditService, private translationService: AppTranslationService,\r\n private alertService: AlertService, \r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.id) != typeof (undefined)) {\r\n console.log(data.id);\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.id = data.id;\r\n this.loadData();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeTableDefinition();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'propertyName';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'propertyName', name: 'Field', width: 120 },\r\n { prop: 'originalValue', name: 'OriginalValue', width: 200 },\r\n { prop: 'newValue', name: 'New Value', width: 200 },\r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(PropertyName|OriginalValue|NewValue)@=' + this.keyword + ',(AuditLogId)==' + this.id;\r\n\r\n this.auditService.getDataLogDetailsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let authLogs = results.pagedData;\r\n\r\n authLogs.forEach((authLog, index, authLogs) => {\r\n (authLog).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...authLogs];\r\n this.rows = authLogs;\r\n this.rows = [...this.rows];\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve audit log details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close();\r\n }\r\n //loadData(id) {\r\n // this.auditService.getDataLogDetailsById(this.id)\r\n // .subscribe(results => {\r\n // this.details = results;\r\n // },\r\n // error => {\r\n // this.alertService.stopLoadingMessage();\r\n\r\n // this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve details from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // MessageSeverity.error);\r\n // });\r\n //}\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9kYXRhLWxvZy9kYXRhLWxvZ3MtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFHQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXVkaXQvZGF0YS1sb2cvZGF0YS1sb2dzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxufVxyXG5cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Data Logs

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'departments.management.Details' | translate}}\\r\\n \\r\\n\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { AuditLog } from 'src/app/models/audit-log';\r\nimport { DataLogViewerComponent } from './data-log-viewer.component';\r\nimport { DateOnlyPipe, DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchBoxComponent } from '../../controls/search-box.component';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'data-logs-management',\r\n templateUrl: './data-logs-management.component.html',\r\n styleUrls: ['./data-logs-management.component.css']\r\n})\r\nexport class DataLogsManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: AuditLog[] = [];\r\n rowsCache: AuditLog[] = [];\r\n editingAuditLogName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('dataLogTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private auditService: AuditService, public dialog: MatDialog) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-eventDateTime';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'userName', name: 'User Name' },\r\n { prop: 'logType', name: 'Type' },\r\n { prop: 'eventDateTime', name: 'Date', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'tableName', name: 'Table' },\r\n { prop: 'recordId', name: 'Record ID' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n console.log(ev);\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(UserName|RecordId|TableName)@=' + this.keyword + ',(AuditDataDateRange)==' + this.start.toDateString() + '|' + this.end.toDateString();\r\n\r\n this.subscription.add(this.auditService.getDataLogsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let authLogs = results.pagedData;\r\n\r\n authLogs.forEach((authLog, index, authLogs) => {\r\n (authLog).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...authLogs];\r\n this.rows = authLogs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve audit logs from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n console.log('onSearch');\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n viewAuditDetails(row) {\r\n const dialogRef = this.dialog.open(DataLogViewerComponent, {\r\n data: { header: \"Audit Log Details\", id: row.id },\r\n width: '600px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n //this.loadData();\r\n });\r\n }\r\n\r\n downloadResults() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_DataLogs.xlsx';\r\n\r\n this.auditService.downloadDataLogReport(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n get canManageAuditLogs() {\r\n return this.accountService.userHasPermission(Permission.viewDataLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9kZXZpY2UtcmVwb3J0L2RldmljZS1yZXBvcnRzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2F1ZGl0L2RldmljZS1yZXBvcnQvZGV2aWNlLXJlcG9ydHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Device Publication Report

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\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 By Location\\r\\n \\r\\n ALL LOCATIONS\\r\\n {{location.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 \\r\\n
\\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{dish.dishLabel}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchBoxComponent } from '../../controls/search-box.component';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\nimport { TokenOrder } from 'src/app/models/meal-order/token-order.model';\r\nimport { LocationService } from '../../../services/location.service';\r\n\r\n\r\n@Component({\r\n selector: 'order-logs-management',\r\n templateUrl: './device-reports-management.component.html',\r\n styleUrls: ['./device-reports-management.component.css']\r\n})\r\nexport class DeviceReportsManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: TokenOrder[] = [];\r\n rowsCache: TokenOrder[] = [];\r\n editingAuthLogName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n\r\n tstart;// = new Date();\r\n tend;// = new Date();\r\n\r\n location_id;\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('mealDescription')\r\n mealDescriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderLogTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private orderLogService: AuditService, private locationService: LocationService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n buildingList: Location[];\r\n private locations: Location[] = [];\r\n //getRoomsByBuildingId(id) {\r\n // let unsortedLocations = this.locations.filter(f => f.parentLocationId == id)\r\n // unsortedLocations.sort((a, b) => (a.name < b.name ? -1 : 1));\r\n\r\n // return unsortedLocations;\r\n //}\r\n\r\n getLocations() {\r\n //get locations\r\n\r\n this.subscription.add(this.locationService.getLocationsByUser(this.accountService.currentUser.id, false)\r\n .subscribe(results => {\r\n this.locations = results;\r\n console.log('getFilters');\r\n //var rooms = results.filter(f => f.locationTypeName == LocType.Room);//.filter(f => f.locationTypeName == LocType.Room);\r\n //this.rooms = rooms;\r\n //this.buildingList = [];\r\n //var bList = {};\r\n //rooms.forEach(function (loc, i, array) {\r\n // if (loc.parentLocation != null && loc.parentLocation.locationTypeName == LocType.Building) {\r\n // if (!bList.hasOwnProperty(loc.parentLocation.id)) {\r\n // bList[loc.parentLocation.id] = loc.parentLocation;\r\n // }\r\n // }\r\n //});\r\n\r\n //var keys = Object.keys(bList);\r\n //this.buildingList = keys.map(function (v) { return bList[v]; });\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.`,\r\n MessageSeverity.error);\r\n }));\r\n\r\n //this.getDeviceTypes();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-updatedDate';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'index', name: 'S/N', width: 50 },\r\n { prop: 'locationName', name: 'Location' },\r\n { prop: 'device_label', name: 'Label' },\r\n { prop: 'macAddress', name: 'Mac Address' },\r\n { prop: 'ipAddress', name: 'Ip Address' },\r\n\r\n { prop: 'volume', name: 'Volume' },\r\n { prop: 'rotation', name: 'Orientation' },\r\n\r\n { prop: 'publicationName', name: 'Publication Name' },\r\n \r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.clearFilters();\r\n\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n this.getLocations();\r\n }\r\n\r\n datediff(first, second) {\r\n return Math.round((second - first) / (1000 * 60 * 60 * 24));\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(locationName|device_label|macAddress|ipAddress|rotation|publicationName)@=' + this.keyword + `,(IsActive)==true,UpdatedDate>=${this.start.toDateString()},UpdatedDate<=${this.end.toDateString()},LocationId==${this.location_id || ''}`;\r\n \r\n this.orderLogService.getDevicePublicationReportsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n console.log(this.pagedResult);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let orderLogs = results.pagedData;\r\n\r\n orderLogs.forEach((orderLog, index, orderLogs) => {\r\n (orderLog).index = index + 1;\r\n\r\n (orderLog).tat = orderLog.createdDate && orderLog.approvedDate ? this.datediff(new Date(orderLog.createdDate), new Date(orderLog.approvedDate)) || '' : '';\r\n });\r\n\r\n\r\n this.rowsCache = [...orderLogs];\r\n this.rows = orderLogs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve order logs from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n }\r\n\r\n if (type == 'tstart') {\r\n this.tstart = new Date(event.value);\r\n }\r\n\r\n if (type == 'tend') {\r\n this.tend = new Date(event.value);\r\n }\r\n\r\n //this.loadData();\r\n\r\n this.loadData();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.end.setDate(this.end.getDate() + 1);\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n downloadResults() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_Orders.xlsx';\r\n this.filter.page = null;\r\n this.filter.pageSize = null;\r\n this.orderLogService.downloadDevicePublicationReportsReport(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n get canManageAuthLogs() {\r\n return true;// this.accountService.userHasPermission(Permission.viewAuthLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9kZXZpY2Utc3RhdHVzLXJlcG9ydCAtIENvcHkvZGV2aWNlLXN0YXR1cy1yZXBvcnRzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2F1ZGl0L2RldmljZS1zdGF0dXMtcmVwb3J0IC0gQ29weS9kZXZpY2Utc3RhdHVzLXJlcG9ydHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Device Status Report

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\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 By Location\\r\\n \\r\\n ALL LOCATIONS\\r\\n {{location.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 \\r\\n
\\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{dish.dishLabel}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchBoxComponent } from '../../controls/search-box.component';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\nimport { TokenOrder } from 'src/app/models/meal-order/token-order.model';\r\nimport { LocationService } from '../../../services/location.service';\r\n\r\n\r\n@Component({\r\n selector: 'order-logs-management',\r\n templateUrl: './device-status-reports-management.component.html',\r\n styleUrls: ['./device-status-reports-management.component.css']\r\n})\r\nexport class DeviceStatusReportsManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: TokenOrder[] = [];\r\n rowsCache: TokenOrder[] = [];\r\n editingAuthLogName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n\r\n tstart;// = new Date();\r\n tend;// = new Date();\r\n\r\n location_id;\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('mealDescription')\r\n mealDescriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderLogTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private orderLogService: AuditService, private locationService: LocationService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n buildingList: Location[];\r\n private locations: Location[] = [];\r\n //getRoomsByBuildingId(id) {\r\n // let unsortedLocations = this.locations.filter(f => f.parentLocationId == id)\r\n // unsortedLocations.sort((a, b) => (a.name < b.name ? -1 : 1));\r\n\r\n // return unsortedLocations;\r\n //}\r\n\r\n getLocations() {\r\n //get locations\r\n\r\n this.subscription.add(this.locationService.getLocationsByUser(this.accountService.currentUser.id, false)\r\n .subscribe(results => {\r\n this.locations = results;\r\n console.log('getFilters');\r\n //var rooms = results.filter(f => f.locationTypeName == LocType.Room);//.filter(f => f.locationTypeName == LocType.Room);\r\n //this.rooms = rooms;\r\n //this.buildingList = [];\r\n //var bList = {};\r\n //rooms.forEach(function (loc, i, array) {\r\n // if (loc.parentLocation != null && loc.parentLocation.locationTypeName == LocType.Building) {\r\n // if (!bList.hasOwnProperty(loc.parentLocation.id)) {\r\n // bList[loc.parentLocation.id] = loc.parentLocation;\r\n // }\r\n // }\r\n //});\r\n\r\n //var keys = Object.keys(bList);\r\n //this.buildingList = keys.map(function (v) { return bList[v]; });\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.`,\r\n MessageSeverity.error);\r\n }));\r\n\r\n //this.getDeviceTypes();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-updatedDate';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'index', name: 'S/N', width: 50 },\r\n { prop: 'locationName', name: 'Location' },\r\n { prop: 'device_label', name: 'Label' },\r\n { prop: 'macAddress', name: 'Mac Address' },\r\n { prop: 'ipAddress', name: 'Ip Address' },\r\n\r\n { prop: 'connection_status_display', name: 'Status' },\r\n \r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.clearFilters();\r\n\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n this.getLocations();\r\n }\r\n\r\n datediff(first, second) {\r\n return Math.round((second - first) / (1000 * 60 * 60 * 24));\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(locationName|device_label|macAddress|ipAddress|rotation|publicationName)@=' + this.keyword + `,(IsActive)==true,UpdatedDate>=${this.start.toDateString()},UpdatedDate<=${this.end.toDateString()},LocationId==${this.location_id || ''}`;\r\n \r\n this.orderLogService.getDevicePublicationReportsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n console.log(this.pagedResult);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let orderLogs = results.pagedData;\r\n\r\n orderLogs.forEach((orderLog, index, orderLogs) => {\r\n (orderLog).index = index + 1;\r\n\r\n (orderLog).tat = orderLog.createdDate && orderLog.approvedDate ? this.datediff(new Date(orderLog.createdDate), new Date(orderLog.approvedDate)) || '' : '';\r\n });\r\n\r\n\r\n this.rowsCache = [...orderLogs];\r\n this.rows = orderLogs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve order logs from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n }\r\n\r\n if (type == 'tstart') {\r\n this.tstart = new Date(event.value);\r\n }\r\n\r\n if (type == 'tend') {\r\n this.tend = new Date(event.value);\r\n }\r\n\r\n //this.loadData();\r\n\r\n this.loadData();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.end.setDate(this.end.getDate() + 1);\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n downloadResults() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_Orders.xlsx';\r\n this.filter.page = null;\r\n this.filter.pageSize = null;\r\n this.orderLogService.downloadDeviceStatusReportsReport(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n get canManageAuthLogs() {\r\n return true;// this.accountService.userHasPermission(Permission.viewAuthLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9leHRlcm5hbC1sb2dpbi1sb2cvZXh0ZXJuYWwtbG9naW4tbG9ncy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9leHRlcm5hbC1sb2dpbi1sb2cvZXh0ZXJuYWwtbG9naW4tbG9ncy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Order Portal Login

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{value}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchBoxComponent } from '../../controls/search-box.component';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\nimport { ExternalLoginLog } from 'src/app/models/auth-log.model';\r\n\r\n\r\n@Component({\r\n selector: 'external-login-logs-management',\r\n templateUrl: './external-login-logs-management.component.html',\r\n styleUrls: ['./external-login-logs-management.component.css']\r\n})\r\nexport class ExternalLoginLogsManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: ExternalLoginLog[] = [];\r\n rowsCache: ExternalLoginLog[] = [];\r\n editingAuthLogName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('authLogTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private authLogService: AuditService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-username';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'username', name: 'User Name', width: 300, canAutoResize: false },\r\n { prop: 'email', name: 'Email', width: 300, canAutoResize: false },\r\n { prop: 'message', name: 'Message'},\r\n { prop: 'eventDateTime', name: 'Date', pipe: new DateTimeOnlyPipe('en-SG'), canAutoResize: false, width: 200 },\r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(Email|UserName|Message)@=' + this.keyword + ',(AuditExternalLoginDateRange)==' + this.start.toDateString() + '|' + this.end.toDateString();\r\n \r\n this.authLogService.getExternalLoginLogsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n console.log(this.pagedResult);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let authLogs = results.pagedData;\r\n\r\n authLogs.forEach((authLog, index, authLogs) => {\r\n (authLog).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...authLogs];\r\n this.rows = authLogs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve logs from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n downloadResults() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_LoginLogs.xlsx';\r\n this.filter.page = null;\r\n this.filter.pageSize = null;\r\n this.authLogService.downloadExternalLoginLogsReport(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n get canManageAuthLogs() {\r\n return true;//this.accountService.userHasPermission(Permission.viewAuthLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9vcmRlci1sb2cvb3JkZXItbG9ncy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9vcmRlci1sb2cvb3JkZXItbG9ncy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Order Report

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{dish.dishLabel}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchBoxComponent } from '../../controls/search-box.component';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\nimport { TokenOrder } from 'src/app/models/meal-order/token-order.model';\r\n\r\n\r\n@Component({\r\n selector: 'order-logs-management',\r\n templateUrl: './order-logs-management.component.html',\r\n styleUrls: ['./order-logs-management.component.css']\r\n})\r\nexport class OrderLogsManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: TokenOrder[] = [];\r\n rowsCache: TokenOrder[] = [];\r\n editingAuthLogName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n\r\n tstart = new Date();\r\n tend = new Date();\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('mealDescription')\r\n mealDescriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderLogTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private orderLogService: AuditService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-deliveryDate';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'className', name: 'Class' },\r\n { prop: 'profileName', name: 'Profile' },\r\n { prop: 'deliveryDate', name: 'Delivery Date', pipe: new DateTimeOnlyPipe('en-SG')},\r\n { prop: 'transactionTime', name: 'Date', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'mealSessionName', name: 'Session' },\r\n { prop: 'mealDescription', name: 'Meal Description', cellTemplate: this.mealDescriptionTemplate, sortable: false, draggable: false },\r\n { prop: 'totalAmount', name: 'Total Amount' },\r\n { prop: 'status', name: 'Status' },\r\n //{ prop: 'remarks', name: 'Remarks' },\r\n { prop: 'paymentTypeName', name: 'Payment Type' },\r\n { prop: 'processedBy', name: 'Processed By' }\r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(status|profileName|mealSessionName|paymentTypeName|processedBy|className)@=' + this.keyword + ',(IsActive)==true,(AuditOrderLogDateRange)==' + this.start.toDateString() + '|' + this.end.toDateString();\r\n \r\n this.orderLogService.getOrderLogsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n console.log(this.pagedResult);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let orderLogs = results.pagedData;\r\n\r\n orderLogs.forEach((orderLog, index, orderLogs) => {\r\n (orderLog).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...orderLogs];\r\n this.rows = orderLogs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve order logs from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n }\r\n\r\n if (type == 'tstart') {\r\n this.tstart = new Date(event.value);\r\n }\r\n\r\n if (type == 'tend') {\r\n this.tend = new Date(event.value);\r\n }\r\n\r\n //this.loadData();\r\n\r\n this.loadData();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n downloadResults() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_Orders.xlsx';\r\n this.filter.page = null;\r\n this.filter.pageSize = null;\r\n this.orderLogService.downloadOrderLogsReport(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n get canManageAuthLogs() {\r\n return true;// this.accountService.userHasPermission(Permission.viewAuthLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9wdWJsaWNhdGlvbi1yZXBvcnQvcHVibGljYXRpb24tcmVwb3J0cy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC9wdWJsaWNhdGlvbi1yZXBvcnQvcHVibGljYXRpb24tcmVwb3J0cy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Publication Report

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{dish.dishLabel}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchBoxComponent } from '../../controls/search-box.component';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\nimport { TokenOrder } from 'src/app/models/meal-order/token-order.model';\r\n\r\n\r\n@Component({\r\n selector: 'order-logs-management',\r\n templateUrl: './publication-reports-management.component.html',\r\n styleUrls: ['./publication-reports-management.component.css']\r\n})\r\nexport class PublicationReportsManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: TokenOrder[] = [];\r\n rowsCache: TokenOrder[] = [];\r\n editingAuthLogName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n\r\n tstart;// = new Date();\r\n tend;// = new Date();\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('mealDescription')\r\n mealDescriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('orderLogTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private orderLogService: AuditService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-createdDate';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'index', name: 'S/N', width: 50 },\r\n { prop: 'requestorDepartment', name: 'Requestor Department' },\r\n { prop: 'name', name: 'Publication Name' },\r\n { prop: 'description', name: 'Description' },\r\n { prop: 'createdByName', name: 'Requestor' },\r\n { prop: 'createdDate', name: 'Requested Date', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'approvedByName', name: 'Approved By' },\r\n { prop: 'approvedDate', name: 'Approved Date', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'status', name: 'Status' },\r\n { prop: 'tat', name: 'TAT (days)' },\r\n \r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.clearFilters();\r\n\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n datediff(first, second) {\r\n return Math.round((second - first) / (1000 * 60 * 60 * 24));\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(requestorDepartment|name|description|createdByName)@=' + this.keyword + `,(IsActive)==true,CreatedDate>=${this.start.toDateString()},CreatedDate<=${this.end.toDateString()},approvedDate>=${this.tstart ? this.tstart.toDateString() : ''},approvedDate<=${this.tend ? this.tend.toDateString() : ''}`;\r\n \r\n this.orderLogService.getPublicationReportsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n console.log(this.pagedResult);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let orderLogs = results.pagedData;\r\n\r\n orderLogs.forEach((orderLog, index, orderLogs) => {\r\n (orderLog).index = index + 1;\r\n\r\n (orderLog).tat = orderLog.createdDate && orderLog.approvedDate ? this.datediff(new Date(orderLog.createdDate), new Date(orderLog.approvedDate)) || '' : '';\r\n });\r\n\r\n\r\n this.rowsCache = [...orderLogs];\r\n this.rows = orderLogs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve order logs from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n }\r\n\r\n if (type == 'tstart') {\r\n this.tstart = new Date(event.value);\r\n }\r\n\r\n if (type == 'tend') {\r\n this.tend = new Date(event.value);\r\n }\r\n\r\n //this.loadData();\r\n\r\n this.loadData();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.end.setDate(this.end.getDate() + 1);\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n downloadResults() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_Orders.xlsx';\r\n this.filter.page = null;\r\n this.filter.pageSize = null;\r\n this.orderLogService.downloadPublicationReportsReport(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n get canManageAuthLogs() {\r\n return true;// this.accountService.userHasPermission(Permission.viewAuthLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hdWRpdC91cGRvd250aW1lLWxvZy91cGRvd250aW1lLWxvZ3MtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXVkaXQvdXBkb3dudGltZS1sb2cvdXBkb3dudGltZS1sb2dzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

UpDownTime Logs

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{value}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { UpDownTimeLog } from 'src/app/models/updowntime-log.model';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchBoxComponent } from '../../controls/search-box.component';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n selector: 'updowntime-logs-management',\r\n templateUrl: './updowntime-logs-management.component.html',\r\n styleUrls: ['./updowntime-logs-management.component.css']\r\n})\r\nexport class UpDownTimeLogsManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: UpDownTimeLog[] = [];\r\n rowsCache: UpDownTimeLog[] = [];\r\n editingUpDownTimeLogName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('upDownTimeLogTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private upDownTimeLogService: AuditService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-createdDate';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'deviceIdentifier', name: 'Device Identifier', canAutoResize: false },\r\n { prop: 'status', name: 'Status'},\r\n { prop: 'createdDate', name: 'Date', pipe: new DateTimeOnlyPipe('en-SG'), canAutoResize: false},\r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(DeviceIdentifier)@=' + this.keyword + ',(UpDownTimeDateRange)==' + this.start.toDateString() + '|' + this.end.toDateString();\r\n \r\n this.upDownTimeLogService.getUpDownTimeLogsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n console.log(this.pagedResult);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let upDownTimeLogs = results.pagedData;\r\n\r\n upDownTimeLogs.forEach((upDownTimeLog, index, upDownTimeLogs) => {\r\n (upDownTimeLog).index = index + 1;\r\n (upDownTimeLog).status = upDownTimeLog.isUp ? \"UP\" : \"DOWN\";\r\n });\r\n\r\n\r\n this.rowsCache = [...upDownTimeLogs];\r\n this.rows = upDownTimeLogs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve upDownTime logs from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n downloadResults() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_UpDownTimeLogs.xlsx';\r\n\r\n this.upDownTimeLogService.downloadUpDownTimeLogReport(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n get canManageUpDownTimeLogs() {\r\n return this.accountService.userHasPermission(Permission.viewUpDownTimeLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYnVpbGRpbmcvYnVpbGRpbmctZWRpdG9yLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"

{{'pageHeader.Buildings' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{'buildings.editor.CodeRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'buildings.editor.LabelRequired' | translate}}\\r\\n \\r\\n\\r\\n

Floors

\\r\\n \\r\\n Select Floors\\r\\n \\r\\n \\r\\n {{f.label}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Add\\r\\n\\r\\n Sort\\r\\n\\r\\n
\\r\\n {{f.code}} - {{f.label}} - order Remove\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { Building } from 'src/app/models/building.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { BuildingService } from 'src/app/services/building.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { FloorService } from '../../services/floor.service';\r\nimport { Floor } from '../../models/floor.model';\r\n\r\n\r\n@Component({\r\n selector: 'building-editor',\r\n templateUrl: './building-editor.component.html',\r\n styleUrls: ['./building-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class BuildingEditorComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewBuilding = false;\r\n private originalBuilding: Building = new Building();\r\n private buildingEdit: Building = new Building();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false };\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n allFloors: Floor[];\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private buildingService: BuildingService,\r\n private floorService: FloorService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.building) != typeof (undefined)) {\r\n if (data.building.id) {\r\n this.editBuilding(data.building);\r\n } else {\r\n this.newBuilding();\r\n }\r\n }\r\n\r\n this.floorService.getFloorByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n \r\n this.allFloors = results[0];\r\n },\r\n error => {\r\n \r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.buildingEdit.id) {\r\n this.buildingService.newBuilding(this.buildingEdit).subscribe(building => this.saveSuccessHelper(building), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.buildingService.updateBuilding(this.buildingEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(building?: Building) {\r\n if (building)\r\n Object.assign(this.buildingEdit, building);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewBuilding) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.buildingEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.buildingEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n add(selected: Floor) {\r\n if (!selected) return;\r\n if (!this.buildingEdit.floors) this.buildingEdit.floors = [];\r\n\r\n let a = this.buildingEdit.floors.filter(obj => obj.floorId === selected.id);\r\n\r\n if (a.length > 0) return;\r\n\r\n let f = new Floor();\r\n Object.assign(f, selected);\r\n f.order = 1;\r\n f.isActive = 1;\r\n\r\n if (this.buildingEdit.floors[0]) {\r\n let lastc = this.buildingEdit.floors[this.buildingEdit.floors.length - 1];\r\n f.order = lastc.order + 1;\r\n }\r\n\r\n f.floorId = f.id;\r\n f.id = \"0\";\r\n this.buildingEdit.floors.push(f);\r\n }\r\n\r\n sort() {\r\n if (!this.buildingEdit.floors) return;\r\n\r\n this.buildingEdit.floors = this.buildingEdit.floors.sort((a, b) => a.order - b.order);\r\n }\r\n\r\n\r\n private cancel() {\r\n this.buildingEdit = new Building();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newBuilding() {\r\n this.showValidationErrors = true;\r\n this.isNewBuilding = true;\r\n this.buildingEdit = new Building();\r\n return this.buildingEdit;\r\n }\r\n\r\n editBuilding(building: Building) {\r\n if (building) {\r\n this.isNewBuilding = false;\r\n this.showValidationErrors = true;\r\n this.originalBuilding = building;\r\n this.buildingEdit = new Building();\r\n Object.assign(this.buildingEdit, building);\r\n\r\n this.sort();\r\n\r\n return this.buildingEdit;\r\n }\r\n else {\r\n return this.newBuilding();\r\n }\r\n }\r\n\r\n get canManageBuildings() {\r\n return true;//this.accountService.userHasPermission(Permission.manageBuildingPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9idWlsZGluZy9idWlsZGluZ3MtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYnVpbGRpbmcvYnVpbGRpbmdzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Buildings

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'buildings.management.Edit' | translate}}\\r\\n {{'buildings.management.Details' | translate}}\\r\\n \\r\\n {{'buildings.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { BuildingService } from 'src/app/services/building.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Building } from 'src/app/models/building.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { BuildingEditorComponent } from './building-editor.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'buildings-management',\r\n templateUrl: './buildings-management.component.html',\r\n styleUrls: ['./buildings-management.component.css']\r\n})\r\nexport class BuildingsManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: Building[] = [];\r\n rowsCache: Building[] = [];\r\n allPermissions: Permission[] = [];\r\n editedBuilding: Building;\r\n sourceBuilding: Building;\r\n editingBuildingName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('buildingEditor')\r\n buildingEditor: BuildingEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private buildingService: BuildingService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(building: Building): void {\r\n const dialogRef = this.dialog.open(BuildingEditorComponent, {\r\n data: { header: this.header, building: building },\r\n width: '600px',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'code', name: gT('buildings.management.Code') },\r\n { prop: 'label', name: gT('buildings.management.Label') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.buildingEditor.changesSavedCallback = () => {\r\n this.addNewBuildingToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.buildingEditor.changesCancelledCallback = () => {\r\n this.editedBuilding = null;\r\n this.sourceBuilding = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewBuildingToList() {\r\n if (this.sourceBuilding) {\r\n Object.assign(this.sourceBuilding, this.editedBuilding);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceBuilding, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceBuilding, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedBuilding = null;\r\n this.sourceBuilding = null;\r\n }\r\n else {\r\n let building = new Building();\r\n Object.assign(building, this.editedBuilding);\r\n this.editedBuilding = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (building).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, building);\r\n this.rows.splice(0, 0, building);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.buildingService.getBuildingByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let buildings = results[0];\r\n let permissions = results[1];\r\n\r\n buildings.forEach((building, index, buildings) => {\r\n (building).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...buildings];\r\n this.rows = buildings;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingBuildingName = null;\r\n this.buildingEditor.resetForm(true);\r\n }\r\n\r\n\r\n newBuilding() {\r\n this.editingBuildingName = null;\r\n this.sourceBuilding = null;\r\n this.editedBuilding = this.buildingEditor.newBuilding();\r\n this.header = 'New';\r\n this.openDialog(this.editedBuilding);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editBuilding(row: Building) {\r\n this.editingBuildingName = { key: row.code };\r\n this.sourceBuilding = row;\r\n this.editedBuilding = this.buildingEditor.editBuilding(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedBuilding);\r\n }\r\n\r\n deleteBuilding(row: Building) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\"?', DialogType.confirm, () => this.deleteBuildingHelper(row));\r\n }\r\n\r\n\r\n deleteBuildingHelper(row: Building) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.buildingService.deleteBuilding(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageBuildings() {\r\n return true;//this.accountService.userHasPermission(Permission.manageBuildingPermission);\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n/*input.form-control {\\r\\n border-left-width: 5px;\\r\\n}*/\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.mat-form-field{\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: 11px !important;\\r\\n font-weight: 400 !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n::ng-deep .selected-time-chip {\\r\\n padding: 5px !important;\\r\\n padding: 5px !important;\\r\\n border-radius: 1px !important;\\r\\n min-height: 20px !important;\\r\\n font-size: 11px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYWxlbmRhci9ib29raW5nLWdyaWQvYm9va2luZy1ncmlkLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUdBOztFQUVFOztBQUVGO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSwwQkFBMEI7RUFDMUIsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qiw2QkFBNkI7RUFDN0IsMkJBQTJCO0VBQzNCLDBCQUEwQjtBQUM1QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2FsZW5kYXIvYm9va2luZy1ncmlkL2Jvb2tpbmctZ3JpZC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcblxyXG4vKmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59Ki9cclxuXHJcbi5mYWNpbGl0eUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tYXQtZm9ybS1maWVsZHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5zZWxlY3RlZC10aW1lLWNoaXAge1xyXG4gIHBhZGRpbmc6IDVweCAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDVweCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweCAhaW1wb3J0YW50O1xyXG4gIG1pbi1oZWlnaHQ6IDIwcHggIWltcG9ydGFudDtcclxuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'reservations.editor.ReservationDescriptionRequired' | 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 {{timeInterval.description}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{facility.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\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n None \\r\\n Daily \\r\\n Weekly \\r\\n Monthly \\r\\n Yearly \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{'reservations.editor.ReservationLongDescriptionRequired' | 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 {{option.fullName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Invitees
\\r\\n \\r\\n \\r\\n \\r\\n {{invitee.fullName}} - {{invitee.email}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input, ChangeDetectorRef, ViewEncapsulation, Inject, OnInit } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatChipInputEvent } from '@angular/material';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { ReservationService } from '../../../services/reservation.service';\r\nimport { Reservation, ReservationInvitee } from '../../../models/reservation.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { Location } from '../../../models/location.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { ReservationEditorComponent } from '../../reservations/reservation-editor.component';\r\nimport { ReservationTime, TimeIntervalFilter } from 'src/app/models/reservationtime.model';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { User } from 'src/app/models/user.model';\r\n\r\n\r\n@Component({\r\n selector: 'booking-grid-editor',\r\n templateUrl: './booking-grid-editor.component.html',\r\n styleUrls: ['./booking-grid-editor.component.css']\r\n})\r\nexport class BookingGridEditorComponent implements OnInit {\r\n\r\n private isEditMode = false;\r\n private isNewReservation = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingReservationName: string;\r\n private facilityNames: string;\r\n private reservationEdit: Reservation = new Reservation();\r\n private locationList: Location[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n fcStartTimes = new FormControl();\r\n fcEndTimes = new FormControl();\r\n fcReservationInvitees = new FormControl();\r\n private allStartTimes: ReservationTime[] = [];\r\n private allEndTimes: ReservationTime[] = [];\r\n private allTimes: ReservationTime[] = [];\r\n startDate: string;\r\n selectStartTimeId: number;\r\n selectEndTimeId: number;\r\n locationCapacity: number;\r\n disabledTime = false;\r\n fcLocations = new FormControl('', [Validators.required]);\r\n filteredReservationInvitees: Observable;\r\n users: User[] = [];\r\n inviteeList: User[] = [];\r\n inputInvitee: User;\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private alertService: AlertService, private accountService: AccountService, private reservationService: ReservationService, private locationService: LocationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n\r\n if (typeof (data.reservation) != typeof (undefined)) {\r\n //if (data.reservation.id) {\r\n // this.editReservation(data.reservation, data.location);\r\n //} else {\r\n // this.newReservation(data.location);\r\n //}\r\n this.editReservation(data.reservation, data.location, data.timeIntervals);\r\n this.loadLocations();\r\n this.allStartTimes = data.allTimeIntervals;\r\n this.allTimes = data.allTimeIntervals;\r\n this.fcStartTimes.valueChanges.subscribe(x => {\r\n this.changeEndTime(x);\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.accountService.getUsers(null, null, this.accountService.currentUser.institutionId).subscribe(results => {\r\n this.users = results;\r\n\r\n this.filteredReservationInvitees = this.fcReservationInvitees.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value.fullName),\r\n map(fullName => fullName ? this._filter(fullName) : this.users.slice())\r\n );\r\n });\r\n }\r\n\r\n displayFn(user?: User): string | undefined {\r\n return user ? user.fullName : undefined;\r\n }\r\n\r\n selectInvitee($ev) {\r\n this.inviteeList.push($ev.option.value);\r\n this.inputInvitee = new User();\r\n this.users = this.users.filter(item => item.id !== $ev.option.value.id);\r\n }\r\n\r\n removeInvitee(invitee) {\r\n this.inviteeList = this.inviteeList.filter(item => item.id !== invitee.id);\r\n this.users.push(invitee);\r\n }\r\n\r\n private _filter(fullName: string): User[] {\r\n const filterValue = fullName.toLowerCase();\r\n\r\n return this.users.filter(option => option.fullName.toLowerCase().indexOf(filterValue) === 0);\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.reservationEdit.invitees = [];\r\n var isAttendeeExist = false\r\n this.inviteeList.forEach((invitee, index, invitees) => {\r\n var resInvitee = new ReservationInvitee();\r\n resInvitee.userId = invitee.id;\r\n this.reservationEdit.invitees.push(resInvitee);\r\n if (!isAttendeeExist) {\r\n isAttendeeExist = this.accountService.currentUser.id == invitee.id;\r\n }\r\n });\r\n\r\n if (this.reservationEdit.isAttendee && isAttendeeExist) {\r\n var resInvitee = new ReservationInvitee();\r\n resInvitee.userId = this.accountService.currentUser.id;\r\n this.reservationEdit.invitees.push(resInvitee);\r\n }\r\n //this.reservationEdit.startTime = this.getReservationTimeBy(this.selectStartTimeId);\r\n //this.reservationEdit.endTime = this.getReservationTimeBy(this.selectEndTimeId);\r\n var startDateTime = new Date(this.reservationEdit.startDate);\r\n\r\n //startDateTime.setHours(this.reservationEdit.startTime.hour);\r\n //startDateTime.setMinutes(this.reservationEdit.startTime.minute);\r\n this.reservationEdit.startDateTime = startDateTime;\r\n\r\n //var endDateTime = new Date(this.reservationEdit.endDate);\r\n\r\n //endDateTime.setHours(this.reservationEdit.endTime.hour);\r\n //endDateTime.setMinutes(this.reservationEdit.endTime.minute);\r\n //this.reservationEdit.endDateTime = endDateTime;\r\n //this.reservationEdit.repeatEndDateTime = new Date(this.reservationEdit.repeatEndDate);\r\n this.reservationService.newReservation(this.reservationEdit).subscribe(reservation => this.saveSuccessHelper(reservation), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n private saveSuccessHelper(reservation?: Reservation) {\r\n if (reservation)\r\n Object.assign(this.reservationEdit, reservation);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n this.alertService.showMessage(\"Success\", `Reservation \\\"${this.reservationEdit.shortDescription}\\\" was created successfully`, MessageSeverity.success);\r\n\r\n this.reservationEdit = new Reservation();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewReservation && this.accountService.currentUser.reservations.some(r => r == this.editingReservationName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.reservationEdit = new Reservation();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newReservation(location: Location) {\r\n this.isEditMode = true;\r\n this.isNewReservation = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingReservationName = null;\r\n this.selectedValues = {};\r\n this.reservationEdit = new Reservation();\r\n this.reservationEdit.isAttendee = true;\r\n this.reservationEdit.locationName = location.name;\r\n this.reservationEdit.locationId = location.id;\r\n this.reservationEdit.facilities = location.facilities;\r\n return this.reservationEdit;\r\n }\r\n\r\n editReservation(reservation: Reservation, location: Location, timeIntervals: ReservationTime[]) {\r\n this.isEditMode = true;\r\n if (reservation) {\r\n this.isNewReservation = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingReservationName = reservation.shortDescription;\r\n this.selectedValues = {};\r\n this.reservationEdit = new Reservation();\r\n Object.assign(this.reservationEdit, reservation);\r\n\r\n this.reservationEdit.repeatType = \"None\";\r\n this.startDate = (new DateOnlyPipe('en-SG')).transform(this.reservationEdit.startDate);\r\n this.reservationEdit.locationName = location.name;\r\n this.reservationEdit.locationId = location.id;\r\n this.reservationEdit.facilities = location.facilities;\r\n this.reservationEdit.timeIntervals = timeIntervals;\r\n\r\n this.locationCapacity = location.capacity;\r\n //this.selectStartTimeId = this.reservationEdit.startTime.id;\r\n //this.selectEndTimeId = this.reservationEdit.endTime.id;\r\n return this.reservationEdit;\r\n }\r\n else {\r\n return this.newReservation(location);\r\n }\r\n }\r\n\r\n loadLocations() {\r\n //this.locationService.getLocationsAndLocationTypes()\r\n // .subscribe(results => {\r\n // let locations = results[0];\r\n // this.locationsList = locations;\r\n // },\r\n // error => {\r\n // this.alertService.resetStickyMessage();\r\n // this.alertService.showStickyMessage(\"getLocationsByLocationId failed\", \"An error occured while trying to get locations from the server\", MessageSeverity.error);\r\n // });\r\n }\r\n\r\n\r\n changeLocations(id) {\r\n //this.locationService.getLocationsByLocationId(id)\r\n // .subscribe(results => {\r\n // let locations = results[0];\r\n // this.locationsList = locations;\r\n // },\r\n // error => {\r\n // this.alertService.resetStickyMessage();\r\n // this.alertService.showStickyMessage(\"getLocationsByLocationId failed\", \"An error occured while trying to get locations from the server\", MessageSeverity.error);\r\n // });\r\n }\r\n\r\n setReservationTypeId(id) {\r\n //this.reservationEdit.reservationTypeId = id;\r\n }\r\n\r\n\r\n public changeEndTime(id) {\r\n if (id != null && id != null && id.toString() != \"\") {\r\n var allTimes = this.allTimes;\r\n var resStartTime = this.getReservationTimeBy(id);\r\n var $this = this;\r\n this.allEndTimes = allTimes.filter(function (p, index, array) {\r\n if (new Date(new Date(p.value).setSeconds(0)) > new Date(new Date(resStartTime.value))) {\r\n p.description = p.description;\r\n return p;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getHourDifferenceDescription(endTime: ReservationTime): string {\r\n var diff = new Date(new Date(endTime.value).setSeconds(0)).valueOf() - new Date(new Date(this.getReservationTimeBy(this.selectStartTimeId).value).setSeconds(0)).valueOf();\r\n var diffHours = diff / (1000.0 * 3600.0);\r\n\r\n return diffHours.toFixed(1).toString();\r\n }\r\n\r\n private getReservationTimeBy(id?: any, hour?: number, minute?: number): ReservationTime {\r\n var allTimes = this.allTimes;\r\n var time: ReservationTime;\r\n if (id != null) {\r\n time = allTimes.filter(f => f.id == id)[0];\r\n } else {\r\n var t = allTimes.filter(f => f.hour == hour && f.minutes == minute);\r\n time = t != null && t.length > 0 ? t[0] : allTimes[0];\r\n }\r\n return time;\r\n }\r\n\r\n get canManageReservations() {\r\n return this.accountService.userHasPermission(Permission.manageReservationsPermission)\r\n }\r\n}\r\n","module.exports = \"table {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/*.ellipsis:hover {\\r\\n overflow: visible;\\r\\n white-space: normal;\\r\\n max-width: 100%;\\r\\n}*/\\r\\n\\r\\n::ng-deep .ellipsis {\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n max-width: 58px;\\r\\n}\\r\\n\\r\\n::ng-deep .ellipsis-short {\\r\\n max-width: 58px;\\r\\n}\\r\\n\\r\\n::ng-deep .ellipsis-long {\\r\\n max-width: 80%;\\r\\n}\\r\\n\\r\\n/*::ng-deep .booking-result-table th, td {\\r\\n min-width: 70px !important;\\r\\n font-weight: 100;\\r\\n font-size: 12px;\\r\\n border: 1px solid;\\r\\n text-align:center;\\r\\n}*/\\r\\n\\r\\ntr.example-detail-row {\\r\\n height: 0;\\r\\n}\\r\\n\\r\\ntr.example-element-row:not(.example-expanded-row):hover {\\r\\n background: #f5f5f5;\\r\\n}\\r\\n\\r\\ntr.example-element-row:not(.example-expanded-row):active {\\r\\n background: #efefef;\\r\\n}\\r\\n\\r\\n.example-element-row td {\\r\\n border-bottom-width: 0;\\r\\n}\\r\\n\\r\\n.example-element-detail {\\r\\n overflow: hidden;\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n.example-element-diagram {\\r\\n min-width: 80px;\\r\\n border: 2px solid black;\\r\\n padding: 8px;\\r\\n font-weight: lighter;\\r\\n margin: 8px 0;\\r\\n height: 104px;\\r\\n}\\r\\n\\r\\n.example-element-symbol {\\r\\n font-weight: bold;\\r\\n font-size: 40px;\\r\\n line-height: normal;\\r\\n}\\r\\n\\r\\n.example-element-description {\\r\\n padding: 16px;\\r\\n}\\r\\n\\r\\n.example-element-description-attribution {\\r\\n opacity: 0.5;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-chip-list-wrapper .mat-standard-chip, .mat-chip-list-wrapper input.mat-input-element {\\r\\n margin: 2px !important;\\r\\n}\\r\\n\\r\\n.mat-standard-chip {\\r\\n transition: box-shadow 280ms cubic-bezier(.4,0,.2,1);\\r\\n display: inline-flex;\\r\\n padding: 5px 5px;\\r\\n border-radius: 0;\\r\\n align-items: center;\\r\\n cursor: default;\\r\\n min-height: 20px;\\r\\n height: 1px;\\r\\n}\\r\\n\\r\\n.mat-chip {\\r\\n font-size: 12px;\\r\\n font-weight: 500;\\r\\n}\\r\\n\\r\\n::ng-deep .time-class {\\r\\n padding: 0 5px !important;\\r\\n font-size: 11px !important;\\r\\n border-radius: 1px !important;\\r\\n line-height: 20px !important;\\r\\n min-width: 20px !important;\\r\\n margin: 1px !important;\\r\\n}\\r\\n\\r\\n::ng-deep .btn-time-selected {\\r\\n background-color: #e6e6e6 !important;\\r\\n}\\r\\n\\r\\n.table-container{\\r\\n overflow:auto;\\r\\n}\\r\\n\\r\\n::ng-deep .col-booked {\\r\\n background-color: #b10202 !important;\\r\\n color: #fff !important;\\r\\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important;\\r\\n text-shadow: none !important;\\r\\n}\\r\\n\\r\\n::ng-deep .col-new-booked {\\r\\n background-color: lightgreen !important;\\r\\n}\\r\\n\\r\\n.zui-table {\\r\\n border: none;\\r\\n border-right: solid 1px #DDEFEF;\\r\\n border-collapse: separate;\\r\\n border-spacing: 0;\\r\\n font: normal 13px Arial, sans-serif;\\r\\n}\\r\\n\\r\\n.zui-table thead th {\\r\\n background-color: #DDEFEF;\\r\\n border-right: 1px solid #a7cece;\\r\\n color: #336B6B;\\r\\n padding: 10px;\\r\\n text-align: center;\\r\\n text-shadow: 1px 1px 1px #fff;\\r\\n white-space: nowrap;\\r\\n min-width: 150px;\\r\\n }\\r\\n\\r\\n.zui-table tbody td {\\r\\n border-bottom: solid 1px #DDEFEF;\\r\\n border-right: solid 1px #DDEFEF;\\r\\n color: #333;\\r\\n padding: 15px;\\r\\n text-shadow: 1px 1px 1px #fff;\\r\\n white-space: nowrap;\\r\\n }\\r\\n\\r\\ntr.row-values {\\r\\n\\r\\n}\\r\\n\\r\\n.zui-wrapper {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.zui-scroller {\\r\\n margin-left: 200px;\\r\\n overflow-x: scroll;\\r\\n overflow-y: visible;\\r\\n padding-bottom: 5px;\\r\\n /*width: 300px;*/\\r\\n}\\r\\n\\r\\n.zui-table .zui-sticky-col {\\r\\n border-left: solid 1px #DDEFEF;\\r\\n border-right: solid 1px #DDEFEF;\\r\\n left: 0;\\r\\n position: absolute;\\r\\n top: auto;\\r\\n width: 200px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\nth.zui-sticky-col{\\r\\n height:auto !important;\\r\\n}\\r\\n\\r\\n::ng-deep .building {\\r\\n text-align: left !important;\\r\\n background-color: #f7f7ff !important;\\r\\n height: 20px;\\r\\n}\\r\\n\\r\\n::ng-deep .building .building-name {\\r\\n font-weight: bold !important;\\r\\n }\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYWxlbmRhci9ib29raW5nLWdyaWQvYm9va2luZy1ncmlkLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7Ozs7RUFJRTs7QUFFRjtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsdUJBQXVCO0VBQ3ZCLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTs7Ozs7O0VBTUU7O0FBRUY7RUFDRSxTQUFTO0FBQ1g7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsYUFBYTtBQUNmOztBQUVBO0VBQ0UsZUFBZTtFQUNmLHVCQUF1QjtFQUN2QixZQUFZO0VBQ1osb0JBQW9CO0VBQ3BCLGFBQWE7RUFDYixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsZUFBZTtFQUNmLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLG9EQUFvRDtFQUNwRCxvQkFBb0I7RUFDcEIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLDBCQUEwQjtFQUMxQiw2QkFBNkI7RUFDN0IsNEJBQTRCO0VBQzVCLDBCQUEwQjtFQUMxQixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxvQ0FBb0M7QUFDdEM7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxvQ0FBb0M7RUFDcEMsc0JBQXNCO0VBQ3RCLHVFQUF1RTtFQUN2RSw0QkFBNEI7QUFDOUI7O0FBRUE7RUFDRSx1Q0FBdUM7QUFDekM7O0FBRUE7RUFDRSxZQUFZO0VBQ1osK0JBQStCO0VBQy9CLHlCQUF5QjtFQUN6QixpQkFBaUI7RUFDakIsbUNBQW1DO0FBQ3JDOztBQUVFO0lBQ0UseUJBQXlCO0lBQ3pCLCtCQUErQjtJQUMvQixjQUFjO0lBQ2QsYUFBYTtJQUNiLGtCQUFrQjtJQUNsQiw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLGdCQUFnQjtFQUNsQjs7QUFFQTtJQUNFLGdDQUFnQztJQUNoQywrQkFBK0I7SUFDL0IsV0FBVztJQUNYLGFBQWE7SUFDYiw2QkFBNkI7SUFDN0IsbUJBQW1CO0VBQ3JCOztBQUVGOztBQUVBOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLDhCQUE4QjtFQUM5QiwrQkFBK0I7RUFDL0IsT0FBTztFQUNQLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQixvQ0FBb0M7RUFDcEMsWUFBWTtBQUNkOztBQUVFO0lBQ0UsNEJBQTRCO0VBQzlCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jYWxlbmRhci9ib29raW5nLWdyaWQvYm9va2luZy1ncmlkLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJ0YWJsZSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi8qLmVsbGlwc2lzOmhvdmVyIHtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxufSovXHJcblxyXG46Om5nLWRlZXAgLmVsbGlwc2lzIHtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgbWF4LXdpZHRoOiA1OHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLmVsbGlwc2lzLXNob3J0IHtcclxuICBtYXgtd2lkdGg6IDU4cHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAuZWxsaXBzaXMtbG9uZyB7XHJcbiAgbWF4LXdpZHRoOiA4MCU7XHJcbn1cclxuXHJcbi8qOjpuZy1kZWVwIC5ib29raW5nLXJlc3VsdC10YWJsZSB0aCwgdGQge1xyXG4gIG1pbi13aWR0aDogNzBweCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtd2VpZ2h0OiAxMDA7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkO1xyXG4gIHRleHQtYWxpZ246Y2VudGVyO1xyXG59Ki9cclxuXHJcbnRyLmV4YW1wbGUtZGV0YWlsLXJvdyB7XHJcbiAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xyXG59XHJcblxyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZDogI2VmZWZlZjtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1yb3cgdGQge1xyXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGV0YWlsIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGlhZ3JhbSB7XHJcbiAgbWluLXdpZHRoOiA4MHB4O1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICBmb250LXdlaWdodDogbGlnaHRlcjtcclxuICBtYXJnaW46IDhweCAwO1xyXG4gIGhlaWdodDogMTA0cHg7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtc3ltYm9sIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IDQwcHg7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXNjcmlwdGlvbiB7XHJcbiAgcGFkZGluZzogMTZweDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXNjcmlwdGlvbi1hdHRyaWJ1dGlvbiB7XHJcbiAgb3BhY2l0eTogMC41O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1jaGlwLWxpc3Qtd3JhcHBlciAubWF0LXN0YW5kYXJkLWNoaXAsIC5tYXQtY2hpcC1saXN0LXdyYXBwZXIgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xyXG4gIG1hcmdpbjogMnB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXQtc3RhbmRhcmQtY2hpcCB7XHJcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBwYWRkaW5nOiA1cHggNXB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgbWluLWhlaWdodDogMjBweDtcclxuICBoZWlnaHQ6IDFweDtcclxufVxyXG5cclxuLm1hdC1jaGlwIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC50aW1lLWNsYXNzIHtcclxuICBwYWRkaW5nOiAwIDVweCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweCAhaW1wb3J0YW50O1xyXG4gIGxpbmUtaGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgbWluLXdpZHRoOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luOiAxcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5idG4tdGltZS1zZWxlY3RlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udGFibGUtY29udGFpbmVye1xyXG4gIG92ZXJmbG93OmF1dG87XHJcbn1cclxuXHJcbjo6bmctZGVlcCAuY29sLWJvb2tlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IxMDIwMiAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgZm9udC1mYW1pbHk6ICdTZWdvZSBVSScsIFRhaG9tYSwgR2VuZXZhLCBWZXJkYW5hLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5jb2wtbmV3LWJvb2tlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uenVpLXRhYmxlIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggI0RERUZFRjtcclxuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xyXG4gIGJvcmRlci1zcGFjaW5nOiAwO1xyXG4gIGZvbnQ6IG5vcm1hbCAxM3B4IEFyaWFsLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4gIC56dWktdGFibGUgdGhlYWQgdGgge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0RERUZFRjtcclxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNhN2NlY2U7XHJcbiAgICBjb2xvcjogIzMzNkI2QjtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggI2ZmZjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xyXG4gIH1cclxuXHJcbiAgLnp1aS10YWJsZSB0Ym9keSB0ZCB7XHJcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI0RERUZFRjtcclxuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICNEREVGRUY7XHJcbiAgICBjb2xvcjogIzMzMztcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggI2ZmZjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgfVxyXG5cclxudHIucm93LXZhbHVlcyB7XHJcblxyXG59XHJcblxyXG4uenVpLXdyYXBwZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLnp1aS1zY3JvbGxlciB7XHJcbiAgbWFyZ2luLWxlZnQ6IDIwMHB4O1xyXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICBvdmVyZmxvdy15OiB2aXNpYmxlO1xyXG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgLyp3aWR0aDogMzAwcHg7Ki9cclxufVxyXG5cclxuLnp1aS10YWJsZSAuenVpLXN0aWNreS1jb2wge1xyXG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggI0RERUZFRjtcclxuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCAjRERFRkVGO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogYXV0bztcclxuICB3aWR0aDogMjAwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG50aC56dWktc3RpY2t5LWNvbHtcclxuICBoZWlnaHQ6YXV0byAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLmJ1aWxkaW5nIHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmZiAhaW1wb3J0YW50O1xyXG4gIGhlaWdodDogMjBweDtcclxufVxyXG5cclxuICA6Om5nLWRlZXAgLmJ1aWxkaW5nIC5idWlsZGluZy1uYW1lIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Location
\\r\\n \\r\\n \\r\\n {{location.name}} - {{location.description}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Facility
\\r\\n \\r\\n {{facility.name}} - {{facility.description}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Min. Capacity
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Start
\\r\\n \\r\\n {{start.description}}\\r\\n \\r\\n
\\r\\n
\\r\\n
End
\\r\\n \\r\\n {{end.description}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Available Booking Slots

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
Location{{ti.description}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{b.name}}\\r\\n
\\r\\n
{{row.location.name}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
1\\\" [class.ellipsis-short]=\\\"getColspan(row, col, i) == 1\\\"\\r\\n matTooltip=\\\"{{getTooltip(col.reservation)}}\\\"\\r\\n [matTooltipPosition]=\\\"'right'\\\">\\r\\n\\r\\n {{col.reservation != null ? col.reservation.shortDescription : ''}}\\r\\n by {{col.reservation != null ? col.reservation.bookedBy : ''}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\"","import { Component, ChangeDetectionStrategy, OnInit, ChangeDetectorRef, ViewEncapsulation, ViewChild, TemplateRef, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { CalendarEvent, CalendarEventTitleFormatter, CalendarView, CalendarEventTimesChangedEvent } from 'angular-calendar';\r\nimport {\r\n isSameMonth,\r\n isSameDay,\r\n startOfMonth,\r\n endOfMonth,\r\n startOfWeek,\r\n endOfWeek,\r\n startOfDay,\r\n endOfDay,\r\n format,\r\n addHours, addDays, addMinutes\r\n} from 'date-fns';\r\nimport { finalize, takeUntil, timeInterval } from 'rxjs/operators';\r\nimport { DayViewHourSegment } from 'calendar-utils';\r\nimport MapUtils from 'src/app/helpers/maputils';\r\nimport { UserInfoVal, Facility } from 'src/app/models/facility.model';\r\nimport { Location } from 'src/app/models/location.model';\r\nimport { Reservation, CalendarFilter } from 'src/app/models/reservation.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { MessageSeverity, AlertService } from 'src/app/services/alert.service';\r\nimport { ReservationService } from '../../../services/reservation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { MatButtonModule, MatCalendar, MatDatepicker, MatSelect, MatDialog } from '@angular/material';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { fadeInOut } from 'src/app/services/animations';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { ReservationTime, TimeIntervalFilter } from 'src/app/models/reservationtime.model';\r\nimport { BookingGridEditorComponent } from './booking-grid-editor.component';\r\n\r\nimport { MatPaginator, MatSort } from '@angular/material';\r\nimport { merge, Observable, of as observableOf, fromEvent } from 'rxjs';\r\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { BookingGridRow, LocationTimeInterval } from 'src/app/models/bookinggridrow.model';\r\nimport { GroupByPipe } from 'src/app/pipes/group-by.pipe';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { LocType } from 'src/app/models/enums';\r\n\r\n@Component({\r\n selector: 'booking-grid',\r\n templateUrl: './booking-grid.component.html',\r\n styleUrls: ['./booking-grid.component.css'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0', display: 'none' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n trigger('slideInOut', [\r\n transition(':enter', [\r\n style({ transform: 'translateX(-100%)' }),\r\n animate('200ms ease-in', style({ transform: 'translateX(0%)' }))\r\n ]),\r\n transition(':leave', [\r\n animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class BookingGridComponent\r\n implements OnInit, AfterViewInit {\r\n startDate = new Date();\r\n endDate = new Date();\r\n viewDate = new Date();\r\n reservations: Reservation[];\r\n facilityList: Facility[];\r\n locationList: Location[];\r\n buildingList: Location[];\r\n roomList: Location[];\r\n locationColList: Location[];\r\n changeDetector: ChangeDetectorRef;\r\n events$: Observable>>;\r\n dragToCreateActive = false;\r\n activeDayIsOpen: boolean = false;\r\n fcLocations = new FormControl();\r\n fcFacilities = new FormControl();\r\n fcStartTimes = new FormControl();\r\n fcEndTimes = new FormControl();\r\n filter: CalendarFilter = new CalendarFilter();\r\n columns: any[] = [];\r\n rows: Location[] = [];\r\n rowsCache: Location[] = [];\r\n private allTimes: ReservationTime[] = [];\r\n private allAvailableTimeIntervals: ReservationTime[] = [];\r\n private allStartTimes: ReservationTime[] = [];\r\n private allEndTimes: ReservationTime[] = [];\r\n selectStartTimeId: number;\r\n selectEndTimeId: number;\r\n header: string;\r\n\r\n displayedColumns: string[];\r\n\r\n bookingGridRows: BookingGridRow[] = [];\r\n sideBarOpened: boolean = true;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n constructor(private translationService: AppTranslationService, private http: HttpClient, private cdr: ChangeDetectorRef, private alertService: AlertService, private accountService: AccountService,\r\n private reservationService: ReservationService, private locationService: LocationService, protected configurations: ConfigurationService, public dialog: MatDialog,\r\n private authService: AuthService ) {\r\n }\r\n\r\n @ViewChild('calendar')\r\n _datePicker: MatCalendar\r\n\r\n\r\n @ViewChild(MatSelect)\r\n selectStart: MatSelect\r\n\r\n ngAfterViewInit() {\r\n\r\n if (this._datePicker) {\r\n this._datePicker.selectedChange.subscribe(x => {\r\n if (typeof x != typeof (undefined)) {\r\n this.viewDate = x;\r\n this.filter.viewDate = this.viewDate;\r\n this.filter.start = this.filter.end = this.viewDate;\r\n\r\n }\r\n });\r\n }\r\n // If the user changes the sort order, reset back to the first page.\r\n //this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);\r\n\r\n }\r\n\r\n openDialog(reservation: Reservation, location: Location, timeIntervals: ReservationTime[]): void {\r\n const dialogRef = this.dialog.open(BookingGridEditorComponent, {\r\n data: { header: \"New Booking for \" + location.name, reservation: reservation, location: location, timeIntervals: timeIntervals, allTimeIntervals: this.allTimes },\r\n width: '800px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.selectedTimings = [];\r\n this.selectRow = null;\r\n this.loadAllTimeIntervals();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.filter.locationIds = [];\r\n this.filter.facilityIds = [];\r\n\r\n //this.allTimes = this.getAllTimes();\r\n //this.allStartTimes = this.getAllTimes();\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n this.displayedColumns = ['name', 'description', 'capacity', 'facilityNames', 'select'];\r\n //this.columns = [\r\n // { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n // { prop: 'name', name: gT('locations.management.Name'), width: 200 },\r\n // { prop: 'description', name: gT('locations.management.Description'), width: 150 },\r\n // { prop: 'capacity', name: gT('locations.management.Capacity'), width: 50 },\r\n // { prop: 'facilityNames', name: gT('locations.management.Facilities'), width: 150 },\r\n // { name: '', width: 130, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n //];\r\n\r\n this.loadFilterObjects();\r\n this.loadAllTimeIntervals();\r\n\r\n\r\n this.fcStartTimes.valueChanges.subscribe(x => {\r\n this.changeEndTime(x);\r\n });\r\n this.apply();\r\n }\r\n\r\n\r\n buildings: Location[] = [];\r\n\r\n loadAllTimeIntervals() {\r\n this.reservationService.getTimeIntervals(new TimeIntervalFilter())\r\n .subscribe(results => {\r\n this.allStartTimes = results;\r\n this.allTimes = results;\r\n });\r\n\r\n this.reservationService.getBookingGridRows(this.filter).subscribe(results => {\r\n this.bookingGridRows = results;\r\n\r\n var buildings: Location[] = [];\r\n results.forEach(function (p, index, array) {\r\n if (p.location.parentLocation != null &&\r\n p.location.parentLocation.locationTypeName == LocType.Building && \r\n buildings.filter(e => e.id === p.location.parentLocation.id).length == 0) {\r\n buildings.push(p.location.parentLocation);\r\n }\r\n });\r\n\r\n this.buildings = buildings;\r\n });\r\n\r\n\r\n }\r\n\r\n filterByParentLocationId(id) {\r\n var groupedGridRows: any[] = [];\r\n this.bookingGridRows.forEach((r, index, rooms) => {\r\n if (r.location.parentLocationId == id) {\r\n var obj = {\r\n location: r.location,\r\n locationTimeIntervals: r.locationTimeIntervals\r\n }\r\n\r\n groupedGridRows.push(obj);\r\n }\r\n });\r\n\r\n return groupedGridRows;\r\n }\r\n\r\n loadTimeIntervals(location) {\r\n // var date = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), 0, 0, 0);\r\n var startTime = this.getReservationTimeBy(this.selectStartTimeId);\r\n var endTime = this.getReservationTimeBy(this.selectEndTimeId);\r\n\r\n\r\n if (startTime) {\r\n this.filter.start = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), startTime.hour, startTime.minutes, 0);\r\n } else {\r\n this.filter.start = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), 0, 0, 0);\r\n }\r\n\r\n if (endTime) {\r\n this.filter.end = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), endTime.hour, endTime.minutes, 0);\r\n } else {\r\n this.filter.end = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), 23, 59, 59);\r\n }\r\n\r\n\r\n var tFilter = new TimeIntervalFilter();\r\n tFilter.startDate = this.filter.start;\r\n tFilter.endDate = this.filter.end;\r\n tFilter.locationId = location != null ? location.id : null;\r\n tFilter.startTimeInterval = this.getReservationTimeBy(this.selectStartTimeId);\r\n tFilter.endTimeInterval = this.getReservationTimeBy(this.selectEndTimeId);\r\n\r\n this.reservationService.getBookingGridRows(this.filter).subscribe(results => {\r\n this.bookingGridRows = results;\r\n });\r\n\r\n //this.reservationService.getTimeIntervals(tFilter)\r\n // .subscribe(results => {\r\n // this.allAvailableTimeIntervals = results;\r\n // //this.allStartTimes = results;\r\n // });\r\n\r\n }\r\n\r\n\r\n loadFilterObjects() {\r\n this.locationService.getLocationsAndFacilities(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n\r\n let locations = results[0];\r\n let facilities = results[1];\r\n\r\n locations.forEach((location, index, locations) => {\r\n (location).index = index + 1;\r\n });\r\n\r\n\r\n this.locationList = locations;\r\n this.locationColList = locations;\r\n this.facilityList = facilities;\r\n\r\n this.buildingList = this.locationList.filter(f => f.locationTypeName == LocType.Building);\r\n //var x = (new GroupByPipe).transform(rooms, 'parentLocationId');\r\n //this._datePicker.selectedChange.emit();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve locations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getRoomsByBuildingId(id) {\r\n return this.locationList.filter(f => f.parentLocationId == id);\r\n }\r\n\r\n fetchLocations() {\r\n this.locationService.getAvailableLocations(this.filter)\r\n .subscribe(results => {\r\n\r\n let locations = results;\r\n\r\n locations.forEach((location, index, locations) => {\r\n (location).index = index + 1;\r\n });\r\n\r\n\r\n this.locationColList = locations;\r\n this.rowsCache = [...locations];\r\n this.rows = locations;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve locations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n }\r\n apply() {\r\n var startTime = this.getReservationTimeBy(this.selectStartTimeId);\r\n var endTime = this.getReservationTimeBy(this.selectEndTimeId);\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.filter.start = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), startTime != null ? startTime.hour : 0, startTime != null ? startTime.minutes : 0, 0);\r\n this.filter.end = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), endTime != null ? endTime.hour : 23, endTime != null ? endTime.minutes : 59, endTime != null ? 0 : 59);\r\n this.fetchLocations();\r\n this.loadAllTimeIntervals();\r\n }\r\n\r\n clear() {\r\n this.filter = new CalendarFilter();\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.apply();\r\n }\r\n\r\n compare(a, b) {\r\n if (a.last_nom < b.last_nom)\r\n return -1;\r\n if (a.last_nom > b.last_nom)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n colReservation: Reservation;\r\n getColspan(row: BookingGridRow, col: LocationTimeInterval, index: number) {\r\n var count = 0;\r\n if (col != undefined && col.selected && !col.skip) {\r\n while (row.locationTimeIntervals[index] != null && row.locationTimeIntervals[index].reservation != null &&\r\n row.locationTimeIntervals[index].reservation.id == col.reservation.id && col.selected) {\r\n count++;\r\n if (count > 1 && row.locationTimeIntervals[index] != undefined) {\r\n row.locationTimeIntervals[index].skip = true;\r\n }\r\n index++;\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n selectedTimings: Array = [];\r\n selectRow?: BookingGridRow = null;\r\n selectTiming(row, col) {\r\n\r\n var isOk = false;\r\n if (this.selectRow == null || this.selectRow.location.id == row.location.id) {\r\n var length = this.selectedTimings.length;\r\n if (length > 0) {\r\n this.selectedTimings.sort((a, b) => (a.timeInterval.hour * 60 + a.timeInterval.minutes > b.timeInterval.hour * 60 + b.timeInterval.minutes) ? 1 :\r\n ((b.timeInterval.hour * 60 + b.timeInterval.minutes > a.timeInterval.hour * 60 + a.timeInterval.minutes ? -1 : 0)));\r\n\r\n //this.selectedTimings.sort(function (a, b) {\r\n // return a.timeInterval.hour * 60 + a.timeInterval.minutes - b.timeInterval.hour * 60 + b.timeInterval.minutes});\r\n\r\n var existCol = this.selectedTimings[0];\r\n if (Math.abs((existCol.timeInterval.hour * 60 + existCol.timeInterval.minutes) -\r\n (col.timeInterval.hour * 60 + col.timeInterval.minutes)) == 30 ||\r\n Math.abs((existCol.timeInterval.hour * 60 + existCol.timeInterval.minutes) -\r\n (col.timeInterval.hour * 60 + col.timeInterval.minutes)) == 0) {\r\n isOk = true;\r\n } else {\r\n existCol = this.selectedTimings[length - 1];\r\n if (Math.abs((existCol.timeInterval.hour * 60 + existCol.timeInterval.minutes) -\r\n (col.timeInterval.hour * 60 + col.timeInterval.minutes)) == 30 ||\r\n Math.abs((existCol.timeInterval.hour * 60 + existCol.timeInterval.minutes) -\r\n (col.timeInterval.hour * 60 + col.timeInterval.minutes)) == 0) {\r\n isOk = true;\r\n }\r\n }\r\n }\r\n else {\r\n isOk = true;\r\n }\r\n\r\n if (isOk) {\r\n var index = this.selectedTimings.indexOf(col);\r\n if (index > -1) {\r\n if (index == 0 || index == length - 1) {\r\n col.isNewSelected = !col.isNewSelected;\r\n this.selectedTimings.splice(index, 1);\r\n }\r\n } else {\r\n col.isNewSelected = !col.isNewSelected;\r\n this.selectedTimings.push(col);\r\n }\r\n\r\n this.selectRow = row;\r\n }\r\n }\r\n\r\n if (this.selectedTimings != null && this.selectedTimings.length == 0) this.selectRow = null;\r\n }\r\n\r\n book() {\r\n var reservation = new Reservation();\r\n reservation.startDate = reservation.endDate = this.viewDate;\r\n var startTime = this.getReservationTimeBy(this.selectStartTimeId);\r\n var endTime = this.getReservationTimeBy(this.selectEndTimeId);\r\n reservation.startTime = startTime;\r\n reservation.endTime = endTime;\r\n reservation.institutionId = this.authService.currentUser.institutionId;\r\n var selectedTimes: ReservationTime[] = [];\r\n this.selectedTimings.sort((a, b) => (a.timeInterval.hour * 60 + a.timeInterval.minutes > b.timeInterval.hour * 60 + b.timeInterval.minutes) ? 1 :\r\n ((b.timeInterval.hour * 60 + b.timeInterval.minutes > a.timeInterval.hour * 60 + a.timeInterval.minutes ? -1 : 0)));\r\n\r\n this.selectedTimings.forEach((s, sIndex, si) => {\r\n selectedTimes.push(s.timeInterval);\r\n });\r\n\r\n if (this.selectRow != null) {\r\n this.openDialog(reservation, this.selectRow.location, selectedTimes);\r\n }\r\n }\r\n\r\n public changeEndTime(id) {\r\n if (id != null && id != null && id.toString() != \"\") {\r\n var allTimes = this.allTimes;//this.getAllTimes();\r\n var resStartTime = this.getReservationTimeBy(id);\r\n var $this = this;\r\n this.allEndTimes = allTimes.filter(function (p, index, array) {\r\n if (p.hour > resStartTime.hour || (p.hour == resStartTime.hour && p.minutes > resStartTime.minutes)) {\r\n p.description = p.description;\r\n return p;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getHourDifferenceDescription(endTime: ReservationTime): string {\r\n var diff = new Date(new Date(endTime.value).setSeconds(0)).valueOf() - new Date(new Date(this.getReservationTimeBy(this.selectStartTimeId).value).setSeconds(0)).valueOf();\r\n var diffHours = diff / (1000.0 * 3600.0);\r\n\r\n return diffHours.toFixed(1).toString();\r\n }\r\n\r\n private getReservationTimeBy(id?: any, hour?: number, minute?: number): ReservationTime {\r\n var allTimes = this.allTimes;//this.getAllTimes();\r\n var time: ReservationTime;\r\n if (id != null) {\r\n time = allTimes.filter(f => f.id == id)[0];\r\n } else if (hour != null && minute != null) {\r\n var t = allTimes.filter(f => f.hour == hour && f.minutes == minute);\r\n time = t != null && t.length > 0 ? t[0] : allTimes[0];\r\n } else {\r\n time = null;\r\n }\r\n return time;\r\n }\r\n\r\n hightlightStatus: Array = [];\r\n selectTime(ev) {\r\n\r\n\r\n }\r\n\r\n getTooltip(reservation) {\r\n if (reservation != null) {\r\n var s = 'Title: ' + reservation.shortDescription;\r\n s += ' Booked By: ' + reservation.bookedBy;\r\n return s;\r\n }\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n/*input.form-control {\\r\\n border-left-width: 5px;\\r\\n}*/\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.mat-form-field{\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: 11px !important;\\r\\n font-weight: 400 !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n::ng-deep .selected-time-chip {\\r\\n padding: 5px !important;\\r\\n padding: 5px !important;\\r\\n border-radius: 1px !important;\\r\\n min-height: 20px !important;\\r\\n font-size: 11px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYWxlbmRhci9ib29raW5nL2Jvb2tpbmctZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBR0E7O0VBRUU7O0FBRUY7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLDBCQUEwQjtFQUMxQiwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLDZCQUE2QjtFQUM3QiwyQkFBMkI7RUFDM0IsMEJBQTBCO0FBQzVCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jYWxlbmRhci9ib29raW5nL2Jvb2tpbmctZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5cclxuLyppbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufSovXHJcblxyXG4uZmFjaWxpdHlFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubWF0LWZvcm0tZmllbGR7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcclxuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAuc2VsZWN0ZWQtdGltZS1jaGlwIHtcclxuICBwYWRkaW5nOiA1cHggIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiA1cHggIWltcG9ydGFudDtcclxuICBib3JkZXItcmFkaXVzOiAxcHggIWltcG9ydGFudDtcclxuICBtaW4taGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'reservations.editor.ReservationDescriptionRequired' | 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 {{timeInterval.description}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{facility.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\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n None \\r\\n Daily \\r\\n Weekly \\r\\n Monthly \\r\\n Yearly \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{'reservations.editor.ReservationLongDescriptionRequired' | 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 {{option.fullName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Invitees
\\r\\n \\r\\n \\r\\n \\r\\n {{invitee.fullName}} - {{invitee.email}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input, ChangeDetectorRef, ViewEncapsulation, Inject, OnInit } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatChipInputEvent } from '@angular/material';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { ReservationService } from '../../../services/reservation.service';\r\nimport { Reservation, ReservationInvitee } from '../../../models/reservation.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { Location } from '../../../models/location.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { ReservationEditorComponent } from '../../reservations/reservation-editor.component';\r\nimport { ReservationTime, TimeIntervalFilter } from 'src/app/models/reservationtime.model';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { User } from 'src/app/models/user.model';\r\n\r\n\r\n@Component({\r\n selector: 'booking-editor',\r\n templateUrl: './booking-editor.component.html',\r\n styleUrls: ['./booking-editor.component.css']\r\n})\r\nexport class BookingEditorComponent implements OnInit {\r\n\r\n private isEditMode = false;\r\n private isNewReservation = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingReservationName: string;\r\n private facilityNames: string;\r\n private reservationEdit: Reservation = new Reservation();\r\n private locationList: Location[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n fcStartTimes = new FormControl();\r\n fcEndTimes = new FormControl();\r\n fcReservationInvitees = new FormControl();\r\n private allStartTimes: ReservationTime[] = [];\r\n private allEndTimes: ReservationTime[] = [];\r\n private allTimes: ReservationTime[] = [];\r\n startDate: string;\r\n selectStartTimeId: number;\r\n selectEndTimeId: number;\r\n locationCapacity: number;\r\n disabledTime = false;\r\n fcLocations = new FormControl('', [Validators.required]);\r\n filteredReservationInvitees: Observable;\r\n users: User[] = [];\r\n inviteeList: User[] = [];\r\n inputInvitee: User;\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private alertService: AlertService, private accountService: AccountService, private reservationService: ReservationService, private locationService: LocationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n\r\n if (typeof (data.reservation) != typeof (undefined)) {\r\n //if (data.reservation.id) {\r\n // this.editReservation(data.reservation, data.location);\r\n //} else {\r\n // this.newReservation(data.location);\r\n //}\r\n this.editReservation(data.reservation, data.location, data.timeIntervals);\r\n this.loadLocations();\r\n this.allStartTimes = data.allTimeIntervals;\r\n this.allTimes = data.allTimeIntervals;\r\n this.fcStartTimes.valueChanges.subscribe(x => {\r\n this.changeEndTime(x);\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.accountService.getUsers(null, null, this.accountService.currentUser.institutionId).subscribe(results => {\r\n this.users = results;\r\n\r\n this.filteredReservationInvitees = this.fcReservationInvitees.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value.fullName),\r\n map(fullName => fullName ? this._filter(fullName) : this.users.slice())\r\n );\r\n });\r\n }\r\n\r\n displayFn(user?: User): string | undefined {\r\n return user ? user.fullName : undefined;\r\n }\r\n\r\n selectInvitee($ev) {\r\n this.inviteeList.push($ev.option.value);\r\n this.inputInvitee = new User();\r\n this.users = this.users.filter(item => item.id !== $ev.option.value.id);\r\n }\r\n\r\n removeInvitee(invitee) {\r\n this.inviteeList = this.inviteeList.filter(item => item.id !== invitee.id);\r\n this.users.push(invitee);\r\n }\r\n\r\n private _filter(fullName: string): User[] {\r\n const filterValue = fullName.toLowerCase();\r\n\r\n return this.users.filter(option => option.fullName.toLowerCase().indexOf(filterValue) === 0);\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.reservationEdit.invitees = [];\r\n this.inviteeList.forEach((invitee, index, invitees) => {\r\n var resInvitee = new ReservationInvitee();\r\n resInvitee.userId = invitee.id;\r\n this.reservationEdit.invitees.push(resInvitee);\r\n });\r\n\r\n //this.reservationEdit.startTime = this.getReservationTimeBy(this.selectStartTimeId);\r\n //this.reservationEdit.endTime = this.getReservationTimeBy(this.selectEndTimeId);\r\n var startDateTime = new Date(this.reservationEdit.startDate);\r\n\r\n //startDateTime.setHours(this.reservationEdit.startTime.hour);\r\n //startDateTime.setMinutes(this.reservationEdit.startTime.minute);\r\n this.reservationEdit.startDateTime = startDateTime;\r\n\r\n //var endDateTime = new Date(this.reservationEdit.endDate);\r\n\r\n //endDateTime.setHours(this.reservationEdit.endTime.hour);\r\n //endDateTime.setMinutes(this.reservationEdit.endTime.minute);\r\n //this.reservationEdit.endDateTime = endDateTime;\r\n //this.reservationEdit.repeatEndDateTime = new Date(this.reservationEdit.repeatEndDate);\r\n this.reservationService.newReservation(this.reservationEdit).subscribe(reservation => this.saveSuccessHelper(reservation), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n private saveSuccessHelper(reservation?: Reservation) {\r\n if (reservation)\r\n Object.assign(this.reservationEdit, reservation);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n this.alertService.showMessage(\"Success\", `Reservation \\\"${this.reservationEdit.shortDescription}\\\" was created successfully`, MessageSeverity.success);\r\n\r\n this.reservationEdit = new Reservation();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewReservation && this.accountService.currentUser.reservations.some(r => r == this.editingReservationName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.reservationEdit = new Reservation();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newReservation(location: Location) {\r\n this.isEditMode = true;\r\n this.isNewReservation = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingReservationName = null;\r\n this.selectedValues = {};\r\n this.reservationEdit = new Reservation();\r\n this.reservationEdit.locationName = location.name;\r\n this.reservationEdit.locationId = location.id;\r\n this.reservationEdit.facilities = location.facilities;\r\n return this.reservationEdit;\r\n }\r\n\r\n editReservation(reservation: Reservation, location: Location, timeIntervals: ReservationTime[]) {\r\n this.isEditMode = true;\r\n if (reservation) {\r\n this.isNewReservation = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingReservationName = reservation.shortDescription;\r\n this.selectedValues = {};\r\n this.reservationEdit = new Reservation();\r\n Object.assign(this.reservationEdit, reservation);\r\n\r\n this.reservationEdit.repeatType = \"None\";\r\n this.startDate = (new DateOnlyPipe('en-SG')).transform(this.reservationEdit.startDate);\r\n this.reservationEdit.locationName = location.name;\r\n this.reservationEdit.locationId = location.id;\r\n this.reservationEdit.facilities = location.facilities;\r\n this.reservationEdit.timeIntervals = timeIntervals;\r\n\r\n this.locationCapacity = location.capacity;\r\n //this.selectStartTimeId = this.reservationEdit.startTime.id;\r\n //this.selectEndTimeId = this.reservationEdit.endTime.id;\r\n return this.reservationEdit;\r\n }\r\n else {\r\n return this.newReservation(location);\r\n }\r\n }\r\n\r\n loadLocations() {\r\n //this.locationService.getLocationsAndLocationTypes()\r\n // .subscribe(results => {\r\n // let locations = results[0];\r\n // this.locationsList = locations;\r\n // },\r\n // error => {\r\n // this.alertService.resetStickyMessage();\r\n // this.alertService.showStickyMessage(\"getLocationsByLocationId failed\", \"An error occured while trying to get locations from the server\", MessageSeverity.error);\r\n // });\r\n }\r\n\r\n\r\n changeLocations(id) {\r\n //this.locationService.getLocationsByLocationId(id)\r\n // .subscribe(results => {\r\n // let locations = results[0];\r\n // this.locationsList = locations;\r\n // },\r\n // error => {\r\n // this.alertService.resetStickyMessage();\r\n // this.alertService.showStickyMessage(\"getLocationsByLocationId failed\", \"An error occured while trying to get locations from the server\", MessageSeverity.error);\r\n // });\r\n }\r\n\r\n setReservationTypeId(id) {\r\n //this.reservationEdit.reservationTypeId = id;\r\n }\r\n\r\n\r\n public changeEndTime(id) {\r\n if (id != null && id != null && id.toString() != \"\") {\r\n var allTimes = this.allTimes;\r\n var resStartTime = this.getReservationTimeBy(id);\r\n var $this = this;\r\n this.allEndTimes = allTimes.filter(function (p, index, array) {\r\n if (new Date(new Date(p.value).setSeconds(0)) > new Date(new Date(resStartTime.value))) {\r\n p.description = p.description;\r\n return p;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getHourDifferenceDescription(endTime: ReservationTime): string {\r\n var diff = new Date(new Date(endTime.value).setSeconds(0)).valueOf() - new Date(new Date(this.getReservationTimeBy(this.selectStartTimeId).value).setSeconds(0)).valueOf();\r\n var diffHours = diff / (1000.0 * 3600.0);\r\n\r\n return diffHours.toFixed(1).toString();\r\n }\r\n\r\n private getReservationTimeBy(id?: any, hour?: number, minute?: number): ReservationTime {\r\n var allTimes = this.allTimes;\r\n var time: ReservationTime;\r\n if (id != null) {\r\n time = allTimes.filter(f => f.id == id)[0];\r\n } else {\r\n var t = allTimes.filter(f => f.hour == hour && f.minutes == minute);\r\n time = t != null && t.length > 0 ? t[0] : allTimes[0];\r\n }\r\n return time;\r\n }\r\n\r\n get canManageReservations() {\r\n return this.accountService.userHasPermission(Permission.manageReservationsPermission)\r\n }\r\n}\r\n","module.exports = \"table {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\ntr.example-detail-row {\\r\\n height: 0;\\r\\n}\\r\\n\\r\\ntr.example-element-row:not(.example-expanded-row):hover {\\r\\n background: #f5f5f5;\\r\\n}\\r\\n\\r\\ntr.example-element-row:not(.example-expanded-row):active {\\r\\n background: #efefef;\\r\\n}\\r\\n\\r\\n.example-element-row td {\\r\\n border-bottom-width: 0;\\r\\n}\\r\\n\\r\\n.example-element-detail {\\r\\n overflow: hidden;\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n.example-element-diagram {\\r\\n min-width: 80px;\\r\\n border: 2px solid black;\\r\\n padding: 8px;\\r\\n font-weight: lighter;\\r\\n margin: 8px 0;\\r\\n height: 104px;\\r\\n}\\r\\n\\r\\n.example-element-symbol {\\r\\n font-weight: bold;\\r\\n font-size: 40px;\\r\\n line-height: normal;\\r\\n}\\r\\n\\r\\n.example-element-description {\\r\\n padding: 16px;\\r\\n}\\r\\n\\r\\n.example-element-description-attribution {\\r\\n opacity: 0.5;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-chip-list-wrapper .mat-standard-chip, .mat-chip-list-wrapper input.mat-input-element {\\r\\n margin: 2px !important;\\r\\n}\\r\\n\\r\\n.mat-standard-chip {\\r\\n transition: box-shadow 280ms cubic-bezier(.4,0,.2,1);\\r\\n display: inline-flex;\\r\\n padding: 5px 5px;\\r\\n border-radius: 0;\\r\\n align-items: center;\\r\\n cursor: default;\\r\\n min-height: 20px;\\r\\n height: 1px;\\r\\n}\\r\\n\\r\\n.mat-chip {\\r\\n font-size: 12px;\\r\\n font-weight: 500;\\r\\n}\\r\\n\\r\\n::ng-deep .time-class {\\r\\n padding: 0 5px !important;\\r\\n font-size: 11px !important;\\r\\n border-radius: 1px !important;\\r\\n line-height: 20px !important;\\r\\n min-width: 20px !important;\\r\\n margin: 1px !important;\\r\\n}\\r\\n\\r\\n::ng-deep .btn-time-selected {\\r\\n background-color: #e6e6e6 !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYWxlbmRhci9ib29raW5nL2Jvb2tpbmcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFNBQVM7QUFDWDs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsdUJBQXVCO0VBQ3ZCLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0Usb0RBQW9EO0VBQ3BELG9CQUFvQjtFQUNwQixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsMEJBQTBCO0VBQzFCLDZCQUE2QjtFQUM3Qiw0QkFBNEI7RUFDNUIsMEJBQTBCO0VBQzFCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLG9DQUFvQztBQUN0QyIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2FsZW5kYXIvYm9va2luZy9ib29raW5nLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJ0YWJsZSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbnRyLmV4YW1wbGUtZGV0YWlsLXJvdyB7XHJcbiAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xyXG59XHJcblxyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZDogI2VmZWZlZjtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1yb3cgdGQge1xyXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGV0YWlsIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGlhZ3JhbSB7XHJcbiAgbWluLXdpZHRoOiA4MHB4O1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICBmb250LXdlaWdodDogbGlnaHRlcjtcclxuICBtYXJnaW46IDhweCAwO1xyXG4gIGhlaWdodDogMTA0cHg7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtc3ltYm9sIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IDQwcHg7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXNjcmlwdGlvbiB7XHJcbiAgcGFkZGluZzogMTZweDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXNjcmlwdGlvbi1hdHRyaWJ1dGlvbiB7XHJcbiAgb3BhY2l0eTogMC41O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1jaGlwLWxpc3Qtd3JhcHBlciAubWF0LXN0YW5kYXJkLWNoaXAsIC5tYXQtY2hpcC1saXN0LXdyYXBwZXIgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xyXG4gIG1hcmdpbjogMnB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXQtc3RhbmRhcmQtY2hpcCB7XHJcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyODBtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBwYWRkaW5nOiA1cHggNXB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgbWluLWhlaWdodDogMjBweDtcclxuICBoZWlnaHQ6IDFweDtcclxufVxyXG5cclxuLm1hdC1jaGlwIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC50aW1lLWNsYXNzIHtcclxuICBwYWRkaW5nOiAwIDVweCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweCAhaW1wb3J0YW50O1xyXG4gIGxpbmUtaGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgbWluLXdpZHRoOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luOiAxcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5idG4tdGltZS1zZWxlY3RlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNiAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Location
\\r\\n \\r\\n {{location.name}} - {{location.description}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Facility
\\r\\n \\r\\n {{facility.name}} - {{facility.description}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Min. Capacity
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Start
\\r\\n \\r\\n {{start.description}}\\r\\n \\r\\n
\\r\\n
\\r\\n
End
\\r\\n \\r\\n {{end.description}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Available Locations

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name{{row.name}}Description{{row.description}}Capacity{{row.capacity}}\\r\\n Facilities\\r\\n {{row.facilityNames}}\\r\\n  \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Available Time:\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\"","import { Component, ChangeDetectionStrategy, OnInit, ChangeDetectorRef, ViewEncapsulation, ViewChild, TemplateRef, AfterViewInit } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { CalendarEvent, CalendarEventTitleFormatter, CalendarView, CalendarEventTimesChangedEvent } from 'angular-calendar';\r\nimport {\r\n isSameMonth,\r\n isSameDay,\r\n startOfMonth,\r\n endOfMonth,\r\n startOfWeek,\r\n endOfWeek,\r\n startOfDay,\r\n endOfDay,\r\n format,\r\n addHours, addDays, addMinutes\r\n} from 'date-fns';\r\nimport { finalize, takeUntil, timeInterval } from 'rxjs/operators';\r\nimport { DayViewHourSegment } from 'calendar-utils';\r\nimport MapUtils from 'src/app/helpers/maputils';\r\nimport { UserInfoVal, Facility } from 'src/app/models/facility.model';\r\nimport { Location } from 'src/app/models/location.model';\r\nimport { Reservation, CalendarFilter } from 'src/app/models/reservation.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { MessageSeverity, AlertService } from 'src/app/services/alert.service';\r\nimport { ReservationService } from '../../../services/reservation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { MatButtonModule, MatCalendar, MatDatepicker, MatSelect, MatDialog } from '@angular/material';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { fadeInOut } from 'src/app/services/animations';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { ReservationTime, TimeIntervalFilter } from 'src/app/models/reservationtime.model';\r\nimport { BookingEditorComponent } from './booking-editor.component';\r\n\r\nimport { MatPaginator, MatSort } from '@angular/material';\r\nimport { merge, Observable, of as observableOf, fromEvent } from 'rxjs';\r\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'booking',\r\n templateUrl: './booking.component.html',\r\n styleUrls: ['./booking.component.css'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0', display: 'none' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class BookingComponent\r\n implements OnInit, AfterViewInit \r\n{\r\n startDate = new Date();\r\n endDate = new Date();\r\n viewDate = new Date();\r\n reservations: Reservation[];\r\n facilityList: Facility[];\r\n locationList: Location[];\r\n locationColList: Location[];\r\n changeDetector: ChangeDetectorRef;\r\n events$: Observable>>;\r\n dragToCreateActive = false;\r\n activeDayIsOpen: boolean = false;\r\n fcLocations = new FormControl();\r\n fcFacilities = new FormControl();\r\n fcStartTimes = new FormControl();\r\n fcEndTimes = new FormControl();\r\n filter: CalendarFilter = new CalendarFilter();\r\n columns: any[] = [];\r\n rows: Location[] = [];\r\n rowsCache: Location[] = [];\r\n private allTimes: ReservationTime[] = [];\r\n private allAvailableTimeIntervals: ReservationTime[] = [];\r\n private allStartTimes: ReservationTime[] = [];\r\n private allEndTimes: ReservationTime[] = [];\r\n selectStartTimeId: number;\r\n selectEndTimeId: number;\r\n header: string;\r\n\r\n displayedColumns: string[];\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n constructor(private translationService: AppTranslationService, private http: HttpClient, private cdr: ChangeDetectorRef,private alertService: AlertService, private accountService: AccountService,\r\n private reservationService: ReservationService, private locationService: LocationService, protected configurations: ConfigurationService, public dialog: MatDialog) {\r\n }\r\n\r\n @ViewChild(MatCalendar)\r\n _datePicker: MatCalendar\r\n\r\n\r\n @ViewChild(MatSelect)\r\n selectStart: MatSelect\r\n\r\n ngAfterViewInit() {\r\n\r\n \r\n // If the user changes the sort order, reset back to the first page.\r\n //this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);\r\n \r\n }\r\n\r\n openDialog(reservation: Reservation, location: Location, timeIntervals: ReservationTime[]): void {\r\n const dialogRef = this.dialog.open(BookingEditorComponent, {\r\n data: { header: \"New Booking for \" + location.name, reservation: reservation, location: location, timeIntervals: timeIntervals, allTimeIntervals: this.allTimes },\r\n width: '800px'\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.filter.locationIds = [];\r\n this.filter.facilityIds = [];\r\n\r\n //this.allTimes = this.getAllTimes();\r\n //this.allStartTimes = this.getAllTimes();\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n this.displayedColumns = ['name', 'description', 'capacity', 'facilityNames', 'select'];\r\n //this.columns = [\r\n // { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n // { prop: 'name', name: gT('locations.management.Name'), width: 200 },\r\n // { prop: 'description', name: gT('locations.management.Description'), width: 150 },\r\n // { prop: 'capacity', name: gT('locations.management.Capacity'), width: 50 },\r\n // { prop: 'facilityNames', name: gT('locations.management.Facilities'), width: 150 },\r\n // { name: '', width: 130, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n //];\r\n\r\n this.loadData();\r\n this.loadAllTimeIntervals() ;\r\n this._datePicker.selectedChange.subscribe(x => {\r\n if (typeof x != typeof (undefined)) {\r\n this.viewDate = x;\r\n this.filter.viewDate = this.viewDate;\r\n this.filter.start = this.filter.end = this.viewDate;\r\n }\r\n });\r\n\r\n this.fcStartTimes.valueChanges.subscribe(x => {\r\n this.changeEndTime(x);\r\n });\r\n }\r\n\r\n loadAllTimeIntervals() {\r\n\r\n this.reservationService.getTimeIntervals(new TimeIntervalFilter())\r\n .subscribe(results => {\r\n this.allStartTimes = results;\r\n this.allTimes = results;\r\n });\r\n }\r\n loadTimeIntervals(location) {\r\n // var date = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), 0, 0, 0);\r\n var startTime = this.getReservationTimeBy(this.selectStartTimeId);\r\n var endTime = this.getReservationTimeBy(this.selectEndTimeId);\r\n\r\n\r\n if (startTime) {\r\n this.filter.start = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), startTime.hour, startTime.minutes, 0);\r\n } else {\r\n this.filter.start = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), 0, 0, 0);\r\n }\r\n\r\n if (endTime) {\r\n this.filter.end = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), endTime.hour, endTime.minutes, 0);\r\n } else {\r\n this.filter.end = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), 23, 59, 59);\r\n }\r\n\r\n\r\n var tFilter = new TimeIntervalFilter();\r\n tFilter.startDate = this.filter.start;\r\n tFilter.endDate = this.filter.end;\r\n tFilter.locationId = location != null ? location.id : null;\r\n tFilter.startTimeInterval = this.getReservationTimeBy(this.selectStartTimeId);\r\n tFilter.endTimeInterval = this.getReservationTimeBy(this.selectEndTimeId);\r\n\r\n this.reservationService.getTimeIntervals(tFilter)\r\n .subscribe(results => {\r\n this.allAvailableTimeIntervals = results;\r\n //this.allStartTimes = results;\r\n });\r\n\r\n }\r\n loadData() {\r\n\r\n this.locationService.getLocationsAndFacilities()\r\n .subscribe(results => {\r\n\r\n let locations = results[0];\r\n let facilities = results[1];\r\n\r\n locations.forEach((location, index, locations) => {\r\n (location).index = index + 1;\r\n });\r\n\r\n\r\n this.locationList = locations;\r\n this.locationColList = locations;\r\n this.facilityList = facilities;\r\n\r\n this._datePicker.selectedChange.emit();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve locations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n \r\n\r\n fetchLocations() {\r\n this.locationService.getAvailableLocations(this.filter)\r\n .subscribe(results => {\r\n\r\n let locations = results;\r\n\r\n locations.forEach((location, index, locations) => {\r\n (location).index = index + 1;\r\n });\r\n\r\n\r\n this.locationColList = locations;\r\n this.rowsCache = [...locations];\r\n this.rows = locations;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve locations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n \r\n }\r\n apply() {\r\n var startTime = this.getReservationTimeBy(this.selectStartTimeId);\r\n var endTime = this.getReservationTimeBy(this.selectEndTimeId);\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.filter.start = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), startTime != null ? startTime.hour : 0, startTime != null ? startTime.minutes : 0, 0);\r\n this.filter.end = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth(), this.viewDate.getDate(), endTime != null ? endTime.hour : 23, endTime != null ? endTime.minutes : 59, endTime != null ? 0 : 59);\r\n this.fetchLocations();\r\n }\r\n\r\n clear() {\r\n this.filter = new CalendarFilter();\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.apply();\r\n }\r\n\r\n book(row) {\r\n var reservation = new Reservation();\r\n reservation.startDate = reservation.endDate = this.viewDate;\r\n var startTime = this.getReservationTimeBy(this.selectStartTimeId);\r\n var endTime = this.getReservationTimeBy(this.selectEndTimeId);\r\n reservation.startTime = startTime;\r\n reservation.endTime = endTime;\r\n\r\n //var selectedIndexes = this.hightlightStatus.filter(function (p, index, array) {\r\n // if (p) {\r\n // return index;\r\n // }\r\n //});\r\n\r\n var selectedIndexes:number[] = [];\r\n this.hightlightStatus.forEach((s, sIndex, si) => {\r\n if (s) {\r\n selectedIndexes.push(sIndex);\r\n }\r\n });\r\n\r\n var selectedTimes: ReservationTime[] = [];\r\n //this.allTimes = this.allTimes.sort(function (a, b) {\r\n // if (a.hour === b.hour) {\r\n // return b.minutes - a.minutes;\r\n // }\r\n // return a.hour > b.hour ? 1 : -1;\r\n //});\r\n\r\n this.allAvailableTimeIntervals.forEach((t, tIndex, ts) => {\r\n selectedIndexes.forEach((s, sIndex, si) => {\r\n if (s == tIndex) {\r\n selectedTimes.push(t);\r\n }\r\n });\r\n });\r\n\r\n this.openDialog(reservation, row, selectedTimes);\r\n }\r\n private getAllTimes(): ReservationTime[] {\r\n let times: ReservationTime[] =\r\n [new ReservationTime(1, \"00:00\", \"00:00\", 0, 0),\r\n new ReservationTime(2, \"00:30\", \"00:29\", 0, 29),\r\n new ReservationTime(3, \"01:00\", \"01:00\", 1, 59),\r\n new ReservationTime(4, \"01:30\", \"02:29\", 1, 29),\r\n new ReservationTime(5, \"02:00\", \"02:00\", 2, 59),\r\n new ReservationTime(6, \"02:30\", \"03:29\", 2, 29),\r\n new ReservationTime(7, \"03:00\", \"03:00\", 3, 59),\r\n new ReservationTime(8, \"03:30\", \"04:29\", 3, 29),\r\n new ReservationTime(9, \"04:00\", \"04:00\", 4, 59),\r\n new ReservationTime(10, \"04:30\", \"05:29\", 4, 29),\r\n new ReservationTime(11, \"05:00\", \"05:00\", 5, 59),\r\n new ReservationTime(12, \"05:30\", \"06:29\", 5, 29),\r\n new ReservationTime(13, \"06:00\", \"06:00\", 6, 59),\r\n new ReservationTime(14, \"06:30\", \"07:29\", 6, 29),\r\n new ReservationTime(15, \"07:00\", \"07:00\", 7, 59),\r\n new ReservationTime(16, \"07:30\", \"08:29\", 7, 29),\r\n new ReservationTime(17, \"08:00\", \"08:00\", 8, 59),\r\n new ReservationTime(18, \"08:30\", \"09:29\", 8, 29),\r\n new ReservationTime(19, \"09:00\", \"09:00\", 9, 59),\r\n new ReservationTime(20, \"09:30\", \"10:29\", 9, 29),\r\n new ReservationTime(21, \"10:00\", \"10:00\", 10, 59),\r\n new ReservationTime(22, \"10:30\", \"11:29\", 11, 29),\r\n new ReservationTime(23, \"11:00\", \"11:00\", 10, 59),\r\n new ReservationTime(24, \"11:30\", \"12:29\", 11, 29),\r\n new ReservationTime(25, \"12:00\", \"12:00\", 12, 59),\r\n new ReservationTime(26, \"12:30\", \"13:29\", 12, 29),\r\n new ReservationTime(27, \"13:00\", \"13:00\", 13, 59),\r\n new ReservationTime(28, \"13:30\", \"14:29\", 13, 29),\r\n new ReservationTime(29, \"14:00\", \"14:00\", 14, 59),\r\n new ReservationTime(29, \"14:30\", \"15:29\", 14, 29),\r\n new ReservationTime(30, \"15:00\", \"15:00\", 15, 59),\r\n new ReservationTime(32, \"15:30\", \"16:29\", 15, 29),\r\n new ReservationTime(33, \"16:00\", \"16:00\", 16, 59),\r\n new ReservationTime(34, \"16:30\", \"17:29\", 16, 29),\r\n new ReservationTime(35, \"17:00\", \"17:00\", 17, 59),\r\n new ReservationTime(36, \"17:30\", \"18:29\", 17, 29),\r\n new ReservationTime(37, \"18:00\", \"18:00\", 18, 59),\r\n new ReservationTime(38, \"18:30\", \"19:29\", 18, 29),\r\n new ReservationTime(39, \"19:00\", \"19:00\", 19, 59),\r\n new ReservationTime(40, \"19:30\", \"20:29\", 19, 29),\r\n new ReservationTime(41, \"20:00\", \"20:00\", 20, 59),\r\n new ReservationTime(42, \"20:30\", \"21:29\", 20, 29),\r\n new ReservationTime(43, \"21:00\", \"21:00\", 21, 59),\r\n new ReservationTime(44, \"21:30\", \"22:29\", 21, 29),\r\n new ReservationTime(45, \"22:00\", \"22:00\", 22, 59),\r\n new ReservationTime(46, \"22:30\", \"23:29\", 22, 29),\r\n new ReservationTime(47, \"23:00\", \"23:00\", 22, 59),\r\n new ReservationTime(48, \"23:30\", \"23:29\", 23, 29),\r\n new ReservationTime(49, \"24:00\", \"23:59\", 23, 59)];\r\n return times;\r\n }\r\n\r\n public changeEndTime(id) {\r\n if (id != null && id != null && id.toString() != \"\") {\r\n var allTimes = this.allTimes;//this.getAllTimes();\r\n var resStartTime = this.getReservationTimeBy(id);\r\n var $this = this;\r\n this.allEndTimes = allTimes.filter(function (p, index, array) {\r\n if (p.hour > resStartTime.hour || (p.hour == resStartTime.hour && p.minutes > resStartTime.minutes)) {\r\n p.description = p.description;\r\n return p;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getHourDifferenceDescription(endTime: ReservationTime): string {\r\n var diff = new Date(new Date(endTime.value).setSeconds(0)).valueOf() - new Date(new Date(this.getReservationTimeBy(this.selectStartTimeId).value).setSeconds(0)).valueOf();\r\n var diffHours = diff / (1000.0 * 3600.0);\r\n\r\n return diffHours.toFixed(1).toString();\r\n }\r\n\r\n private getReservationTimeBy(id?: any, hour?: number, minute?: number): ReservationTime {\r\n var allTimes = this.allTimes;//this.getAllTimes();\r\n var time: ReservationTime;\r\n if (id != null) {\r\n time = allTimes.filter(f => f.id == id)[0];\r\n } else if (hour != null && minute != null) {\r\n var t = allTimes.filter(f => f.hour == hour && f.minutes == minute);\r\n time = t != null && t.length > 0 ? t[0] : allTimes[0];\r\n } else {\r\n time = null;\r\n }\r\n return time;\r\n }\r\n\r\n hightlightStatus: Array = []; \r\n selectTime(ev) {\r\n \r\n \r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n/*input.form-control {\\r\\n border-left-width: 5px;\\r\\n}*/\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.mat-form-field{\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: 11px !important;\\r\\n font-weight: 400 !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n::ng-deep .selected-time-chip {\\r\\n padding: 5px !important;\\r\\n padding: 5px !important;\\r\\n border-radius: 1px !important;\\r\\n min-height: 20px !important;\\r\\n font-size: 11px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci1ib29raW5nLWdyaWQvY2FsZW5kYXItYm9va2luZy1ncmlkLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUdBOztFQUVFOztBQUVGO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSwwQkFBMEI7RUFDMUIsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qiw2QkFBNkI7RUFDN0IsMkJBQTJCO0VBQzNCLDBCQUEwQjtBQUM1QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXItYm9va2luZy1ncmlkL2NhbGVuZGFyLWJvb2tpbmctZ3JpZC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcblxyXG4vKmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59Ki9cclxuXHJcbi5mYWNpbGl0eUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tYXQtZm9ybS1maWVsZHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5zZWxlY3RlZC10aW1lLWNoaXAge1xyXG4gIHBhZGRpbmc6IDVweCAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDVweCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1yYWRpdXM6IDFweCAhaW1wb3J0YW50O1xyXG4gIG1pbi1oZWlnaHQ6IDIwcHggIWltcG9ydGFudDtcclxuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'reservations.editor.ReservationDescriptionRequired' | 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 Start Time is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n End Time is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{facility.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\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{rt}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'reservations.editor.ReservationLongDescriptionRequired' | 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 {{option.fullName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Invitees
\\r\\n \\r\\n \\r\\n
\\r\\n {{invitee.fullName}} - {{invitee.email}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{vehicle.plateNumber}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{invitee.name}} - {{invitee.email}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{contactGroup.name}} - {{contactGroup.description}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input, ChangeDetectorRef, ViewEncapsulation, Inject, OnInit, AfterViewInit } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatChipInputEvent } from '@angular/material';\r\nimport { AlertService, MessageSeverity, DialogType } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { BookingService } from '../../../services/booking.service';\r\nimport { Reservation, ReservationInvitee } from '../../../models/reservation.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { Location } from '../../../models/location.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { ReservationEditorComponent } from '../../reservations/reservation-editor.component';\r\nimport { ReservationTime, TimeIntervalFilter } from 'src/app/models/reservationtime.model';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { ReservationService } from 'src/app/services/reservation.service';\r\nimport { ContactGroup } from 'src/app/models/contactGroup.model';\r\nimport { ContactGroupSelectorComponent } from '../../common/contact-group-selector/contact-group-selector.component';\r\nimport { UserPhonebookSelectorComponent } from '../../common/userphonebook-selector/userphonebook-selector.component';\r\nimport { UserPhonebook } from 'src/app/models/userphonebook.model';\r\nimport { UserVehicle } from 'src/app/models/uservehicle.model';\r\n\r\n\r\n@Component({\r\n selector: 'calendar-booking-grid-editor',\r\n templateUrl: './calendar-booking-grid-editor.component.html',\r\n styleUrls: ['./calendar-booking-grid-editor.component.css']\r\n})\r\nexport class CalendarBookingGridEditorComponent implements OnInit, AfterViewInit {\r\n\r\n private isEditMode = false;\r\n private isNewReservation = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingReservationName: string;\r\n private facilityNames: string;\r\n private reservationOrig: Reservation = new Reservation();\r\n private reservationEdit: Reservation = new Reservation();\r\n repeatTypes: string[] = ['None', 'Daily', 'Weekly', 'Monthly', 'Yearly'];\r\n private locationList: Location[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n fcStartTimes = new FormControl();\r\n fcEndTimes = new FormControl();\r\n fcReservationInvitees = new FormControl();\r\n fcSelectedStartTime = new FormControl();\r\n fcSelectedEndTime = new FormControl();\r\n\r\n private allStartTimes: ReservationTime[] = [];\r\n private allEndTimes: ReservationTime[] = [];\r\n private allTimes: ReservationTime[] = [];\r\n startDate: string;\r\n selectedStartTime: string;\r\n selectedEndTime: string;\r\n selectStartTimeId: number;\r\n selectEndTimeId: number;\r\n locationCapacity: number;\r\n disabledTime = false;\r\n fcLocations = new FormControl('', [Validators.required]);\r\n filteredReservationInvitees: Observable;\r\n users: User[] = [];\r\n allUsers: User[] = [];\r\n inviteeList: User[] = [];\r\n contactGroups: ContactGroup[] = [];\r\n contactGroupList: ContactGroup[] = [];\r\n userPhonebooks: UserPhonebook[] = [];\r\n\r\n inputInvitee: User;\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private alertService: AlertService, private accountService: AccountService, private reservationService: ReservationService, private locationService: LocationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any, public dialog: MatDialog) {\r\n if (typeof (data.reservation) != typeof (undefined)) {\r\n //if (data.reservation.id) {\r\n // this.editReservation(data.reservation, data.location);\r\n //} else {\r\n // this.newReservation(data.location);\r\n //}\r\n if (data.reservation.invitees) {\r\n var reservationInvitees: ReservationInvitee[] = data.reservation.invitees;\r\n reservationInvitees.forEach((invitee, index, invitees) => {\r\n var u = new User();\r\n console.log(invitee);\r\n u.fullName = invitee.name;\r\n u.id = invitee.userId;\r\n u.email = invitee.email;\r\n u.cardType = invitee.cardType;\r\n u.plateNumber = invitee.plateNumber;\r\n if (!invitee.contactGroupId) {\r\n this.inviteeList.push(u);\r\n }\r\n });\r\n\r\n }\r\n\r\n Object.assign(this.reservationOrig, data.reservation);\r\n this.editReservation(data.reservation, data.location, data.timeIntervals);\r\n this.loadLocations();\r\n this.allStartTimes = data.allTimeIntervals;\r\n this.allTimes = data.allTimeIntervals;\r\n this.fcStartTimes.valueChanges.subscribe(x => {\r\n this.changeEndTime(x);\r\n });\r\n }\r\n\r\n if (!this.reservationOrig.smartRoomScheduleId) {\r\n\r\n this.alertService.startLoadingMessage(\"Loading contact list...\");\r\n this.accountService.getUsers(null, null, this.accountService.currentUser.institutionId).subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.allUsers = results;\r\n var invList = this.inviteeList;\r\n this.users = results;\r\n this.users = this.users.filter(function (item) {\r\n return invList.filter(function (i) {\r\n return i.id == item.id;\r\n }).length == 0;\r\n });\r\n\r\n for (var i in this.inviteeList) {\r\n this.inviteeList[i].userVehicles = this.getUserVehicles(this.inviteeList[i].email);\r\n }\r\n\r\n this.filteredReservationInvitees = this.fcReservationInvitees.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => typeof value === 'string' ? value : value.fullName),\r\n map(fullName => fullName ? this._filter(fullName) : this.users.slice())\r\n );\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n inviteeSearchListLength: number = 0;\r\n ngOnInit() {\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n this.form.valueChanges.subscribe((change) => {\r\n //console.log(change)\r\n })\r\n }\r\n\r\n displayFn(user?: User): string | undefined {\r\n return user ? user.fullName : undefined;\r\n }\r\n\r\n setUserVehicle(row: User, vehicle: UserVehicle) {\r\n if (vehicle) {\r\n row.cardType = vehicle.cardType;\r\n row.plateNumber = vehicle.plateNumber;\r\n }\r\n }\r\n\r\n getUserVehicles(email: string) {\r\n //invitee.userVehicles\r\n var users: User[] = this.allUsers.filter(item => item.email == email);\r\n if (users && users.length > 0) {\r\n return users[0].userVehicles;\r\n }\r\n\r\n return [];\r\n \r\n }\r\n\r\n selectInvitee($ev) {\r\n let invitee = $ev.option.value;\r\n if (!invitee.userVehicles) {\r\n invitee.userVehicles = this.getUserVehicles(invitee.email);\r\n }\r\n\r\n this.inviteeList.push(invitee);\r\n this.inputInvitee = new User();\r\n this.users = this.users.filter(item => item.id !== $ev.option.value.id);\r\n }\r\n\r\n addInvitee() {\r\n if (this.fcReservationInvitees.value) {\r\n var exist = this.inviteeList.filter(item => item.email == this.fcReservationInvitees.value);\r\n if (exist.length == 0) {\r\n var invitee = new User();\r\n invitee.email = this.fcReservationInvitees.value;\r\n this.inviteeList.push(invitee);\r\n }\r\n }\r\n }\r\n\r\n removeInvitee(invitee) {\r\n if (invitee.id) {\r\n this.inviteeList = this.inviteeList.filter(item => item.id !== invitee.id);\r\n } else {\r\n this.inviteeList = this.inviteeList.filter(item => item.email !== invitee.email);\r\n }\r\n this.users.push(invitee);\r\n }\r\n\r\n private _filter(fullName: string): User[] {\r\n const filterValue = fullName.toLowerCase();\r\n\r\n return this.users.filter(option => option && option.fullName && option.fullName.toLowerCase().indexOf(filterValue) === 0);\r\n }\r\n\r\n openDialog(): void {\r\n\r\n }\r\n\r\n addContactGroup() {\r\n //if (this.fcReservationInvitees.value) {\r\n // var exist = this.inviteeList.filter(item => item.email == this.fcReservationInvitees.value);\r\n // if (exist.length == 0) {\r\n // var cg = new ContactGroup();\r\n // cg.email = this.fcReservationInvitees.value;\r\n // this.contactGroupList.push(invitee);\r\n // }\r\n //}\r\n const dialogRef = this.dialog.open(ContactGroupSelectorComponent, {\r\n data: { header: \"Select Contact Groups\", contactGroups: this.reservationEdit.contactGroups },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (!result.isCancel) {\r\n this.contactGroups = result.selectedContactGroups;\r\n this.reservationEdit.contactGroups = this.contactGroups;\r\n }\r\n });\r\n }\r\n\r\n removeContactGroup(contactGroup) {\r\n if (contactGroup.id) {\r\n this.reservationEdit.contactGroups = this.reservationEdit.contactGroups.filter(item => item.id !== contactGroup.id);\r\n }\r\n }\r\n\r\n addFromPhonebook() {\r\n const dialogRef = this.dialog.open(UserPhonebookSelectorComponent, {\r\n data: { header: \"My Contacts\", userPhonebooks: this.userPhonebooks },\r\n width: '500px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (!result.isCancel) {\r\n this.userPhonebooks = result.selectedUserPhonebooks;\r\n }\r\n });\r\n }\r\n\r\n removeUserPhonebook(phonebook) {\r\n if (phonebook.id) {\r\n this.userPhonebooks = this.userPhonebooks.filter(item => item.id !== phonebook.id);\r\n }\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.reservationEdit.invitees = [];\r\n var isAttendeeExist = false;\r\n this.inviteeList.forEach((invitee, index, invitees) => {\r\n var resInvitee = new ReservationInvitee();\r\n resInvitee.userId = invitee.id;\r\n resInvitee.email = invitee.email;\r\n resInvitee.cardType = invitee.cardType;\r\n resInvitee.plateNumber = invitee.plateNumber;\r\n resInvitee.name = invitee.fullName;\r\n this.reservationEdit.invitees.push(resInvitee);\r\n if (!isAttendeeExist && (!this.reservationEdit.id || this.reservationEdit.id == \"0\")) {\r\n isAttendeeExist = this.accountService.currentUser.id == invitee.id;\r\n }\r\n });\r\n\r\n if (this.reservationEdit.isAttendee && !isAttendeeExist && (!this.reservationEdit.id || this.reservationEdit.id == \"0\")) {\r\n var resInvitee = new ReservationInvitee();\r\n resInvitee.userId = this.accountService.currentUser.id;\r\n resInvitee.email = this.accountService.currentUser.email;\r\n this.reservationEdit.invitees.push(resInvitee);\r\n }\r\n\r\n this.userPhonebooks.forEach((invitee, index, invitees) => {\r\n var resInvitee = new ReservationInvitee();\r\n resInvitee.email = invitee.email;\r\n resInvitee.name = invitee.name;\r\n resInvitee.phoneNumber = invitee.phoneNumber;\r\n this.reservationEdit.invitees.push(resInvitee);\r\n });\r\n\r\n //this.reservationEdit.startTime = this.getReservationTimeBy(this.selectStartTimeId);\r\n //this.reservationEdit.endTime = this.getReservationTimeBy(this.selectEndTimeId);\r\n var startDateTime = new Date(this.reservationEdit.startDate ? this.reservationEdit.startDate : this.reservationEdit.startDateTime);\r\n\r\n //startDateTime.setHours(this.reservationEdit.startTime.hour);\r\n //startDateTime.setMinutes(this.reservationEdit.startTime.minute);\r\n var startTime = this.selectedStartTime.split(':');\r\n var endTime = this.selectedEndTime.split(':');\r\n var v = this.fcSelectedStartTime.value;\r\n this.reservationEdit.startDateTime = new Date(startDateTime);\r\n this.reservationEdit.startDateTime.setHours(parseInt(startTime[0]), parseInt(startTime[1]));\r\n\r\n this.reservationEdit.endDateTime = new Date(startDateTime);\r\n\r\n this.reservationEdit.endDateTime.setHours(parseInt(endTime[0]), parseInt(endTime[1]));\r\n\r\n //var endDateTime = new Date(this.reservationEdit.endDate);\r\n\r\n //endDateTime.setHours(this.reservationEdit.endTime.hour);\r\n //endDateTime.setMinutes(this.reservationEdit.endTime.minute);\r\n //this.reservationEdit.endDateTime = endDateTime;\r\n //this.reservationEdit.repeatEndDateTime = new Date(this.reservationEdit.repeatEndDate);\r\n if (this.reservationEdit.id) {\r\n if ((this.reservationEdit.isRecurring) && (this.reservationOrig.longDescription != this.reservationEdit.longDescription ||\r\n this.reservationOrig.shortDescription != this.reservationEdit.shortDescription ||\r\n this.reservationOrig.notes != this.reservationEdit.notes ||\r\n this.reservationOrig.startDateTime != this.reservationEdit.startDateTime ||\r\n this.reservationOrig.endDateTime != this.reservationEdit.endDateTime)) {\r\n this.showDialog(\"Edit recurring event\", (val) => {\r\n this.reservationEdit.recurApplyChangesType = \"OTHER_EVENTS\";\r\n this.reservationService.updateReservation(this.reservationEdit).subscribe(response => this.saveSuccessHelper(response.data), error => this.saveFailedHelper(error));\r\n\r\n },\r\n () => {\r\n this.reservationEdit.recurApplyChangesType = \"ALL_EVENTS\";\r\n this.reservationService.updateReservation(this.reservationEdit).subscribe(response => this.saveSuccessHelper(response.data), error => this.saveFailedHelper(error));\r\n\r\n });\r\n } else {\r\n this.reservationService.updateReservation(this.reservationEdit).subscribe(response => this.saveSuccessHelper(response.data), error => this.saveFailedHelper(error));\r\n\r\n }\r\n\r\n } else {\r\n this.reservationService.newReservation(this.reservationEdit).subscribe(reservation => this.saveSuccessHelper(reservation), error => this.saveFailedHelper(error));\r\n }\r\n\r\n }\r\n\r\n private saveSuccessHelper(reservation?: Reservation) {\r\n if (reservation)\r\n Object.assign(this.reservationEdit, reservation);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n this.alertService.showMessage(\"Success\", `Reservation \\\"${this.reservationEdit.shortDescription}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n this.reservationEdit = new Reservation();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewReservation && this.accountService.currentUser.reservations.some(r => r == this.editingReservationName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close({ isCancel: false, reservation: reservation });\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n var isCancel = this.reservationEdit.id;\r\n this.reservationEdit = new Reservation();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close({ isCancel: !isCancel });\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n onCheck() {\r\n this.reservationEdit.isAttendee = !this.reservationEdit.isAttendee;\r\n }\r\n\r\n newReservation(location: Location) {\r\n this.isEditMode = true;\r\n this.isNewReservation = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingReservationName = null;\r\n this.selectedValues = {};\r\n this.reservationEdit = new Reservation();\r\n this.reservationEdit.isAttendee = true;\r\n this.reservationEdit.locationName = location.name;\r\n this.reservationEdit.locationId = location.id;\r\n this.reservationEdit.facilities = location.facilities;\r\n console.log(this.reservationEdit);\r\n return this.reservationEdit;\r\n }\r\n\r\n editReservation(reservation: Reservation, location: Location, timeIntervals: ReservationTime[]) {\r\n this.isEditMode = true;\r\n if (reservation) {\r\n this.isNewReservation = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingReservationName = reservation.shortDescription;\r\n this.selectedValues = {};\r\n this.reservationEdit = new Reservation();\r\n Object.assign(this.reservationEdit, reservation);\r\n\r\n if (!this.reservationEdit.repeatType || typeof this.reservationEdit.repeatType == 'undefined') {\r\n this.reservationEdit.repeatType = \"None\";\r\n }\r\n\r\n this.startDate = (new DateOnlyPipe('en-SG')).transform(this.reservationEdit.startDate ? this.reservationEdit.startDate : this.reservationEdit.startDateTime);\r\n this.selectedStartTime = Utilities.printTimeOnly(this.reservationEdit.startDate ? this.reservationEdit.startDate : this.reservationEdit.startDateTime, true);\r\n this.selectedEndTime = Utilities.printTimeOnly(this.reservationEdit.endDate ? this.reservationEdit.endDate : this.reservationEdit.endDateTime, true);\r\n\r\n this.reservationEdit.locationName = location.name;\r\n this.reservationEdit.locationId = location.id;\r\n this.reservationEdit.facilities = location.facilities;\r\n this.reservationEdit.timeIntervals = timeIntervals;\r\n this.reservationEdit.isAttendee = (this.reservationEdit.id == null || typeof this.reservationEdit.id == 'undefined') ? true : this.reservationEdit.isAttendee;\r\n\r\n this.locationCapacity = location.capacity;\r\n //this.selectStartTimeId = this.reservationEdit.startTime.id;\r\n //this.selectEndTimeId = this.reservationEdit.endTime.id;\r\n return this.reservationEdit;\r\n }\r\n else {\r\n return this.newReservation(location);\r\n }\r\n }\r\n\r\n loadLocations() {\r\n //this.locationService.getLocationsAndLocationTypes()\r\n // .subscribe(results => {\r\n // let locations = results[0];\r\n // this.locationsList = locations;\r\n // },\r\n // error => {\r\n // this.alertService.resetStickyMessage();\r\n // this.alertService.showStickyMessage(\"getLocationsByLocationId failed\", \"An error occured while trying to get locations from the server\", MessageSeverity.error);\r\n // });\r\n }\r\n\r\n\r\n changeLocations(id) {\r\n //this.locationService.getLocationsByLocationId(id)\r\n // .subscribe(results => {\r\n // let locations = results[0];\r\n // this.locationsList = locations;\r\n // },\r\n // error => {\r\n // this.alertService.resetStickyMessage();\r\n // this.alertService.showStickyMessage(\"getLocationsByLocationId failed\", \"An error occured while trying to get locations from the server\", MessageSeverity.error);\r\n // });\r\n }\r\n\r\n setReservationTypeId(id) {\r\n //this.reservationEdit.reservationTypeId = id;\r\n }\r\n\r\n\r\n public changeEndTime(id) {\r\n if (id != null && id != null && id.toString() != \"\") {\r\n var allTimes = this.allTimes;\r\n var resStartTime = this.getReservationTimeBy(id);\r\n var $this = this;\r\n this.allEndTimes = allTimes.filter(function (p, index, array) {\r\n if (new Date(new Date(p.value).setSeconds(0)) > new Date(new Date(resStartTime.value))) {\r\n p.description = p.description;\r\n return p;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getHourDifferenceDescription(endTime: ReservationTime): string {\r\n var diff = new Date(new Date(endTime.value).setSeconds(0)).valueOf() - new Date(new Date(this.getReservationTimeBy(this.selectStartTimeId).value).setSeconds(0)).valueOf();\r\n var diffHours = diff / (1000.0 * 3600.0);\r\n\r\n return diffHours.toFixed(1).toString();\r\n }\r\n\r\n private getReservationTimeBy(id?: any, hour?: number, minute?: number): ReservationTime {\r\n var allTimes = this.allTimes;\r\n var time: ReservationTime;\r\n if (id != null) {\r\n time = allTimes.filter(f => f.id == id)[0];\r\n } else {\r\n var t = allTimes.filter(f => f.hour == hour && f.minutes == minute);\r\n time = t != null && t.length > 0 ? t[0] : allTimes[0];\r\n }\r\n return time;\r\n }\r\n\r\n selectRepeatType() {\r\n if (this.reservationEdit.isRecurring && this.reservationEdit.repeatType != 'None') {\r\n this.showDialog(\"Edit recurring event\");\r\n } else {\r\n this.reservationEdit.repeatEndDateTime = null;\r\n this.reservationEdit.recurApplyChangesType = \"ALL_EVENTS\";\r\n }\r\n }\r\n\r\n showDialog(msg: string, okCallback?: (val?: any) => any, cancelCallback?: (val?: any) => any): void {\r\n if (!okCallback || !cancelCallback) {\r\n this.alertService.showDialog(msg, DialogType.confirm, (val) => this.configure(true, val), () => this.configure(false), \"This and following events\", \"All events\");\r\n } else {\r\n this.alertService.showDialog(msg, DialogType.confirm, okCallback, cancelCallback, \"This and following events\", \"All events\");\r\n }\r\n }\r\n\r\n configure(response: boolean, value?: string) {\r\n if (response) {\r\n this.reservationEdit.recurApplyChangesType = \"OTHER_EVENTS\";\r\n }\r\n else {\r\n this.reservationEdit.recurApplyChangesType = \"ALL_EVENTS\";\r\n }\r\n }\r\n\r\n get canManageReservations() {\r\n return this.accountService.userHasPermission(Permission.manageReservationsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\"","import { Component, ChangeDetectionStrategy, Input, OnInit, AfterViewInit, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport {\r\n CalendarEvent,\r\n CalendarEventTimesChangedEvent,\r\r\n CalendarDayViewBeforeRenderEvent,\r\n CalendarEventAction\n} from 'angular-calendar';\r\nimport { colors } from '../colors';\r\nimport { addHours, startOfDay, addMinutes } from 'date-fns';\r\nimport { CalendarFilter, Reservation } from 'src/app/models/reservation.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { CalendarBookingGridEditorComponent } from './calendar-booking-grid-editor.component';\r\nimport { ReservationService } from 'src/app/services/reservation.service';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { DayViewSchedulerComponent } from './day-view-scheduler.component';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { DialogType, AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\n\r\nconst locations = [\r\n {\r\n id: 0,\r\n name: 'Room 1',\r\n color: colors.yellow\r\n },\r\n {\r\n id: 1,\r\n name: 'Room 2',\r\n color: colors.blue\r\n }\r\n];\r\n\r\n@Component({\r\n selector: 'calendar-booking-grid',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: 'calendar-booking-grid.component.html'\r\n})\r\nexport class CalendarBookingGridComponent implements OnInit, AfterViewInit{\r\n @Input() viewDate: Date;\r\n @Input() events: CalendarEvent[];\r\n @Input() locations: Location[];\r\n @Input() startHour: number;\r\n @Input() endHour: number;\r\n\r\n @Input('calendarFilter') filter: CalendarFilter;\r\n @ViewChild('dayViewer')\r\n dayViewer: DayViewSchedulerComponent\r\n\r\n currentEvent: CalendarEvent;\r\n //events: CalendarEvent[] = [];\r\n // [\r\n // {\r\n // title: 'An event',\r\n // color: users[0].color,\r\n // start: addHours(startOfDay(new Date()), 5),\r\n // end: addMinutes(addHours(startOfDay(new Date()), 6), 15),\r\n // meta: {\r\n // user: users[0]\r\n // },\r\n // resizable: {\r\n // beforeStart: true,\r\n // afterEnd: true\r\n // },\r\n // draggable: true\r\n // },\r\n // {\r\n // title: 'Another event',\r\n // color: users[1].color,\r\n // start: addMinutes(addHours(startOfDay(new Date()), 2), 10),\r\n // end: addMinutes(addHours(startOfDay(new Date()), 2), 45),\r\n // meta: {\r\n // user: users[1]\r\n // },\r\n // resizable: {\r\n // beforeStart: true,\r\n // afterEnd: true\r\n // },\r\n // draggable: true\r\n // },\r\n // {\r\n // title: 'An 3rd event',\r\n // color: users[0].color,\r\n // start: addHours(startOfDay(new Date()), 7),\r\n // end: addMinutes(addHours(startOfDay(new Date()), 8), 30),\r\n // meta: {\r\n // user: users[0]\r\n // },\r\n // resizable: {\r\n // beforeStart: true,\r\n // afterEnd: true\r\n // },\r\n // draggable: true\r\n // }\r\n //];\r\n\r\n actions: CalendarEventAction[] = [\r\n //{\r\n // label: '',\r\n // onClick: ({ event }: { event: CalendarEvent }): void => {\r\n // this.handleEvent('view', event);\r\n // }\r\n //},\r\n {\r\n label: '',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n this.handleEvent('update', event);\r\n }\r\n },\r\n {\r\n label: '',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n this.handleEvent('delete', event);\r\n }\r\n }\r\n ];\r\n\r\n constructor(private accountService: AccountService, private alertService: AlertService,private reservationService: ReservationService, private locationService: LocationService, public dialog: MatDialog, private cd: ChangeDetectorRef,\r\n private authService: AuthService ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.events) this.events = [];\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (!this.events) this.events = [];\r\n this.dayViewer.setEvents(this.events);\r\n this.cd.detectChanges();\r\n\r\n }\r\n\r\n loadCalendarEvents(filter?: CalendarFilter) {\r\n this.reservationService.getCalendarEvents(filter).subscribe(events => {\r\n this.events = [];\r\n var currentTime = Utilities.getCurrentDate(true);\r\n events.forEach((event, index, events) => {\r\n event.start = new Date(event.start);\r\n event.end = new Date(event.end);\r\n if (event.meta != null && event.meta.reservation != null &&\r\n (event.meta.reservation.createdById == this.authService.currentUser.id || this.isAdmin)\r\n && event.end.getTime() >= currentTime.getTime()) {\r\n event.actions = this.actions;\r\n }\r\n this.events.push(event);\r\n });\r\n this.events = [...this.events];\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n eventTimesChanged({\r\n event,\r\n newStart,\r\n newEnd\r\n }: CalendarEventTimesChangedEvent): void {\r\n event.start = newStart;\r\n event.end = newEnd;\r\n this.events = [...this.events];\r\n }\r\n\r\n locationChanged({ event, newLocation }) {\r\n event.color = newLocation.color;\r\n event.meta.location = newLocation;\r\n this.events = [...this.events];\r\n }\r\n\r\n locationAdded({ event }) {\r\n event.actions = this.actions;\r\n this.events = [...this.events, event];\r\n this.currentEvent = event;\r\n //open a dialog to update here\r\n var reservation = new Reservation();\r\n reservation.startDate = event.start;\r\n reservation.endDate = event.end;\r\n \r\n reservation.institutionId = this.authService.currentUser.institutionId;\r\n this.openDialog(reservation, event.meta.location);\r\n\r\n }\r\n\r\n eventsUpdate({ events }) {\r\n this.events = events;\r\n }\r\n\r\n handleEvent(action: string, event: CalendarEvent): void {\r\n this.reservationService.getReservation(event.id.toString()).subscribe(result => {\r\n\r\n if (action === \"update\") {\r\n this.openDialog(result.data, event.meta.location);\r\n } else if (action === \"delete\") {\r\n this.deleteReservation(result.data);\r\n } else if (action === \"view\") {\r\n this.openDialog(result.data, event.meta.location);\r\n }\r\n \r\n });\r\n\r\n }\r\n\r\n apply(filter?: CalendarFilter) {\r\n //this.loadCalendarEvents(filter);\r\n }\r\n\r\n showDeleteDialog(row: Reservation, msg: string, okCallback?: (val?: any) => any, cancelCallback?: (val?: any) => any): void {\r\n if (!okCallback || !cancelCallback) {\r\n this.alertService.showDialog(msg, DialogType.confirm, (val) => this.configure(row, true, val), () => this.configure(row, false), \"This and following events\", \"All events\");\r\n } else {\r\n this.alertService.showDialog(msg, DialogType.confirm, okCallback, cancelCallback, \"This and following events\", \"All events\");\r\n }\r\n }\r\n\r\n configure(row: Reservation, response: boolean, value?: string) {\r\n if (response) {\r\n row.recurApplyChangesType = \"OTHER_EVENTS\";\r\n }\r\n else {\r\n row.recurApplyChangesType = \"ALL_EVENTS\";\r\n }\r\n }\r\n\r\n deleteReservation(row: Reservation) {\r\n if (row.isRecurring) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.shortDescription + '\\\" reservation?',\r\n DialogType.confirm, () => {\r\n this.showDeleteDialog(row, \"Delete recurring event\", (val) => {\r\n row.recurApplyChangesType = \"OTHER_EVENTS\";\r\n this.deleteReservationHelper(row);\r\n },\r\n () => {\r\n row.recurApplyChangesType = \"ALL_EVENTS\";\r\n this.deleteReservationHelper(row);\r\n });\r\n });\r\n \r\n } else {\r\n row.recurApplyChangesType = \"\";\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.shortDescription + '\\\" reservation?', DialogType.confirm, () => this.deleteReservationHelper(row));\r\n }\r\n }\r\n\r\n deleteReservationHelper(row: Reservation) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n\r\n this.reservationService.deleteReservation(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n var index = this.events.findIndex(e => e.id == row.id);\r\n this.events.splice(index, 1);\r\n this.events = [...this.events];\r\n this.cd.detectChanges();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the reservation.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n openDialog(reservation: Reservation, location: any): void {\r\n const dialogRef = this.dialog.open(CalendarBookingGridEditorComponent, {\r\n data: { header: \"New Reservation for \" + location.name, reservation: reservation, location: location },\r\n width: '800px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n var index = this.events.findIndex(e => result && result.reservation && e.id == result.reservation.id && e.meta.location.id == result.reservation.locationId);\r\n\r\n\r\n if (index < 0) {\r\n index = this.events.findIndex(e => this.currentEvent != null && e.id == this.currentEvent.id && e.meta.location.id == this.currentEvent.meta.location.id);\r\n }\r\n\r\n if (result) {\r\n if (!result.isCancel) {\r\n if (result.reservation && index > -1) {\r\n this.events[index].start = new Date(result.reservation.startDateTime);\r\n this.events[index].end = new Date(result.reservation.endDateTime);\r\n this.events[index].allDay = result.reservation.isAllDay;\r\n this.events[index].title = result.reservation.shortDescription; //`
Subject:
${result.reservation.shortDescription}

Description:
${result.reservation.longDescription}
`;\r\n this.events[index].id = result.reservation.id;\r\n this.events = [...this.events];\r\n this.cd.detectChanges();\r\n }\r\n //this.loadCalendarEvents(null);\r\n } else {\r\n this.events.splice(index, 1);\r\n this.events = [...this.events];\r\n this.cd.detectChanges();\r\n }\r\n } \r\n });\r\n }\r\n\r\n get isAdmin(): boolean {\r\n return this.accountService.userHasPermission(Permission.manageRolesPermission);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n \\r\\n
\\r\\n {{ parentLocation.name }}\\r\\n
\\r\\n
\\r\\n {{ location.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
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n &ngsp;\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","import { Component, EventEmitter, Injectable, Output, ChangeDetectorRef, Inject, LOCALE_ID, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CalendarDayViewComponent, CalendarUtils, DateAdapter, CalendarEventTitleFormatter, CalendarDayViewBeforeRenderEvent } from 'angular-calendar';\r\nimport { DayView, DayViewEvent, GetDayViewArgs, CalendarEvent, DayViewHourSegment } from 'calendar-utils';\r\nimport { takeUntil, finalize } from 'rxjs/operators';\r\nimport { fromEvent } from 'rxjs';\r\nimport { endOfDay, addMinutes } from 'date-fns';\r\nimport { Utilities } from 'src/app/services/utilities';\r\n\r\nconst EVENT_TOP = 30;\r\nconst EVENT_WIDTH = 140;\r\nconst EVENT_HEIGHT = 30;\r\n// extend the interface to add the array of locations\r\ninterface DayViewScheduler extends DayView {\r\n locations: any[];\r\n}\r\n\r\n@Injectable()\r\nexport class DayViewSchedulerCalendarUtils extends CalendarUtils {\r\n getDayView(args: GetDayViewArgs): DayViewScheduler {\r\n const view: DayViewScheduler = {\r\n ...super.getDayView(args),\r\n locations: [],\r\n \r\n };\r\n\r\n const objs = []\r\n\r\n view.events.forEach(({ event }) => {\r\n if (!event.meta.isDefault) {\r\n // assumes location objects are the same references,\r\n // if 2 locations have the same structure but different object references this will fail\r\n if (event.meta.location && view.locations.filter(f => f.id == event.meta.location.id).length == 0) {\r\n view.locations.push(event.meta.location);\r\n }\r\n } else {\r\n if (!objs.includes(event.meta.obj)) {\r\n objs.push(event.meta.obj);\r\n }\r\n }\r\n \r\n });\r\n\r\n // sort the objs by their names\r\n objs.sort((o1, o2) => o1.label.localeCompare(o2.label));\r\n\r\n // sort the locations by their names\r\n view.locations.sort((location1, location2) => location1.name.localeCompare(location2.name));\r\n view.events = view.events.map(dayViewEvent => {\r\n if (!dayViewEvent.event.meta.isDefault) {\r\n const index = view.locations.findIndex(item => item.id == dayViewEvent.event.meta.location.id);\r\n dayViewEvent.top = (index + 1) * EVENT_TOP; // change the column of the event\r\n dayViewEvent.height = EVENT_HEIGHT;\r\n dayViewEvent.left = EVENT_WIDTH * (dayViewEvent.event.start.getHours() - view.period.start.getHours()) + (EVENT_WIDTH * dayViewEvent.event.start.getMinutes() / 60) + (dayViewEvent.event.start.getHours() - view.period.start.getHours());\r\n let width = EVENT_WIDTH - dayViewEvent.left;\r\n if (dayViewEvent.event.end) {\r\n width = (EVENT_WIDTH * (dayViewEvent.event.end.getHours() - view.period.start.getHours()) + (EVENT_WIDTH * dayViewEvent.event.end.getMinutes() / 60) + (dayViewEvent.event.end.getHours() - view.period.start.getHours())) - dayViewEvent.left;\r\n }\r\n\r\n dayViewEvent.width = width;\r\n } else {\r\n const index = objs.indexOf(dayViewEvent.event.meta.obj);\r\n dayViewEvent.left = index * EVENT_WIDTH; // change the column of the event\r\n return dayViewEvent;\r\n }\r\n return dayViewEvent;\r\n });\r\n view.width = EVENT_WIDTH; //view.locations.length * EVENT_WIDTH;\r\n return view;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nexport class CustomEventTitleFormatter extends CalendarEventTitleFormatter {\r\n weekTooltip(event: CalendarEvent, title: string) {\r\n if (!event.meta.tmpEvent) {\r\n return super.weekTooltip(event, title);\r\n }\r\n }\r\n\r\n dayTooltip(event: CalendarEvent, title: string) {\r\n if (!event.meta.tmpEvent) {\r\n var tooltip = '';\r\n if (event.meta.reservation != null) {\r\n tooltip = `
Subject:
${event.meta.reservation.shortDescription}
`;\r\n tooltip += `
Organised By:
${event.meta.reservation.createdByName}
`;\r\n } else {\r\n tooltip = title;\r\n }\r\n return super.dayTooltip(event, tooltip);\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n // tslint:disable-line max-classes-per-file\r\n selector: 'mwl-day-view-scheduler',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styles: [\r\n `\r\n.cal-day-view{\r\ndisplay: flex;\r\n}\r\n .day-view-column-headers {\r\n \r\n \r\n }\r\n .day-view-column-header {\r\n width: 250px;\r\n border: thin solid #e1e1e1;\r\n text-align: center;\r\n height: 30px;\r\n }\r\n.cal-hour-header .cal-hour-cols{\r\n display: flex;\r\n width: 100%;\r\n border: solid 1px #e1e1e1;\r\n position: relative;\r\n height: 30px;\r\n}\r\n.cal-hour{\r\n\r\n display: grid;\r\n grid-template-columns: 70px 70px;\r\n}\r\n\r\n.cal-hour-cols .cal-hour{\r\n border-right: 1px solid #e1e1e1;\r\n}\r\n.cal-hour-cols .cal-time{\r\nborder-right: thin dashed #e1e1e1 !important;\r\n}\r\n\r\n.cal-day-view .cal-time, .cal-day-view .cal-hour-segment.cal-after-hour-start .cal-time{\r\ndisplay:block !important;\r\n}\r\n\r\n.cal-day-view-hour-container{\r\ndisplay: flex;\r\n width: 90%;\r\n overflow-x: auto;\r\n overflow-y: hidden;\r\n}\r\n\r\n.cal-day-view .cal-hour:not(:last-child) .cal-hour-segment, .cal-day-view .cal-hour:last-child :not(:last-child) .cal-hour-segment\r\n{\r\nborder-bottom: none !important;\r\nborder-right: thin dashed #e1e1e1;\r\n}\r\n\r\n.cal-hour-container .cal-hour-cols .cal-hour{\r\n background-color: #fff;\r\n}\r\n\r\n.cal-past-time {\r\nbackground: repeating-linear-gradient( -55deg, #f7f7f7, #f1f1f1 10px, #f7f6f6 10px, #f1f1f1 20px );\r\n}\r\n `\r\n ],\r\n providers: [\r\n {\r\n provide: CalendarUtils,\r\n useClass: DayViewSchedulerCalendarUtils\r\n }\r\n ],\r\n templateUrl: 'day-view-scheduler.component.html'\r\n})\r\n\r\nexport class DayViewSchedulerComponent extends CalendarDayViewComponent {\r\n constructor(private cd: ChangeDetectorRef, private ut: CalendarUtils, @Inject(LOCALE_ID) private loc: string, private da: DateAdapter) {\r\n super(cd, ut, loc, da);\r\n }\r\n @Input() viewDate: Date;\r\n @Input() events: CalendarEvent[];\r\n @Input() locations: Location[];\r\n @Input() isDefaultView: boolean;\r\n\r\n view: DayViewScheduler;\r\n\r\n @Output() locationChanged = new EventEmitter();\r\n @Output() locationAdded = new EventEmitter();\r\n @Output() eventsUpdate = new EventEmitter();\r\n \r\n eventDragged(dayEvent: DayViewEvent, xPixels: number, yPixels: number): void {\r\n if (yPixels !== 0) {\r\n super.dragEnded(dayEvent, { y: yPixels, x: 0 } as any); // original behaviour\r\n }\r\n if (xPixels !== 0) {\r\n const columnsMoved = xPixels / EVENT_WIDTH;\r\n const currentColumnIndex = this.view.locations.findIndex(\r\n location => location === dayEvent.event.meta.location\r\n );\r\n const newIndex = currentColumnIndex + columnsMoved;\r\n const newUser = this.view.locations[newIndex];\r\n if (newUser) {\r\n this.locationChanged.emit({ event: dayEvent.event, newUser });\r\n }\r\n }\r\n }\r\n\r\n getEvents(location: any, events: DayViewEvent[]) {\r\n var ev: DayViewEvent[] = [];\r\n events.forEach(function (e) {\r\n if (e.event.meta.location.id == location.id) {\r\n ev.push(e);\r\n }\r\n });\r\n\r\n return ev;\r\n }\r\n\r\n dragToCreateActive = false;\r\n getTimezoneOffsetString(date: Date): string {\r\n const timezoneOffset = date.getTimezoneOffset();\r\n const hoursOffset = String(\r\n Math.floor(Math.abs(timezoneOffset / 60))\r\n ).padStart(2, '0');\r\n const minutesOffset = String(Math.abs(timezoneOffset % 60)).padEnd(2, '0');\r\n const direction = timezoneOffset > 0 ? '-' : '+';\r\n return `T00:00:00${direction}${hoursOffset}${minutesOffset}`;\r\n }\r\n\r\n floorToNearest(amount: number, precision: number) {\r\n return Math.floor(amount / precision) * precision;\r\n }\r\n\r\n ceilToNearest(amount: number, precision: number) {\r\n return Math.ceil(amount / precision) * precision;\r\n }\r\n\r\n createDefaultEvent(\r\n segment: DayViewHourSegment,\r\n mouseDownEvent: MouseEvent,\r\n segmentElement: HTMLElement,\r\n location: any) {\r\n console.log('createDefaultEvent');\r\n console.log(segment);\r\n console.log(mouseDownEvent);\r\n console.log(segmentElement);\r\n console.log(location);\r\n if (segment.date.getTime() >= Utilities.getCurrentDate(true).getTime()) {\r\n const endDate = addMinutes(segment.date, 30);\r\n const event: CalendarEvent = {\r\n id: this.events ? this.events.length : 1,\r\n title: 'New reservation',\r\n start: segment.date,\r\n end: endDate,\r\n meta: {\r\n tmpEvent: true,\r\n location: location\r\n }\r\n };\r\n //this.events = [...this.events, event];\r\n this.locationAdded.emit({ event: event, location });\r\n //this.refreshEv();\r\n }\r\n }\r\n\r\n startDragToCreate(\r\n segment: DayViewHourSegment,\r\n mouseDownEvent: MouseEvent,\r\n segmentElement: HTMLElement,\r\n location: any\r\n ) {\r\n\r\n\r\n if (segment.date.getTime() >= Utilities.getCurrentDate(true).getTime()) {\r\n \r\n const dragToSelectEvent: CalendarEvent = {\r\n id: this.events ? this.events.length : 1,\r\n title: 'New reservation',\r\n start: segment.date,\r\n meta: {\r\n tmpEvent: true,\r\n location: location\r\n }\r\n };\r\n this.events = [...this.events, dragToSelectEvent];\r\n const segmentPosition = segmentElement.getBoundingClientRect();\r\n this.dragToCreateActive = true;\r\n \r\n var endOfView = this.view.period.end ? new Date(this.view.period.end.setMinutes(this.view.period.end.getMinutes() + 1)) : endOfDay(this.viewDate);\r\n\r\n fromEvent(document, 'mousemove')\r\n .pipe(\r\n finalize(() => {\r\n delete dragToSelectEvent.meta.tmpEvent;\r\n this.dragToCreateActive = false;\r\n\r\n if (dragToSelectEvent && dragToSelectEvent.end && dragToSelectEvent.end.getTime() > endOfView.getTime()) {\r\n dragToSelectEvent.end = endOfView;\r\n } else {\r\n if (dragToSelectEvent && !dragToSelectEvent.end && dragToSelectEvent.start) {\r\n let endD = new Date(dragToSelectEvent.start);\r\n endD.setMinutes(endD.getMinutes() + 30);\r\n dragToSelectEvent.end = endD;\r\n }\r\n }\r\n //this.refresh;\r\n this.locationAdded.emit({ event: dragToSelectEvent, location });\r\n this.refreshEv();\r\n }),\r\n takeUntil(fromEvent(document, 'mouseup'))\r\n )\r\n .subscribe((mouseMoveEvent: MouseEvent) => {\r\n const minutesDiff = this.ceilToNearest(\r\n mouseMoveEvent.clientX - segmentPosition.left,\r\n 60\r\n );\r\n\r\n const daysDiff =\r\n this.floorToNearest(\r\n mouseMoveEvent.clientX - segmentPosition.left,\r\n segmentPosition.width\r\n ) / segmentPosition.width;\r\n \r\n const newEnd = addMinutes(segment.date, minutesDiff / 2);//addDays(addMinutes(segment.date, minutesDiff), daysDif;\r\n if (newEnd.getTime() > segment.date.getTime() && newEnd.getTime() <= endOfView.getTime()) {\r\n dragToSelectEvent.end = newEnd;\r\n\r\n }\r\n this.refreshEv();\r\n //this.refresh;\r\n });\r\n }\r\n }\r\n\r\n private refreshEv() {\r\n this.events = [...this.events];\r\n //this.view.events = this.events;\r\n //console.log(this.events);\r\n this.eventsUpdate.emit({ events: this.events });\r\n this.cd.detectChanges();\r\n }\r\n\r\n setEvents(events: CalendarEvent[]) {\r\n this.events = events;\r\n }\r\n\r\n cssPastTime(segment: DayViewHourSegment) {\r\n return segment.date.getTime() < Utilities.getCurrentDate(true).getTime() ? 'cal-past-time' : ''\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mwl-demo-utils-calendar-header',\r\n template: `\r\n
\r\n
\r\n
\r\n \r\n Previous\r\n
\r\n \r\n Today\r\n
\r\n \r\n Next\r\n
\r\n \r\n \r\n
\r\n

{{ viewDate | calendarDate: ((view === 'list' ? 'day' : view) + 'ViewTitle'):locale }}

\r\n
\r\n
\r\n
\r\n \r\n Month\r\n
\r\n \r\n Week\r\n
\r\n \r\n Day\r\n \r\n \r\n List\r\n \r\n \r\n \r\n \r\n
\r\n `\r\n})\r\nexport class CalendarHeaderComponent {\r\n @Input() view: string;\r\n\r\n @Input() viewDate: Date;\r\n\r\n @Input() locale: string = 'en';\r\n\r\n @Output() viewChange: EventEmitter = new EventEmitter();\r\n\r\n @Output() viewDateChange: EventEmitter = new EventEmitter();\r\n}\r\n","module.exports = \".day-view-event-block {\\r\\n border: 1px solid #68b3fd;\\r\\n background-color: #1e90ff;\\r\\n color: white;\\r\\n padding-left: 5px;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .calendar-container {\\r\\n padding: 0px !important;\\r\\n }\\r\\n\\r\\n .day-view-column-header {\\r\\n width: 100px !important;\\r\\n height: 50px !important;\\r\\n }\\r\\n\\r\\n .cal-hour-segment, .cal-hour-header .cal-hour-cols, .cal-event {\\r\\n height: 50px !important;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGtCQUFrQjtBQUNwQjs7OztBQUlBO0VBQ0U7SUFDRSx1QkFBdUI7RUFDekI7O0VBRUE7SUFDRSx1QkFBdUI7SUFDdkIsdUJBQXVCO0VBQ3pCOztFQUVBO0lBQ0UsdUJBQXVCO0VBQ3pCO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGF5LXZpZXctZXZlbnQtYmxvY2sge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICM2OGIzZmQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFlOTBmZjtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcblxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5jYWxlbmRhci1jb250YWluZXIge1xyXG4gICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZGF5LXZpZXctY29sdW1uLWhlYWRlciB7XHJcbiAgICB3aWR0aDogMTAwcHggIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogNTBweCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmNhbC1ob3VyLXNlZ21lbnQsIC5jYWwtaG91ci1oZWFkZXIgLmNhbC1ob3VyLWNvbHMsIC5jYWwtZXZlbnQge1xyXG4gICAgaGVpZ2h0OiA1MHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Loading events...\\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 >\\r\\r\\n =\\\"\\r\\n
{{ev.start | date:'hh:mm a'}} : {{ev.title | slice:0:10 }}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n {{ segment.date | calendarDate:'weekViewHour':locale }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","import { LOCALE_ID, Inject, Component, ChangeDetectionStrategy, OnInit, ChangeDetectorRef, ViewEncapsulation, ViewChild, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { CalendarEvent, CalendarEventTitleFormatter, CalendarView, CalendarEventTimesChangedEvent, CalendarEventAction } from 'angular-calendar';\r\nimport {\r\n isSameMonth,\r\n isSameDay,\r\n startOfMonth,\r\n endOfMonth,\r\n startOfWeek,\r\n endOfWeek,\r\n startOfDay,\r\n endOfDay,\r\n format,\r\n addHours, addDays, addMinutes\r\n} from 'date-fns';\r\nimport { Observable, fromEvent } from 'rxjs';\r\nimport { colors } from './colors';\r\nimport { finalize, takeUntil } from 'rxjs/operators';\r\nimport { DayViewHourSegment } from 'calendar-utils';\r\nimport MapUtils from 'src/app/helpers/maputils';\r\nimport { UserInfoVal, Facility } from 'src/app/models/facility.model';\r\nimport { Location } from 'src/app/models/location.model';\r\nimport { Reservation, CalendarFilter } from 'src/app/models/reservation.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { MessageSeverity, AlertService } from 'src/app/services/alert.service';\r\nimport { ReservationService } from '../../services/reservation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { MatButtonModule, MatCalendar, MatDatepicker } from '@angular/material';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { DatePipe } from '@angular/common';\r\nimport { trigger, transition, animate, style } from '@angular/animations';\r\nimport { LocType } from 'src/app/models/enums';\r\nimport { CalendarBookingGridComponent } from './calendar-booking-grid/calendar-booking-grid.component';\r\nimport { ReservationListComponent } from './reservations/reservations.component';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\n\r\nfunction getTimezoneOffsetString(date: Date): string {\r\n const timezoneOffset = date.getTimezoneOffset();\r\n const hoursOffset = String(\r\n Math.floor(Math.abs(timezoneOffset / 60))\r\n ).padStart(2, '0');\r\n const minutesOffset = String(Math.abs(timezoneOffset % 60)).padEnd(2, '0');\r\n const direction = timezoneOffset > 0 ? '-' : '+';\r\n return `T00:00:00${direction}${hoursOffset}${minutesOffset}`;\r\n}\r\n\r\nfunction floorToNearest(amount: number, precision: number) {\r\n return Math.floor(amount / precision) * precision;\r\n}\r\n\r\nfunction ceilToNearest(amount: number, precision: number) {\r\n return Math.ceil(amount / precision) * precision;\r\n}\r\n\r\nexport class CustomEventTitleFormatter extends CalendarEventTitleFormatter {\r\n constructor(@Inject(LOCALE_ID) private locale: string) {\r\n super();\r\n }\r\n\r\n weekTooltip(event: CalendarEvent, title: string) {\r\n if (!event.meta.tmpEvent) {\r\n return super.weekTooltip(event, title);\r\n }\r\n }\r\n\r\n dayTooltip(event: CalendarEvent, title: string) {\r\n if (!event.meta.tmpEvent) {\r\n var tooltip = '';\r\n if (event.meta.reservation != null) {\r\n tooltip = `
Subject:
${event.meta.reservation.shortDescription}
`;\r\n tooltip += `
Organised By:
${event.meta.reservation.createdByName}
`;\r\n } else {\r\n tooltip = title;\r\n }\r\n return super.dayTooltip(event, \"ambot\");\r\n }\r\n }\r\n\r\n //day(event: CalendarEvent, title: string) {\r\n // var s = `
Subject:
${event.title}
`;\r\n // if (event.meta.reservation != null || event.meta.reservation != undefined) {\r\n // s += `
Location:
${event.meta.reservation.locationName}
`;\r\n // var facilityNames = '';\r\n // for (let f of event.meta.reservation.facilities) {\r\n // facilityNames += f.name + \", \";\r\n // }\r\n // if (facilityNames) {\r\n // var count = facilityNames.length - 2;\r\n // facilityNames = facilityNames.slice(0, count);\r\n // s += `
Facilities:
${facilityNames}
`;\r\n // }\r\n // }\r\n // return s;\r\n //}\r\n\r\n month(event: CalendarEvent): string {\r\n var s = `${new DatePipe(this.locale).transform(\r\n event.start,\r\n 'h:m a',\r\n this.locale\r\n )} ${event.title}`;\r\n if (event.meta.reservation != null || event.meta.reservation != undefined) {\r\n s += `
Location:
${event.meta.reservation.locationName}
`;\r\n var facilityNames = '';\r\n for (let f of event.meta.reservation.facilities) {\r\n facilityNames += f.name + \", \";\r\n }\r\n if (facilityNames) {\r\n var count = facilityNames.length - 2;\r\n facilityNames = facilityNames.slice(0, count);\r\n s += `
Facilities:
${facilityNames}
`;\r\n }\r\n s += '

';\r\n }\r\n return s;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'booking-calendar',\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n templateUrl: 'calendar.component.html',\r\n styleUrls: ['calendar.component.css'],\r\n animations: [\r\n trigger('slideInOut', [\r\n transition(':enter', [\r\n style({ transform: 'translateX(-100%)' }),\r\n animate('200ms ease-in', style({ transform: 'translateX(0%)' }))\r\n ]),\r\n transition(':leave', [\r\n animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))\r\n ])\r\n ])\r\n ],\r\n providers: [\r\n {\r\n provide: CalendarEventTitleFormatter,\r\n useClass: CustomEventTitleFormatter\r\n }\r\n ],\r\n //styles: [\r\n // `\r\n // .disable-hover {\r\n // pointer-events: none;\r\n // }\r\n // `\r\n //],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CalendarComponent\r\n implements OnInit, OnChanges\r\n{\r\n view: string = 'day';\r\n startDate = new Date();\r\n endDate = new Date();\r\n viewDate = new Date();\r\n reservations: Reservation[];\r\n facilityList: Facility[];\r\n locationList: Location[];\r\n locationColList: Location[];\r\n calendarLocations: any[];\r\n changeDetector: ChangeDetectorRef;\r\n events$: Observable>>;\r\n dragToCreateActive = false;\r\n activeDayIsOpen: boolean = false;\r\n fcLocations = new FormControl();\r\n fcFacilities = new FormControl();\r\n fcStartTimes = new FormControl();\r\n fcEndTimes = new FormControl();\r\n //filter: CalendarFilter = new CalendarFilter();\r\n events: CalendarEvent[] = [];\r\n sideBarOpened: boolean = true;\r\n currentInstitution: Institution;\r\n dayStartHour: number;\r\n dayEndHour: number;\r\n eventTimesChanged({\r\n event,\r\n newStart,\r\n newEnd\r\n }: CalendarEventTimesChangedEvent): void {\r\n event.start = newStart;\r\n event.end = newEnd;\r\n this.events = [...this.events];\r\n }\r\n\r\n facilityChanged({ event, newReservation }) {\r\n event.color = newReservation.color;\r\n event.meta.reservation = newReservation;\r\n this.events = [...this.events];\r\n }\r\n\r\n \r\n constructor(private http: HttpClient, private cdr: ChangeDetectorRef,private alertService: AlertService, private accountService: AccountService,\r\n private reservationService: ReservationService, protected configurations: ConfigurationService, private locationService: LocationService,\r\n private institutionService: InstitutionService, private authService: AuthService) {\r\n //this.filter.locationIds = [];\r\n //this.filter.facilityIds = [];\r\n\r\n //this.institutionService.getInstitutionById(this.accountService.currentUser.institutionId).subscribe(result => {\r\n // this.currentInstitution = result.data;\r\n // this.dayStartHour = this.currentInstitution && this.currentInstitution.startTime > 0 ? this.currentInstitution.startTime : 8;\r\n // this.dayEndHour = this.currentInstitution && this.currentInstitution.endTime > 0 ? this.currentInstitution.endTime - 1 : 20;\r\n // //this.cdr.detectChanges();\r\n //});\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n console.log(this.filter);\r\n this.viewDate = this.filter.start;\r\n this.apply();\r\n }\r\n\r\n @Input() filter: CalendarFilter;\r\n @Output() public bookingComplete = new EventEmitter();\r\n\r\n @ViewChild('bookingGrid')\r\n bookingGrid: CalendarBookingGridComponent\r\n\r\n @ViewChild('bookingList')\r\n bookingList: ReservationListComponent\r\n\r\n @ViewChild('calendar')\r\n _datePicker: MatCalendar\r\n\r\n calendarEvents: CalendarEvent[];\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n if (this._datePicker) {\r\n this._datePicker.selectedChange.subscribe(x => {\r\n if (typeof x != typeof (undefined)) {\r\n this.viewDate = x;\r\n this.filter.viewDate = this.viewDate;\r\n this.filter.start = this.filter.end = this.viewDate;\r\n this.apply();\r\n //if (this.view == 'day') {\r\n // this.bookingGrid.apply(this.filter);\r\n // this.bookingGrid.loadCalendarEvents(this.filter);\r\n //}\r\n\r\n }\r\n });\r\n }\r\n\r\n this.apply();\r\n }\r\n\r\n buildingList: Location[];\r\n\r\n actions: CalendarEventAction[] = [\r\n //{\r\n // label: '',\r\n // onClick: ({ event }: { event: CalendarEvent }): void => {\r\n // this.bookingGrid.handleEvent('view', event);\r\n // }\r\n //},\r\n {\r\n label: '',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n this.bookingGrid.handleEvent('update', event);\r\n }\r\n },\r\n {\r\n label: '',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n this.bookingGrid.handleEvent('delete', event);\r\n }\r\n }\r\n ];\r\n\r\n loadData() {\r\n\r\n //this.reservationService.getCalendarEvents(this.filter).subscribe(events => {\r\n // this.calendarEvents = [];\r\n // events.forEach((event, index, events) => {\r\n // event.start = new Date(event.start);\r\n // event.end = new Date(event.end);\r\n // event.actions = this.actions;\r\n // this.calendarEvents.push(event);\r\n // });\r\n\r\n //});\r\n if (this.filter == null) {\r\n this.filter = new CalendarFilter();\r\n }\r\n\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.filter.isBooking = true;\r\n this.reservationService.getReservationsLocationsFacilities(null, null, this.filter)\r\n .subscribe(results => {\r\n\r\n let reservations = results[0];\r\n let facilities = results[1];\r\n let locations = results[2];\r\n\r\n reservations.forEach((reservation, index, reservations) => {\r\n (reservation).index = index + 1;\r\n });\r\n\r\n\r\n this.reservations = reservations;\r\n let parentLocations = new Map();\r\n\r\n locations.forEach((location, index, locations) => {\r\n (location).index = index + 1;\r\n if (location.parentLocation && location.parentLocation.locationTypeName == LocType.Building) {\r\n if (!parentLocations.has(location.parentLocationId)) {\r\n parentLocations.set(location.parentLocationId, location.parentLocation);\r\n }\r\n }\r\n \r\n });\r\n\r\n\r\n this.locationList = locations;\r\n //this.locationColList = locations;\r\n this.facilityList = facilities;\r\n\r\n this.buildingList = Array.from(parentLocations.values()); //this.locationList.filter(f => f.locationTypeName == LocType.Building);\r\n console.log(this.buildingList);\r\n //this.locationList = locations;\r\n //this.locationColList = locations;\r\n this.facilityList = facilities;\r\n\r\n //this._datePicker.selectedChange.emit();\r\n //if (this.view != 'day') {\r\n // this.fetchEvents();\r\n //}\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve reservations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n \r\n getRoomsByBuildingId(id) {\r\n let unsortedLocations = this.locationList.filter(f => f.parentLocationId == id)\r\n unsortedLocations.sort((a, b) => (a.name < b.name ? -1 : 1));\r\n\r\n return unsortedLocations;\r\n }\r\n\r\n\r\n fetchEvents(): void {\r\n const getStart: any = {\r\n month: startOfMonth,\r\n week: startOfWeek,\r\n day: startOfDay\r\n }[this.view];\r\n\r\n const getEnd: any = {\r\n month: endOfMonth,\r\n week: endOfWeek,\r\n day: endOfDay\r\n }[this.view];\r\n\r\n if (this.view == 'month') {\r\n this.filter.start = null;\r\n this.filter.end = null;\r\n }\r\n\r\n var locColumnList = this.locationColList;\r\n this.events$ = this.reservationService.getReservationsWithFilter(this.filter)\r\n .pipe(map((results: Reservation[]) => {\r\n return results.map((reservation: Reservation) => {\r\n return {\r\n title: reservation.shortDescription,//`
Subject:
${reservation.shortDescription}

Description:
${reservation.longDescription}
`,\r\n start: new Date(reservation.startDateTime),\r\n end: new Date(reservation.endDateTime),\r\n allDay: reservation.isAllDay,\r\n color: colors.yellow,\r\n meta: {\r\n reservation: reservation,\r\n locations: locColumnList\r\n }\r\n };\r\n });\r\n }));\r\n\r\n this.events$.subscribe(ev => this.events = ev);\r\n }\r\n\r\n fetchReservations() {\r\n if (this.view == 'month') {\r\n this.filter.start = null;\r\n }\r\n\r\n this.reservationService.getReservationsWithFilter(this.filter)\r\n .subscribe(results => {\r\n\r\n let reservations = results;\r\n\r\n reservations.forEach((reservation, index, reservations) => {\r\n (reservation).index = index + 1;\r\n });\r\n\r\n\r\n this.reservations = reservations;\r\n var locList: Location[] = [];\r\n for (var l of reservations) {\r\n var loc = new Location();\r\n loc.id = l.locationId;\r\n loc.name = l.locationName;\r\n if (locList.map(function (e) { return e.id; }).indexOf(loc.id) < 0) {\r\n locList.push(loc);\r\n }\r\n }\r\n this.locationColList = [];\r\n this.locationColList = locList;\r\n\r\n if (this.view == 'list') {\r\n this.bookingList.loadData(this.reservations);\r\n }\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve reservations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n \r\n }\r\n\r\n fetchLocations() {\r\n this.locationService.getCalendarLocations(this.filter)\r\n .subscribe(results => {\r\n this.calendarLocations = results;\r\n });\r\n }\r\n loadCalendarEvents(filter?: CalendarFilter) {\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.reservationService.getCalendarEvents(this.filter).subscribe(events => {\r\n this.calendarEvents = [];\r\n var currentTime = Utilities.getCurrentDate(true);\r\n events.forEach((event, index, events) => {\r\n event.start = new Date(event.start);\r\n event.end = new Date(event.end);\r\n if (event.meta != null && event.meta.reservation != null && event.meta.reservation.createdById == this.authService.currentUser.id\r\n && event.end.getTime() >= currentTime.getTime()) {\r\n event.actions = this.actions;\r\n }\r\n this.calendarEvents.push(event);\r\n });\r\n\r\n });\r\n }\r\n \r\n //dayStartHour = 8;\r\n //dayEndHour = 20;\r\n\r\n apply() {\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.view == 'month') {\r\n this.filter.start = null;\r\n this.filter.startTime = null;\r\n this.filter.endTime = null;\r\n this.fetchReservations();\r\n this.fetchEvents();\r\n } else {\r\n this.institutionService.getInstitutionById(this.accountService.currentUser.institutionId).subscribe(result => {\r\n this.currentInstitution = result.data;\r\n this.dayStartHour = !this.currentInstitution || !this.currentInstitution.startTime ? 8 : this.currentInstitution.startTime;\r\n this.dayEndHour = !this.currentInstitution || !this.currentInstitution.endTime ? 20 : this.currentInstitution.endTime - 1;\r\n this.filter.start = this.viewDate;\r\n this.filter.start = new Date(this.filter.start.setHours(this.dayStartHour, 0, 0, 0));\r\n this.filter.startTime = new Date(this.filter.start.setHours(this.dayStartHour, 0, 0, 0));\r\n this.filter.endTime = new Date(this.filter.start.setHours(this.dayEndHour, 0, 0, 0));\r\n\r\n if (this.view == 'day') {\r\n this.fetchLocations();\r\n if (this.bookingGrid) {\r\n this.bookingGrid.loadCalendarEvents(this.filter);\r\n } else {\r\n this.loadCalendarEvents(this.filter);\r\n }\r\n } else {\r\n this.filter.start = null;\r\n this.filter.end = null;\r\n //this.view = 'day';\r\n this.fetchReservations();\r\n }\r\n\r\n });\r\n \r\n }\r\n\r\n \r\n }\r\n\r\n clear() {\r\n this.filter = new CalendarFilter();\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.apply();\r\n }\r\n\r\n dayClicked({\r\n date,\r\n events\r\n }: {\r\n date: Date;\r\n events: Array>;\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: CalendarEvent<{ reservation: Reservation }>): void {\r\n //window.open(\r\n // `https://www.themoviedb.org/movie/${event.meta.film.id}`,\r\n // '_blank'\r\n //);\r\n }\r\n\r\n startDragToCreate(\r\n segment: DayViewHourSegment,\r\n mouseDownEvent: MouseEvent,\r\n segmentElement: HTMLElement\r\n ) {\r\n const dragToSelectEvent: CalendarEvent = {\r\n id: this.events.length,\r\n title: 'New event',\r\n start: segment.date,\r\n meta: {\r\n tmpEvent: true\r\n }\r\n };\r\n this.events = [...this.events, dragToSelectEvent];\r\n const segmentPosition = segmentElement.getBoundingClientRect();\r\n this.dragToCreateActive = true;\r\n const endOfView = endOfWeek(this.viewDate);\r\n\r\n fromEvent(document, 'mousemove')\r\n .pipe(\r\n finalize(() => {\r\n delete dragToSelectEvent.meta.tmpEvent;\r\n this.dragToCreateActive = false;\r\n this.refresh();\r\n }),\r\n takeUntil(fromEvent(document, 'mouseup'))\r\n )\r\n .subscribe((mouseMoveEvent: MouseEvent) => {\r\n const minutesDiff = ceilToNearest(\r\n mouseMoveEvent.clientY - segmentPosition.top,\r\n 30\r\n );\r\n\r\n const daysDiff =\r\n floorToNearest(\r\n mouseMoveEvent.clientX - segmentPosition.left,\r\n segmentPosition.width\r\n ) / segmentPosition.width;\r\n\r\n const newEnd = addDays(addMinutes(segment.date, minutesDiff), daysDiff);\r\n if (newEnd > segment.date && newEnd < endOfView) {\r\n dragToSelectEvent.end = newEnd;\r\n }\r\n this.refresh();\r\n });\r\n }\r\n\r\n private refresh() {\r\n this.events = [...this.events];\r\n this.cdr.detectChanges();\r\n }\r\n\r\n public goBack() {\r\n this.bookingComplete.emit(this.viewDate); \r\n }\r\n}\r\n","export const colors: any = {\r\n red: {\r\n primary: '#ad2121',\r\n secondary: '#FAE3E3'\r\n },\r\n blue: {\r\n primary: '#1e90ff',\r\n secondary: '#D1E8FF'\r\n },\r\n yellow: {\r\n primary: '#e3bc08',\r\n secondary: '#FDF1BA'\r\n }\r\n};\r\n","module.exports = \".box {\\r\\n background-color: #FFCC55;\\r\\n max-height: 0px;\\r\\n overflow-y: hidden;\\r\\n transition: ease-in-out 400ms max-height;\\r\\n}\\r\\n\\r\\n .box.opened {\\r\\n max-height: 500px;\\r\\n transition: ease-in-out 600ms max-height;\\r\\n }\\r\\n\\r\\n .optionGroup {\\r\\n font-weight: bold;\\r\\n color: #000 !important;\\r\\n}\\r\\n\\r\\n .optionGroup mat-pseudo-checkbox {\\r\\n width: 0px !important;\\r\\n height: 0px !important;\\r\\n border: 0px !important;\\r\\n display: none !important;\\r\\n }\\r\\n\\r\\n .optionGroup .mat-option.mat-option-disabled {\\r\\n color: #000 !important;\\r\\n }\\r\\n\\r\\n .optionChild {\\r\\n padding-left: 35px;\\r\\n }\\r\\n\\r\\n .cal-search-box {\\r\\n \\r\\n border-radius: 0px;\\r\\n border-left: 0px;\\r\\n\\r\\n display: block;\\r\\n width: 100%;\\r\\n height: 34px;\\r\\n padding: 6px 12px;\\r\\n font-size: 14px;\\r\\n line-height: 1.42857143;\\r\\n color: #555;\\r\\n background-color: #fff;\\r\\n background-image: none;\\r\\n border: 1px solid #ccc;\\r\\n box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%);\\r\\n transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;\\r\\n outline: none;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYWxlbmRhci9sYW5kaW5nLXBhZ2UvbGFuZGluZy1wYWdlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx5QkFBeUI7RUFDekIsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQix3Q0FBd0M7QUFDMUM7O0VBRUU7SUFDRSxpQkFBaUI7SUFDakIsd0NBQXdDO0VBQzFDOztFQUVGO0VBQ0UsaUJBQWlCO0VBQ2pCLHNCQUFzQjtBQUN4Qjs7RUFFRTtJQUNFLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIsc0JBQXNCO0lBQ3RCLHdCQUF3QjtFQUMxQjs7RUFFQTtJQUNFLHNCQUFzQjtFQUN4Qjs7RUFFQTtJQUNFLGtCQUFrQjtFQUNwQjs7RUFFRjs7RUFFRSxrQkFBa0I7RUFDbEIsZ0JBQWdCOztFQUVoQixjQUFjO0VBQ2QsV0FBVztFQUNYLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLHVCQUF1QjtFQUN2QixXQUFXO0VBQ1gsc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsMkNBQTJDO0VBQzNDLHFFQUFxRTtFQUNyRSxhQUFhO0FBQ2YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NhbGVuZGFyL2xhbmRpbmctcGFnZS9sYW5kaW5nLXBhZ2UuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5ib3gge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkNDNTU7XHJcbiAgbWF4LWhlaWdodDogMHB4O1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICB0cmFuc2l0aW9uOiBlYXNlLWluLW91dCA0MDBtcyBtYXgtaGVpZ2h0O1xyXG59XHJcblxyXG4gIC5ib3gub3BlbmVkIHtcclxuICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xyXG4gICAgdHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgNjAwbXMgbWF4LWhlaWdodDtcclxuICB9XHJcblxyXG4ub3B0aW9uR3JvdXAge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiAgLm9wdGlvbkdyb3VwIG1hdC1wc2V1ZG8tY2hlY2tib3gge1xyXG4gICAgd2lkdGg6IDBweCAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiAwcHggIWltcG9ydGFudDtcclxuICAgIGJvcmRlcjogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3B0aW9uR3JvdXAgLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9wdGlvbkNoaWxkIHtcclxuICAgIHBhZGRpbmctbGVmdDogMzVweDtcclxuICB9XHJcblxyXG4uY2FsLXNlYXJjaC1ib3gge1xyXG4gIFxyXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcclxuICBib3JkZXItbGVmdDogMHB4O1xyXG5cclxuICBkaXNwbGF5OiBibG9jaztcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDM0cHg7XHJcbiAgcGFkZGluZzogNnB4IDEycHg7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gIGNvbG9yOiAjNTU1O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2IoMCAwIDAgLyA4JSk7XHJcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n

Search for an available resource to book

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Location
\\r\\n \\r\\n \\r\\n 0 ? 'none' : 'block' }\\\">No results.\\r\\n \\r\\n {{building.name}}\\r\\n {{location.name}}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
Facility
\\r\\n \\r\\n {{facility.name}} - {{facility.description}}\\r\\n \\r\\n
\\r\\n
\\r\\n
Min. Capacity
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, ViewChild, Input, AfterViewInit, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\r\nimport { MatCalendar, MatDatepickerInputEvent } from '@angular/material';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { AlertService, DialogType, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { Location } from 'src/app/models/location.model';\r\nimport { CalendarFilter } from 'src/app/models/reservation.model';\r\nimport { Facility } from 'src/app/models/facility.model';\r\nimport { ReservationService } from 'src/app/services/reservation.service';\r\nimport { LocType } from 'src/app/models/enums';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { animate, style, transition, trigger } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'calendar-landing-page',\r\n templateUrl: './landing-page.component.html',\r\n animations: [\r\n trigger('slideInOut', [\r\n transition(':enter', [\r\n style({ transform: 'translateX(-100%)' }),\r\n animate('200ms ease-in', style({ transform: 'translateX(0%)' }))\r\n ]),\r\n transition(':leave', [\r\n animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))\r\n ])\r\n ])\r\n ],\r\n styleUrls: ['./landing-page.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CalendarLandingPageComponent implements OnInit, AfterViewInit {\r\n loadingIndicator: boolean;\r\n show_no_results = true;\r\n buildingList: Location[];\r\n facilityList: Facility[];\r\n locationList: Location[];\r\n locationListCopy: Location[];\r\n fcLocations = new FormControl('', [Validators.required]);\r\n fcFacilities = new FormControl();\r\n filter: CalendarFilter = new CalendarFilter();\r\n showcalendar: boolean = false;\r\n selectedDate: any;\r\n locSearchKeyword: string;\r\n @ViewChild('calendar')\r\n _datePicker: MatCalendar\r\n\r\n @Output()\r\n dateChange: EventEmitter>;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private authService: AuthService, private configurations: ConfigurationService, private reservationService: ReservationService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.initFilter();\r\n this.getFilters();\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n if (this._datePicker) {\r\n this._datePicker.selectedChange.subscribe(x => {\r\n if (typeof x != typeof (undefined)) {\r\n this.filter.viewDate = x;\r\n this.filter.start = this.filter.end = x;\r\n }\r\n });\r\n }\r\n }\r\n\r\n selectDate(ev) {\r\n this.filter.viewDate = ev;\r\n this.filter.start = this.filter.end = ev;\r\n\r\n }\r\n\r\n initFilter() {\r\n this.filter = new CalendarFilter();\r\n this.filter.start = new Date();\r\n }\r\n\r\n getFilters() {\r\n if (this.filter == null) {\r\n this.filter = new CalendarFilter();\r\n }\r\n\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.filter.isBooking = true;\r\n this.reservationService.getCalendarFilters(this.filter)\r\n .subscribe(results => {\r\n\r\n let facilities = results[0];\r\n let locations = results[1];\r\n\r\n //let parentLocations = new Map();\r\n\r\n //locations.forEach((location, index, locations) => {\r\n // (location).index = index + 1;\r\n // if (location.parentLocation && location.parentLocation.locationTypeName == LocType.Building) {\r\n // if (!parentLocations.has(location.parentLocationId)) {\r\n // parentLocations.set(location.parentLocationId, location.parentLocation);\r\n // }\r\n // }\r\n\r\n //});\r\n\r\n\r\n this.locationList = locations;\r\n this.locationListCopy = locations;\r\n this.facilityList = facilities;\r\n this.getLocationsByBuild();\r\n //this.buildingList = Array.from(parentLocations.values()); //this.locationList.filter(f => f.locationTypeName == LocType.Building);\r\n this.facilityList = facilities;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve locations/facilities from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getRoomsByBuildingId(id, value) {\r\n let unsortedLocations = this.locationList.filter(r => r.parentLocationId == id && Utilities.searchArray(value, false, r.name, r.description))\r\n unsortedLocations.sort((a, b) => (a.name < b.name ? -1 : 1));\r\n\r\n return unsortedLocations;\r\n }\r\n\r\n apply() {\r\n if (this.filter.locationIds && this.filter.locationIds.length > 0) {\r\n this.showcalendar = !this.showcalendar;\r\n } else {\r\n\r\n }\r\n \r\n }\r\n\r\n clear() {\r\n this.filter = new CalendarFilter();\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.locSearchKeyword = '';\r\n this.locationSearchOnKeyUp(this.locSearchKeyword);\r\n this.apply();\r\n }\r\n\r\n bookingComplete(ev) {\r\n //this.clear();\r\n this.filter = new CalendarFilter();\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.filter.start = ev;\r\n this.selectedDate = ev;\r\n this.showcalendar = false;\r\n this.locSearchKeyword = '';\r\n //this.buildingList = [...this.buildingList];\r\n this.locationSearchOnKeyUp(this.locSearchKeyword);\r\n this.apply();\r\n \r\n }\r\n\r\n getLocationsByBuild() {\r\n let parentLocations = new Map();\r\n\r\n this.locationListCopy.forEach((location, index, locations) => {\r\n (location).index = index + 1;\r\n if (location.parentLocation && location.parentLocation.locationTypeName == LocType.Building) {\r\n if (!parentLocations.has(location.parentLocationId)) {\r\n parentLocations.set(location.parentLocationId, location.parentLocation);\r\n }\r\n }\r\n\r\n });\r\n\r\n this.buildingList = Array.from(parentLocations.values()); \r\n }\r\n\r\n locationSearchOnKeyUp(value) {\r\n this.locationListCopy = this.search(value);\r\n this.getLocationsByBuild();\r\n }\r\n\r\n search(value: string) {\r\n return this.locationList.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.no-padding-top{\\r\\n padding-top: 0px !important;\\r\\n}\\r\\n\\r\\n.font-unbold {\\r\\n font-weight: 100 !important;\\r\\n}\\r\\n\\r\\n.padding-right-10 {\\r\\n padding-right: 10px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jYWxlbmRhci9yZXNlcnZhdGlvbnMvcmVzZXJ2YXRpb24tZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBR0E7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLDhCQUE4QjtBQUNoQyIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2FsZW5kYXIvcmVzZXJ2YXRpb25zL3Jlc2VydmF0aW9uLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubm8tcGFkZGluZy10b3B7XHJcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9udC11bmJvbGQge1xyXG4gIGZvbnQtd2VpZ2h0OiAxMDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnBhZGRpbmctcmlnaHQtMTAge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'reservations.editor.ReservationShortDescriptionRequired' | 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\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

\\r\\n \\r\\n {{reservationEdit.locationName}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'reservations.editor.LocationRequired' | 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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../../services/animations';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { ReservationService } from '../../../services/reservation.service';\r\nimport { Reservation } from '../../../models/reservation.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Facility } from '../../../models/facility.model';\r\nimport { Location } from '../../../models/location.model';\r\nimport { ReservationTime } from '../../../models/reservationtime.model';\r\n\r\n@Component({\r\n selector: 'reservation-list-editor',\r\n templateUrl: './reservation-editor.component.html',\r\n styleUrls: ['./reservation-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ReservationListEditorComponent {\r\n\r\n private isEditMode = false;\r\n private isNewReservation = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingReservationName: string;\r\n private reservationEdit: Reservation = new Reservation();\r\n private allFacilities: Facility[] = [];\r\n private allLocations: Location[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n private allStartTimes: ReservationTime[] = [];\r\n private allEndTimes: ReservationTime[] = [];\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public disabledTime = false;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('facilities')\r\n private facilities;\r\n\r\n @ViewChild('locationsSelector')\r\n private locationsSelector;\r\n\r\n @ViewChild('allStartTimesSelector')\r\n private allStartTimesSelector;\r\n\r\n @ViewChild('allEndTimesSelector')\r\n private allEndTimesSelector;\r\n\r\n @ViewChild('startTime')\r\n private startTime;\r\n\r\n @ViewChild('endTime')\r\n private endTime;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private reservationService: ReservationService) {\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n\r\n if (!this.reservationEdit.isAllDay) {\r\n if (this.reservationEdit.startTime == null) {\r\n this.startTime.valid = false;\r\n }\r\n\r\n if (this.reservationEdit.endTime == null) {\r\n this.endTime.valid = false;\r\n }\r\n\r\n if (!this.startTime.valid || !this.endTime.valid) return;\r\n }\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n this.reservationEdit.startTime = this.getReservationTimeBy(this.reservationEdit.startTime.id);\r\n this.reservationEdit.endTime = this.getReservationTimeBy(this.reservationEdit.endTime.id);\r\n var startDateTime = new Date(this.reservationEdit.startDate);\r\n\r\n startDateTime.setHours(this.reservationEdit.startTime.hour);\r\n startDateTime.setMinutes(this.reservationEdit.startTime.minutes);\r\n this.reservationEdit.startDateTime = startDateTime;\r\n\r\n var endDateTime = new Date(this.reservationEdit.endDate);\r\n\r\n endDateTime.setHours(this.reservationEdit.endTime.hour);\r\n endDateTime.setMinutes(this.reservationEdit.endTime.minutes);\r\n this.reservationEdit.endDateTime = endDateTime;\r\n this.reservationEdit.repeatEndDateTime = new Date(this.reservationEdit.repeatEndDate);\r\n if (this.isNewReservation) {\r\n this.reservationService.newReservation(this.reservationEdit).subscribe(reservation => this.saveSuccessHelper(reservation), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.reservationService.updateReservation(this.reservationEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(reservation?: Reservation) {\r\n if (reservation) {\r\n Object.assign(this.reservationEdit, reservation);\r\n }\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewReservation)\r\n this.alertService.showMessage(\"Success\", `Reservation \\\"${this.reservationEdit.shortDescription}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to reservation \\\"${this.reservationEdit.shortDescription}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.reservationEdit = new Reservation();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewReservation && this.accountService.currentUser.reservations.some(r => r == this.editingReservationName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.reservationEdit = new Reservation();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n }\r\n\r\n private getAllTimes(): ReservationTime[] {\r\n let times: ReservationTime[] =\r\n [new ReservationTime(1, \"00:00\", \"00:00\", 0, 0),\r\n new ReservationTime(2, \"00:30\", \"00:29\", 0, 29),\r\n new ReservationTime(3, \"01:00\", \"01:00\", 1, 59),\r\n new ReservationTime(4, \"01:30\", \"02:29\", 1, 29),\r\n new ReservationTime(5, \"02:00\", \"02:00\", 2, 59),\r\n new ReservationTime(6, \"02:30\", \"03:29\", 2, 29),\r\n new ReservationTime(7, \"03:00\", \"03:00\", 3, 59),\r\n new ReservationTime(8, \"03:30\", \"04:29\", 3, 29),\r\n new ReservationTime(9, \"04:00\", \"04:00\", 4, 59),\r\n new ReservationTime(10, \"04:30\", \"05:29\", 4, 29),\r\n new ReservationTime(11, \"05:00\", \"05:00\", 5, 59),\r\n new ReservationTime(12, \"05:30\", \"06:29\", 5, 29),\r\n new ReservationTime(13, \"06:00\", \"06:00\", 6, 59),\r\n new ReservationTime(14, \"06:30\", \"07:29\", 6, 29),\r\n new ReservationTime(15, \"07:00\", \"07:00\", 7, 59),\r\n new ReservationTime(16, \"07:30\", \"08:29\", 7, 29),\r\n new ReservationTime(17, \"08:00\", \"08:00\", 8, 59),\r\n new ReservationTime(18, \"08:30\", \"09:29\", 8, 29),\r\n new ReservationTime(19, \"09:00\", \"09:00\", 9, 59),\r\n new ReservationTime(20, \"09:30\", \"10:29\", 9, 29),\r\n new ReservationTime(21, \"10:00\", \"10:00\", 10, 59),\r\n new ReservationTime(22, \"10:30\", \"11:29\", 11, 29),\r\n new ReservationTime(23, \"11:00\", \"11:00\", 10, 59),\r\n new ReservationTime(24, \"11:30\", \"12:29\", 11, 29),\r\n new ReservationTime(25, \"12:00\", \"12:00\", 12, 59),\r\n new ReservationTime(26, \"12:30\", \"13:29\", 12, 29),\r\n new ReservationTime(27, \"13:00\", \"13:00\", 13, 59),\r\n new ReservationTime(28, \"13:30\", \"14:29\", 13, 29),\r\n new ReservationTime(29, \"14:00\", \"14:00\", 14, 59),\r\n new ReservationTime(29, \"14:30\", \"15:29\", 14, 29),\r\n new ReservationTime(30, \"15:00\", \"15:00\", 15, 59),\r\n new ReservationTime(32, \"15:30\", \"16:29\", 15, 29),\r\n new ReservationTime(33, \"16:00\", \"16:00\", 16, 59),\r\n new ReservationTime(34, \"16:30\", \"17:29\", 16, 29),\r\n new ReservationTime(35, \"17:00\", \"17:00\", 17, 59),\r\n new ReservationTime(36, \"17:30\", \"18:29\", 17, 29),\r\n new ReservationTime(37, \"18:00\", \"18:00\", 18, 59),\r\n new ReservationTime(38, \"18:30\", \"19:29\", 18, 29),\r\n new ReservationTime(39, \"19:00\", \"19:00\", 19, 59),\r\n new ReservationTime(40, \"19:30\", \"20:29\", 19, 29),\r\n new ReservationTime(41, \"20:00\", \"20:00\", 20, 59),\r\n new ReservationTime(42, \"20:30\", \"21:29\", 20, 29),\r\n new ReservationTime(43, \"21:00\", \"21:00\", 21, 59),\r\n new ReservationTime(44, \"21:30\", \"22:29\", 21, 29),\r\n new ReservationTime(45, \"22:00\", \"22:00\", 22, 59),\r\n new ReservationTime(46, \"22:30\", \"23:29\", 22, 29),\r\n new ReservationTime(47, \"23:00\", \"23:00\", 22, 59),\r\n new ReservationTime(48, \"23:30\", \"23:29\", 23, 29),\r\n new ReservationTime(49, \"24:00\", \"23:59\", 23, 59)];\r\n return times;\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n public toggleTime() {\r\n this.disabledTime = !this.reservationEdit.isAllDay;\r\n setTimeout(() => this.allStartTimesSelector.refresh());\r\n setTimeout(() => this.allEndTimesSelector.refresh());\r\n }\r\n public changeEndTime(id) {\r\n if (this.reservationEdit.startTime != null && this.reservationEdit.startTime.id != null && this.reservationEdit.startTime.id.toString() != \"\") {\r\n var allTimes = this.getAllTimes();\r\n var startTime = this.reservationEdit.startTime;\r\n this.reservationEdit.startTime = this.getReservationTimeBy(this.reservationEdit.startTime.id);\r\n var $this = this;\r\n this.allEndTimes = allTimes.filter(function (p, index, array) {\r\n if (new Date(new Date(p.value).setSeconds(0)) > new Date(startTime.value)) {\r\n p.description = p.description + \" (\" + $this.getHourDifferenceDescription(p) + \" hours)\";\r\n return p;\r\n }\r\n });\r\n\r\n setTimeout(() => this.allEndTimesSelector.refresh());\r\n }\r\n }\r\n\r\n public getHourDifferenceDescription(endTime: ReservationTime): string {\r\n var diff = new Date(new Date(endTime.value).setSeconds(0)).valueOf() - new Date(new Date(this.reservationEdit.startTime.value).setSeconds(0)).valueOf();\r\n var diffHours = diff / (1000.0 * 3600.0);\r\n\r\n return diffHours.toFixed(1).toString();\r\n }\r\n\r\n private getReservationTimeBy(id?: any, hour?: number, minute?: number): ReservationTime {\r\n var allTimes = this.getAllTimes();\r\n var time: ReservationTime;\r\n if (id != null) {\r\n time = allTimes.filter(f => f.id == id)[0];\r\n } else {\r\n var t = allTimes.filter(f => f.hour == hour && f.minutes == minute);\r\n time = t != null && t.length > 0 ? t[0] : allTimes[0];\r\n }\r\n return time;\r\n }\r\n\r\n newReservation(allLocations: Location[]) {\r\n this.isEditMode = true;\r\n this.isNewReservation = true;\r\n this.showValidationErrors = true;\r\n this.disabledTime = false;\r\n this.editingReservationName = null;\r\n this.allLocations = allLocations;\r\n this.selectedValues = {};\r\n this.reservationEdit = new Reservation();\r\n this.reservationEdit.repeatType = \"None\";\r\n this.reservationEdit.startDate = new Date();\r\n this.reservationEdit.endDate = new Date();\r\n\r\n this.allStartTimes = this.getAllTimes();\r\n this.reservationEdit.startTime = this.allStartTimes[0];\r\n this.reservationEdit.endTime = this.allStartTimes[47];\r\n //this.allEndTimes = this.getAllTimes();\r\n setTimeout(() => this.allStartTimesSelector.refresh());\r\n //setTimeout(() => this.allEndTimesSelector.refresh());\r\n return this.reservationEdit;\r\n }\r\n\r\n editReservation(reservation: Reservation, allLocations: Location[]) {\r\n this.isEditMode = true;\r\n if (reservation) {\r\n this.isNewReservation = false;\r\n this.showValidationErrors = true;\r\n var allT = this.getAllTimes();\r\n this.allStartTimes = allT;\r\n this.allEndTimes = allT;\r\n setTimeout(() => this.allStartTimesSelector.refresh());\r\n this.editingReservationName = reservation.shortDescription;\r\n this.selectedValues = {};\r\n this.setReservationTypes(reservation, allLocations);\r\n this.reservationEdit = new Reservation();\r\n Object.assign(this.reservationEdit, reservation);\r\n this.disabledTime = this.reservationEdit.isAllDay;\r\n this.reservationEdit.repeatEndDate = new Date(reservation.repeatEndDateTime);\r\n var startTime = new Date(reservation.startDateTime);\r\n var endTime = new Date(reservation.endDateTime);\r\n\r\n this.reservationEdit.startDate = new Date(startTime);\r\n this.reservationEdit.endDate = new Date(endTime);\r\n\r\n this.reservationEdit.startTime = this.getReservationTimeBy(null, startTime.getHours(), startTime.getMinutes());\r\n this.reservationEdit.endTime = this.getReservationTimeBy(null, endTime.getHours(), endTime.getMinutes());\r\n\r\n return this.reservationEdit;\r\n }\r\n else {\r\n return this.newReservation(allLocations);\r\n }\r\n }\r\n\r\n private setReservationTypes(reservation: Reservation, allLocations?: Location[]) {\r\n\r\n this.allLocations = allLocations ? [...allLocations] : [];\r\n\r\n if (allLocations == null || this.allLocations.length != allLocations.length)\r\n setTimeout(() => this.locationsSelector.refresh());\r\n }\r\n\r\n get canManageReservations() {\r\n return this.accountService.userHasPermission(Permission.manageReservationsPermission)\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2FsZW5kYXIvcmVzZXJ2YXRpb25zL3Jlc2VydmF0aW9ucy5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'reservations.management.ReservationDetails' | translate:editingReservationName}}

\\r\\n

{{editingReservationName ? ('reservations.management.EditReservation' | translate:editingReservationName) : ('reservations.management.NewReservation' | 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\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { ReservationService } from '../../../services/reservation.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Reservation, CalendarFilter } from '../../../models/reservation.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { ReservationListEditorComponent } from \"./reservation-editor.component\";\r\nimport { Facility } from '../../../models/facility.model';\r\n\r\nimport { Location } from '../../../models/location.model';\r\nimport { fadeInOut } from '../../../services/animations';\r\n\r\nimport { DateTimeOnlyPipe } from '../../../pipes/datetime.pipe';\r\nimport { DateOnlyPipe } from '../../../pipes/datetime.pipe';\r\nimport { CalendarEvent } from 'calendar-utils';\r\nimport { ReservationTime } from 'src/app/models/reservationtime.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { BookingGridEditorComponent } from '../booking-grid/booking-grid-editor.component';\r\nimport { CalendarBookingGridEditorComponent } from '../calendar-booking-grid/calendar-booking-grid-editor.component';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\n@Component({\r\n selector: 'reservation-list',\r\n templateUrl: './reservations.component.html',\r\n styleUrls: ['./reservations.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ReservationListComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: Reservation[] = [];\r\n rowsCache: Reservation[] = [];\r\n allFacilities: Facility[] = [];\r\n allLocations: Location[] = [];\r\n editedReservation: Reservation;\r\n sourceReservation: Reservation;\r\n editingReservationName: { shortDescription: string };\r\n loadingIndicator: boolean;\r\n @Input() viewDate: Date;\r\n @Input() filteredReservations: Reservation[];\r\n @Input() calendarFilter: CalendarFilter;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('reservationEditor')\r\n reservationEditor: ReservationListEditorComponent;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private reservationService: ReservationService, private configurationService: ConfigurationService, public dialog: MatDialog) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.loadingIndicator = false;\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'shortDescription', name: gT('reservations.management.ShortDescription') },\r\n { prop: 'longDescription', name: gT('reservations.management.LongDescription') },\r\n { prop: 'startDateTime', name: 'Date', pipe: new DateOnlyPipe('en-SG') },\r\n //{ prop: 'endDateTime', name: gT('reservations.management.EndDateTime'), pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'locationName', name: gT('reservations.management.LocationName') },\r\n //{ prop: 'isAllDayYesNo', name: gT('reservations.management.IsAllDay') },\r\n { prop: 'status', name: gT('reservations.management.Status') },\r\n { prop: 'bookedBy', name: gT('reservations.management.BookedBy') },\r\n { prop: 'repeatType', name: gT('reservations.management.RepeatType') },\r\n { prop: 'repeatEndDateTime', name: gT('reservations.management.RepeatEndDateTime'), pipe: new DateOnlyPipe('en-SG') },\r\n { name: 'Attendance', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: true, sortable: false, draggable: false }\r\n\r\n ];\r\n\r\n //this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n\r\n this.reservationEditor.changesSavedCallback = () => {\r\n this.addNewReservationToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.reservationEditor.changesCancelledCallback = () => {\r\n this.editedReservation = null;\r\n this.sourceReservation = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewReservationToList() {\r\n if (this.sourceReservation) {\r\n Object.assign(this.sourceReservation, this.editedReservation);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceReservation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceReservation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedReservation = null;\r\n this.sourceReservation = null;\r\n }\r\n else {\r\n let reservation = new Reservation();\r\n Object.assign(reservation, this.editedReservation);\r\n this.editedReservation = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (reservation).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, reservation);\r\n this.rows.splice(0, 0, reservation);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData(reservations?: Reservation[]) {\r\n this.loadingIndicator = true;\r\n\r\n if (reservations) {\r\n this.filteredReservations = reservations;\r\n }\r\n this.filteredReservations.forEach((reservation, index, reservations) => {\r\n (reservation).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...this.filteredReservations];\r\n this.rows = this.filteredReservations;\r\n this.loadingIndicator = false;\r\n\r\n\r\n //this.reservationService.getReservationsLocationsFacilities()\r\n // .subscribe(results => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // //let reservations = results[0];\r\n // let locations = results[2];\r\n\r\n // this.filteredReservations.forEach((reservation, index, reservations) => {\r\n // (reservation).index = index + 1;\r\n // });\r\n\r\n\r\n // this.rowsCache = [...this.filteredReservations];\r\n // this.rows = this.filteredReservations;\r\n\r\n // this.allLocations = locations;\r\n // },\r\n // error => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve reservations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // MessageSeverity.error);\r\n // });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.shortDescription, r.longDescription));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingReservationName = null;\r\n this.reservationEditor.resetForm(true);\r\n }\r\n\r\n\r\n newReservation() {\r\n this.editingReservationName = null;\r\n this.sourceReservation = null;\r\n this.editedReservation = this.reservationEditor.newReservation(this.allLocations);\r\n this.editorModal.show();\r\n }\r\n\r\n\r\n editReservation(row: Reservation) {\r\n this.editingReservationName = { shortDescription: row.shortDescription };\r\n this.sourceReservation = row;\r\n this.editedReservation = this.reservationEditor.editReservation(row, this.allLocations);\r\n this.editorModal.show();\r\n }\r\n\r\n deleteReservation(row: Reservation) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.shortDescription + '\\\" reservation?', DialogType.confirm, () => this.deleteReservationHelper(row));\r\n }\r\n\r\n\r\n deleteReservationHelper(row: Reservation) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.reservationService.deleteReservation(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the reservation.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n book(reservation: Reservation) {\r\n //var reservation = new Reservation();\r\n //reservation.startDate = reservation.endDate = this.viewDate;\r\n //var startTime = this.getReservationTimeBy(this.selectStartTimeId);\r\n //var endTime = this.getReservationTimeBy(this.selectEndTimeId);\r\n //reservation.startTime = startTime;\r\n //reservation.endTime = endTime;\r\n //reservation.institutionId = this.authService.currentUser.institutionId;\r\n //var selectedTimes: ReservationTime[] = [];\r\n //this.selectedTimings.sort((a, b) => (a.timeInterval.hour * 60 + a.timeInterval.minutes > b.timeInterval.hour * 60 + b.timeInterval.minutes) ? 1 :\r\n // ((b.timeInterval.hour * 60 + b.timeInterval.minutes > a.timeInterval.hour * 60 + a.timeInterval.minutes ? -1 : 0)));\r\n\r\n //this.selectedTimings.forEach((s, sIndex, si) => {\r\n // selectedTimes.push(s.timeInterval);\r\n //});\r\n\r\n //if (this.selectRow != null) {\r\n\r\n //}\r\n var location = new Location();\r\n location.id = reservation.locationId;\r\n this.openDialog(reservation, location, reservation.timeIntervals);\r\n }\r\n\r\n header: string;\r\n openDialog(reservation: Reservation, location: Location, timeIntervals: ReservationTime[]): void {\r\n const dialogRef = this.dialog.open(BookingGridEditorComponent, {\r\n data: { header: this.header, reservation: reservation, location: location, timeIntervals: timeIntervals, allTimeIntervals: null },\r\n width: '800px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n //this.selectedTimings = [];\r\n //this.selectRow = null;\r\n //this.loadAllTimeIntervals();\r\n });\r\n }\r\n\r\n\r\n downloadAttendanceList(reservation) {\r\n\r\n }\r\n\r\n get canManageReservations() {\r\n return this.accountService.userHasPermission(Permission.manageReservationsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb21tb24vSW1hZ2VVcGxvYWRlci9pbWFnZXVwbG9hZGVyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbW1vbi9JbWFnZVVwbG9hZGVyL2ltYWdldXBsb2FkZXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGxvYWQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMjhhNzQ1O1xyXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{message}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n 0\\\">\\r\\n \\r\\n
Upload Progress
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { ImageFileService } from 'src/app/services/image-file.service';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\n\r\n@Component({\r\n selector: 'image-upload',\r\n templateUrl: './imageuploader.component.html',\r\n styleUrls: ['./imageuploader.component.css']\r\n})\r\nexport class ImageUploadComponent implements OnInit {\r\n public progress: number;\r\n public message: string;\r\n public filename: string;\r\n\r\n @Input() showTxt: boolean;\r\n @Output() public onUploadFinished = new EventEmitter();\r\n\r\n constructor(private http: HttpClient, private fileService: ImageFileService, private alertService: AlertService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public uploadFile = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n let fileToUpload = files[0];\r\n const formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n\r\n this.fileService.uploadFile>(formData)\r\n .subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response) {\r\n this.message = 'Upload success.';\r\n //var fileUploadResponse: any = event.body;\r\n //this.filename = fileUploadResponse.fileName;\r\n this.onUploadFinished.emit(event.body);\r\n }\r\n }, error => {\r\n if (error && error.error && error.error[\"\"]) {\r\n this.message = \"Upload Failed\";\r\n for (let str of error.error[\"\"]) {\r\n this.alertService.showStickyMessage(\"Upload Failed\", str, MessageSeverity.error);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public reset() {\r\n this.progress = 0;\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb21tb24vYXNzZXQtc2VsZWN0b3IvYXNzZXQtc2VsZWN0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGlCQUFpQjtBQUNuQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29tbW9uL2Fzc2V0LXNlbGVjdG9yL2Fzc2V0LXNlbGVjdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBsb2FkIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBjb2xvcjogIzI4YTc0NTtcclxuICBtYXJnaW4tbGVmdDogMTVweDtcclxuICBsaW5lLWhlaWdodDogMzZweDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{row.purchaseDate | date:\\\"dd/MM/yyyy\\\"}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{row.warrantyStart | date:\\\"dd/MM/yyyy\\\"}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{row.warrantyEnd | date:\\\"dd/MM/yyyy\\\"}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject, AfterViewInit, AfterViewChecked, ChangeDetectorRef } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { Asset } from 'src/app/models/asset.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { UserVehicle } from 'src/app/models/uservehicle.model';\r\nimport { AssetService } from 'src/app/services/asset.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\n\r\n@Component({\r\n selector: 'asset-selector',\r\n templateUrl: './asset-selector.component.html',\r\n styleUrls: ['./asset-selector.component.css']\r\n})\r\nexport class AssetSelectorComponent implements OnInit, AfterViewChecked {\r\n public assetIds: number[];\r\n assets: Asset[];\r\n assetsCache: Asset[];\r\n selectedAssets: any[];\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n columns: any[] = [];\r\n rows: Asset[] = [];\r\n rowsCache: Asset[] = [];\r\n allRowsSelected = false;\r\n\r\n totalRows = 0;\r\n //@Input() showTxt: boolean;\r\n //@Output() public onSelectedFinished = new EventEmitter();\r\n\r\n constructor(private alertService: AlertService, private http: HttpClient, private assetService: AssetService, private translationService: AppTranslationService,\r\n public dialogRef: MatDialogRef, private cdref: ChangeDetectorRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.assets) != typeof (undefined)) {\r\n this.selectedAssets = [];\r\n Object.assign(this.selectedAssets, data.assets);\r\n this.allRowsSelected = false;\r\n }\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n window.dispatchEvent(new Event('resize'));\r\n this.cdref.detectChanges();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 1);\r\n this.filter.sorts = 'serialNumber';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'serialNumber', name: 'Serial No.' },\r\n { prop: 'assetModelName', name: 'Asset Model' },\r\n { prop: 'assetTypeName', name: 'Asset Type' },\r\n { prop: 'purchaseDate', name: 'Purchase Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'warrantyStart', name: 'Warranty Start', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'warrantyEnd', name: 'Warranty End', pipe: new DateOnlyPipe('en-SG') },\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n //this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(SerialNumber|assetModelName|assetTypeName)@=' + this.keyword;\r\n\r\n this.assetService.getAssetsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let assets = results.pagedData;\r\n\r\n assets.forEach((asset, index, assets) => {\r\n (asset).index = index + 1;\r\n (asset).assetId = asset.id;\r\n });\r\n\r\n\r\n this.rowsCache = [...assets];\r\n this.rows = assets;\r\n this.rows = [...this.rows]\r\n this.totalRows = results.totalCount;\r\n this.allRowsSelected = false;\r\n //if (this.totalRows == this.selectedAssets.length) {\r\n // this.allRowsSelected = true;\r\n //}\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n onSelect({ selected }) {\r\n console.log('Select Event', selected, this.selectedAssets);\r\n\r\n //this.selectedAssets.splice(0, this.selectedAssets.length);\r\n if (selected && selected.length > 0) {\r\n this.selectedAssets.push(...selected);\r\n } else {\r\n //remove only unselected\r\n if (this.selectedAssets) {\r\n this.selectedAssets = Utilities.getUniqueValues(this.selectedAssets, 'assetId');\r\n this.selectedAssets.forEach((asset, index, assets) => {\r\n let indx = this.rows.findIndex(e => e.assetId == asset.assetId);\r\n if (indx > -1) {\r\n this.selectedAssets[index].deleted = true;\r\n console.log(index);\r\n }\r\n });\r\n\r\n this.selectedAssets = this.selectedAssets.filter(e => !e.deleted);\r\n }\r\n }\r\n\r\n this.selectedAssets = Utilities.getUniqueValues(this.selectedAssets, 'assetId');\r\n //this.setSelectAll();\r\n }\r\n\r\n setSelectAll() {\r\n let isAllSelected = true;\r\n this.rows.forEach((asset, index, assets) => {\r\n let indx = this.selectedAssets.findIndex(e => e.assetId == asset.assetId);\r\n if (isAllSelected) {\r\n isAllSelected = indx > -1;\r\n }\r\n });\r\n\r\n this.allRowsSelected = isAllSelected;\r\n }\r\n\r\n onCheckboxSelect(event, row) {\r\n if (event.currentTarget.checked) {\r\n this.selectedAssets.push(row);\r\n } else {\r\n let indx = this.selectedAssets.findIndex(e => e.assetId == row.assetId);\r\n if(indx > -1)this.selectedAssets.splice(indx, 1);\r\n }\r\n this.selectedAssets = Utilities.getUniqueValues(this.selectedAssets, 'assetId');\r\n this.setSelectAll();\r\n }\r\n\r\n onActivate(event) {\r\n //console.log(event);\r\n //console.log(event.row);\r\n }\r\n\r\n getId(row) {\r\n return row.assetId;\r\n }\r\n //ngOnInit() {\r\n // this.assetService.getAssets(this.assetService.currentUser.id).subscribe(results => {\r\n // this.assets = results;\r\n // if (typeof (this.selectedAssets) != typeof (undefined)) {\r\n // this.assets.map(cg => {\r\n // const index = this.selectedAssets.findIndex(item => item.email == cg.email)\r\n // if (index >= 0) {\r\n // cg.checked = true;\r\n // }\r\n // });\r\n // }\r\n\r\n // this.assetsCache = this.assets;\r\n\r\n // }, error => { });\r\n //}\r\n\r\n public save = () => {\r\n this.selectedAssets = Utilities.getUniqueValues(this.selectedAssets, 'assetId');\r\n this.dialogRef.close({ isCancel: false, selectedAssets: this.selectedAssets });\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb21tb24vY29udGFjdC1ncm91cC1zZWxlY3Rvci9jb250YWN0LWdyb3VwLXNlbGVjdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbW1vbi9jb250YWN0LWdyb3VwLXNlbGVjdG9yL2NvbnRhY3QtZ3JvdXAtc2VsZWN0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGxvYWQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMjhhNzQ1O1xyXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescription
\\r\\n \\r\\n {{row.name}}{{row.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { ContactGroupService } from 'src/app/services/contactgroup.service';\r\nimport { ContactGroup } from 'src/app/models/contactGroup.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { AlertService } from 'src/app/services/alert.service';\r\n\r\n@Component({\r\n selector: 'contact-group-selector',\r\n templateUrl: './contact-group-selector.component.html',\r\n styleUrls: ['./contact-group-selector.component.css']\r\n})\r\nexport class ContactGroupSelectorComponent implements OnInit {\r\n public contactGroupIds: number[];\r\n contactGroups: ContactGroup[];\r\n contactGroupsCache: ContactGroup[];\r\n selectedContactGroups: ContactGroup[];\r\n //@Input() showTxt: boolean;\r\n //@Output() public onSelectedFinished = new EventEmitter();\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private contactGroupService: ContactGroupService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.contactGroups) != typeof (undefined)) {\r\n this.selectedContactGroups = data.contactGroups;\r\n }\r\n\r\n this.alertService.startLoadingMessage(\"Loading contact groups...\");\r\n this.contactGroupService.getContactGroups(null, null, this.accountService.currentUser.institutionId, true).subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.contactGroups = results;\r\n this.contactGroups.map(cg => {\r\n if (this.selectedContactGroups) {\r\n const index = this.selectedContactGroups.findIndex(item => item.id == cg.id)\r\n if (index >= 0) {\r\n cg.checked = true;\r\n }\r\n }\r\n });\r\n this.contactGroupsCache = this.contactGroups;\r\n }, error => { });\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n public save = () => {\r\n this.selectedContactGroups = this.contactGroups.filter((cg) => cg.checked);\r\n this.dialogRef.close({ isCancel: false, selectedContactGroups: this.selectedContactGroups });\r\n //this.onSelectedFinished.emit(selectedContactGroups);\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n if (this.contactGroupsCache) {\r\n this.contactGroups = this.contactGroupsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb21tb24vZmlsZXVwbG9hZGVyL2ZpbGV1cGxvYWRlci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb21tb24vZmlsZXVwbG9hZGVyL2ZpbGV1cGxvYWRlci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMyOGE3NDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, ViewChild, ElementRef } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n@Component({\r\n selector: 'file-upload',\r\n templateUrl: './fileuploader.component.html',\r\n styleUrls: ['./fileuploader.component.css']\r\n})\r\nexport class FileUploadComponent implements OnInit {\r\n public progress: number;\r\n public message: string;\r\n public filename: string;\r\n\r\n @Input() fileTypes: string;\r\n @Input() showTxt: boolean;\r\n @Output() public onUploadFinished = new EventEmitter();\r\n @Input() resetAfterUpload: boolean;\r\n @Input() btnText: string;\r\n @Input() btnClass: string;\r\n @Input() btnClassContainer: string;\r\n @Input() fileName: string;\r\n @Input() useOriginalFilename: string;\r\n\r\n constructor(private http: HttpClient, private fileService: FileService) { }\r\n\r\n\r\n @ViewChild('file')\r\n fileEl: ElementRef;\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public uploadFile = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n let fileToUpload = files[0];\r\n const formData = new FormData();\r\n let name = fileToUpload.name;\r\n\r\n if (this.fileName && this.fileName.trim() != '') {\r\n let fnames = fileToUpload.name.split('.');\r\n if (fnames.length > 1) {\r\n name = this.fileName + '.' + fnames[1];\r\n }\r\n }\r\n formData.append('useOriginalFilename', !this.useOriginalFilename ? 'false' : this.useOriginalFilename);\r\n formData.append('file', fileToUpload, name);\r\n \r\n\r\n this.fileService.uploadFile>(formData)\r\n .subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response) {\r\n this.message = 'Upload success.';\r\n //var fileUploadResponse: any = event.body;\r\n //this.filename = fileUploadResponse.fileName;\r\n this.onUploadFinished.emit(event.body);\r\n if (this.resetAfterUpload) {\r\n this.reset();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public reset() {\r\n if (this.fileEl && this.fileEl.nativeElement) {\r\n this.fileEl.nativeElement.value = \"\";\r\n }\r\n\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29tbW9uL2ltYWdlLXZpZXdlci9pbWFnZS12aWV3ZXIuY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"

Viewer

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n

Hover the image to zoom

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n@Component({\r\n selector: 'image-viewer',\r\n templateUrl: './image-viewer.component.html',\r\n styleUrls: ['./image-viewer.component.css']\r\n})\r\nexport class ImageViewerComponent implements OnInit {\r\n @Input() thumbnailFilePath: string;\r\n @Input() fullImageFilePath: string;\r\n @Input() width: string;\r\n @Input() height: string;\r\n @Input() lensWidth: string;\r\n @Input() lensHeight: string;\r\n @Input() fileType: string;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fileService: FileService, private domSanitizer: DomSanitizer,\r\n private configurationService: ConfigurationService) {\r\n if (typeof (data) != typeof (undefined)) {\r\n this.thumbnailFilePath = this.getFileImage(data.thumbnailFilePath);\r\n this.fullImageFilePath = this.getFileImage(data.fullImageFilePath);\r\n this.width = data.width;\r\n this.height = data.height;\r\n this.lensWidth = data.lensWidth;\r\n this.lensHeight = data.lensHeight;\r\n this.fileType = data.fileType;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getBaseUrl() {\r\n return this.configurationService.baseUrl;\r\n }\r\n\r\n getDomainUrl() {\r\n return this.configurationService.config.domainUrl;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n getDocSrc(path) {\r\n //path = 'Resources\\\\Images\\\\b08a4cc0-8bfc-4ce7-b57b-ac355cc0099dpptexamples.ppt';\r\n if (path[0] != \"/\") {\r\n path = \"/\" + path;\r\n }\r\n console.log(this.getDomainUrl() + path);\r\n let src = encodeURIComponent(this.getDomainUrl() + path);\r\n \r\n let url = 'https://view.officeapps.live.com/op/embed.aspx?src=' + src ;//'https://docs.google.com/viewerng/viewer?url='\r\n //let safeSrc = this.domSanitizer.bypassSecurityTrustResourceUrl(url);\r\n return url;\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb21tb24vdXNlci1zZWxlY3Rvci91c2VyLXNlbGVjdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbW1vbi91c2VyLXNlbGVjdG9yL3VzZXItc2VsZWN0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGxvYWQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMjhhNzQ1O1xyXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameEmailDepartmentDesignationPhone NoHome NoMobile No
\\r\\n \\r\\n {{row.fullName}}{{row.email}}{{row.departmentName}}{{row.jobTitle}}{{row.phoneNumber}}{{row.homeNo}}{{row.mobileNo}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\n\r\n@Component({\r\n selector: 'user-selector',\r\n templateUrl: './user-selector.component.html',\r\n styleUrls: ['./user-selector.component.css']\r\n})\r\nexport class UserSelectorComponent implements OnInit {\r\n public userIds: number[];\r\n users: User[];\r\n usersCache: User[];\r\n selectedUsers: User[];\r\n //@Input() showTxt: boolean;\r\n //@Output() public onSelectedFinished = new EventEmitter();\r\n\r\n constructor(private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.users) != typeof (undefined)) {\r\n this.selectedUsers = data.users;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.accountService.getUsers().subscribe(results => {\r\n this.users = results;\r\n this.users.map(cg => {\r\n const index = this.selectedUsers.findIndex(item => item.id == cg.id)\r\n if (index >= 0) {\r\n cg.checked = true;\r\n }\r\n });\r\n\r\n this.usersCache = this.users;\r\n }, error => { });\r\n }\r\n\r\n public save = () => {\r\n this.selectedUsers = this.users.filter((cg) => cg.checked);\r\n this.dialogRef.close({ isCancel: false, selectedUsers: this.selectedUsers });\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.users = this.usersCache.filter(r => Utilities.searchArray(value, false, r.fullName, r.email, r.departmentName, r.jobTitle, r.phoneNumber, r.homeNo, r.mobileNo));\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb21tb24vdXNlcnBob25lYm9vay1zZWxlY3Rvci91c2VycGhvbmVib29rLXNlbGVjdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbW1vbi91c2VycGhvbmVib29rLXNlbGVjdG9yL3VzZXJwaG9uZWJvb2stc2VsZWN0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGxvYWQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMjhhNzQ1O1xyXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameEmailPhone NoHome NoMobile No
\\r\\n \\r\\n {{row.name}}{{row.email}}{{row.phoneNumber}}{{row.homeNo}}{{row.mobileNo}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { UserPhonebook } from 'src/app/models/userPhonebook.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { UserVehicle } from 'src/app/models/uservehicle.model';\r\n\r\n@Component({\r\n selector: 'userphonebook-selector',\r\n templateUrl: './userphonebook-selector.component.html',\r\n styleUrls: ['./userphonebook-selector.component.css']\r\n})\r\nexport class UserPhonebookSelectorComponent implements OnInit {\r\n public userPhonebookIds: number[];\r\n userPhonebooks: UserPhonebook[];\r\n userPhonebooksCache: UserPhonebook[];\r\n selectedUserPhonebooks: UserPhonebook[];\r\n //@Input() showTxt: boolean;\r\n //@Output() public onSelectedFinished = new EventEmitter();\r\n\r\n constructor(private http: HttpClient, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.userPhonebooks) != typeof (undefined)) {\r\n this.selectedUserPhonebooks = data.userPhonebooks;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.accountService.getUserPhonebooks(this.accountService.currentUser.id).subscribe(results => {\r\n this.userPhonebooks = results;\r\n if (typeof (this.selectedUserPhonebooks) != typeof (undefined)) {\r\n this.userPhonebooks.map(cg => {\r\n const index = this.selectedUserPhonebooks.findIndex(item => item.email == cg.email)\r\n if (index >= 0) {\r\n cg.checked = true;\r\n }\r\n });\r\n }\r\n\r\n this.userPhonebooksCache = this.userPhonebooks;\r\n\r\n }, error => { });\r\n }\r\n\r\n public save = () => {\r\n this.selectedUserPhonebooks = this.userPhonebooks.filter((cg) => cg.checked);\r\n this.dialogRef.close({ isCancel: false, selectedUserPhonebooks: this.selectedUserPhonebooks });\r\n //this.onSelectedFinished.emit(selectedUserPhonebooks);\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n public setUserVehicle(row: UserPhonebook, vehicle: UserVehicle) {\r\n row.cardType = vehicle.cardType;\r\n row.plateNumber = vehicle.plateNumber;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.userPhonebooks = this.userPhonebooksCache.filter(r => Utilities.searchArray(value, false, r.name, r.email, r.phoneNumber, r.homeNo, r.mobileNo));\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9hc3NldC1tb2RlbC9hc3NldC1tb2RlbC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9hc3NldC1tb2RlbC9hc3NldC1tb2RlbC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{assetType.name}}\\r\\n \\r\\n Please select an asset type\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AssetModel } from 'src/app/models/asset-model.model';\r\nimport { AssetService } from 'src/app/services/asset.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { AssetType } from 'src/app/models/asset-type.model';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\n\r\n\r\n@Component({\r\n selector: 'asset-model-editor',\r\n templateUrl: './asset-model-editor.component.html',\r\n styleUrls: ['./asset-model-editor.component.css']\r\n})\r\nexport class AssetModelEditorComponent {\r\n\r\n private isNewAssetModel = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingAssetModelName: string;\r\n private assetModelEdit: AssetModel = new AssetModel();\r\n private allPermissions: Permission[] = [];\r\n private assetTypes: AssetType[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private assetService: AssetService, private accountService: AccountService,\r\n private fileService: FileService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.loadAssetTypes();\r\n if (typeof (data.assetModel) != typeof (undefined)) {\r\n if (data.assetModel.id) {\r\n this.editAssetModel(data.assetModel);\r\n } else {\r\n this.newAssetModel();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.assetModelEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewAssetModel) {\r\n this.assetService.newAssetModel(this.assetModelEdit).subscribe(assetModel => this.saveSuccessHelper(assetModel), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.assetService.updateAssetModel(this.assetModelEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(assetModel?: AssetModel) {\r\n if (assetModel)\r\n Object.assign(this.assetModelEdit, assetModel);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewAssetModel)\r\n this.alertService.showMessage(\"Success\", `Asset Model \\\"${this.assetModelEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to asset model \\\"${this.assetModelEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.assetModelEdit = new AssetModel();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewAssetModel && this.accountService.currentUser.facilities.some(r => r == this.editingAssetModelName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.assetModelEdit = new AssetModel();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n loadAssetTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n this.assetService.getAssetTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.assetTypes = results.pagedData;\r\n\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getAssetTypesByFilter failed\", \"An error occured while trying to get asset types from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newAssetModel() {\r\n this.isNewAssetModel = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingAssetModelName = null;\r\n this.selectedValues = {};\r\n this.assetModelEdit = new AssetModel();\r\n\r\n return this.assetModelEdit;\r\n }\r\n\r\n editAssetModel(assetModel: AssetModel) {\r\n if (assetModel) {\r\n this.isNewAssetModel = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingAssetModelName = assetModel.name;\r\n this.selectedValues = {};\r\n this.assetModelEdit = new AssetModel();\r\n Object.assign(this.assetModelEdit, assetModel);\r\n\r\n return this.assetModelEdit;\r\n }\r\n else {\r\n return this.newAssetModel();\r\n }\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.assetModelEdit.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageAssetModels() {\r\n return this.accountService.userHasPermission(Permission.manageAssetModelsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9hc3NldC1tb2RlbC9hc3NldC1tb2RlbHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvYXNzZXQtbW9kZWwvYXNzZXQtbW9kZWxzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Asset Models

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n \\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { AssetModel } from 'src/app/models/asset-model.model';\r\nimport { AssetModelEditorComponent } from './asset-model-editor.component';\r\nimport { AssetService } from 'src/app/services/asset.service';\r\n\r\n\r\n@Component({\r\n selector: 'asset-models-management',\r\n templateUrl: './asset-models-management.component.html',\r\n styleUrls: ['./asset-models-management.component.css']\r\n})\r\nexport class AssetModelsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: AssetModel[] = [];\r\n rowsCache: AssetModel[] = [];\r\n allPermissions: Permission[] = [];\r\n editedAssetModel: AssetModel;\r\n sourceAssetModel: AssetModel;\r\n editingAssetModelName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('assetModelEditor')\r\n assetModelEditor: AssetModelEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private assetService: AssetService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(assetModel: AssetModel): void {\r\n const dialogRef = this.dialog.open(AssetModelEditorComponent, {\r\n data: { header: this.header, assetModel: assetModel },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: 'Model' },\r\n { prop: 'assetTypeName', name: 'Asset Type' },\r\n { prop: 'notes', name: 'Notes' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n console.log(\"event sorts: \", ev.sorts)\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name|Model|Notes|assetTypeName)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.assetService.getAssetModelsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let assetModels = results.pagedData;\r\n\r\n assetModels.forEach((assetModel, index, assetModels) => {\r\n (assetModel).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...assetModels];\r\n this.rows = assetModels;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve image reference types from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingAssetModelName = null;\r\n this.assetModelEditor.resetForm(true);\r\n }\r\n\r\n\r\n newAssetModel() {\r\n //this.editingAssetModelName = null;\r\n //this.sourceAssetModel = null;\r\n //this.editedAssetModel = this.assetModelEditor.newAssetModel();\r\n //this.editorModal.show();\r\n this.header = 'New Asset Model';\r\n this.editedAssetModel = new AssetModel();\r\n this.openDialog(this.editedAssetModel);\r\n }\r\n\r\n\r\n editAssetModel(row: AssetModel) {\r\n //this.editingAssetModelName = { name: row.name };\r\n //this.sourceAssetModel = row;\r\n this.editedAssetModel = row; //this.assetModelEditor.editAssetModel(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Asset Model';\r\n this.openDialog(this.editedAssetModel);\r\n }\r\n\r\n deleteAssetModel(row: AssetModel) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" asset Model?', DialogType.confirm, () => this.deleteAssetModelHelper(row));\r\n }\r\n\r\n\r\n deleteAssetModelHelper(row: AssetModel) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.assetService.deleteAssetModel(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the asset model.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManageAssetModels() {\r\n return this.accountService.userHasPermission(Permission.manageAssetModelsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9hc3NldC10eXBlL2Fzc2V0LXR5cGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvYXNzZXQtdHlwZS9hc3NldC10eXBlLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AssetType } from 'src/app/models/asset-type.model';\r\nimport { AssetService } from 'src/app/services/asset.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'asset-type-editor',\r\n templateUrl: './asset-type-editor.component.html',\r\n styleUrls: ['./asset-type-editor.component.css']\r\n})\r\nexport class AssetTypeEditorComponent {\r\n\r\n private isNewAssetType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingAssetTypeName: string;\r\n private assetTypeEdit: AssetType = new AssetType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private assetService: AssetService, private accountService: AccountService,\r\n private fileService: FileService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.assetType) != typeof (undefined)) {\r\n if (data.assetType.id) {\r\n this.editAssetType(data.assetType);\r\n } else {\r\n this.newAssetType();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.assetTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewAssetType) {\r\n this.assetService.newAssetType(this.assetTypeEdit).subscribe(assetType => this.saveSuccessHelper(assetType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.assetService.updateAssetType(this.assetTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(assetType?: AssetType) {\r\n if (assetType)\r\n Object.assign(this.assetTypeEdit, assetType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewAssetType)\r\n this.alertService.showMessage(\"Success\", `Asset Type \\\"${this.assetTypeEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to asset type \\\"${this.assetTypeEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.assetTypeEdit = new AssetType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewAssetType && this.accountService.currentUser.facilities.some(r => r == this.editingAssetTypeName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.assetTypeEdit = new AssetType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newAssetType() {\r\n this.isNewAssetType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingAssetTypeName = null;\r\n this.selectedValues = {};\r\n this.assetTypeEdit = new AssetType();\r\n\r\n return this.assetTypeEdit;\r\n }\r\n\r\n editAssetType(assetType: AssetType) {\r\n if (assetType) {\r\n this.isNewAssetType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingAssetTypeName = assetType.name;\r\n this.selectedValues = {};\r\n this.assetTypeEdit = new AssetType();\r\n Object.assign(this.assetTypeEdit, assetType);\r\n\r\n return this.assetTypeEdit;\r\n }\r\n else {\r\n return this.newAssetType();\r\n }\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.assetTypeEdit.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageAssetTypes() {\r\n return this.accountService.userHasPermission(Permission.manageAssetTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9hc3NldC10eXBlL2Fzc2V0LXR5cGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2Fzc2V0LXR5cGUvYXNzZXQtdHlwZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Asset Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n \\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { AssetType } from 'src/app/models/asset-type.model';\r\nimport { AssetTypeEditorComponent } from './asset-type-editor.component';\r\nimport { AssetService } from 'src/app/services/asset.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'asset-types-management',\r\n templateUrl: './asset-types-management.component.html',\r\n styleUrls: ['./asset-types-management.component.css']\r\n})\r\nexport class AssetTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: AssetType[] = [];\r\n rowsCache: AssetType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedAssetType: AssetType;\r\n sourceAssetType: AssetType;\r\n editingAssetTypeName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('iconTemplate')\r\n iconTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('assetTypeEditor')\r\n assetTypeEditor: AssetTypeEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private fileService: FileService, private assetService: AssetService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(assetType: AssetType): void {\r\n const dialogRef = this.dialog.open(AssetTypeEditorComponent, {\r\n data: { header: this.header, assetType: assetType },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: gT('common.Name'), width: 200 },\r\n { name: 'Icon', width: 200, cellTemplate: this.iconTemplate },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.assetService.getAssetTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let assetTypes = results.pagedData;\r\n\r\n assetTypes.forEach((assetType, index, assetTypes) => {\r\n (assetType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...assetTypes];\r\n this.rows = assetTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingAssetTypeName = null;\r\n this.assetTypeEditor.resetForm(true);\r\n }\r\n\r\n\r\n newAssetType() {\r\n //this.editingAssetTypeName = null;\r\n //this.sourceAssetType = null;\r\n //this.editedAssetType = this.assetTypeEditor.newAssetType();\r\n //this.editorModal.show();\r\n this.header = 'New Asset Type';\r\n this.editedAssetType = new AssetType();\r\n this.openDialog(this.editedAssetType);\r\n }\r\n\r\n\r\n editAssetType(row: AssetType) {\r\n //this.editingAssetTypeName = { name: row.name };\r\n //this.sourceAssetType = row;\r\n this.editedAssetType = row; //this.assetTypeEditor.editAssetType(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Asset Type';\r\n this.openDialog(this.editedAssetType);\r\n }\r\n\r\n deleteAssetType(row: AssetType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" asset type?', DialogType.confirm, () => this.deleteAssetTypeHelper(row));\r\n }\r\n\r\n\r\n deleteAssetTypeHelper(row: AssetType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.assetService.deleteAssetType(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the asset type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageAssetTypes() {\r\n return this.accountService.userHasPermission(Permission.manageAssetTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9hc3NldC9hc3NldC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9hc3NldC9hc3NldC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{t.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{getAssetTypeName(assetEdit.assetModelId)}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{t.name}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{t.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 \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\nimport { Asset } from 'src/app/models/asset.model';\r\nimport { AssetService } from 'src/app/services/asset.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { LocationService } from '../../../services/location.service';\r\nimport { InstitutionService } from '../../../services/institution.service';\r\n\r\n\r\n@Component({\r\n selector: 'asset-editor',\r\n templateUrl: './asset-editor.component.html',\r\n styleUrls: ['./asset-editor.component.css'],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\nexport class AssetEditorComponent {\r\n\r\n private isNewAsset = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingAssetName: string;\r\n private assetEdit: Asset = new Asset();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n public allLocations = [];\r\n public allInstitutions = [];\r\n\r\n public assetModels = [];\r\n public assetTypes = [];\r\n filter: Filter;\r\n\r\n constructor(private alertService: AlertService, private assetService: AssetService, private accountService: AccountService, private locationService: LocationService, private institutionService: InstitutionService,\r\n private fileService: FileService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.asset) != typeof (undefined)) {\r\n if (data.asset.id) {\r\n this.editAsset(data.asset);\r\n } else {\r\n this.newAsset();\r\n }\r\n\r\n this.loadAssetModels();\r\n this.loadAssetTypes();\r\n this.getLocations();\r\n this.loadInstitutions();\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n onChangeDatePurchase(type: string, event: MatDatepickerInputEvent) {\r\n this.assetEdit.purchaseDate = new Date(event.value);\r\n }\r\n\r\nonChangeDateStart(type: string, event: MatDatepickerInputEvent) {\r\n this.assetEdit.warrantyStart = new Date(event.value);\r\n }\r\n\r\n onChangeDateEnd(type: string, event: MatDatepickerInputEvent) {\r\n this.assetEdit.warrantyEnd = new Date(event.value);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n if (this.isNewAsset) {\r\n this.assetService.newAsset(this.assetEdit).subscribe(asset => this.saveSuccessHelper(asset), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.assetService.updateAsset(this.assetEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(asset?: Asset) {\r\n if (asset)\r\n Object.assign(this.assetEdit, asset);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewAsset)\r\n this.alertService.showMessage(\"Success\", `Asset \\\"${this.assetEdit.serialNumber}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to asset type \\\"${this.assetEdit.serialNumber}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.assetEdit = new Asset();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewAsset && this.accountService.currentUser.facilities.some(r => r == this.editingAssetName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.assetEdit = new Asset();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newAsset() {\r\n this.isNewAsset = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingAssetName = null;\r\n this.selectedValues = {};\r\n this.assetEdit = new Asset();\r\n\r\n return this.assetEdit;\r\n }\r\n\r\n editAsset(asset: Asset) {\r\n if (asset) {\r\n this.isNewAsset = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingAssetName = asset.serialNumber;\r\n this.selectedValues = {};\r\n this.assetEdit = new Asset();\r\n Object.assign(this.assetEdit, asset);\r\n\r\n return this.assetEdit;\r\n }\r\n else {\r\n return this.newAsset();\r\n }\r\n }\r\n\r\n loadAssetModels() {\r\n this.filter = new Filter();\r\n this.filter.sorts = 'Name';\r\n this.filter.filters = '';\r\n this.filter.page = 0;\r\n this.filter.pageSize = 0;\r\n this.filter.filters = '(IsActive)==true,(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n\r\n this.assetService.getAssetModelsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.assetModels = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getAssetModelsByFilter failed\", \"An error occured while trying to get asset model from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadAssetTypes() {\r\n this.filter = new Filter();\r\n this.filter.sorts = 'Name';\r\n this.filter.filters = '';\r\n this.filter.page = 0;\r\n this.filter.pageSize = 0;\r\n this.filter.filters = '(IsActive)==true,(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n\r\n this.assetService.getAssetTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.assetTypes = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getAssetTypesByFilter failed\", \"An error occured while trying to get asset types from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n getAssetTypeName(id, row) {\r\n if (!this.assetModels) this.assetModels = [];\r\n let modelIndx = this.assetModels.findIndex(e => e.id == id);\r\n if (modelIndx > -1) {\r\n if (!this.assetTypes) this.assetTypes = [];\r\n let typeIndx = this.assetTypes.findIndex(e => e.id == this.assetModels[modelIndx].assetTypeId);\r\n\r\n return this.assetTypes[typeIndx] ? this.assetTypes[typeIndx].name : '';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n getLocations() {\r\n\r\n this.locationService.getLocations(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allLocations = results;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving institutions.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageAssets() {\r\n return this.accountService.userHasPermission(Permission.manageAssetsPermission)\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9hc3NldC9hc3NldC1sYWJlbC9hc3NldC1sYWJlbC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9hc3NldC9hc3NldC1sYWJlbC9hc3NldC1sYWJlbC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMyOGE3NDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Show Model Type\\r\\n \\r\\n \\r\\n Show Warranty\\r\\n \\r\\n \\r\\n Show Serial Number\\r\\n \\r\\n \\r\\n Use URL on QR\\r\\n \\r\\n \\r\\n URL for QR\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter, AssetLabelFilter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { Asset } from 'src/app/models/asset.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport * as moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\nimport { AssetService } from '../../../../services/asset.service';\r\nimport { ApplicationSettingService } from \"../../../../services/application-setting.service\";\r\n\r\n@Component({\r\n selector: 'asset-label',\r\n templateUrl: './asset-label.component.html',\r\n styleUrls: ['./asset-label.component.css']\r\n})\r\nexport class AssetLabelComponent implements OnInit {\r\n stores: StoreInfo[];\r\n storesCache: StoreInfo[];\r\n selectedStores: StoreInfo[] = [];\r\n editOutlet: Outlet;\r\n selectedCaterers: CatererOutlet[];\r\n startDate = moment();\r\n endDate = moment();\r\n\r\n filter: AssetLabelFilter;\r\n showWarranty: boolean = true;\r\n showSerial: boolean = true;\r\n qrUrl: boolean = true;\r\n urlText: string = \"\";\r\n showModelType: boolean = true;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef, private assetService: AssetService, private applicationSettingService: ApplicationSettingService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.filter) != typeof (undefined)) {\r\n this.filter = data.filter;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n\r\n this.applicationSettingService.getApplicationSettingByKey(null, 'ASSET_LABEL_URL')\r\n .subscribe(results => {\r\n console.log(\"result setting: \", results);\r\n this.urlText = results.value;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n });\r\n\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n console.log(\"event value: \", moment(event.value))\r\n if (type == \"start\") {\r\n this.startDate = moment(event.value);\r\n } else if (type == \"end\") {\r\n this.endDate = moment(event.value);\r\n }\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.stores = this.storesCache.filter(r => Utilities.searchArray(value, false, r.name));\r\n }\r\n\r\n\r\n downloadLabel() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_AssetLabel.pdf';\r\n this.filter.page = null;\r\n this.filter.pageSize = null;\r\n this.filter.showWarranty = this.showWarranty;\r\n this.filter.showSerial = this.showSerial;\r\n this.filter.qrUrl = this.qrUrl;\r\n this.filter.url = this.urlText;\r\n this.filter.showModelType = this.showModelType;\r\n this.assetService.downloadAssetLabel(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n\r\n //downloadReport() {\r\n // const fileName = moment().format('DDMMYYYY_hhmmss') + '_OrderReport.pdf';\r\n\r\n // var insideFilter = new Filter();\r\n\r\n // var strStartDate = this.startDate.format().split('T');\r\n // var strEndDate = this.endDate.format().split('T');\r\n // insideFilter.filters = '(IsActive)==true,(TokenOrderDateRange)==' + strStartDate[0] + '|' + strEndDate[0];\r\n // console.log(\"filters: \", insideFilter.filters)\r\n // insideFilter.sorts = \"DeliveryDate\";\r\n\r\n // this.menuService.downloadOrderReport(insideFilter).subscribe(\r\n // data => {\r\n // console.log(data);\r\n // saveAs(data, fileName);\r\n // },\r\n // err => {\r\n // alert(\"Problem while downloading the file.\");\r\n // console.error(err);\r\n // }\r\n // );\r\n //}\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9hc3NldC9hc3NldHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvYXNzZXQvYXNzZXRzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Assets

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n \\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n {{'Generate Qr Code'}}\\r\\n\\r\\n \\r\\n Select\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult, AssetLabelFilter } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Asset } from 'src/app/models/asset.model';\r\nimport { AssetEditorComponent } from './asset-editor.component';\r\nimport { AssetService } from 'src/app/services/asset.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { InstitutionService } from '../../../services/institution.service';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\nimport { AssetLabelComponent } from './asset-label/asset-label.component';\r\n\r\n\r\n@Component({\r\n selector: 'assets-management',\r\n templateUrl: './assets-management.component.html',\r\n styleUrls: ['./assets-management.component.css']\r\n})\r\nexport class AssetsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Asset[] = [];\r\n rowsCache: Asset[] = [];\r\n allPermissions: Permission[] = [];\r\n editedAsset: Asset;\r\n sourceAsset: Asset;\r\n editingAssetName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: AssetLabelFilter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n public progress: number;\r\n public message: string;\r\n public filename: string;\r\n fileTypes: string;\r\n showTxt: boolean;\r\n\r\n public allInstitutions = [];\r\n public institutionId = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('assetEditor')\r\n assetEditor: AssetEditorComponent;\r\n header: string;\r\n selectToggle: boolean = false;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private fileService: FileService, private assetService: AssetService, public dialog: MatDialog) {\r\n\r\n this.loadInstitutions();\r\n }\r\n\r\n public importedFile = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n if (!confirm(`Are you sure to import file '${files[0].name}'? \\nImport cannot be undone after the file uploaded.`)) return;\r\n\r\n let fileToUpload = files[0];\r\n const formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n\r\n this.loadingIndicator = true;\r\n this.alertService.startLoadingMessage(\"Uploading...\");\r\n this.assetService.importFile>(formData)\r\n .subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response) {\r\n this.message = 'Upload success.';\r\n //var fileUploadResponse: any = event.body;\r\n //this.filename = fileUploadResponse.fileName;\r\n this.onUploadFinished();\r\n }\r\n\r\n this.loadingIndicator = false;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Upload Error\", `Upload error.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onUploadFinished() {\r\n this.alertService.showStickyMessage(\"Upload Success\", `Upload Success`,\r\n MessageSeverity.success);\r\n //const currentRoute = this.router.url;\r\n\r\n //this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n //this.router.navigate([currentRoute]); // navigate to same route\r\n //}); \r\n this.loadData();\r\n }\r\n\r\n openDialog(asset: Asset): void {\r\n const dialogRef = this.dialog.open(AssetEditorComponent, {\r\n data: { header: this.header, asset: asset },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n openQrDialog(asset: Asset): void {\r\n const dialogRef = this.dialog.open(AssetQrCodeComponent, {\r\n data: `extract : ${asset.assetTypeName} \r\n model : ${asset.assetModelName || null} \r\n SN : ${asset.serialNumber} \r\n start : ${asset.warrantyStart || null} \r\n end date : ${asset.warrantyEnd || ''}`,\r\n width: '90vw'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new AssetLabelFilter(1, 10);\r\n this.filter.sorts = 'serialNumber';\r\n this.filter.filters = '';\r\n this.filter.page = 0;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'serialNumber', name: 'Serial No.' },\r\n { prop: 'assetModelName', name: 'Asset Model' },\r\n { prop: 'assetTypeName', name: 'Asset Type' },\r\n { prop: 'purchaseDate', name: 'Purchase Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'warrantyStart', name: 'Warranty Start', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'warrantyEnd', name: 'Warranty End', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'locationName', name: 'Location' },\r\n { prop: 'institutionName', name: 'Institution' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(SerialNumber|assetModelName|assetTypeName|locationName)@=' + this.keyword + ',(InstitutionId)==' + this.institutionId;\r\n \r\n this.assetService.getAssetsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let assets = results.pagedData;\r\n\r\n assets.forEach((asset, index, assets) => {\r\n (asset).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...assets];\r\n this.rows = assets;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingAssetName = null;\r\n this.assetEditor.resetForm(true);\r\n }\r\n\r\n\r\n newAsset() {\r\n //this.editingAssetName = null;\r\n //this.sourceAsset = null;\r\n //this.editedAsset = this.assetEditor.newAsset();\r\n //this.editorModal.show();\r\n this.header = 'New Asset';\r\n this.editedAsset = new Asset();\r\n this.openDialog(this.editedAsset);\r\n }\r\n\r\n\r\n editAsset(row: Asset) {\r\n //this.editingAssetName = { name: row.name };\r\n //this.sourceAsset = row;\r\n this.editedAsset = row; //this.assetEditor.editAsset(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Asset';\r\n this.openDialog(this.editedAsset);\r\n }\r\n\r\n deleteAsset(row: Asset) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.serialNumber + '\\\" asset?', DialogType.confirm, () => this.deleteAssetHelper(row));\r\n }\r\n\r\n\r\n deleteAssetHelper(row: Asset) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.assetService.deleteAsset(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the asset.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving institutions.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n selectAll() {\r\n this.selectToggle = !this.selectToggle;\r\n for (let r of this.rows) {\r\n r.selected = this.selectToggle;\r\n }\r\n }\r\n\r\n deleteSelected() {\r\n this.alertService.showDialog('Are you sure you want to delete the selected assets?', DialogType.confirm, () => {\r\n for (let r of this.rows) {\r\n if (r.selected) this.deleteAssetHelper(r);\r\n }\r\n });\r\n }\r\n\r\n get canManageAssets() {\r\n return this.accountService.userHasPermission(Permission.manageAssetsPermission)\r\n }\r\n\r\n\r\n downloadLabel() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_AssetLabel.pdf';\r\n this.filter.page = null;\r\n this.filter.pageSize = null;\r\n this.assetService.downloadAssetLabel(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n openAssetLabel() {\r\n const dialogRef = this.dialog.open(AssetLabelComponent, {\r\n data: { header: \"Asset Label Option\", filter: this.filter },\r\n width: '800px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n}\r\n\r\n@Component({\r\n template: `
\r\n
\r\n\r\n \r\n
`\r\n})\r\nexport class AssetQrCodeComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: string,\r\n ) { }\r\n\r\n private cancel() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n \\\"ASP.NET\\\"\\r\\n
\\r\\n

\\r\\n Learn how to build ASP.NET apps that can run anywhere\\r\\n \\r\\n Learn More\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"Visual\\r\\n
\\r\\n

\\r\\n One platform for building modern web, native mobile and native desktop applications\\r\\n \\r\\n Learn More\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"Package\\r\\n
\\r\\n

\\r\\n Bring in libraries from NuGet and npm, and bundle with angular/cli\\r\\n \\r\\n Learn More\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"Eben\\r\\n
\\r\\n

\\r\\n Follow me on social media for updates and tips on using this startup project\\r\\n \\r\\n Learn More\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n

Application uses

\\r\\n
    \\r\\n
  • Restful API backend using the cross platform ASP.NET Core MVC
  • \\r\\n
  • Client framework with angular7 and typescript
  • \\r\\n
  • npm for managing client-side libraries
  • \\r\\n
  • Theming using Bootstrap
  • \\r\\n
  • Module bundling with Angular CLI
  • \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n

Run & Deploy

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component } from '@angular/core';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'banner-demo',\r\n templateUrl: './banner-demo.component.html'\r\n})\r\nexport class BannerDemoComponent {\r\n banner1 = require(\"../../assets/images/demo/banner1.png\");\r\n banner2 = require(\"../../assets/images/demo/banner2.png\");\r\n banner3 = require(\"../../assets/images/demo/banner3.png\");\r\n banner4 = require(\"../../assets/images/demo/banner4.png\");\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9jaGFubmVsLWluZm8vY2hhbm5lbC1pbmZvLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2NoYW5uZWwtaW5mby9jaGFubmVsLWluZm8tZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ChannelInfo } from 'src/app/models/channel-info.model';\r\nimport { ChannelInfoService } from 'src/app/services/channel-info.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'channel-info-editor',\r\n templateUrl: './channel-info-editor.component.html',\r\n styleUrls: ['./channel-info-editor.component.css']\r\n})\r\nexport class ChannelInfoEditorComponent {\r\n\r\n private isNewChannelInfo = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingChannelInfoName: string;\r\n private channelInfoEdit: ChannelInfo = new ChannelInfo();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private channelInfoService: ChannelInfoService, private accountService: AccountService,\r\n private fileService: FileService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.channelInfo) != typeof (undefined)) {\r\n if (data.channelInfo.id) {\r\n this.editChannelInfo(data.channelInfo);\r\n } else {\r\n this.newChannelInfo();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n console.log(\"Save channel info\")\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.channelInfoEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewChannelInfo) {\r\n this.channelInfoService.newChannelInfo(this.channelInfoEdit).subscribe(channelInfo => this.saveSuccessHelper(channelInfo), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.channelInfoService.updateChannelInfo(this.channelInfoEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(channelInfo?: ChannelInfo) {\r\n if (channelInfo)\r\n Object.assign(this.channelInfoEdit, channelInfo);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewChannelInfo)\r\n this.alertService.showMessage(\"Success\", `Channel Info \\\"${this.channelInfoEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to channel info \\\"${this.channelInfoEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.channelInfoEdit = new ChannelInfo();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewChannelInfo && this.accountService.currentUser.facilities.some(r => r == this.editingChannelInfoName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.channelInfoEdit = new ChannelInfo();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newChannelInfo() {\r\n this.isNewChannelInfo = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingChannelInfoName = null;\r\n this.selectedValues = {};\r\n this.channelInfoEdit = new ChannelInfo();\r\n\r\n return this.channelInfoEdit;\r\n }\r\n\r\n editChannelInfo(channelInfo: ChannelInfo) {\r\n if (channelInfo) {\r\n this.isNewChannelInfo = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingChannelInfoName = channelInfo.name;\r\n this.selectedValues = {};\r\n this.channelInfoEdit = new ChannelInfo();\r\n Object.assign(this.channelInfoEdit, channelInfo);\r\n\r\n return this.channelInfoEdit;\r\n }\r\n else {\r\n return this.newChannelInfo();\r\n }\r\n }\r\n\r\n get canManageChannelInfos() {\r\n return true;// this.accountService.userHasPermission(Permission.manageChannelInfosPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9jaGFubmVsLWluZm8vY2hhbm5lbC1pbmZvcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9jaGFubmVsLWluZm8vY2hhbm5lbC1pbmZvcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Channel Infos

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n \\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ChannelInfo } from 'src/app/models/channel-info.model';\r\nimport { ChannelInfoEditorComponent } from './channel-info-editor.component';\r\nimport { ChannelInfoService } from 'src/app/services/channel-info.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'channel-infos-management',\r\n templateUrl: './channel-infos-management.component.html',\r\n styleUrls: ['./channel-infos-management.component.css']\r\n})\r\nexport class ChannelInfosManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: ChannelInfo[] = [];\r\n rowsCache: ChannelInfo[] = [];\r\n allPermissions: Permission[] = [];\r\n editedChannelInfo: ChannelInfo;\r\n sourceChannelInfo: ChannelInfo;\r\n editingChannelInfoName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('channelInfoEditor')\r\n channelInfoEditor: ChannelInfoEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private fileService: FileService, private channelInfoService: ChannelInfoService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(channelInfo: ChannelInfo): void {\r\n const dialogRef = this.dialog.open(ChannelInfoEditorComponent, {\r\n data: { header: this.header, channelInfo: channelInfo },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: gT('common.Name'), width: 200 },\r\n { prop: 'number', name: 'Channel Id', width: 200 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.channelInfoService.getChannelInfosByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let channelInfos = results.pagedData;\r\n\r\n channelInfos.forEach((channelInfo, index, channelInfos) => {\r\n (channelInfo).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...channelInfos];\r\n this.rows = channelInfos;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingChannelInfoName = null;\r\n this.channelInfoEditor.resetForm(true);\r\n }\r\n\r\n\r\n newChannelInfo() {\r\n //this.editingChannelInfoName = null;\r\n //this.sourceChannelInfo = null;\r\n //this.editedChannelInfo = this.channelInfoEditor.newChannelInfo();\r\n //this.editorModal.show();\r\n this.header = 'New Channel Info';\r\n this.editedChannelInfo = new ChannelInfo();\r\n this.openDialog(this.editedChannelInfo);\r\n }\r\n\r\n\r\n editChannelInfo(row: ChannelInfo) {\r\n //this.editingChannelInfoName = { name: row.name };\r\n //this.sourceChannelInfo = row;\r\n this.editedChannelInfo = row; //this.channelInfoEditor.editChannelInfo(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Channel Info';\r\n this.openDialog(this.editedChannelInfo);\r\n }\r\n\r\n deleteChannelInfo(row: ChannelInfo) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" channel info?', DialogType.confirm, () => this.deleteChannelInfoHelper(row));\r\n }\r\n\r\n\r\n deleteChannelInfoHelper(row: ChannelInfo) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.channelInfoService.deleteChannelInfo(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the channel info.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageChannelInfos() {\r\n return true;// this.accountService.userHasPermission(Permission.manageChannelInfosPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9jb250YWN0Z3JvdXAvY29udGFjdGdyb3VwLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2NvbnRhY3Rncm91cC9jb250YWN0Z3JvdXAtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{department.name}} - {{department.description}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameEmailDepartmentDesignationPhone NoHome NoMobile NoCompanyPhoto
{{row.name}}{{row.email}}{{row.department}}{{row.designation}}{{row.phoneNumber}}{{row.homeNo}}{{row.mobileNo}}{{row.company}}\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { ContactGroupService } from \"../../../services/contactgroup.service\";\r\nimport { ContactGroup } from '../../../models/contactgroup.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material';\r\nimport { ContactGroupMember } from 'src/app/models/contactgroupmember.model';\r\nimport { CGNewContactEmailEditorComponent } from './emailcontact/emailcontact-editor.component';\r\nimport { Department } from 'src/app/models/department.model';\r\nimport { DepartmentService } from 'src/app/services/department.service';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { UserSelectorComponent } from '../../common/user-selector/user-selector.component';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'contactgroup-editor',\r\n templateUrl: './contactgroup-editor.component.html',\r\n styleUrls: ['./contactgroup-editor.component.css']\r\n})\r\nexport class ContactGroupEditorComponent {\r\n\r\n private isNewContactGroup = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingContactGroupName: string;\r\n private contactGroupEdit: ContactGroup = new ContactGroup();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n departments = new FormControl('', [Validators.required]);\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n private departmentList: Department[] = [];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private departmentService: DepartmentService, private contactGroupService: ContactGroupService, private accountService: AccountService,\r\n private fileService: FileService, public dialogRef: MatDialogRef, public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.contactGroup) != typeof (undefined)) {\r\n if (data.contactGroup.id) {\r\n this.editContactGroup(data.contactGroup);\r\n } else {\r\n this.newContactGroup();\r\n }\r\n }\r\n this.loadDepartments();\r\n }\r\n\r\n openContactDialog(header: string, cg: ContactGroupMember): void {\r\n const dialogRef = this.dialog.open(CGNewContactEmailEditorComponent, {\r\n data: { header: header, contactGroupMember: cg },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result && result.cgm && result.cgm.email && result.cgm.name) {\r\n if (typeof (this.contactGroupEdit) == typeof (undefined)) {\r\n this.contactGroupEdit = new ContactGroup();\r\n }\r\n\r\n if (typeof (this.contactGroupEdit.members) == typeof (undefined)) {\r\n this.contactGroupEdit.members = [];\r\n }\r\n\r\n let index = this.contactGroupEdit.members.indexOf(result.cgm);\r\n if (result.cgm.id > 0 || (result.orig && (result.orig.email || result.orig.name))) {\r\n this.contactGroupEdit.members.forEach((cgm, index, cgs) => {\r\n if ((result.cgm.id > 0 && cgm.id == result.cgm.id) || (cgm.name == result.orig.name && cgm.email == result.orig.email)) {\r\n cgm.company = result.cgm.company;\r\n cgm.department = result.cgm.department;\r\n cgm.designation = result.cgm.designation;\r\n cgm.email = result.cgm.email;\r\n cgm.filePath = result.cgm.filePath;\r\n cgm.homeNo = result.cgm.homeNo;\r\n cgm.mobileNo = result.cgm.mobileNo;\r\n cgm.name = result.cgm.name;\r\n cgm.phoneNumber = result.cgm.phoneNumber;\r\n }\r\n });\r\n }\r\n else {\r\n if (index < 0) {\r\n this.contactGroupEdit.members.push(result.cgm);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n openNewEmailContact(header: string, cg?: ContactGroupMember): void {\r\n if (!cg) {\r\n cg = new ContactGroupMember();\r\n }\r\n\r\n var dialog = this.dialog.open(CGNewContactEmailEditorComponent, {\r\n data: { header: header, contactGroupMember: cg },\r\n width: '400px'\r\n });\r\n\r\n dialog.afterClosed().subscribe(result => {\r\n if (result.email && result.name) {\r\n if (typeof (this.contactGroupEdit) == typeof (undefined)) {\r\n this.contactGroupEdit = new ContactGroup();\r\n }\r\n\r\n if (typeof (this.contactGroupEdit.members) == typeof (undefined)) {\r\n this.contactGroupEdit.members = [];\r\n }\r\n\r\n this.contactGroupEdit.members.push(result);\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n openFromUserList() {\r\n const dialogRef = this.dialog.open(UserSelectorComponent, {\r\n data: { header: \"Select users\", users: [] },\r\n width: '950px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (!result.isCancel && result.selectedUsers) {\r\n if (typeof (this.contactGroupEdit) == typeof (undefined)) {\r\n this.contactGroupEdit = new ContactGroup();\r\n }\r\n\r\n if (typeof (this.contactGroupEdit.members) == typeof (undefined)) {\r\n this.contactGroupEdit.members = [];\r\n }\r\n\r\n result.selectedUsers.forEach((user, index, locations) => {\r\n var exist = this.contactGroupEdit.members.filter((cg) => cg.email == user.email);\r\n\r\n if (exist && exist.length == 0) {\r\n var member = new ContactGroupMember();\r\n member.email = user.email;\r\n member.name = user.fullName;\r\n member.department = user.departmentName;\r\n member.company = user.company;\r\n member.designation = user.jobTitle;\r\n member.phoneNumber = user.phoneNumber;\r\n member.homeNo = user.homeNo;\r\n member.mobileNo = user.mobileNo;\r\n member.userId = user.id;\r\n this.contactGroupEdit.members.push(member);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n openFromAddressBook() {\r\n //const dialogRef = this.dialog.open(UserSelectorComponent, {\r\n // data: { header: \"Select users\", users: [] },\r\n // width: '750px'\r\n //});\r\n\r\n //dialogRef.afterClosed().subscribe(result => {\r\n // if (!result.isCancel && result.selectedUsers) {\r\n // if (typeof (this.contactGroupEdit) == typeof (undefined)) {\r\n // this.contactGroupEdit = new ContactGroup();\r\n // }\r\n\r\n // if (typeof (this.contactGroupEdit.members) == typeof (undefined)) {\r\n // this.contactGroupEdit.members = [];\r\n // }\r\n\r\n // result.selectedUsers.forEach((user, index, locations) => {\r\n // var exist = this.contactGroupEdit.members.filter((cg) => cg.email == user.email);\r\n\r\n // if (exist && exist.length == 0) {\r\n // var member = new ContactGroupMember();\r\n // member.email = user.email;\r\n // member.name = user.fullName;\r\n // member.department = user.departmentName;\r\n // member.company = user.company;\r\n // member.designation = user.jobTitle;\r\n // member.phoneNumber = user.phoneNumber;\r\n // this.contactGroupEdit.members.push(member);\r\n // }\r\n // });\r\n // }\r\n //});\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n if (this.isNewContactGroup) {\r\n this.contactGroupService.newContactGroup(this.contactGroupEdit).subscribe(contactGroup => this.saveSuccessHelper(contactGroup), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.contactGroupService.updateContactGroup(this.contactGroupEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(contactGroup?: ContactGroup) {\r\n if (contactGroup)\r\n Object.assign(this.contactGroupEdit, contactGroup);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewContactGroup)\r\n this.alertService.showMessage(\"Success\", `Contact Group \\\"${this.contactGroupEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to contact group \\\"${this.contactGroupEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.contactGroupEdit = new ContactGroup();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewContactGroup && this.accountService.currentUser.facilities.some(r => r == this.editingContactGroupName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close({ isSuccess: true });\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.contactGroupEdit = new ContactGroup();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n loadDepartments() {\r\n this.departmentService.getDepartments(-1, -1, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.departmentList = results;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getDepartments failed\", \"An error occured while trying to get equipments from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newContactGroup() {\r\n this.isNewContactGroup = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingContactGroupName = null;\r\n this.selectedValues = {};\r\n this.contactGroupEdit = new ContactGroup();\r\n this.contactGroupEdit.institutionId = this.accountService.currentUser.institutionId;\r\n return this.contactGroupEdit;\r\n }\r\n\r\n editContactGroup(contactGroup: ContactGroup) {\r\n if (contactGroup) {\r\n this.isNewContactGroup = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingContactGroupName = contactGroup.name;\r\n this.selectedValues = {};\r\n this.contactGroupEdit = new ContactGroup();\r\n Object.assign(this.contactGroupEdit, contactGroup);\r\n this.contactGroupEdit.institutionId = this.accountService.currentUser.institutionId;\r\n return this.contactGroupEdit;\r\n }\r\n else {\r\n return this.newContactGroup();\r\n }\r\n }\r\n\r\n deleteMember(row: ContactGroupMember) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" ?', DialogType.confirm, () => this.deleteMemberHelper(row));\r\n }\r\n\r\n deleteMemberHelper(row: ContactGroupMember) {\r\n\r\n this.contactGroupEdit.members = this.contactGroupEdit.members.filter(item => item !== row);\r\n }\r\n\r\n editMember(row: ContactGroupMember) {\r\n this.openContactDialog('Edit Contact', row);\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageContactGroups() {\r\n return this.accountService.userHasPermission(Permission.manageContactGroupsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9jb250YWN0Z3JvdXAvY29udGFjdGdyb3Vwcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9jb250YWN0Z3JvdXAvY29udGFjdGdyb3Vwcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

{{'settings.header.ContactGroupsManagement' | 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 {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'contactGroups.management.Edit' | translate}}\\r\\n {{'contactGroups.management.Details' | translate}}\\r\\n \\r\\n {{'contactGroups.management.Delete' | translate}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'contactGroups.management.ContactGroupDetails' | translate:editingContactGroupName}}

\\r\\n

{{editingContactGroupName ? ('contactGroups.management.EditContactGroup' | translate:editingContactGroupName) : ('contactGroups.management.NewContactGroup' | translate)}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { ContactGroup } from '../../../models/contactgroup.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { ContactGroupEditorComponent } from \"./contactgroup-editor.component\";\r\nimport { ContactGroupService } from 'src/app/services/contactgroup.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { UserSelectorComponent } from '../../common/user-selector/user-selector.component';\r\n\r\n\r\n@Component({\r\n selector: 'contactgroups-management',\r\n templateUrl: './contactgroups-management.component.html',\r\n styleUrls: ['./contactgroups-management.component.css']\r\n})\r\nexport class ContactGroupsManagementComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: ContactGroup[] = [];\r\n rowsCache: ContactGroup[] = [];\r\n allPermissions: Permission[] = [];\r\n editedContactGroup: ContactGroup;\r\n sourceContactGroup: ContactGroup;\r\n editingContactGroupName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('contactGroupEditor')\r\n contactGroupEditor: ContactGroupEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private contactGroupService: ContactGroupService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(contactGroup: ContactGroup): void {\r\n const dialogRef = this.dialog.open(ContactGroupEditorComponent, {\r\n data: { header: this.header, contactGroup: contactGroup },\r\n width: '950px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result && result.isSuccess) {\r\n this.loadData();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('contactGroups.management.Name') },\r\n { prop: 'description', name: gT('contactGroups.management.Description') },\r\n { prop: 'departmentNames', name: gT('contactGroups.management.Department') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(4, 0, { prop: 'institutionName', name: gT('contactGroups.management.Institution'), width: 200 });\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.contactGroupEditor.changesSavedCallback = () => {\r\n this.addNewContactGroupToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.contactGroupEditor.changesCancelledCallback = () => {\r\n this.editedContactGroup = null;\r\n this.sourceContactGroup = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewContactGroupToList() {\r\n if (this.sourceContactGroup) {\r\n Object.assign(this.sourceContactGroup, this.editedContactGroup);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceContactGroup, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceContactGroup, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedContactGroup = null;\r\n this.sourceContactGroup = null;\r\n }\r\n else {\r\n let contactGroup = new ContactGroup();\r\n Object.assign(contactGroup, this.editedContactGroup);\r\n this.editedContactGroup = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (contactGroup).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, contactGroup);\r\n this.rows.splice(0, 0, contactGroup);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n getContactGroup(id: string) {\r\n return this.contactGroupService.getContactGroupById(id);\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.contactGroupService.getContactGroups(null, null, this.accountService.currentUser.institutionId, true)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let contactGroups = results;\r\n\r\n contactGroups.forEach((contactGroup, index, contactGroups) => {\r\n (contactGroup).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...contactGroups];\r\n this.rows = contactGroups;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve contact groups from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingContactGroupName = null;\r\n this.contactGroupEditor.resetForm(true);\r\n }\r\n\r\n\r\n newContactGroup() {\r\n this.editingContactGroupName = null;\r\n this.sourceContactGroup = null;\r\n this.editedContactGroup = this.contactGroupEditor.newContactGroup();\r\n //this.editorModal.show();\r\n this.header = 'New Contact Group';\r\n this.openDialog(this.editedContactGroup);\r\n }\r\n\r\n\r\n editContactGroup(row: ContactGroup) {\r\n this.editingContactGroupName = { name: row.name };\r\n this.sourceContactGroup = row;\r\n this.editedContactGroup = this.contactGroupEditor.editContactGroup(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Contact Group';\r\n this.loadingIndicator = true;\r\n this.getContactGroup(row.id)\r\n .subscribe(result => {\r\n this.loadingIndicator = false;\r\n this.openDialog(result);\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve contact group from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n deleteContactGroup(row: ContactGroup) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" contact group?', DialogType.confirm, () => this.deleteContactGroupHelper(row));\r\n }\r\n\r\n\r\n deleteContactGroupHelper(row: ContactGroup) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.contactGroupService.deleteContactGroup(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the contact group.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n syncLdap() {\r\n this.alertService.showDialog('You are about to synchronise the active directory records to FRS. Do you wish to continue?',\r\n DialogType.confirm, () => {\r\n\r\n this.loadingIndicator = true;\r\n this.alertService.startLoadingMessage();\r\n this.alertService.startLoadingMessage(\"Synchronising LDAP data...\");\r\n this.contactGroupService.syncLdap()\r\n .subscribe(results => {\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n if (results && results.isSuccess) {\r\n this.alertService.showStickyMessage(\"Sync Success\", \"Successfully synced!\", MessageSeverity.success);\r\n } else {\r\n this.alertService.showStickyMessage(\"Sync Error\", `An error occured while synchronising the contact group.\\r\\nError: \"${Utilities.getHttpResponseMessage(results.message)}\"`,\r\n MessageSeverity.error, results.message);\r\n }\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Sync Error\", `An error occured while synchronising the contact group.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n });\r\n }\r\n\r\n get canManageContactGroups() {\r\n return this.accountService.userHasPermission(Permission.manageContactGroupsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9jb250YWN0Z3JvdXAvZW1haWxjb250YWN0L2VtYWlsY29udGFjdC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9jb250YWN0Z3JvdXAvZW1haWxjb250YWN0L2VtYWlsY29udGFjdC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../../../services/alert.service';\r\nimport { AccountService } from \"../../../../services/account.service\";\r\nimport { Permission } from '../../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ContactGroupMember } from 'src/app/models/contactgroupmember.model';\r\nimport { ContactGroupService } from 'src/app/services/contactgroup.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'cg-newemail-editor',\r\n templateUrl: './emailcontact-editor.component.html',\r\n styleUrls: ['./emailcontact-editor.component.css']\r\n})\r\nexport class CGNewContactEmailEditorComponent {\r\n\r\n private isNewContactGroupMember = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingContactGroupMemberName: string;\r\n private contactGroupMemberEdit: ContactGroupMember = new ContactGroupMember();\r\n private origContactGroupMember: ContactGroupMember = new ContactGroupMember();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n\r\n constructor(private alertService: AlertService, private contactGroupService: ContactGroupService, private accountService: AccountService,\r\n private fileService: FileService, public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.contactGroupMember) != typeof (undefined)) {\r\n if (data.contactGroupMember.id || data.contactGroupMember.name || data.contactGroupMember.email) {\r\n Object.assign(this.origContactGroupMember, data.contactGroupMember);\r\n this.editContactGroupMember(data.contactGroupMember);\r\n } else {\r\n this.newContactGroupMember();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.dialogRef.close({ cgm: this.contactGroupMemberEdit, orig: this.origContactGroupMember });\r\n }\r\n\r\n \r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n //this.contactGroupMemberEdit = new ContactGroupMember();\r\n this.contactGroupMemberEdit.company = this.origContactGroupMember.company;\r\n this.contactGroupMemberEdit.department = this.origContactGroupMember.department;\r\n this.contactGroupMemberEdit.designation = this.origContactGroupMember.designation;\r\n this.contactGroupMemberEdit.email = this.origContactGroupMember.email;\r\n this.contactGroupMemberEdit.filePath = this.origContactGroupMember.filePath;\r\n this.contactGroupMemberEdit.homeNo = this.origContactGroupMember.homeNo;\r\n this.contactGroupMemberEdit.mobileNo = this.origContactGroupMember.mobileNo;\r\n this.contactGroupMemberEdit.name = this.origContactGroupMember.name;\r\n this.contactGroupMemberEdit.phoneNumber = this.origContactGroupMember.phoneNumber;\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newContactGroupMember() {\r\n this.isNewContactGroupMember = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingContactGroupMemberName = null;\r\n this.selectedValues = {};\r\n this.contactGroupMemberEdit = new ContactGroupMember();\r\n this.contactGroupMemberEdit.institutionId = this.accountService.currentUser.institutionId;\r\n return this.contactGroupMemberEdit;\r\n }\r\n\r\n editContactGroupMember(contactGroupMember: ContactGroupMember) {\r\n if (contactGroupMember) {\r\n this.isNewContactGroupMember = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingContactGroupMemberName = contactGroupMember.name;\r\n this.selectedValues = {};\r\n this.contactGroupMemberEdit = new ContactGroupMember();\r\n Object.assign(this.contactGroupMemberEdit, contactGroupMember);\r\n this.contactGroupMemberEdit.institutionId = this.accountService.currentUser.institutionId;\r\n return this.contactGroupMemberEdit;\r\n }\r\n else {\r\n return this.newContactGroupMember();\r\n }\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.contactGroupMemberEdit.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9kZXBhcnRtZW50L2RlcGFydG1lbnQtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvZGVwYXJ0bWVudC9kZXBhcnRtZW50LWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { DepartmentService } from \"../../../services/department.service\";\r\nimport { Department } from '../../../models/department.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n\r\n@Component({\r\n selector: 'department-editor',\r\n templateUrl: './department-editor.component.html',\r\n styleUrls: ['./department-editor.component.css']\r\n})\r\nexport class DepartmentEditorComponent {\r\n\r\n private isNewDepartment = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingDepartmentName: string;\r\n private departmentEdit: Department = new Department();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private departmentService: DepartmentService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.department) != typeof (undefined)) {\r\n if (data.department.id) {\r\n this.editDepartment(data.department);\r\n } else {\r\n this.newDepartment();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.departmentEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewDepartment) {\r\n this.departmentService.newDepartment(this.departmentEdit).subscribe(department => this.saveSuccessHelper(department), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.departmentService.updateDepartment(this.departmentEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(department?: Department) {\r\n if (department)\r\n Object.assign(this.departmentEdit, department);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewDepartment)\r\n this.alertService.showMessage(\"Success\", `Department \\\"${this.departmentEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to department \\\"${this.departmentEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.departmentEdit = new Department();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewDepartment && this.accountService.currentUser.facilities.some(r => r == this.editingDepartmentName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.departmentEdit = new Department();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newDepartment() {\r\n this.isNewDepartment = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDepartmentName = null;\r\n this.selectedValues = {};\r\n this.departmentEdit = new Department();\r\n\r\n return this.departmentEdit;\r\n }\r\n\r\n editDepartment(department: Department) {\r\n if (department) {\r\n this.isNewDepartment = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDepartmentName = department.name;\r\n this.selectedValues = {};\r\n this.departmentEdit = new Department();\r\n Object.assign(this.departmentEdit, department);\r\n\r\n return this.departmentEdit;\r\n }\r\n else {\r\n return this.newDepartment();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageDepartments() {\r\n return this.accountService.userHasPermission(Permission.manageDepartmentsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9kZXBhcnRtZW50L2RlcGFydG1lbnRzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2RlcGFydG1lbnQvZGVwYXJ0bWVudHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Departments

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'departments.management.Edit' | translate}}\\r\\n {{'departments.management.Details' | translate}}\\r\\n \\r\\n {{'departments.management.Delete' | translate}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Department } from '../../../models/department.model';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { DepartmentEditorComponent } from \"./department-editor.component\";\r\nimport { DepartmentService } from 'src/app/services/department.service';\r\nimport { MatDialog } from '@angular/material';\r\n\r\n\r\n@Component({\r\n selector: 'departments-management',\r\n templateUrl: './departments-management.component.html',\r\n styleUrls: ['./departments-management.component.css']\r\n})\r\nexport class DepartmentsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Department[] = [];\r\n rowsCache: Department[] = [];\r\n allPermissions: Permission[] = [];\r\n editedDepartment: Department;\r\n sourceDepartment: Department;\r\n editingDepartmentName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('departmentEditor')\r\n departmentEditor: DepartmentEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private departmentService: DepartmentService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(department: Department): void {\r\n const dialogRef = this.dialog.open(DepartmentEditorComponent, {\r\n data: { header: this.header, department: department },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('departments.management.Name') },\r\n { prop: 'description', name: gT('departments.management.Description') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name|Description)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.departmentService.getDepartmentsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let departments = results.pagedData;\r\n\r\n departments.forEach((department, index, departments) => {\r\n (department).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...departments];\r\n this.rows = departments;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve departments from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingDepartmentName = null;\r\n this.departmentEditor.resetForm(true);\r\n }\r\n\r\n\r\n newDepartment() {\r\n //this.editingDepartmentName = null;\r\n //this.sourceDepartment = null;\r\n //this.editedDepartment = this.departmentEditor.newDepartment();\r\n //this.editorModal.show();\r\n this.header = 'New Department';\r\n this.editedDepartment = new Department();\r\n this.openDialog(this.editedDepartment);\r\n }\r\n\r\n\r\n editDepartment(row: Department) {\r\n //this.editingDepartmentName = { name: row.name };\r\n //this.sourceDepartment = row;\r\n this.editedDepartment = row; //this.departmentEditor.editDepartment(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Department';\r\n this.openDialog(this.editedDepartment);\r\n }\r\n\r\n deleteDepartment(row: Department) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" department?', DialogType.confirm, () => this.deleteDepartmentHelper(row));\r\n }\r\n\r\n\r\n deleteDepartmentHelper(row: Department) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.departmentService.deleteDepartment(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the department.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManageDepartments() {\r\n return this.accountService.userHasPermission(Permission.manageDepartmentsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9kZXZpY2UtdHlwZS9kZXZpY2UtdHlwZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9kZXZpY2UtdHlwZS9kZXZpY2UtdHlwZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { DeviceType } from 'src/app/models/device-type.model';\r\nimport { DeviceService } from 'src/app/services/device.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'device-type-editor',\r\n templateUrl: './device-type-editor.component.html',\r\n styleUrls: ['./device-type-editor.component.css']\r\n})\r\nexport class DeviceTypeEditorComponent {\r\n\r\n private isNewDeviceType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingDeviceTypeName: string;\r\n private deviceTypeEdit: DeviceType = new DeviceType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private deviceService: DeviceService, private accountService: AccountService,\r\n private fileService: FileService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.deviceType) != typeof (undefined)) {\r\n if (data.deviceType.id) {\r\n this.editDeviceType(data.deviceType);\r\n } else {\r\n this.newDeviceType();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.deviceTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewDeviceType) {\r\n this.deviceService.newDeviceType(this.deviceTypeEdit).subscribe(deviceType => this.saveSuccessHelper(deviceType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deviceService.updateDeviceType(this.deviceTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(deviceType?: DeviceType) {\r\n if (deviceType)\r\n Object.assign(this.deviceTypeEdit, deviceType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewDeviceType)\r\n this.alertService.showMessage(\"Success\", `Device Type \\\"${this.deviceTypeEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to device type \\\"${this.deviceTypeEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.deviceTypeEdit = new DeviceType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewDeviceType && this.accountService.currentUser.facilities.some(r => r == this.editingDeviceTypeName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.deviceTypeEdit = new DeviceType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newDeviceType() {\r\n this.isNewDeviceType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDeviceTypeName = null;\r\n this.selectedValues = {};\r\n this.deviceTypeEdit = new DeviceType();\r\n\r\n return this.deviceTypeEdit;\r\n }\r\n\r\n editDeviceType(deviceType: DeviceType) {\r\n if (deviceType) {\r\n this.isNewDeviceType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDeviceTypeName = deviceType.name;\r\n this.selectedValues = {};\r\n this.deviceTypeEdit = new DeviceType();\r\n Object.assign(this.deviceTypeEdit, deviceType);\r\n\r\n return this.deviceTypeEdit;\r\n }\r\n else {\r\n return this.newDeviceType();\r\n }\r\n }\r\n\r\n get canManageDeviceTypes() {\r\n return this.accountService.userHasPermission(Permission.manageDeviceTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9kZXZpY2UtdHlwZS9kZXZpY2UtdHlwZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvZGV2aWNlLXR5cGUvZGV2aWNlLXR5cGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Device Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n \\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { DeviceType } from 'src/app/models/device-type.model';\r\nimport { DeviceTypeEditorComponent } from './device-type-editor.component';\r\nimport { DeviceService } from 'src/app/services/device.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'device-types-management',\r\n templateUrl: './device-types-management.component.html',\r\n styleUrls: ['./device-types-management.component.css']\r\n})\r\nexport class DeviceTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: DeviceType[] = [];\r\n rowsCache: DeviceType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedDeviceType: DeviceType;\r\n sourceDeviceType: DeviceType;\r\n editingDeviceTypeName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('deviceTypeEditor')\r\n deviceTypeEditor: DeviceTypeEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private fileService: FileService, private deviceService: DeviceService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(deviceType: DeviceType): void {\r\n const dialogRef = this.dialog.open(DeviceTypeEditorComponent, {\r\n data: { header: this.header, deviceType: deviceType },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: gT('common.Name'), width: 200 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deviceService.getDeviceTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let deviceTypes = results.pagedData;\r\n\r\n deviceTypes.forEach((deviceType, index, deviceTypes) => {\r\n (deviceType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...deviceTypes];\r\n this.rows = deviceTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingDeviceTypeName = null;\r\n this.deviceTypeEditor.resetForm(true);\r\n }\r\n\r\n\r\n newDeviceType() {\r\n //this.editingDeviceTypeName = null;\r\n //this.sourceDeviceType = null;\r\n //this.editedDeviceType = this.deviceTypeEditor.newDeviceType();\r\n //this.editorModal.show();\r\n this.header = 'New Device Type';\r\n this.editedDeviceType = new DeviceType();\r\n this.openDialog(this.editedDeviceType);\r\n }\r\n\r\n\r\n editDeviceType(row: DeviceType) {\r\n //this.editingDeviceTypeName = { name: row.name };\r\n //this.sourceDeviceType = row;\r\n this.editedDeviceType = row; //this.deviceTypeEditor.editDeviceType(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Device Type';\r\n this.openDialog(this.editedDeviceType);\r\n }\r\n\r\n deleteDeviceType(row: DeviceType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" device type?', DialogType.confirm, () => this.deleteDeviceTypeHelper(row));\r\n }\r\n\r\n\r\n deleteDeviceTypeHelper(row: DeviceType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deviceService.deleteDeviceType(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the device type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageDeviceTypes() {\r\n return this.accountService.userHasPermission(Permission.manageDeviceTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9lbWFpbC1xdWV1ZS9lbWFpbC1xdWV1ZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvZW1haWwtcXVldWUvZW1haWwtcXVldWVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Email Queues

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { AssetService } from 'src/app/services/asset.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { EmailQueue } from 'src/app/models/email-queue.model';\r\nimport { EmailQueueService } from 'src/app/services/emailqueue.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\n\r\n\r\n@Component({\r\n selector: 'email-queues-management',\r\n templateUrl: './email-queues-management.component.html',\r\n styleUrls: ['./email-queues-management.component.css']\r\n})\r\nexport class EmailQueuesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: EmailQueue[] = [];\r\n rowsCache: EmailQueue[] = [];\r\n allPermissions: Permission[] = [];\r\n editedEmailQueue: EmailQueue;\r\n sourceEmailQueue: EmailQueue;\r\n editingEmailQueueName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('iconTemplate')\r\n iconTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n \r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private fileService: FileService, private emailQueueService: EmailQueueService, public dialog: MatDialog) {\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'createdDate';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'toEmail', name: 'To' },\r\n { prop: 'fromEmail', name: 'From' },\r\n { prop: 'subject', name: 'Subject' },\r\n { prop: 'body', name: 'Body' },\r\n { prop: 'isSent', name: 'Is Sent' },\r\n { prop: 'isFailed', name: 'Is Failed' },\r\n { prop: 'sentDate', name: 'Sent On', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'createdDate', name: 'Created On', pipe: new DateTimeOnlyPipe('en-SG') }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(FromEmail|ToEmail|Subject)@=' + this.keyword;\r\n \r\n this.emailQueueService.getEmailQueuesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let pagedResults = results.pagedData;\r\n\r\n pagedResults.forEach((res, index, ress) => {\r\n (res).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...pagedResults];\r\n this.rows = pagedResults;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n get canManageEmailQueues() {\r\n return this.accountService.userHasPermission(Permission.viewEmailQueuesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9lbXMvZW1zLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2Vtcy9lbXMtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { EmsService } from \"../../../services/ems.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Ems } from 'src/app/models/ems.model';\r\n\r\n\r\n@Component({\r\n selector: 'ems-editor',\r\n templateUrl: './ems-editor.component.html',\r\n styleUrls: ['./ems-editor.component.css']\r\n})\r\nexport class EmsEditorComponent {\r\n\r\n private isNewEms = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingEmsName: string;\r\n private emsEdit: Ems = new Ems();\r\n private allPermissions: Permission[] = [];\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private emsService: EmsService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.ems) != typeof (undefined)) {\r\n if (data.ems.id) {\r\n this.editEms(data.ems);\r\n } else {\r\n this.newEms();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.isNewEms) {\r\n this.emsService.newEms(this.emsEdit).subscribe(ems => this.saveSuccessHelper(ems), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.emsService.updateEms(this.emsEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(ems?: Ems) {\r\n if (ems)\r\n Object.assign(this.emsEdit, ems);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewEms)\r\n this.alertService.showMessage(\"Success\", `Ems \\\"${this.emsEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to ems \\\"${this.emsEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.emsEdit = new Ems();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewEms && this.accountService.currentUser.facilities.some(r => r == this.editingEmsName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.emsEdit = new Ems();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newEms() {\r\n this.isNewEms = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingEmsName = null;\r\n this.emsEdit = new Ems();\r\n this.emsEdit.institutionId = this.accountService.currentUser.institutionId;\r\n return this.emsEdit;\r\n }\r\n\r\n editEms(ems: Ems) {\r\n if (ems) {\r\n this.isNewEms = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingEmsName = ems.name;\r\n this.emsEdit = new Ems();\r\n Object.assign(this.emsEdit, ems);\r\n\r\n return this.emsEdit;\r\n }\r\n else {\r\n return this.newEms();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageEmses() {\r\n return true; //this.accountService.userHasPermission(Permission.manageEmsesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.modal {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9lbXMvZW1zZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFFQTtFQUNFLGFBQWE7QUFDZiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvZW1zL2Vtc2VzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5tb2RhbCB7XHJcbiAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

EMS

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'emses.management.Edit' | translate}}\\r\\n \\r\\n \\r\\n {{'emses.management.Delete' | translate}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'emses.management.EmsDetails' | translate:editingEmsName}}

\\r\\n

{{editingEmsName ? ('emses.management.EditEms' | translate:editingEmsName) : ('emses.management.NewEms' | translate)}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Ems } from '../../../models/ems.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { EmsEditorComponent } from \"./ems-editor.component\";\r\nimport { EmsService } from 'src/app/services/ems.service';\r\nimport { MatDialog } from '@angular/material';\r\n\r\n\r\n@Component({\r\n selector: 'emses-management',\r\n templateUrl: './emses-management.component.html',\r\n styleUrls: ['./emses-management.component.css']\r\n})\r\nexport class EmsesManagementComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: Ems[] = [];\r\n rowsCache: Ems[] = [];\r\n allPermissions: Permission[] = [];\r\n editedEms: Ems;\r\n sourceEms: Ems;\r\n editingEmsName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('emsEditor')\r\n emsEditor: EmsEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private emsService: EmsService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(ems: Ems): void {\r\n const dialogRef = this.dialog.open(EmsEditorComponent, {\r\n data: { header: this.header, ems: ems },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('emses.management.Name') },\r\n { prop: 'description', name: gT('emses.management.Description') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.emsEditor.changesSavedCallback = () => {\r\n this.addNewEmsToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.emsEditor.changesCancelledCallback = () => {\r\n this.editedEms = null;\r\n this.sourceEms = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewEmsToList() {\r\n if (this.sourceEms) {\r\n Object.assign(this.sourceEms, this.editedEms);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceEms, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceEms, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedEms = null;\r\n this.sourceEms = null;\r\n }\r\n else {\r\n let facility = new Ems();\r\n Object.assign(facility, this.editedEms);\r\n this.editedEms = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (facility).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, facility);\r\n this.rows.splice(0, 0, facility);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.emsService.getEmses()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let emses = results;\r\n\r\n emses.forEach((facility, index, emses) => {\r\n (facility).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...emses];\r\n this.rows = emses;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve emses from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingEmsName = null;\r\n this.emsEditor.resetForm(true);\r\n }\r\n\r\n\r\n newEms() {\r\n this.editingEmsName = null;\r\n this.sourceEms = null;\r\n this.editedEms = this.emsEditor.newEms();\r\n //this.editorModal.show();\r\n this.header = 'New Ems';\r\n this.openDialog(this.editedEms);\r\n }\r\n\r\n\r\n editEms(row: Ems) {\r\n this.editingEmsName = { name: row.name };\r\n this.sourceEms = row;\r\n this.editedEms = this.emsEditor.editEms(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Ems';\r\n this.openDialog(this.editedEms);\r\n }\r\n\r\n deleteEms(row: Ems) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" ems?', DialogType.confirm, () => this.deleteEmsHelper(row));\r\n }\r\n\r\n\r\n deleteEmsHelper(row: Ems) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.emsService.deleteEms(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the ems.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canCreateEmses() {\r\n return this.accountService.userHasPermission(Permission.createEMSsPermission)\r\n }\r\n\r\n get canUpdateEmses() {\r\n return this.accountService.userHasPermission(Permission.updateEMSsPermission)\r\n }\r\n\r\n get canDeleteEmses() {\r\n return this.accountService.userHasPermission(Permission.deleteEMSsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9mYWNpbGl0aWVzL2ZhY2lsaXRpZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvZmFjaWxpdGllcy9mYWNpbGl0aWVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Equipments

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'facilities.management.Edit' | translate}}\\r\\n {{'facilities.management.Details' | translate}}\\r\\n {{canManageFacilities ? '|' : ''}}\\r\\n {{'facilities.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { FacilityService } from '../../../services/facility.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Facility } from '../../../models/facility.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { FacilityEditorComponent } from \"./facility-editor.component\";\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'facilities-management',\r\n templateUrl: './facilities-management.component.html',\r\n styleUrls: ['./facilities-management.component.css']\r\n})\r\nexport class FacilitiesManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: Facility[] = [];\r\n rowsCache: Facility[] = [];\r\n allInstitutions: Institution[] = [];\r\n editedFacility: Facility;\r\n sourceFacility: Facility;\r\n editingFacilityName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('facilityEditor')\r\n facilityEditor: FacilityEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private facilityService: FacilityService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(facility: Facility, allInstitutions: Institution[]): void {\r\n const dialogRef = this.dialog.open(FacilityEditorComponent, {\r\n data: { header: this.header, facility: facility, allInstitutions: allInstitutions },\r\n width: '450px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('facilities.management.Name') },\r\n { prop: 'description', name: gT('facilities.management.Description') },\r\n { prop: 'link', name: gT('facilities.management.Link') },\r\n //{ prop: 'facilityTypeName', name: gT('facilities.management.FacilityType'), width: 80 },\r\n { name: '', cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.facilityEditor.changesSavedCallback = () => {\r\n this.addNewFacilityToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.facilityEditor.changesCancelledCallback = () => {\r\n this.editedFacility = null;\r\n this.sourceFacility = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n addNewFacilityToList() {\r\n if (this.sourceFacility) {\r\n Object.assign(this.sourceFacility, this.editedFacility);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceFacility, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceFacility, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedFacility = null;\r\n this.sourceFacility = null;\r\n }\r\n else {\r\n let facility = new Facility();\r\n Object.assign(facility, this.editedFacility);\r\n this.editedFacility = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (facility).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, facility);\r\n this.rows.splice(0, 0, facility);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.facilityService.getFacilitiesAndFacilityTypes(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let facilities = results[0];\r\n let institutions = results[1];\r\n\r\n facilities.forEach((facility, index, facilities) => {\r\n (facility).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...facilities];\r\n this.rows = facilities;\r\n\r\n this.allInstitutions = institutions;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve facilities from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingFacilityName = null;\r\n this.facilityEditor.resetForm(true);\r\n }\r\n\r\n\r\n newFacility() {\r\n this.editingFacilityName = null;\r\n this.sourceFacility = null;\r\n this.editedFacility = this.facilityEditor.newFacility(this.allInstitutions);\r\n this.header = 'New Equipment';\r\n this.openDialog(this.editedFacility, this.allInstitutions);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editFacility(row: Facility) {\r\n this.editingFacilityName = { name: row.name };\r\n this.sourceFacility = row;\r\n this.editedFacility = this.facilityEditor.editFacility(row, this.allInstitutions);\r\n this.header = 'Edit Equipment';\r\n this.openDialog(this.editedFacility, this.allInstitutions);\r\n //this.editorModal.show();\r\n }\r\n\r\n deleteFacility(row: Facility) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" equipment?', DialogType.confirm, () => this.deleteFacilityHelper(row));\r\n }\r\n\r\n\r\n deleteFacilityHelper(row: Facility) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.facilityService.deleteFacility(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the facility.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManageFacilities() {\r\n return this.accountService.userHasPermission(Permission.manageFacilitiesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9mYWNpbGl0aWVzL2ZhY2lsaXR5LWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUdBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2ZhY2lsaXRpZXMvZmFjaWxpdHktZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input, ChangeDetectorRef, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { FacilityService } from '../../../services/facility.service';\r\nimport { Facility } from '../../../models/facility.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { FacilityTypeService } from 'src/app/services/facility-type.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { FormControl, Validators } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'facility-editor',\r\n templateUrl: './facility-editor.component.html',\r\n styleUrls: ['./facility-editor.component.css']\r\n})\r\nexport class FacilityEditorComponent {\r\n\r\n private isEditMode = false;\r\n private isNewFacility = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingFacilityName: string;\r\n private facilityEdit: Facility = new Facility();\r\n private allInstitutions: Institution[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n fcFacilityType = new FormControl('', [Validators.required]);\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('facilityTypes')\r\n private facilityTypes;\r\n\r\n @ViewChild('facilityTypesSelector')\r\n private facilityTypesSelector;\r\n\r\n @ViewChild('institutionsSelector')\r\n private institutionsSelector;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n constructor(private cdRef: ChangeDetectorRef, private alertService: AlertService, private accountService: AccountService, private facilityService: FacilityService, private facilityTypeService: FacilityTypeService,\r\n private fileService: FileService, private authService: AuthService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.facility) != typeof (undefined)) {\r\n this.allInstitutions = data.allInstitutions;\r\n if (data.facility.id) {\r\n this.editFacility(data.facility, data.allInstitutions);\r\n } else {\r\n this.newFacility(data.allInstitutions);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n if (this.form.form.valid) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n this.facilityEdit.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n this.facilityEdit.institutionId = parseInt(this.authService.currentUser.institutionId);\r\n if (this.isNewFacility) {\r\n this.facilityService.newFacility(this.facilityEdit).subscribe(facility => this.saveSuccessHelper(facility), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.facilityService.updateFacility(this.facilityEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(facility?: Facility) {\r\n if (facility)\r\n Object.assign(this.facilityEdit, facility);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewFacility)\r\n this.alertService.showMessage(\"Success\", `Facility \\\"${this.facilityEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to facility \\\"${this.facilityEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.facilityEdit = new Facility();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewFacility && this.accountService.currentUser.facilities.some(r => r == this.editingFacilityName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.facilityEdit = new Facility();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newFacility(allInstitutions: Institution[]) {\r\n this.isEditMode = true;\r\n this.isNewFacility = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingFacilityName = null;\r\n this.allInstitutions = allInstitutions;\r\n this.selectedValues = {};\r\n this.facilityEdit = new Facility();\r\n\r\n return this.facilityEdit;\r\n }\r\n\r\n editFacility(facility: Facility, allInstitutions: Institution[]) {\r\n this.isEditMode = true;\r\n if (facility) {\r\n this.isNewFacility = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingFacilityName = facility.name;\r\n this.selectedValues = {};\r\n //this.setFacilityTypes(facility, allFacilityTypes);\r\n //this.setInstitutions(facility, allInstitutions);\r\n this.facilityEdit = new Facility();\r\n Object.assign(this.facilityEdit, facility);\r\n\r\n return this.facilityEdit;\r\n }\r\n else {\r\n return this.newFacility(allInstitutions);\r\n }\r\n }\r\n\r\n private setInstitutions(facility: Facility, allInstitutions: Institution[]) {\r\n\r\n this.allInstitutions = allInstitutions ? [...allInstitutions] : [];\r\n\r\n if (allInstitutions == null || this.allInstitutions.length != allInstitutions.length)\r\n setTimeout(() => this.institutionsSelector.refresh());\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.facilityEdit.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageFacilities() {\r\n return this.accountService.userHasPermission(Permission.manageFacilitiesPermission)\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9mYWNpbGl0eS10eXBlL2ZhY2lsaXR5LXR5cGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvZmFjaWxpdHktdHlwZS9mYWNpbGl0eS10eXBlLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { FacilityTypeService } from \"../../../services/facility-type.service\";\r\nimport { FacilityType } from '../../../models/facility-type.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\r\n\r\n\r\n@Component({\r\n selector: 'facility-type-editor',\r\n templateUrl: './facility-type-editor.component.html',\r\n styleUrls: ['./facility-type-editor.component.css']\r\n})\r\nexport class FacilityTypeEditorComponent {\r\n\r\n private isNewFacilityType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingFacilityTypeName: string;\r\n private facilityTypeEdit: FacilityType = new FacilityType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private facilityTypeService: FacilityTypeService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.facilityType) != typeof (undefined)) {\r\n if (data.facilityType.id) {\r\n this.editFacilityType(data.facilityType);\r\n } else {\r\n this.newFacilityType();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.isNewFacilityType) {\r\n this.facilityTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n this.facilityTypeService.newFacilityType(this.facilityTypeEdit).subscribe(facilityType => this.saveSuccessHelper(facilityType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.facilityTypeService.updateFacilityType(this.facilityTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(facilityType?: FacilityType) {\r\n if (facilityType)\r\n Object.assign(this.facilityTypeEdit, facilityType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewFacilityType)\r\n this.alertService.showMessage(\"Success\", `Facility Type \\\"${this.facilityTypeEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to facility type \\\"${this.facilityTypeEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.facilityTypeEdit = new FacilityType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewFacilityType && this.accountService.currentUser.facilities.some(r => r == this.editingFacilityTypeName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.facilityTypeEdit = new FacilityType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newFacilityType() {\r\n this.isNewFacilityType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingFacilityTypeName = null;\r\n this.selectedValues = {};\r\n this.facilityTypeEdit = new FacilityType();\r\n this.facilityTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n return this.facilityTypeEdit;\r\n }\r\n\r\n editFacilityType(facilityType: FacilityType) {\r\n if (facilityType) {\r\n this.isNewFacilityType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingFacilityTypeName = facilityType.name;\r\n this.selectedValues = {};\r\n this.facilityTypeEdit = new FacilityType();\r\n Object.assign(this.facilityTypeEdit, facilityType);\r\n\r\n return this.facilityTypeEdit;\r\n }\r\n else {\r\n return this.newFacilityType();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageFacilityTypes() {\r\n return this.accountService.userHasPermission(Permission.manageFacilityTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9mYWNpbGl0eS10eXBlL2ZhY2lsaXR5LXR5cGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2ZhY2lsaXR5LXR5cGUvZmFjaWxpdHktdHlwZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Facility Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'facilityTypes.management.Edit' | translate}}\\r\\n {{'facilityTypes.management.Details' | translate}}\\r\\n {{canManageFacilityTypes ? '|' : ''}}\\r\\n {{'facilityTypes.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { FacilityType } from '../../../models/facility-type.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { FacilityTypeEditorComponent } from \"./facility-type-editor.component\";\r\nimport { FacilityTypeService } from 'src/app/services/facility-type.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'facility-types-management',\r\n templateUrl: './facility-types-management.component.html',\r\n styleUrls: ['./facility-types-management.component.css']\r\n})\r\nexport class FacilityTypesManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: FacilityType[] = [];\r\n rowsCache: FacilityType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedFacilityType: FacilityType;\r\n sourceFacilityType: FacilityType;\r\n editingFacilityTypeName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('facilityTypeEditor')\r\n facilityTypeEditor: FacilityTypeEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private facilityTypeService: FacilityTypeService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(facilityType: FacilityType): void {\r\n const dialogRef = this.dialog.open(FacilityTypeEditorComponent, {\r\n data: { header: this.header, facilityType: facilityType },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('facilityTypes.management.Name') },\r\n { prop: 'description', name: gT('facilityTypes.management.Description') },\r\n { name: '', cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.facilityTypeEditor.changesSavedCallback = () => {\r\n this.addNewFacilityTypeToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.facilityTypeEditor.changesCancelledCallback = () => {\r\n this.editedFacilityType = null;\r\n this.sourceFacilityType = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n addNewFacilityTypeToList() {\r\n if (this.sourceFacilityType) {\r\n Object.assign(this.sourceFacilityType, this.editedFacilityType);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceFacilityType, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceFacilityType, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedFacilityType = null;\r\n this.sourceFacilityType = null;\r\n }\r\n else {\r\n let facility = new FacilityType();\r\n Object.assign(facility, this.editedFacilityType);\r\n this.editedFacilityType = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (facility).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, facility);\r\n this.rows.splice(0, 0, facility);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.facilityTypeService.getFacilityTypeByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let facilityTypes = results;\r\n\r\n facilityTypes.forEach((facility, index, facilityTypes) => {\r\n (facility).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...facilityTypes];\r\n this.rows = facilityTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve facility types from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingFacilityTypeName = null;\r\n this.facilityTypeEditor.resetForm(true);\r\n }\r\n\r\n\r\n newFacilityType() {\r\n this.editingFacilityTypeName = null;\r\n this.sourceFacilityType = null;\r\n this.editedFacilityType = this.facilityTypeEditor.newFacilityType();\r\n this.header = 'New Facility Type';\r\n this.openDialog(this.editedFacilityType);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editFacilityType(row: FacilityType) {\r\n this.editingFacilityTypeName = { name: row.name };\r\n this.sourceFacilityType = row;\r\n this.editedFacilityType = this.facilityTypeEditor.editFacilityType(row);\r\n this.header = 'Edit Facility Type';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedFacilityType);\r\n }\r\n\r\n deleteFacilityType(row: FacilityType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" facility type?', DialogType.confirm, () => this.deleteFacilityTypeHelper(row));\r\n }\r\n\r\n\r\n deleteFacilityTypeHelper(row: FacilityType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.facilityTypeService.deleteFacilityType(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the facility type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageFacilityTypes() {\r\n return this.accountService.userHasPermission(Permission.manageFacilityTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9pbWFnZS1yZWZlcmVuY2UtY29sb3IvaW1hZ2UtcmVmZXJlbmNlLWNvbG9yLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2ltYWdlLXJlZmVyZW5jZS1jb2xvci9pbWFnZS1yZWZlcmVuY2UtY29sb3ItZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ImageReferenceColor } from 'src/app/models/image-reference-color.model';\r\nimport { ImageReferenceColorService } from 'src/app/services/image-reference-color.service';\r\n\r\n\r\n@Component({\r\n selector: 'image-reference-color-editor',\r\n templateUrl: './image-reference-color-editor.component.html',\r\n styleUrls: ['./image-reference-color-editor.component.css']\r\n})\r\nexport class ImageReferenceColorEditorComponent {\r\n\r\n private isNewImageReferenceColor = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingImageReferenceColorName: string;\r\n private imageReferenceColorEdit: ImageReferenceColor = new ImageReferenceColor();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private imageReferenceColorService: ImageReferenceColorService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.imageReferenceColor) != typeof (undefined)) {\r\n if (data.imageReferenceColor.id) {\r\n this.editImageReferenceColor(data.imageReferenceColor);\r\n } else {\r\n this.newImageReferenceColor();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.imageReferenceColorEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewImageReferenceColor) {\r\n this.imageReferenceColorService.newImageReferenceColor(this.imageReferenceColorEdit).subscribe(imageReferenceColor => this.saveSuccessHelper(imageReferenceColor), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.imageReferenceColorService.updateImageReferenceColor(this.imageReferenceColorEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(imageReferenceColor?: ImageReferenceColor) {\r\n if (imageReferenceColor)\r\n Object.assign(this.imageReferenceColorEdit, imageReferenceColor);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewImageReferenceColor)\r\n this.alertService.showMessage(\"Success\", `ImageReferenceColor \\\"${this.imageReferenceColorEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to imageReferenceColor \\\"${this.imageReferenceColorEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.imageReferenceColorEdit = new ImageReferenceColor();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewImageReferenceColor && this.accountService.currentUser.facilities.some(r => r == this.editingImageReferenceColorName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.imageReferenceColorEdit = new ImageReferenceColor();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.alertService.resetStickyMessage();\r\n this.alertService.resetToastMessage();\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newImageReferenceColor() {\r\n this.isNewImageReferenceColor = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingImageReferenceColorName = null;\r\n this.selectedValues = {};\r\n this.imageReferenceColorEdit = new ImageReferenceColor();\r\n\r\n return this.imageReferenceColorEdit;\r\n }\r\n\r\n editImageReferenceColor(imageReferenceColor: ImageReferenceColor) {\r\n if (imageReferenceColor) {\r\n this.isNewImageReferenceColor = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingImageReferenceColorName = imageReferenceColor.name;\r\n this.selectedValues = {};\r\n this.imageReferenceColorEdit = new ImageReferenceColor();\r\n Object.assign(this.imageReferenceColorEdit, imageReferenceColor);\r\n\r\n return this.imageReferenceColorEdit;\r\n }\r\n else {\r\n return this.newImageReferenceColor();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageImageReferenceColors() {\r\n return this.accountService.userHasPermission(Permission.manageImageReferenceColorsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9pbWFnZS1yZWZlcmVuY2UtY29sb3IvaW1hZ2UtcmVmZXJlbmNlLWNvbG9ycy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9pbWFnZS1yZWZlcmVuY2UtY29sb3IvaW1hZ2UtcmVmZXJlbmNlLWNvbG9ycy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Image Reference Colours

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n \\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ImageReferenceColor } from 'src/app/models/image-reference-color.model';\r\nimport { ImageReferenceColorEditorComponent } from './image-reference-color-editor.component';\r\nimport { ImageReferenceColorService } from 'src/app/services/image-reference-color.service';\r\n\r\n\r\n@Component({\r\n selector: 'image-reference-colors-management',\r\n templateUrl: './image-reference-colors-management.component.html',\r\n styleUrls: ['./image-reference-colors-management.component.css']\r\n})\r\nexport class ImageReferenceColorsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: ImageReferenceColor[] = [];\r\n rowsCache: ImageReferenceColor[] = [];\r\n allPermissions: Permission[] = [];\r\n editedImageReferenceColor: ImageReferenceColor;\r\n sourceImageReferenceColor: ImageReferenceColor;\r\n editingImageReferenceColorName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('colorTemplate')\r\n colorTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('imageReferenceColorEditor')\r\n imageReferenceColorEditor: ImageReferenceColorEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private imageReferenceColorService: ImageReferenceColorService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(imageReferenceColor: ImageReferenceColor): void {\r\n const dialogRef = this.dialog.open(ImageReferenceColorEditorComponent, {\r\n data: { header: this.header, imageReferenceColor: imageReferenceColor },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('common.Name'), width: 200 },\r\n { prop: 'colorCode', name: 'Colour', width: 350, cellTemplate: this.colorTemplate },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.imageReferenceColorService.getImageReferenceColorsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let imageReferenceColors = results.pagedData;\r\n\r\n imageReferenceColors.forEach((imageReferenceColor, index, imageReferenceColors) => {\r\n (imageReferenceColor).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...imageReferenceColors];\r\n this.rows = imageReferenceColors;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve image reference colours from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingImageReferenceColorName = null;\r\n this.imageReferenceColorEditor.resetForm(true);\r\n }\r\n\r\n\r\n newImageReferenceColor() {\r\n //this.editingImageReferenceColorName = null;\r\n //this.sourceImageReferenceColor = null;\r\n //this.editedImageReferenceColor = this.imageReferenceColorEditor.newImageReferenceColor();\r\n //this.editorModal.show();\r\n this.header = 'New Image Reference Colour';\r\n this.editedImageReferenceColor = new ImageReferenceColor();\r\n this.openDialog(this.editedImageReferenceColor);\r\n }\r\n\r\n\r\n editImageReferenceColor(row: ImageReferenceColor) {\r\n //this.editingImageReferenceColorName = { name: row.name };\r\n //this.sourceImageReferenceColor = row;\r\n this.editedImageReferenceColor = row; //this.imageReferenceColorEditor.editImageReferenceColor(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Image Reference Colour';\r\n this.openDialog(this.editedImageReferenceColor);\r\n }\r\n\r\n deleteImageReferenceColor(row: ImageReferenceColor) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" Colour?', DialogType.confirm, () => this.deleteImageReferenceColorHelper(row));\r\n }\r\n\r\n\r\n deleteImageReferenceColorHelper(row: ImageReferenceColor) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.imageReferenceColorService.deleteImageReferenceColor(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the image Reference Colour.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManageImageReferenceColors() {\r\n return this.accountService.userHasPermission(Permission.manageImageReferenceColorsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9pbWFnZS1yZWZlcmVuY2UtdHlwZS9pbWFnZS1yZWZlcmVuY2UtdHlwZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9pbWFnZS1yZWZlcmVuY2UtdHlwZS9pbWFnZS1yZWZlcmVuY2UtdHlwZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ImageReferenceType } from 'src/app/models/image-reference-type.model';\r\nimport { ImageReferenceTypeService } from 'src/app/services/image-reference-type.service';\r\n\r\n\r\n@Component({\r\n selector: 'image-reference-type-editor',\r\n templateUrl: './image-reference-type-editor.component.html',\r\n styleUrls: ['./image-reference-type-editor.component.css']\r\n})\r\nexport class ImageReferenceTypeEditorComponent {\r\n\r\n private isNewImageReferenceType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingImageReferenceTypeName: string;\r\n private imageReferenceTypeEdit: ImageReferenceType = new ImageReferenceType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private imageReferenceTypeService: ImageReferenceTypeService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.imageReferenceType) != typeof (undefined)) {\r\n if (data.imageReferenceType.id) {\r\n this.editImageReferenceType(data.imageReferenceType);\r\n } else {\r\n this.newImageReferenceType();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.imageReferenceTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewImageReferenceType) {\r\n this.imageReferenceTypeService.newImageReferenceType(this.imageReferenceTypeEdit).subscribe(imageReferenceType => this.saveSuccessHelper(imageReferenceType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.imageReferenceTypeService.updateImageReferenceType(this.imageReferenceTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(imageReferenceType?: ImageReferenceType) {\r\n if (imageReferenceType)\r\n Object.assign(this.imageReferenceTypeEdit, imageReferenceType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewImageReferenceType)\r\n this.alertService.showMessage(\"Success\", `ImageReferenceType \\\"${this.imageReferenceTypeEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to imageReferenceType \\\"${this.imageReferenceTypeEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.imageReferenceTypeEdit = new ImageReferenceType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewImageReferenceType && this.accountService.currentUser.facilities.some(r => r == this.editingImageReferenceTypeName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.imageReferenceTypeEdit = new ImageReferenceType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newImageReferenceType() {\r\n this.isNewImageReferenceType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingImageReferenceTypeName = null;\r\n this.selectedValues = {};\r\n this.imageReferenceTypeEdit = new ImageReferenceType();\r\n\r\n return this.imageReferenceTypeEdit;\r\n }\r\n\r\n editImageReferenceType(imageReferenceType: ImageReferenceType) {\r\n if (imageReferenceType) {\r\n this.isNewImageReferenceType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingImageReferenceTypeName = imageReferenceType.name;\r\n this.selectedValues = {};\r\n this.imageReferenceTypeEdit = new ImageReferenceType();\r\n Object.assign(this.imageReferenceTypeEdit, imageReferenceType);\r\n\r\n return this.imageReferenceTypeEdit;\r\n }\r\n else {\r\n return this.newImageReferenceType();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageImageReferenceTypes() {\r\n return this.accountService.userHasPermission(Permission.manageImageReferenceTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9pbWFnZS1yZWZlcmVuY2UtdHlwZS9pbWFnZS1yZWZlcmVuY2UtdHlwZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvaW1hZ2UtcmVmZXJlbmNlLXR5cGUvaW1hZ2UtcmVmZXJlbmNlLXR5cGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Image Reference Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n \\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ImageReferenceType } from 'src/app/models/image-reference-type.model';\r\nimport { ImageReferenceTypeEditorComponent } from './image-reference-type-editor.component';\r\nimport { ImageReferenceTypeService } from 'src/app/services/image-reference-type.service';\r\n\r\n\r\n@Component({\r\n selector: 'image-reference-types-management',\r\n templateUrl: './image-reference-types-management.component.html',\r\n styleUrls: ['./image-reference-types-management.component.css']\r\n})\r\nexport class ImageReferenceTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: ImageReferenceType[] = [];\r\n rowsCache: ImageReferenceType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedImageReferenceType: ImageReferenceType;\r\n sourceImageReferenceType: ImageReferenceType;\r\n editingImageReferenceTypeName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('imageReferenceTypeEditor')\r\n imageReferenceTypeEditor: ImageReferenceTypeEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private imageReferenceTypeService: ImageReferenceTypeService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(imageReferenceType: ImageReferenceType): void {\r\n const dialogRef = this.dialog.open(ImageReferenceTypeEditorComponent, {\r\n data: { header: this.header, imageReferenceType: imageReferenceType },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('common.Name'), width: 200 },\r\n { prop: 'description', name: gT('common.Description'), width: 350 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name|Description)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.imageReferenceTypeService.getImageReferenceTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let imageReferenceTypes = results.pagedData;\r\n\r\n imageReferenceTypes.forEach((imageReferenceType, index, imageReferenceTypes) => {\r\n (imageReferenceType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...imageReferenceTypes];\r\n this.rows = imageReferenceTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve image reference types from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingImageReferenceTypeName = null;\r\n this.imageReferenceTypeEditor.resetForm(true);\r\n }\r\n\r\n\r\n newImageReferenceType() {\r\n //this.editingImageReferenceTypeName = null;\r\n //this.sourceImageReferenceType = null;\r\n //this.editedImageReferenceType = this.imageReferenceTypeEditor.newImageReferenceType();\r\n //this.editorModal.show();\r\n this.header = 'New Image Reference Type';\r\n this.editedImageReferenceType = new ImageReferenceType();\r\n this.openDialog(this.editedImageReferenceType);\r\n }\r\n\r\n\r\n editImageReferenceType(row: ImageReferenceType) {\r\n //this.editingImageReferenceTypeName = { name: row.name };\r\n //this.sourceImageReferenceType = row;\r\n this.editedImageReferenceType = row; //this.imageReferenceTypeEditor.editImageReferenceType(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Image Reference Type';\r\n this.openDialog(this.editedImageReferenceType);\r\n }\r\n\r\n deleteImageReferenceType(row: ImageReferenceType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" imageReferenceType?', DialogType.confirm, () => this.deleteImageReferenceTypeHelper(row));\r\n }\r\n\r\n\r\n deleteImageReferenceTypeHelper(row: ImageReferenceType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.imageReferenceTypeService.deleteImageReferenceType(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the image Reference Type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManageImageReferenceTypes() {\r\n return this.accountService.userHasPermission(Permission.manageImageReferenceTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9pbnN0aXR1dGlvbi9pbnN0aXR1dGlvbi1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9pbnN0aXR1dGlvbi9pbnN0aXR1dGlvbi1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{r}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { InstitutionService } from \"../../../services/institution.service\";\r\nimport { Institution } from '../../../models/institution.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n\r\n@Component({\r\n selector: 'institution-editor',\r\n templateUrl: './institution-editor.component.html',\r\n styleUrls: ['./institution-editor.component.css']\r\n})\r\nexport class InstitutionEditorComponent {\r\n\r\n private isNewInstitution = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingInstitutionName: string;\r\n private institutionEdit: Institution = new Institution();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n private restrictions = ['DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY'];\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private institutionService: InstitutionService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.institution) != typeof (undefined)) {\r\n if (data.institution.id) {\r\n this.editInstitution(data.institution);\r\n } else {\r\n this.newInstitution();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.isNewInstitution) {\r\n this.institutionService.newInstitution(this.institutionEdit).subscribe(institution => this.saveSuccessHelper(institution), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.institutionService.updateInstitution(this.institutionEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(institution?: Institution) {\r\n if (institution)\r\n Object.assign(this.institutionEdit, institution);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewInstitution)\r\n this.alertService.showMessage(\"Success\", `Facility Type \\\"${this.institutionEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to institution \\\"${this.institutionEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.institutionEdit = new Institution();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewInstitution && this.accountService.currentUser.facilities.some(r => r == this.editingInstitutionName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.institutionEdit = new Institution();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newInstitution() {\r\n this.isNewInstitution = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingInstitutionName = null;\r\n this.selectedValues = {};\r\n this.institutionEdit = new Institution();\r\n\r\n return this.institutionEdit;\r\n }\r\n\r\n editInstitution(institution: Institution) {\r\n if (institution) {\r\n this.isNewInstitution = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingInstitutionName = institution.name;\r\n this.selectedValues = {};\r\n this.institutionEdit = new Institution();\r\n Object.assign(this.institutionEdit, institution);\r\n\r\n return this.institutionEdit;\r\n }\r\n else {\r\n return this.newInstitution();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageInstitutions() {\r\n return this.accountService.userHasPermission(Permission.manageInstitutionsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9pbnN0aXR1dGlvbi9pbnN0aXR1dGlvbnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvaW5zdGl0dXRpb24vaW5zdGl0dXRpb25zLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Institutions

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'institutions.management.Edit' | translate}}\\r\\n {{'institutions.management.Details' | translate}}\\r\\n \\r\\n {{'institutions.management.Delete' | translate}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'institutions.management.InstitutionDetails' | translate:editingInstitutionName}}

\\r\\n

{{editingInstitutionName ? ('institutions.management.EditInstitution' | translate:editingInstitutionName) : ('institutions.management.NewInstitution' | translate)}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Institution } from '../../../models/institution.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { InstitutionEditorComponent } from \"./institution-editor.component\";\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'institutions-management',\r\n templateUrl: './institutions-management.component.html',\r\n styleUrls: ['./institutions-management.component.css']\r\n})\r\nexport class InstitutionsManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: Institution[] = [];\r\n rowsCache: Institution[] = [];\r\n allPermissions: Permission[] = [];\r\n editedInstitution: Institution;\r\n sourceInstitution: Institution;\r\n editingInstitutionName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('institutionEditor')\r\n institutionEditor: InstitutionEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private institutionService: InstitutionService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(institution: Institution): void {\r\n const dialogRef = this.dialog.open(InstitutionEditorComponent, {\r\n data: { header: this.header, institution: institution },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('institutions.management.Name'), width: 200 },\r\n { prop: 'description', name: gT('institutions.management.Description'), width: 350 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.institutionEditor.changesSavedCallback = () => {\r\n this.addNewInstitutionToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.institutionEditor.changesCancelledCallback = () => {\r\n this.editedInstitution = null;\r\n this.sourceInstitution = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n addNewInstitutionToList() {\r\n if (this.sourceInstitution) {\r\n Object.assign(this.sourceInstitution, this.editedInstitution);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceInstitution, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceInstitution, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedInstitution = null;\r\n this.sourceInstitution = null;\r\n }\r\n else {\r\n let facility = new Institution();\r\n Object.assign(facility, this.editedInstitution);\r\n this.editedInstitution = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (facility).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, facility);\r\n this.rows.splice(0, 0, facility);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let institutions = results[0];\r\n let permissions = results[1];\r\n\r\n institutions.forEach((facility, index, institutions) => {\r\n (facility).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...institutions];\r\n this.rows = institutions;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingInstitutionName = null;\r\n this.institutionEditor.resetForm(true);\r\n }\r\n\r\n\r\n newInstitution() {\r\n this.editingInstitutionName = null;\r\n this.sourceInstitution = null;\r\n this.editedInstitution = this.institutionEditor.newInstitution();\r\n //this.editorModal.show();\r\n this.header = 'New Institution';\r\n this.openDialog(this.editedInstitution);\r\n }\r\n\r\n\r\n editInstitution(row: Institution) {\r\n this.editingInstitutionName = { name: row.name };\r\n this.sourceInstitution = row;\r\n this.editedInstitution = this.institutionEditor.editInstitution(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Institution';\r\n this.openDialog(this.editedInstitution);\r\n }\r\n\r\n deleteInstitution(row: Institution) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" institution?', DialogType.confirm, () => this.deleteInstitutionHelper(row));\r\n }\r\n\r\n\r\n deleteInstitutionHelper(row: Institution) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.institutionService.deleteInstitution(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the institution.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageInstitutions() {\r\n return this.accountService.userHasPermission(Permission.manageInstitutionsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"::ng-deep .hidden {\\r\\n display: none;\\r\\n}\\r\\n::ng-deep .node-menu {\\r\\n position: relative;\\r\\n width: 150px;\\r\\n}\\r\\n::ng-deep .node-menu .node-menu-content {\\r\\n width: 100%;\\r\\n padding: 5px;\\r\\n position: absolute;\\r\\n border: 1px solid #bdbdbd;\\r\\n border-radius: 5%;\\r\\n box-shadow: 0 0 5px #bdbdbd;\\r\\n background-color: #eee;\\r\\n color: #212121;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n z-index: 999;\\r\\n }\\r\\n::ng-deep .node-menu .node-menu-content li.node-menu-item {\\r\\n list-style: none;\\r\\n padding: 3px;\\r\\n }\\r\\n::ng-deep .node-menu .node-menu-content .node-menu-item:hover {\\r\\n border-radius: 5%;\\r\\n opacity: unset;\\r\\n cursor: pointer;\\r\\n background-color: #bdbdbd;\\r\\n transition: background-color 0.2s ease-out;\\r\\n }\\r\\n::ng-deep .node-menu .node-menu-content .node-menu-item .node-menu-item-icon {\\r\\n display: inline-block;\\r\\n width: 16px;\\r\\n }\\r\\n::ng-deep .node-menu .node-menu-content .node-menu-item .node-menu-item-icon.new-tag:before {\\r\\n content: '\\\\25CF';\\r\\n }\\r\\n::ng-deep .node-menu .node-menu-content .node-menu-item .node-menu-item-icon.new-folder:before {\\r\\n content: '\\\\25B6';\\r\\n }\\r\\n::ng-deep .node-menu .node-menu-content .node-menu-item .node-menu-item-icon.rename:before {\\r\\n content: '\\\\270E';\\r\\n }\\r\\n::ng-deep .node-menu .node-menu-content .node-menu-item .node-menu-item-icon.remove:before {\\r\\n content: '\\\\2716';\\r\\n }\\r\\n::ng-deep .node-menu .node-menu-content .node-menu-item .node-menu-item-value {\\r\\n margin-left: 5px;\\r\\n }\\r\\n::ng-deep tree-internal ul {\\r\\n padding: 3px 0 3px 25px;\\r\\n}\\r\\n::ng-deep tree-internal li {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style: none;\\r\\n}\\r\\n::ng-deep tree-internal .over-drop-target {\\r\\n border: 4px solid #757575;\\r\\n transition: padding 0.2s ease-out;\\r\\n padding: 5px;\\r\\n border-radius: 5%;\\r\\n}\\r\\n::ng-deep tree-internal .tree {\\r\\n box-sizing: border-box;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n}\\r\\n::ng-deep tree-internal .tree li {\\r\\n list-style: none;\\r\\n cursor: default;\\r\\n }\\r\\n::ng-deep tree-internal .tree li div {\\r\\n display: inline-block;\\r\\n box-sizing: border-box;\\r\\n }\\r\\n::ng-deep tree-internal .tree .node-value {\\r\\n display: inline-block;\\r\\n color: #212121;\\r\\n }\\r\\n::ng-deep tree-internal .tree .node-value:after {\\r\\n display: block;\\r\\n padding-top: -3px;\\r\\n width: 0;\\r\\n height: 2px;\\r\\n background-color: #212121;\\r\\n content: '';\\r\\n transition: width 0.3s;\\r\\n }\\r\\n::ng-deep tree-internal .tree .node-value:hover:after {\\r\\n width: 100%;\\r\\n }\\r\\n::ng-deep tree-internal .tree .node-left-menu {\\r\\n display: inline-block;\\r\\n height: 100%;\\r\\n width: auto;\\r\\n }\\r\\n::ng-deep tree-internal .tree .node-left-menu span:before {\\r\\n content: '\\\\2026';\\r\\n color: #757575;\\r\\n }\\r\\n::ng-deep tree-internal .tree .node-selected:after {\\r\\n width: 100%;\\r\\n }\\r\\n::ng-deep tree-internal .tree .folding {\\r\\n width: 25px;\\r\\n display: inline-block;\\r\\n line-height: 1px;\\r\\n padding: 0 5px;\\r\\n font-weight: bold;\\r\\n }\\r\\n::ng-deep tree-internal .tree .folding.node-collapsed {\\r\\n cursor: pointer;\\r\\n }\\r\\n::ng-deep tree-internal .tree .folding.node-collapsed:before {\\r\\n content: '\\\\25B6';\\r\\n color: #757575;\\r\\n }\\r\\n::ng-deep tree-internal .tree .folding.node-expanded {\\r\\n cursor: pointer;\\r\\n }\\r\\n::ng-deep tree-internal .tree .folding.node-expanded:before {\\r\\n content: '\\\\25BC';\\r\\n color: #757575;\\r\\n }\\r\\n::ng-deep tree-internal .tree .folding.node-empty {\\r\\n color: #212121;\\r\\n text-align: center;\\r\\n font-size: 0.89em;\\r\\n }\\r\\n::ng-deep tree-internal .tree .folding.node-empty:before {\\r\\n content: '\\\\25B6';\\r\\n color: #757575;\\r\\n }\\r\\n::ng-deep tree-internal .tree .folding.node-leaf {\\r\\n color: #212121;\\r\\n text-align: center;\\r\\n font-size: 0.89em;\\r\\n }\\r\\n::ng-deep tree-internal .tree .folding.node-leaf:before {\\r\\n content: '\\\\25CF';\\r\\n color: #757575;\\r\\n }\\r\\n::ng-deep tree-internal ul.rootless {\\r\\n padding: 0;\\r\\n}\\r\\n::ng-deep tree-internal div.rootless {\\r\\n display: none !important;\\r\\n}\\r\\n::ng-deep tree-internal .loading-children:after {\\r\\n content: ' loading ...';\\r\\n color: #6a1b9a;\\r\\n font-style: italic;\\r\\n font-size: 0.9em;\\r\\n -webkit-animation-name: loading-children;\\r\\n animation-name: loading-children;\\r\\n -webkit-animation-duration: 2s;\\r\\n animation-duration: 2s;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n -webkit-animation-iteration-count: infinite;\\r\\n animation-iteration-count: infinite;\\r\\n}\\r\\n@-webkit-keyframes loading-children {\\r\\n 0% {\\r\\n color: #f3e5f5;\\r\\n }\\r\\n\\r\\n 12.5% {\\r\\n color: #e1bee7;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n color: #ce93d8;\\r\\n }\\r\\n\\r\\n 37.5% {\\r\\n color: #ba68c8;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: #ab47bc;\\r\\n }\\r\\n\\r\\n 62.5% {\\r\\n color: #9c27b0;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n color: #8e24aa;\\r\\n }\\r\\n\\r\\n 87.5% {\\r\\n color: #7b1fa2;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #6a1b9a;\\r\\n }\\r\\n}\\r\\n@keyframes loading-children {\\r\\n 0% {\\r\\n color: #f3e5f5;\\r\\n }\\r\\n\\r\\n 12.5% {\\r\\n color: #e1bee7;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n color: #ce93d8;\\r\\n }\\r\\n\\r\\n 37.5% {\\r\\n color: #ba68c8;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: #ab47bc;\\r\\n }\\r\\n\\r\\n 62.5% {\\r\\n color: #9c27b0;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n color: #8e24aa;\\r\\n }\\r\\n\\r\\n 87.5% {\\r\\n color: #7b1fa2;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #6a1b9a;\\r\\n }\\r\\n}\\r\\n/*end tree*/\\r\\n.row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n/*input.form-control {\\r\\n border-left-width: 5px;\\r\\n}*/\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n.mat-form-field{\\r\\n width: 100%;\\r\\n}\\r\\n.color-span {\\r\\n width: 90%;\\r\\n height: 16px;\\r\\n float: left;\\r\\n}\\r\\n.color-box {\\r\\n width: 20%;\\r\\n float: right;\\r\\n border: 1px solid;\\r\\n height: 30px;\\r\\n margin-top: 5px;\\r\\n}\\r\\n.color-text-box {\\r\\n width: 80%;\\r\\n float: left;\\r\\n text-overflow: ellipsis;\\r\\n /* padding-right: 10px; */\\r\\n overflow: hidden;\\r\\n}\\r\\n/*.image-ref-table{\\r\\n max-height:300px;\\r\\n overflow:auto;\\r\\n}*/\\r\\n.image-ref-table table {\\r\\n table-layout: fixed;\\r\\n width: 100%;\\r\\n}\\r\\n.new-record {\\r\\n background: #fbfeff;\\r\\n}\\r\\n.btn-upload-container file-upload .btn-container {\\r\\n width: 100% !important;\\r\\n}\\r\\n.ellipsis {\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n}\\r\\n.tree-editor-container {\\r\\n max-height: 60vh;\\r\\n overflow: auto;\\r\\n}\\r\\n@media (min-height: 650px) {\\r\\n .tree-container {\\r\\n max-height: 70vh !important;\\r\\n overflow: auto !important;\\r\\n }\\r\\n}\\r\\n.text-left{\\r\\n text-align:left;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9sb2NhdGlvbnMtdHJlZS9sb2NhdGlvbi10cmVlLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtBQUNkO0FBRUU7SUFDRSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIsaUJBQWlCO0lBQ2pCLDJCQUEyQjtJQUMzQixzQkFBc0I7SUFDdEIsY0FBYztJQUNkLDJEQUEyRDtJQUMzRCxZQUFZO0VBQ2Q7QUFFRTtNQUNFLGdCQUFnQjtNQUNoQixZQUFZO0lBQ2Q7QUFFQTtNQUNFLGlCQUFpQjtNQUNqQixjQUFjO01BQ2QsZUFBZTtNQUNmLHlCQUF5QjtNQUN6QiwwQ0FBMEM7SUFDNUM7QUFFQTtNQUNFLHFCQUFxQjtNQUNyQixXQUFXO0lBQ2I7QUFFRTtRQUNFLGdCQUFnQjtNQUNsQjtBQUVBO1FBQ0UsZ0JBQWdCO01BQ2xCO0FBRUE7UUFDRSxnQkFBZ0I7TUFDbEI7QUFFQTtRQUNFLGdCQUFnQjtNQUNsQjtBQUVGO01BQ0UsZ0JBQWdCO0lBQ2xCO0FBRUo7RUFDRSx1QkFBdUI7QUFDekI7QUFFQTtFQUNFLFVBQVU7RUFDVixTQUFTO0VBQ1QsZ0JBQWdCO0FBQ2xCO0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsaUNBQWlDO0VBQ2pDLFlBQVk7RUFDWixpQkFBaUI7QUFDbkI7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QiwyREFBMkQ7QUFDN0Q7QUFFRTtJQUNFLGdCQUFnQjtJQUNoQixlQUFlO0VBQ2pCO0FBRUU7TUFDRSxxQkFBcUI7TUFDckIsc0JBQXNCO0lBQ3hCO0FBRUY7SUFDRSxxQkFBcUI7SUFDckIsY0FBYztFQUNoQjtBQUVFO01BQ0UsY0FBYztNQUNkLGlCQUFpQjtNQUNqQixRQUFRO01BQ1IsV0FBVztNQUNYLHlCQUF5QjtNQUN6QixXQUFXO01BQ1gs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c3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2xvY2F0aW9ucy10cmVlL2xvY2F0aW9uLXRyZWUtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6Om5nLWRlZXAgLmhpZGRlbiB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG46Om5nLWRlZXAgLm5vZGUtbWVudSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxNTBweDtcclxufVxyXG5cclxuICA6Om5nLWRlZXAgLm5vZGUtbWVudSAubm9kZS1tZW51LWNvbnRlbnQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmRiZGJkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNSU7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNiZGJkYmQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG4gICAgY29sb3I6ICMyMTIxMjE7XHJcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgei1pbmRleDogOTk5O1xyXG4gIH1cclxuXHJcbiAgICA6Om5nLWRlZXAgLm5vZGUtbWVudSAubm9kZS1tZW51LWNvbnRlbnQgbGkubm9kZS1tZW51LWl0ZW0ge1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBwYWRkaW5nOiAzcHg7XHJcbiAgICB9XHJcblxyXG4gICAgOjpuZy1kZWVwIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbTpob3ZlciB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUlO1xyXG4gICAgICBvcGFjaXR5OiB1bnNldDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkO1xyXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1vdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpuZy1kZWVwIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgd2lkdGg6IDE2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgICA6Om5nLWRlZXAgLm5vZGUtbWVudSAubm9kZS1tZW51LWNvbnRlbnQgLm5vZGUtbWVudS1pdGVtIC5ub2RlLW1lbnUtaXRlbS1pY29uLm5ldy10YWc6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnXFwyNUNGJztcclxuICAgICAgfVxyXG5cclxuICAgICAgOjpuZy1kZWVwIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0taWNvbi5uZXctZm9sZGVyOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjVCNic7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDo6bmctZGVlcCAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCAubm9kZS1tZW51LWl0ZW0gLm5vZGUtbWVudS1pdGVtLWljb24ucmVuYW1lOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjcwRSc7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDo6bmctZGVlcCAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCAubm9kZS1tZW51LWl0ZW0gLm5vZGUtbWVudS1pdGVtLWljb24ucmVtb3ZlOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjcxNic7XHJcbiAgICAgIH1cclxuXHJcbiAgICA6Om5nLWRlZXAgLm5vZGUtbWVudSAubm9kZS1tZW51LWNvbnRlbnQgLm5vZGUtbWVudS1pdGVtIC5ub2RlLW1lbnUtaXRlbS12YWx1ZSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgICB9XHJcblxyXG46Om5nLWRlZXAgdHJlZS1pbnRlcm5hbCB1bCB7XHJcbiAgcGFkZGluZzogM3B4IDAgM3B4IDI1cHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCB0cmVlLWludGVybmFsIGxpIHtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG59XHJcblxyXG46Om5nLWRlZXAgdHJlZS1pbnRlcm5hbCAub3Zlci1kcm9wLXRhcmdldCB7XHJcbiAgYm9yZGVyOiA0cHggc29saWQgIzc1NzU3NTtcclxuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuMnMgZWFzZS1vdXQ7XHJcbiAgcGFkZGluZzogNXB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUlO1xyXG59XHJcblxyXG46Om5nLWRlZXAgdHJlZS1pbnRlcm5hbCAudHJlZSB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4gIDo6bmctZGVlcCB0cmVlLWludGVybmFsIC50cmVlIGxpIHtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICAgIDo6bmctZGVlcCB0cmVlLWludGVybmFsIC50cmVlIGxpIGRpdiB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1cclxuXHJcbiAgOjpuZy1kZWVwIHRyZWUtaW50ZXJuYWwgLnRyZWUgLm5vZGUtdmFsdWUge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgY29sb3I6ICMyMTIxMjE7XHJcbiAgfVxyXG5cclxuICAgIDo6bmctZGVlcCB0cmVlLWludGVybmFsIC50cmVlIC5ub2RlLXZhbHVlOmFmdGVyIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAtM3B4O1xyXG4gICAgICB3aWR0aDogMDtcclxuICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzO1xyXG4gICAgfVxyXG5cclxuICAgIDo6bmctZGVlcCB0cmVlLWludGVybmFsIC50cmVlIC5ub2RlLXZhbHVlOmhvdmVyOmFmdGVyIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gIDo6bmctZGVlcCB0cmVlLWludGVybmFsIC50cmVlIC5ub2RlLWxlZnQtbWVudSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICB9XHJcblxyXG4gICAgOjpuZy1kZWVwIHRyZWUtaW50ZXJuYWwgLnRyZWUgLm5vZGUtbGVmdC1tZW51IHNwYW46YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJ1xcMjAyNic7XHJcbiAgICAgIGNvbG9yOiAjNzU3NTc1O1xyXG4gICAgfVxyXG5cclxuICA6Om5nLWRlZXAgdHJlZS1pbnRlcm5hbCAudHJlZSAubm9kZS1zZWxlY3RlZDphZnRlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIDo6bmctZGVlcCB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nIHtcclxuICAgIHdpZHRoOiAyNXB4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbGluZS1oZWlnaHQ6IDFweDtcclxuICAgIHBhZGRpbmc6IDAgNXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgfVxyXG5cclxuICAgIDo6bmctZGVlcCB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nLm5vZGUtY29sbGFwc2VkIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgICAgOjpuZy1kZWVwIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcubm9kZS1jb2xsYXBzZWQ6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnXFwyNUI2JztcclxuICAgICAgICBjb2xvcjogIzc1NzU3NTtcclxuICAgICAgfVxyXG5cclxuICAgIDo6bmctZGVlcCB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nLm5vZGUtZXhwYW5kZWQge1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgICA6Om5nLWRlZXAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWV4cGFuZGVkOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjVCQyc7XHJcbiAgICAgICAgY29sb3I6ICM3NTc1NzU7XHJcbiAgICAgIH1cclxuXHJcbiAgICA6Om5nLWRlZXAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWVtcHR5IHtcclxuICAgICAgY29sb3I6ICMyMTIxMjE7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZm9udC1zaXplOiAwLjg5ZW07XHJcbiAgICB9XHJcblxyXG4gICAgICA6Om5nLWRlZXAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWVtcHR5OmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjVCNic7XHJcbiAgICAgICAgY29sb3I6ICM3NTc1NzU7XHJcbiAgICAgIH1cclxuXHJcbiAgICA6Om5nLWRlZXAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWxlYWYge1xyXG4gICAgICBjb2xvcjogIzIxMjEyMTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBmb250LXNpemU6IDAuODllbTtcclxuICAgIH1cclxuXHJcbiAgICAgIDo6bmctZGVlcCB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nLm5vZGUtbGVhZjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1Q0YnO1xyXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xyXG4gICAgICB9XHJcblxyXG46Om5nLWRlZXAgdHJlZS1pbnRlcm5hbCB1bC5yb290bGVzcyB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuOjpuZy1kZWVwIHRyZWUtaW50ZXJuYWwgZGl2LnJvb3RsZXNzIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCB0cmVlLWludGVybmFsIC5sb2FkaW5nLWNoaWxkcmVuOmFmdGVyIHtcclxuICBjb250ZW50OiAnIGxvYWRpbmcgLi4uJztcclxuICBjb2xvcjogIzZhMWI5YTtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgZm9udC1zaXplOiAwLjllbTtcclxuICBhbmltYXRpb24tbmFtZTogbG9hZGluZy1jaGlsZHJlbjtcclxuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xyXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGxvYWRpbmctY2hpbGRyZW4ge1xyXG4gIDAlIHtcclxuICAgIGNvbG9yOiAjZjNlNWY1O1xyXG4gIH1cclxuXHJcbiAgMTIuNSUge1xyXG4gICAgY29sb3I6ICNlMWJlZTc7XHJcbiAgfVxyXG5cclxuICAyNSUge1xyXG4gICAgY29sb3I6ICNjZTkzZDg7XHJcbiAgfVxyXG5cclxuICAzNy41JSB7XHJcbiAgICBjb2xvcjogI2JhNjhjODtcclxuICB9XHJcblxyXG4gIDUwJSB7XHJcbiAgICBjb2xvcjogI2FiNDdiYztcclxuICB9XHJcblxyXG4gIDYyLjUlIHtcclxuICAgIGNvbG9yOiAjOWMyN2IwO1xyXG4gIH1cclxuXHJcbiAgNzUlIHtcclxuICAgIGNvbG9yOiAjOGUyNGFhO1xyXG4gIH1cclxuXHJcbiAgODcuNSUge1xyXG4gICAgY29sb3I6ICM3YjFmYTI7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIGNvbG9yOiAjNmExYjlhO1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbi8qZW5kIHRyZWUqL1xyXG4ucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5cclxuLyppbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufSovXHJcblxyXG4uZmFjaWxpdHlFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubWF0LWZvcm0tZmllbGR7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5jb2xvci1zcGFuIHtcclxuICB3aWR0aDogOTAlO1xyXG4gIGhlaWdodDogMTZweDtcclxuICBmbG9hdDogbGVmdDtcclxufVxyXG5cclxuLmNvbG9yLWJveCB7XHJcbiAgd2lkdGg6IDIwJTtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgYm9yZGVyOiAxcHggc29saWQ7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG4gIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmNvbG9yLXRleHQtYm94IHtcclxuICB3aWR0aDogODAlO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIC8qIHBhZGRpbmctcmlnaHQ6IDEwcHg7ICovXHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG4vKi5pbWFnZS1yZWYtdGFibGV7XHJcbiAgbWF4LWhlaWdodDozMDBweDtcclxuICBvdmVyZmxvdzphdXRvO1xyXG59Ki9cclxuXHJcbi5pbWFnZS1yZWYtdGFibGUgdGFibGUge1xyXG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5uZXctcmVjb3JkIHtcclxuICBiYWNrZ3JvdW5kOiAjZmJmZWZmO1xyXG59XHJcblxyXG4uYnRuLXVwbG9hZC1jb250YWluZXIgZmlsZS11cGxvYWQgLmJ0bi1jb250YWluZXIge1xyXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5lbGxpcHNpcyB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxufVxyXG5cclxuLnRyZWUtZWRpdG9yLWNvbnRhaW5lciB7XHJcbiAgbWF4LWhlaWdodDogNjB2aDtcclxuICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuQG1lZGlhIChtaW4taGVpZ2h0OiA2NTBweCkge1xyXG4gIC50cmVlLWNvbnRhaW5lciB7XHJcbiAgICBtYXgtaGVpZ2h0OiA3MHZoICFpbXBvcnRhbnQ7XHJcbiAgICBvdmVyZmxvdzogYXV0byAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLnRleHQtbGVmdHtcclxuICB0ZXh0LWFsaWduOmxlZnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'locations.editor.LocationNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n {{'locations.editor.LocationNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'locations.editor.LocationCapacityRequired' | 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 {{locationEdit.directoryName}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n {{locationEdit.institutionName}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{institution.name}} - {{institution.description}}\\r\\n \\r\\n {{'locations.editor.InstitutionRequired' | 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 {{facility.name}} - {{facility.description}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{facilityType.name}} - {{facilityType.description}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n References\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
0\\\" class=\\\"col-xs-12 bottom-space filter-container\\\">\\r\\n
\\r\\n \\r\\n Filter By Type\\r\\n \\r\\n \\r\\n \\r\\n {{t.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Filter By Colour\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n --\\r\\n \\r\\n
{{t.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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
Date TypeColour Code
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{t.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
{{t.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n {{ir.fileName}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n <\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Assets\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
Serial No.ModelAsset TypePurchase DateWarranty StartWarranty End
{{ir.serialNumber}}{{ir.assetModelName}}{{ir.assetTypeName}}{{ir.purchaseDate | date:\\\"dd/MM/yyyy\\\"}}{{ir.warrantyStart | date:\\\"dd/MM/yyyy\\\"}}{{ir.warrantyEnd | date:\\\"dd/MM/yyyy\\\"}}
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input, ChangeDetectorRef, ViewEncapsulation, Inject, OnInit, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { DateAdapter, MatDialog, MatDialogRef, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { LocationService } from '../../../services/location.service';\r\nimport { ImageReference, Location } from '../../../models/location.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { DirectoryListing } from 'src/app/models/directory-listing.model';\r\nimport { FacilityService } from 'src/app/services/facility.service';\r\nimport { Facility } from '../../../models/facility.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { TreeModel } from 'ng2-tree';\r\nimport { LocationTree } from 'src/app/models/location-tree.model';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { ImageViewerComponent } from '../../common/image-viewer/image-viewer.component';\r\nimport { FacilityTypeService } from 'src/app/services/facility-type.service';\r\nimport { FacilityType } from 'src/app/models/facility-type.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { ImageReferenceTypeService } from 'src/app/services/image-reference-type.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { ImageReferenceColorService } from 'src/app/services/image-reference-color.service';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\nimport { LocationAsset } from 'src/app/models/asset.model';\r\nimport { AssetService } from 'src/app/services/asset.service';\r\nimport { AssetSelectorComponent } from '../../common/asset-selector/asset-selector.component';\r\n\r\n\r\n@Component({\r\n selector: 'location-tree-editor',\r\n templateUrl: './location-tree-editor.component.html',\r\n styleUrls: ['./location-tree-editor.component.css'],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\nexport class LocationTreeEditorComponent implements OnChanges {\r\n\r\n private isEditMode = false;\r\n private isNewLocation = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingLocationName: string;\r\n private locationEdit: Location = new Location();\r\n private originalLocation: Location = new Location();\r\n private allInstitutions: Institution[] = [];\r\n private allDirs: DirectoryListing[] = [];\r\n private facilitiesList: Facility[] = [];\r\n private facilityTypesList: FacilityType[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n private imageRefSort: boolean = false;\r\n private assetSort: boolean = false;\r\n facilities = new FormControl('', [Validators.required]);\r\n facilityTypes = new FormControl('');\r\n institutions = new FormControl('', [Validators.required]);\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n public formResetToggle = true;\r\n public imageReferenceTypes = [];\r\n public imageReferenceColors = [];\r\n public assetTypes = [];\r\n public assetModels = [];\r\n public colorCodes = ['Red', 'Yellow', 'Blue', 'Orange', 'Green', 'Violet', 'Brown', 'Gray', 'Black', 'Pink'];\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('locationTypes')\r\n private locationTypes;\r\n\r\n @ViewChild('locationTypesSelector')\r\n private locationTypesSelector;\r\n\r\n @ViewChild('institutionsSelector')\r\n private institutionsSelector;\r\n\r\n @ViewChild('directorySelector')\r\n private directorySelector;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n location: Location;\r\n\r\n @Output()\r\n savedLocation = new EventEmitter();\r\n\r\n @Output()\r\n cancelChanges = new EventEmitter();\r\n\r\n filter: Filter;\r\n\r\n savedCompleted(location: Location) {\r\n this.imageRefSort = false;\r\n this.savedLocation.emit(location);\r\n }\r\n\r\n cancelChangeCompleted() {\r\n this.cancelChanges.emit(this.location);\r\n }\r\n\r\n @Output()\r\n renamedLocation = new EventEmitter();\r\n\r\n renamedLocationComplete(txt) {\r\n this.renamedLocation.emit(txt);\r\n }\r\n\r\n rootLocation: LocationTree;\r\n oopNodeController: any;\r\n\r\n @ViewChild('location')\r\n locationName: any;\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private alertService: AlertService, private accountService: AccountService, private locationService: LocationService, private facilityService: FacilityService,\r\n private facilityTypeService: FacilityTypeService, public dialogRef: MatDialogRef, private configurationService: ConfigurationService,\r\n private fileService: FileService, @Inject(MAT_DIALOG_DATA) public data: any, public dialog: MatDialog, private imageTypeReferenceService: ImageReferenceTypeService, private imageReferenceColorService: ImageReferenceColorService,\r\n private assetService: AssetService,\r\n private dateAdapter: DateAdapter) {\r\n this.dateAdapter.setLocale('en-SG');\r\n this.loadFacilities();\r\n this.loadFacilityTypes();\r\n this.loadImageReferenceTypes();\r\n this.loadImageReferenceColors();\r\n this.loadAssetTypes();\r\n this.loadAssetModels();\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.clearFilters();\r\n if (this.locationName) {\r\n\r\n this.locationName.nativeElement.focus();\r\n }\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n renameNode(ev) {\r\n console.log(ev);\r\n\r\n this.renamedLocationComplete(ev.target.value);\r\n }\r\n private save() {\r\n //check assets are filled out correctly\r\n if (this.locationEdit.locationAssets) {\r\n let exist = this.locationEdit.locationAssets.findIndex(e => !e.assetModelId || !e.serialNumber);\r\n if (exist > -1) {\r\n this.showErrorAlert('Assets Section', 'Please fill out required fields.');\r\n return;\r\n }\r\n \r\n }\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (!this.locationEdit.id) {\r\n //this.locationEdit.institutionId = this.accountService.currentUser.institutionId;\r\n this.locationService.newLocation(this.locationEdit).subscribe(location => this.saveSuccessHelper(location), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.locationService.updateLocation(this.locationEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(location?: Location) {\r\n if (location)\r\n Object.assign(this.locationEdit, location);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n this.savedCompleted(this.locationEdit);\r\n if (this.isNewLocation) {\r\n this.alertService.showMessage(\"Success\", `Location \\\"${this.locationEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to location \\\"${this.locationEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n\r\n //this.locationEdit = new Location();\r\n //this.resetForm();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n if (this.originalLocation && this.originalLocation.name == 'New') {\r\n this.savedCompleted(this.originalLocation);\r\n this.resetForm();\r\n }\r\n\r\n this.locationEdit = this.originalLocation;\r\n\r\n this.showValidationErrors = false;\r\n //\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.cancelChangeCompleted();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n setDisabledSelection(institution) {\r\n return this.rootLocation.value == institution.name;\r\n }\r\n\r\n newLocation(allInstitutions: Institution[], allDirs: DirectoryListing[], tempName?: string) {\r\n this.isEditMode = true;\r\n this.isNewLocation = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingLocationName = null;\r\n this.setInstitutions(allInstitutions);\r\n this.setDirs(allDirs);\r\n this.selectedValues = {};\r\n this.locationEdit = new Location();\r\n this.locationEdit.name = tempName;\r\n this.locationEdit.locationAssets = [];\r\n return this.locationEdit;\r\n }\r\n\r\n editLocation(location: Location, allInstitutions: Institution[], rootLocation: LocationTree, allDirs: DirectoryListing[]) {\r\n this.isEditMode = true;\r\n this.rootLocation = rootLocation;\r\n if (location) {\r\n this.isNewLocation = false;\r\n this.showValidationErrors = true;\r\n\r\n this.originalLocation = location;\r\n this.editingLocationName = location.name;\r\n this.selectedValues = {};\r\n this.setInstitutions(allInstitutions);\r\n this.setDirs(allDirs);\r\n this.locationEdit = new Location();\r\n console.log(location);\r\n Object.assign(this.locationEdit, location);\r\n console.log(this.locationEdit);\r\n this.ngOnChanges();\r\n return this.locationEdit;\r\n }\r\n else {\r\n this.ngOnChanges();\r\n return this.newLocation(allInstitutions,allDirs);\r\n }\r\n }\r\n\r\n private setInstitutions(allInstitutions: Institution[]) {\r\n\r\n this.allInstitutions = allInstitutions ? [...allInstitutions] : [];\r\n\r\n if (allInstitutions == null || this.allInstitutions.length != allInstitutions.length)\r\n setTimeout(() => this.institutionsSelector.refresh());\r\n }\r\n\r\n private setDirs(allDirs: DirectoryListing[]) {\r\n\r\n this.allDirs = allDirs ? [...allDirs] : [];\r\n\r\n if (allDirs == null || this.allDirs.length != allDirs.length)\r\n setTimeout(() => this.directorySelector.refresh());\r\n }\r\n\r\n loadFacilities() {\r\n\r\n this.facilityService.getFacilitiesAndFacilityTypes(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n let facilities = results[0];\r\n this.facilitiesList = facilities;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getFacilitiesByInstitutionId failed\", \"An error occured while trying to get equipments from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadFacilityTypes() {\r\n\r\n this.facilityTypeService.getFacilityTypeByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.facilityTypesList = results;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getFacilityTypesByInstitutionId failed\", \"An error occured while trying to get facility types from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadImageReferenceTypes() {\r\n this.filter = new Filter(-1, -10);\r\n this.filter.sorts = 'Name';\r\n this.filter.filters = '';\r\n this.filter.page = 0;\r\n this.filter.pageSize = 0;\r\n this.filter.filters = '(IsActive)==true';\r\n\r\n this.imageTypeReferenceService.getImageReferenceTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.imageReferenceTypes = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getImageReferenceTypesByFilter failed\", \"An error occured while trying to get image reference types from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadImageReferenceColors() {\r\n this.filter = new Filter(-1, -10);\r\n this.filter.sorts = 'Name';\r\n this.filter.filters = '';\r\n this.filter.page = 0;\r\n this.filter.pageSize = 0;\r\n this.filter.filters = '(IsActive)==true';\r\n\r\n this.imageReferenceColorService.getImageReferenceColorsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.imageReferenceColors = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getImageReferenceColorsByFilter failed\", \"An error occured while trying to get image reference colors from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadAssetTypes() {\r\n this.filter = new Filter();\r\n this.filter.sorts = 'Name';\r\n this.filter.filters = '';\r\n this.filter.page = 0;\r\n this.filter.pageSize = 0;\r\n this.filter.filters = '(IsActive)==true,(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n\r\n this.assetService.getAssetTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.assetTypes = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getAssetTypesByFilter failed\", \"An error occured while trying to get asset types from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadAssetModels() {\r\n this.filter = new Filter();\r\n this.filter.sorts = 'Name';\r\n this.filter.filters = '';\r\n this.filter.page = 0;\r\n this.filter.pageSize = 0;\r\n this.filter.filters = '(IsActive)==true,(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n\r\n this.assetService.getAssetModelsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.assetModels = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getAssetModelsByFilter failed\", \"An error occured while trying to get asset model from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n changeAssetType(id, row) {\r\n row.assetModelId = '';\r\n }\r\n\r\n getAssetTypeName(id, row) {\r\n if (!this.assetModels) this.assetModels = [];\r\n let modelIndx = this.assetModels.findIndex(e => e.id == id);\r\n if (modelIndx > -1) {\r\n if (!this.assetTypes) this.assetTypes = [];\r\n let typeIndx = this.assetTypes.findIndex(e => e.id == this.assetModels[modelIndx].assetTypeId);\r\n\r\n return this.assetTypes[typeIndx].name;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n changeInstitutions(id) {\r\n this.facilityService.getFacilitiesByInstitutionId(id)\r\n .subscribe(results => {\r\n let facilities = results[0];\r\n this.facilitiesList = facilities;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getFacilitiesByInstitutionId failed\", \"An error occured while trying to get equipments from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n setLocationTypeId(id) {\r\n this.locationEdit.locationTypeId = id;\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.locationEdit.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n public addImageReferenceRecord() {\r\n if (!this.locationEdit.imageReferences) {\r\n this.locationEdit.imageReferences = [];\r\n }\r\n\r\n this.locationEdit.imageReferences.splice(0, 0, new ImageReference(this.locationEdit.id, '', '', 0, null, '', new Date()));\r\n\r\n //this.locationEdit.imageReferences.push(new ImageReference(this.locationEdit.id, '', '', 0, null, '', new Date()));\r\n }\r\n\r\n public addImageReference = (event, ir) => {\r\n let filePath = event ? event.dbPath : null;\r\n let originalFileName = event ? event.originalFileName : null;\r\n //if (!this.locationEdit.imageReferences) {\r\n // this.locationEdit.imageReferences = [];\r\n //}\r\n\r\n ir.filePath = filePath;\r\n ir.fileName = originalFileName;\r\n //this.locationEdit.imageReferences.push(new ImageReference(this.locationEdit.id, filePath, '', 0, null, '', new Date()));\r\n //this.locationEdit.imageReferences.push({\r\n // locationId: this.locationEdit.id,\r\n // fileId: 0,\r\n // filePath: filePath,\r\n // fileName: null,\r\n // remarks: '',\r\n //});\r\n //console.log(this.locationEdit.imageReferences);\r\n }\r\n\r\n downloadFile(path) {\r\n window.open(this.configurationService.baseUrl + '/Download/FileByPath?filePath=/' + encodeURIComponent(path), '_blank');\r\n }\r\n\r\n getDomainUrl() {\r\n return this.configurationService.config.domainUrl;\r\n }\r\n\r\n viewImage(path, isDownload) {\r\n let fileType = this.getFileType(path);\r\n if (fileType == 'pdf') {\r\n this.downloadFile(path);\r\n //|| fileType == 'ppt' || fileType == 'pptx' || fileType == 'doc' || fileType == 'docx') {\r\n //window.open('https://docs.google.com/viewerng/viewer?url=' + this.getFileImage(path), '_blank');\r\n } else if (fileType == 'ppt' || fileType == 'pptx' || fileType == 'doc' || fileType == 'docx') {\r\n //path = '\\\\Resources\\\\Images\\\\8a6e4f0f-5a92-4fcb-a55a-927f601b107ed64d305b-4ffb-4c2f-9067-aee606b500a1pptexamples & test (2).ppt';\r\n if (path[0] == \"\\\\\" || path[0] == \"/\") {\r\n path = path.substring(1, path.length);\r\n }\r\n console.log(this.getDomainUrl() + \"/\" + path);\r\n let src = encodeURIComponent(this.getDomainUrl() + \"/\" + path);\r\n\r\n window.open('https://view.officeapps.live.com/op/embed.aspx?src=' + src, '_blank');\r\n } else {\r\n const dialogRef = this.dialog.open(ImageViewerComponent, {\r\n data: {\r\n fileType: fileType, //this.getFileType(path) == 'pdf',\r\n thumbnailFilePath: path,\r\n fullImageFilePath: path,\r\n width: '400',\r\n height: '600',\r\n lensWidth: '400',\r\n lensHeight: '400'\r\n },\r\n width: '800px',\r\n //height: '100vh'\r\n //maxWidth: '100vw',\r\n });\r\n }\r\n\r\n }\r\n\r\n deleteImage(path) {\r\n this.alertService.showDialog('Are you sure you want to delete this row?', DialogType.confirm, () => {\r\n let indx = this.locationEdit.imageReferences.findIndex(e => e.filePath == path);\r\n if (indx > -1) {\r\n this.locationEdit.imageReferences.splice(indx, 1);\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n getFileType(path) {\r\n var ext = path.split('.').pop();\r\n return ext ? ext : '';\r\n }\r\n\r\n getImageThumbnail(path) {\r\n let fType = this.getFileType(path);\r\n if (fType == 'pdf') {\r\n return \"Resources\\\\Default\\\\pdficon.png\";\r\n } else if (fType == 'ppt' || fType == 'pptx') {\r\n return \"Resources\\\\Default\\\\ppticon.png\";\r\n } else if (fType == 'doc' || fType == 'docx') {\r\n return \"Resources\\\\Default\\\\wordicon.png\";\r\n } else {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n }\r\n\r\n getColorById(id) {\r\n let code = '';\r\n\r\n if (this.imageReferenceColors) {\r\n let color = this.imageReferenceColors.filter(e => e.id == id);\r\n if (color && color.length > 0) {\r\n code = color[0].colorCode;\r\n }\r\n }\r\n\r\n return code;\r\n }\r\n\r\n fType: any = '';\r\n fColor: any = '';\r\n\r\n clearFilters() {\r\n this.fType = '';\r\n this.fColor = '';\r\n\r\n if (this.locationEdit.imageReferences) {\r\n this.locationEdit.imageReferences.forEach((ir, index, l) => {\r\n ir.hidden = false;\r\n });\r\n }\r\n }\r\n\r\n applyFilters() {\r\n if (this.locationEdit.imageReferences) {\r\n this.locationEdit.imageReferences.forEach((ir, index, l) => {\r\n ir.hidden = false;\r\n if (this.fType && ir.imageReferenceTypeId != this.fType) {\r\n ir.hidden = true;\r\n }\r\n\r\n if (this.fColor && ir.imageReferenceColorId != this.fColor) {\r\n ir.hidden = true;\r\n }\r\n });\r\n\r\n this.locationEdit.imageReferences = [...this.locationEdit.imageReferences];\r\n }\r\n }\r\n\r\n\r\n sortBy(prop: string) {\r\n this.imageRefSort = !this.imageRefSort;\r\n if (this.locationEdit.imageReferences) {\r\n if (this.imageRefSort) {\r\n return this.locationEdit.imageReferences.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1);\r\n }\r\n return this.locationEdit.imageReferences.sort((a, b) => a[prop] < b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1);\r\n }\r\n }\r\n\r\n addAssetFromSelector() {\r\n let assets = [];\r\n if (!this.locationEdit.locationAssets) this.locationEdit.locationAssets = [];\r\n this.locationEdit.locationAssets.forEach((ir, index, l) => {\r\n ir.assetId = ir.assetId;\r\n ir.locationId = this.locationEdit.id;\r\n assets.push(ir);\r\n });\r\n\r\n const dialogRef = this.dialog.open(AssetSelectorComponent, {\r\n data: { header: \"Assets\", assets: assets },\r\n disableClose: true,\r\n width: '800px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (!result.isCancel) {\r\n console.log(result.selectedAssets);\r\n let locationAssets = [];\r\n if (result.selectedAssets) {\r\n result.selectedAssets.forEach((ir, index, l) => {\r\n ir.assetId = ir.assetId;\r\n ir.locationId = this.locationEdit.id;\r\n ir.id = 0;\r\n locationAssets.push(ir);\r\n });\r\n }\r\n this.locationEdit.locationAssets = locationAssets;\r\n }\r\n });\r\n }\r\n\r\n public addAssetRecord() {\r\n if (!this.locationEdit.locationAssets) {\r\n this.locationEdit.locationAssets = [];\r\n }\r\n\r\n let asset = new LocationAsset();\r\n asset.locationId = this.locationEdit.id;\r\n //asset.purchaseDate = asset.warrantyStart = asset.warrantyEnd = new Date();\r\n this.locationEdit.locationAssets.splice(0, 0, asset);\r\n }\r\n\r\n deleteAsset(asset) {\r\n this.alertService.showDialog('Are you sure you want to delete this row?', DialogType.confirm, () => {\r\n let indx = this.locationEdit.locationAssets.findIndex(e => e.assetId == asset.id);\r\n if (indx > -1) {\r\n this.locationEdit.locationAssets.splice(indx, 1);\r\n } else {\r\n indx = this.locationEdit.locationAssets.findIndex(e => e.serialNumber == asset.serialNumber);\r\n if (indx > -1) {\r\n this.locationEdit.locationAssets.splice(indx, 1);\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n get canManageLocations() {\r\n return this.accountService.userHasPermission(Permission.manageLocationsPermission)\r\n }\r\n}\r\n","module.exports = \".node-menu {\\r\\n position: relative;\\r\\n width: 150px;\\r\\n}\\r\\n\\r\\n .node-menu .node-menu-content {\\r\\n width: 100%;\\r\\n padding: 5px;\\r\\n position: absolute;\\r\\n border: 1px solid #bdbdbd;\\r\\n border-radius: 5%;\\r\\n box-shadow: 0 0 5px #bdbdbd;\\r\\n background-color: #eee;\\r\\n color: #212121;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n z-index: 999;\\r\\n }\\r\\n\\r\\n .node-menu .node-menu-content li.node-menu-item {\\r\\n list-style: none;\\r\\n padding: 3px;\\r\\n }\\r\\n\\r\\n .node-menu .node-menu-content .node-menu-item:hover {\\r\\n border-radius: 5%;\\r\\n opacity: unset;\\r\\n cursor: pointer;\\r\\n background-color: #bdbdbd;\\r\\n transition: background-color 0.2s ease-out;\\r\\n }\\r\\n\\r\\n .node-menu .node-menu-content .node-menu-item .node-menu-item-icon {\\r\\n display: inline-block;\\r\\n width: 16px;\\r\\n }\\r\\n\\r\\n .node-menu .node-menu-content .node-menu-item .node-menu-item-icon.new-tag:before {\\r\\n content: '\\\\25CF';\\r\\n }\\r\\n\\r\\n .node-menu .node-menu-content .node-menu-item .node-menu-item-icon.new-folder:before {\\r\\n content: '\\\\25B6';\\r\\n }\\r\\n\\r\\n .node-menu .node-menu-content .node-menu-item .node-menu-item-icon.rename:before {\\r\\n content: '\\\\270E';\\r\\n }\\r\\n\\r\\n .node-menu .node-menu-content .node-menu-item .node-menu-item-icon.remove:before {\\r\\n content: '\\\\2716';\\r\\n }\\r\\n\\r\\n .node-menu .node-menu-content .node-menu-item .node-menu-item-value {\\r\\n margin-left: 5px;\\r\\n }\\r\\n\\r\\n tree-internal ul {\\r\\n padding: 3px 0 3px 25px;\\r\\n}\\r\\n\\r\\n tree-internal li {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style: none;\\r\\n}\\r\\n\\r\\n tree-internal .over-drop-target {\\r\\n border: 4px solid #757575;\\r\\n transition: padding 0.2s ease-out;\\r\\n padding: 5px;\\r\\n border-radius: 5%;\\r\\n}\\r\\n\\r\\n tree-internal .tree {\\r\\n box-sizing: border-box;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n}\\r\\n\\r\\n tree-internal .tree li {\\r\\n list-style: none;\\r\\n cursor: default;\\r\\n }\\r\\n\\r\\n tree-internal .tree li div {\\r\\n display: inline-block;\\r\\n box-sizing: border-box;\\r\\n }\\r\\n\\r\\n tree-internal .tree .node-value {\\r\\n display: inline-block;\\r\\n color: #212121;\\r\\n margin-left: 10px;\\r\\n }\\r\\n\\r\\n tree-internal .tree .node-value:after {\\r\\n display: block;\\r\\n padding-top: -3px;\\r\\n width: 0;\\r\\n height: 2px;\\r\\n background-color: #212121;\\r\\n content: '';\\r\\n transition: width 0.3s;\\r\\n }\\r\\n\\r\\n tree-internal .tree .node-value:hover:after {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\n tree-internal .tree .node-left-menu {\\r\\n display: inline-block;\\r\\n height: 100%;\\r\\n width: auto;\\r\\n }\\r\\n\\r\\n tree-internal .tree .node-left-menu span:before {\\r\\n content: '\\\\2026';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\n tree-internal .tree .node-selected:after {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\n tree-internal .tree .folding {\\r\\n width: 25px;\\r\\n display: inline-block;\\r\\n line-height: 1px;\\r\\n padding: 0 5px;\\r\\n font-weight: bold;\\r\\n font-size:18px;\\r\\n }\\r\\n\\r\\n tree-internal .tree .folding:hover{\\r\\n cursor:pointer;\\r\\n }\\r\\n\\r\\n tree-internal .tree .folding.node-collapsed {\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n tree-internal .tree .folding.node-collapsed:before {\\r\\n content: '\\\\25B6';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\n tree-internal .tree .folding.node-expanded {\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\n tree-internal .tree .folding.node-expanded:before {\\r\\n content: '\\\\25BC';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\n tree-internal .tree .folding.node-empty {\\r\\n color: #212121;\\r\\n text-align: center;\\r\\n font-size: 0.89em;\\r\\n }\\r\\n\\r\\n tree-internal .tree .folding.node-empty:before {\\r\\n content: '\\\\25B6';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\n tree-internal .tree .folding.node-leaf {\\r\\n color: #212121;\\r\\n text-align: center;\\r\\n font-size: 0.89em;\\r\\n }\\r\\n\\r\\n tree-internal .tree .folding.node-leaf:before {\\r\\n content: '\\\\25CF';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\n tree-internal ul.rootless {\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n tree-internal div.rootless {\\r\\n display: none !important;\\r\\n}\\r\\n\\r\\n tree-internal .loading-children:after {\\r\\n content: ' loading ...';\\r\\n color: #6a1b9a;\\r\\n font-style: italic;\\r\\n font-size: 0.9em;\\r\\n -webkit-animation-name: loading-children;\\r\\n animation-name: loading-children;\\r\\n -webkit-animation-duration: 2s;\\r\\n animation-duration: 2s;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n -webkit-animation-iteration-count: infinite;\\r\\n animation-iteration-count: infinite;\\r\\n}\\r\\n\\r\\n .tree-details {\\r\\n border-left: 1px solid #eee;\\r\\n min-height: 300px;\\r\\n}\\r\\n\\r\\n @-webkit-keyframes loading-children {\\r\\n 0% {\\r\\n color: #f3e5f5;\\r\\n }\\r\\n\\r\\n 12.5% {\\r\\n color: #e1bee7;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n color: #ce93d8;\\r\\n }\\r\\n\\r\\n 37.5% {\\r\\n color: #ba68c8;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: #ab47bc;\\r\\n }\\r\\n\\r\\n 62.5% {\\r\\n color: #9c27b0;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n color: #8e24aa;\\r\\n }\\r\\n\\r\\n 87.5% {\\r\\n color: #7b1fa2;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #6a1b9a;\\r\\n }\\r\\n}\\r\\n\\r\\n @keyframes loading-children {\\r\\n 0% {\\r\\n color: #f3e5f5;\\r\\n }\\r\\n\\r\\n 12.5% {\\r\\n color: #e1bee7;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n color: #ce93d8;\\r\\n }\\r\\n\\r\\n 37.5% {\\r\\n color: #ba68c8;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: #ab47bc;\\r\\n }\\r\\n\\r\\n 62.5% {\\r\\n color: #9c27b0;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n color: #8e24aa;\\r\\n }\\r\\n\\r\\n 87.5% {\\r\\n color: #7b1fa2;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #6a1b9a;\\r\\n }\\r\\n}\\r\\n\\r\\n .full-width-dialog .mat-dialog-container {\\r\\n max-width: 100vw !important;\\r\\n}\\r\\n\\r\\n .tree-container{\\r\\n max-height:63vh;\\r\\n overflow:auto;\\r\\n clear:both;\\r\\n}\\r\\n\\r\\n @media (min-height: 650px) {\\r\\n .tree-container {\\r\\n max-height: 73vh !important;\\r\\n overflow: auto !important;\\r\\n clear: both !important;\\r\\n }\\r\\n}\\r\\n\\r\\n .node-actions{\\r\\n width:70%;\\r\\n float:left;\\r\\n}\\r\\n\\r\\n .tree-actions {\\r\\n width: 30%;\\r\\n float: left;\\r\\n text-align:center;\\r\\n}\\r\\n\\r\\n .tree-filter-link {\\r\\n margin-top: 20px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n .location-page-header{\\r\\n font-size:24px;\\r\\n font-weight:500;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n .tree-filter-filters{\\r\\n\\r\\n}\\r\\n\\r\\n .filter-container {\\r\\n padding-top: 20px;\\r\\n}\\r\\n\\r\\n .color-span-filter {\\r\\n width: 20%;\\r\\n height: 16px;\\r\\n float: right;\\r\\n border: 1px solid;\\r\\n}\\r\\n\\r\\n .color-box {\\r\\n width: 20%;\\r\\n float: right;\\r\\n border: 1px solid;\\r\\n height: 30px;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n .color-text-box {\\r\\n width: 80%;\\r\\n float: left;\\r\\n text-overflow: ellipsis;\\r\\n /* padding-right: 10px; */\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n ::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9sb2NhdGlvbnMtdHJlZS9sb2NhdGlvbnMtdHJlZS1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtBQUNkOztFQUVFO0lBQ0UsV0FBVztJQUNYLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIseUJBQXlCO0lBQ3pCLGlCQUFpQjtJQUNqQiwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLGNBQWM7SUFDZCwyREFBMkQ7SUFDM0QsWUFBWTtFQUNkOztFQUVFO01BQ0UsZ0JBQWdCO01BQ2hCLFlBQVk7SUFDZDs7RUFFQTtNQUNFLGlCQUFpQjtNQUNqQixjQUFjO01BQ2QsZUFBZTtNQUNmLHlCQUF5QjtNQUN6QiwwQ0FBMEM7SUFDNUM7O0VBRUE7TUFDRSxxQkFBcUI7TUFDckIsV0FBVztJQUNiOztFQUVFO1FBQ0UsZ0JBQWdCO01BQ2xCOztFQUVBO1FBQ0UsZ0JBQWdCO01BQ2xCOztFQUVBO1FBQ0UsZ0JBQWdCO01BQ2xCOztFQUVBO1FBQ0UsZ0JBQWdCO01BQ2xCOztFQUVGO01BQ0UsZ0JBQWdCO0lBQ2xCOztFQUVKO0VBQ0UsdUJBQXVCO0FBQ3pCOztFQUVBO0VBQ0UsVUFBVTtFQUNWLFNBQVM7RUFDVCxnQkFBZ0I7QUFDbEI7O0VBRUE7RUFDRSx5QkFBeUI7RUFDekIsaUNBQWlDO0VBQ2pDLFlBQVk7RUFDWixpQkFBaUI7QUFDbkI7O0VBRUE7RUFDRSxzQkFBc0I7RUFDdEIsMkRBQTJEO0FBQzdEOztFQUVFO0lBQ0UsZ0JBQWdCO0lBQ2hCLGVBQWU7RUFDakI7O0VBRUU7TUFDRSxxQkFBcUI7TUFDckIsc0JBQXNCO0lBQ3hCOztFQUVGO0lBQ0UscUJBQXFCO0lBQ3JCLGNBQWM7SUFDZCxpQkFBaUI7RUFDbkI7O0VBRUU7TUFDRSxjQUFjO01BQ2QsaUJBQWlCO01BQ2pCLFFBQVE7TUFDUixXQUFXO01BQ1gseUJBQXlCO01BQ3pCLFdBQVc7TUFDWCxzQkFBc0I7SUFDeEI7O0VBRUE7TUFDRSxXQUFXO0lBQ2I7O0VBRUY7SUFDRSxxQkFBcUI7SUFDckIsWUFBWTtJQUNaLFdBQVc7RUFDYjs7RUFFRTtNQUNFLGdCQUFnQjtNQUNoQixjQUFjO0lBQ2hCOztFQUVGO0lBQ0UsV0FBVztFQUNiOztFQUVBO0lBQ0UsV0FBVztJQUNYLHFCQUFxQjtJQUNyQixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixjQUFjO0VBQ2hCOztFQUVFO01BQ0UsY0FBYztJQUNoQjs7RUFFQTtNQUNFLGVBQWU7SUFDakI7O0VBRUU7UUFDRSxnQkFBZ0I7UUFDaEIsY0FBYztNQUNoQjs7RUFFRjtNQUNFLGVBQWU7SUFDakI7O0VBRUU7UUFDRSxnQkFBZ0I7UUFDaEIsY0FBYztNQUNoQjs7RUFFRjtNQUNFLGNBQWM7TUFDZCxrQkFBa0I7TUFDbEIsaUJBQWlCO0lBQ25COztFQUVFO1FBQ0UsZ0JBQWdCO1FBQ2hCLGNBQWM7TUFDaEI7O0VBRUY7TUFDRSxjQUFjO01BQ2Qsa0JBQWtCO01BQ2xCLGlCQUFpQjtJQUNuQjs7RUFFRTtRQUNFLGdCQUFnQjtRQUNoQixjQUFjO01BQ2hCOztFQUVOO0VBQ0UsVUFBVTtBQUNaOztFQUVBO0VBQ0Usd0JBQXdCO0FBQzFCOztFQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHdDQUFnQztVQUFoQyxnQ0FBZ0M7RUFDaEMsOEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0Qiw4Q0FBc0M7VUFBdEMsc0NBQXNDO0VBQ3RDLDJDQUFtQztVQUFuQyxtQ0FBbUM7QUFDckM7O0VBRUE7RUFDRSwyQkFBMkI7RUFDM0IsaUJBQWlCO0FBQ25COztFQUNBO0VBQ0U7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7QUFDRjs7RUFwQ0E7RUFDRTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjtBQUNGOztFQUNBO0VBQ0UsMkJBQTJCO0FBQzdCOztFQUVBO0VBQ0UsZUFBZTtFQUNmLGFBQWE7RUFDYixVQUFVO0FBQ1o7O0VBRUE7RUFDRTtJQUNFLDJCQUEyQjtJQUMzQix5QkFBeUI7SUFDekIsc0JBQXNCO0VBQ3hCO0FBQ0Y7O0VBRUE7RUFDRSxTQUFTO0VBQ1QsVUFBVTtBQUNaOztFQUVBO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxpQkFBaUI7QUFDbkI7O0VBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCOztFQUVBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZixrQkFBa0I7QUFDcEI7O0VBQ0E7O0FBRUE7O0VBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0VBRUE7RUFDRSxVQUFVO0VBQ1YsWUFBWTtFQUNaLFlBQVk7RUFDWixpQkFBaUI7QUFDbkI7O0VBRUE7RUFDRSxVQUFVO0VBQ1YsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osZUFBZTtBQUNqQjs7RUFFQTtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsdUJBQXVCO0VBQ3ZCLHlCQUF5QjtFQUN6QixnQkFBZ0I7QUFDbEI7O0VBQ0E7RUFDRSx3Q0FBd0M7QUFDMUMiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2xvY2F0aW9ucy10cmVlL2xvY2F0aW9ucy10cmVlLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5ub2RlLW1lbnUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTUwcHg7XHJcbn1cclxuXHJcbiAgLm5vZGUtbWVudSAubm9kZS1tZW51LWNvbnRlbnQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmRiZGJkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNSU7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNiZGJkYmQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG4gICAgY29sb3I6ICMyMTIxMjE7XHJcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgei1pbmRleDogOTk5O1xyXG4gIH1cclxuXHJcbiAgICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCBsaS5ub2RlLW1lbnUtaXRlbSB7XHJcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgIHBhZGRpbmc6IDNweDtcclxuICAgIH1cclxuXHJcbiAgICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCAubm9kZS1tZW51LWl0ZW06aG92ZXIge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1JTtcclxuICAgICAgb3BhY2l0eTogdW5zZXQ7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcclxuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2Utb3V0O1xyXG4gICAgfVxyXG5cclxuICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgd2lkdGg6IDE2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCAubm9kZS1tZW51LWl0ZW0gLm5vZGUtbWVudS1pdGVtLWljb24ubmV3LXRhZzpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1Q0YnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCAubm9kZS1tZW51LWl0ZW0gLm5vZGUtbWVudS1pdGVtLWljb24ubmV3LWZvbGRlcjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1QjYnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCAubm9kZS1tZW51LWl0ZW0gLm5vZGUtbWVudS1pdGVtLWljb24ucmVuYW1lOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjcwRSc7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0taWNvbi5yZW1vdmU6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnXFwyNzE2JztcclxuICAgICAgfVxyXG5cclxuICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0tdmFsdWUge1xyXG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgfVxyXG5cclxudHJlZS1pbnRlcm5hbCB1bCB7XHJcbiAgcGFkZGluZzogM3B4IDAgM3B4IDI1cHg7XHJcbn1cclxuXHJcbnRyZWUtaW50ZXJuYWwgbGkge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbnRyZWUtaW50ZXJuYWwgLm92ZXItZHJvcC10YXJnZXQge1xyXG4gIGJvcmRlcjogNHB4IHNvbGlkICM3NTc1NzU7XHJcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjJzIGVhc2Utb3V0O1xyXG4gIHBhZGRpbmc6IDVweDtcclxuICBib3JkZXItcmFkaXVzOiA1JTtcclxufVxyXG5cclxudHJlZS1pbnRlcm5hbCAudHJlZSB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4gIHRyZWUtaW50ZXJuYWwgLnRyZWUgbGkge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICB9XHJcblxyXG4gICAgdHJlZS1pbnRlcm5hbCAudHJlZSBsaSBkaXYge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcblxyXG4gIHRyZWUtaW50ZXJuYWwgLnRyZWUgLm5vZGUtdmFsdWUge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgY29sb3I6ICMyMTIxMjE7XHJcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICB9XHJcblxyXG4gICAgdHJlZS1pbnRlcm5hbCAudHJlZSAubm9kZS12YWx1ZTphZnRlciB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nLXRvcDogLTNweDtcclxuICAgICAgd2lkdGg6IDA7XHJcbiAgICAgIGhlaWdodDogMnB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcztcclxuICAgIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIC5ub2RlLXZhbHVlOmhvdmVyOmFmdGVyIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gIHRyZWUtaW50ZXJuYWwgLnRyZWUgLm5vZGUtbGVmdC1tZW51IHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIC5ub2RlLWxlZnQtbWVudSBzcGFuOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMjYnO1xyXG4gICAgICBjb2xvcjogIzc1NzU3NTtcclxuICAgIH1cclxuXHJcbiAgdHJlZS1pbnRlcm5hbCAudHJlZSAubm9kZS1zZWxlY3RlZDphZnRlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcge1xyXG4gICAgd2lkdGg6IDI1cHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBsaW5lLWhlaWdodDogMXB4O1xyXG4gICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGZvbnQtc2l6ZToxOHB4O1xyXG4gIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nOmhvdmVye1xyXG4gICAgICBjdXJzb3I6cG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nLm5vZGUtY29sbGFwc2VkIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgICAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWNvbGxhcHNlZDpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1QjYnO1xyXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xyXG4gICAgICB9XHJcblxyXG4gICAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWV4cGFuZGVkIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgICAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWV4cGFuZGVkOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjVCQyc7XHJcbiAgICAgICAgY29sb3I6ICM3NTc1NzU7XHJcbiAgICAgIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nLm5vZGUtZW1wdHkge1xyXG4gICAgICBjb2xvcjogIzIxMjEyMTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBmb250LXNpemU6IDAuODllbTtcclxuICAgIH1cclxuXHJcbiAgICAgIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcubm9kZS1lbXB0eTpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1QjYnO1xyXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xyXG4gICAgICB9XHJcblxyXG4gICAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWxlYWYge1xyXG4gICAgICBjb2xvcjogIzIxMjEyMTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBmb250LXNpemU6IDAuODllbTtcclxuICAgIH1cclxuXHJcbiAgICAgIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcubm9kZS1sZWFmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjVDRic7XHJcbiAgICAgICAgY29sb3I6ICM3NTc1NzU7XHJcbiAgICAgIH1cclxuXHJcbnRyZWUtaW50ZXJuYWwgdWwucm9vdGxlc3Mge1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbnRyZWUtaW50ZXJuYWwgZGl2LnJvb3RsZXNzIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbnRyZWUtaW50ZXJuYWwgLmxvYWRpbmctY2hpbGRyZW46YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6ICcgbG9hZGluZyAuLi4nO1xyXG4gIGNvbG9yOiAjNmExYjlhO1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICBmb250LXNpemU6IDAuOWVtO1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBsb2FkaW5nLWNoaWxkcmVuO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XHJcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XHJcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcbn1cclxuXHJcbi50cmVlLWRldGFpbHMge1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2VlZTtcclxuICBtaW4taGVpZ2h0OiAzMDBweDtcclxufVxyXG5Aa2V5ZnJhbWVzIGxvYWRpbmctY2hpbGRyZW4ge1xyXG4gIDAlIHtcclxuICAgIGNvbG9yOiAjZjNlNWY1O1xyXG4gIH1cclxuXHJcbiAgMTIuNSUge1xyXG4gICAgY29sb3I6ICNlMWJlZTc7XHJcbiAgfVxyXG5cclxuICAyNSUge1xyXG4gICAgY29sb3I6ICNjZTkzZDg7XHJcbiAgfVxyXG5cclxuICAzNy41JSB7XHJcbiAgICBjb2xvcjogI2JhNjhjODtcclxuICB9XHJcblxyXG4gIDUwJSB7XHJcbiAgICBjb2xvcjogI2FiNDdiYztcclxuICB9XHJcblxyXG4gIDYyLjUlIHtcclxuICAgIGNvbG9yOiAjOWMyN2IwO1xyXG4gIH1cclxuXHJcbiAgNzUlIHtcclxuICAgIGNvbG9yOiAjOGUyNGFhO1xyXG4gIH1cclxuXHJcbiAgODcuNSUge1xyXG4gICAgY29sb3I6ICM3YjFmYTI7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIGNvbG9yOiAjNmExYjlhO1xyXG4gIH1cclxufVxyXG4uZnVsbC13aWR0aC1kaWFsb2cgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi50cmVlLWNvbnRhaW5lcntcclxuICBtYXgtaGVpZ2h0OjYzdmg7XHJcbiAgb3ZlcmZsb3c6YXV0bztcclxuICBjbGVhcjpib3RoO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi1oZWlnaHQ6IDY1MHB4KSB7XHJcbiAgLnRyZWUtY29udGFpbmVyIHtcclxuICAgIG1heC1oZWlnaHQ6IDczdmggIWltcG9ydGFudDtcclxuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICBjbGVhcjogYm90aCAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLm5vZGUtYWN0aW9uc3tcclxuICB3aWR0aDo3MCU7XHJcbiAgZmxvYXQ6bGVmdDtcclxufVxyXG5cclxuLnRyZWUtYWN0aW9ucyB7XHJcbiAgd2lkdGg6IDMwJTtcclxuICBmbG9hdDogbGVmdDtcclxuICB0ZXh0LWFsaWduOmNlbnRlcjtcclxufVxyXG4udHJlZS1maWx0ZXItbGluayB7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG4ubG9jYXRpb24tcGFnZS1oZWFkZXJ7XHJcbiAgZm9udC1zaXplOjI0cHg7XHJcbiAgZm9udC13ZWlnaHQ6NTAwO1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG4udHJlZS1maWx0ZXItZmlsdGVyc3tcclxuXHJcbn1cclxuXHJcbi5maWx0ZXItY29udGFpbmVyIHtcclxuICBwYWRkaW5nLXRvcDogMjBweDtcclxufVxyXG5cclxuLmNvbG9yLXNwYW4tZmlsdGVyIHtcclxuICB3aWR0aDogMjAlO1xyXG4gIGhlaWdodDogMTZweDtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgYm9yZGVyOiAxcHggc29saWQ7XHJcbn1cclxuXHJcbi5jb2xvci1ib3gge1xyXG4gIHdpZHRoOiAyMCU7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkO1xyXG4gIGhlaWdodDogMzBweDtcclxuICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5jb2xvci10ZXh0LWJveCB7XHJcbiAgd2lkdGg6IDgwJTtcclxuICBmbG9hdDogbGVmdDtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAvKiBwYWRkaW5nLXJpZ2h0OiAxMHB4OyAqL1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n Locations\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Filter By Institution\\r\\n \\r\\n \\r\\n {{institution.name}}\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Filter By Status\\r\\n \\r\\n \\r\\n
{{getColorNameById(filter.imageReferenceColorId)}}
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
{{t.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 \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Additional Information
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, ViewEncapsulation, AfterViewChecked, AfterContentChecked, ChangeDetectorRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { LocationService } from '../../../services/location.service';\r\nimport { DirectoryListingService } from '../../../services/directory-listing.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Location, LocationTreeFilter, LocationType } from '../../../models/location.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { LocationTreeEditorComponent } from \"./location-tree-editor.component\";\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { TreeModel, NodeMenuItemAction, NodeEvent, Ng2TreeSettings, Tree } from 'ng2-tree';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { Observable } from 'rxjs';\r\nimport { LocationTree } from 'src/app/models/location-tree.model';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { LocType } from 'src/app/models/enums';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { ImageReferenceColorService } from 'src/app/services/image-reference-color.service';\r\nimport { DirectoryListing } from '../../../models/directory-listing.model';\r\nexport interface DialogData {\r\n header: string;\r\n location: Location;\r\n institutions: Institution[];\r\n}\r\n\r\n@Component({\r\n selector: 'locations-tree-management',\r\n templateUrl: './locations-tree-management.component.html',\r\n styleUrls: ['./locations-tree-management.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class LocationsTreeManagementComponent implements OnInit, AfterViewInit, AfterViewChecked, AfterContentChecked {\r\n header: string;\r\n columns: any[] = [];\r\n rows: Location[] = [];\r\n rowsCache: Location[] = [];\r\n public imageReferenceColors = [];\r\n colourCodefilter: Filter;\r\n filter: LocationTreeFilter;\r\n allInstitutions: Institution[] = [];\r\n allFilterInstitutions: Institution[] = [];\r\n editedLocation: Location;\r\n sourceLocation: Location;\r\n selectedNode: Location;\r\n editingLocationName: { name: string };\r\n loadingIndicator: boolean;\r\n institutionId: any = null;\r\n currentNodeId = '';\r\n locationTypes: LocationType[] = [];\r\n isTreeLoaded: boolean = false;\r\n tree: TreeModel;\r\n originalTree: LocationTree;\r\n rootLocation: LocationTree;\r\n treeSettings: Ng2TreeSettings = {\r\n rootIsVisible: false\r\n };\r\n\r\n treeKeyword: string;\r\n public progress: number;\r\n public message: string;\r\n public filename: string;\r\n fileTypes: string;\r\n showTxt: boolean;\r\n\r\n private allDirs: DirectoryListing[] = [];\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('locationEditor')\r\n locationEditor: LocationTreeEditorComponent;\r\n\r\n @ViewChild('treeComponent') treeComponent: TreeModel;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private locationService: LocationService, private direcoryListingService: DirectoryListingService, private authService: AuthService, public dialog: MatDialog, private institutionService: InstitutionService,\r\n private changeDetector: ChangeDetectorRef, private imageReferenceColorService: ImageReferenceColorService) {\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n //console.log('ngAfterContentChecked');\r\n //if (this.tree.children && this.tree.children.length > 0) {\r\n // var oopNodeController = this.treeComponent.getControllerByNodeId(this.tree.children[0].id);\r\n // console.log(oopNodeController);\r\n // if (oopNodeController) oopNodeController.collapse();\r\n //}\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n //console.log('ngAfterViewChecked');\r\n //this.changeDetector.detectChanges();\r\n\r\n if (this.tree && this.tree.children && this.tree.children.length > 0 && !this.isTreeLoaded) {\r\n var oopNodeController = this.treeComponent.getControllerByNodeId(this.tree.children[0].id);\r\n //console.log(oopNodeController);\r\n if (oopNodeController) {\r\n //oopNodeController.collapse();\r\n this.isTreeLoaded = true;\r\n if (!this.treeKeyword && this.tree.children[0].children && this.tree.children[0].children.length > 0) {\r\n this.collapseAllParents(this.tree.children[0].children);\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n collapseAllParents(children) {\r\n for (let c of children) {\r\n if (c.children && c.children.length > 0) {\r\n this.collapseAllParents(c.children);\r\n }\r\n var oopNodeController = this.treeComponent.getControllerByNodeId(c.id);\r\n //console.log(oopNodeController);\r\n if (oopNodeController) {\r\n oopNodeController.collapse();\r\n }\r\n\r\n }\r\n }\r\n\r\n searchTree() {\r\n if (this.treeKeyword) {\r\n this.filterTree();\r\n } else {\r\n this.loadTree(this.institutionId);\r\n }\r\n }\r\n\r\n filterTree() {\r\n let treeResult = new LocationTree(0, '', '', []);\r\n for (let c of this.originalTree.children) {\r\n let p = Object.assign({}, c);\r\n if (c.children.length > 0) {\r\n p.children = [];\r\n this.getFilteredNodes(c.children, p, this.treeKeyword);\r\n }\r\n\r\n if (p.children && p.children.length > 0) {\r\n treeResult.children.push(p);\r\n }\r\n }\r\n\r\n this.tree = treeResult;\r\n //console.log(treeResult);\r\n this.tree.settings = {\r\n 'static': true,\r\n 'rightMenu': true,\r\n //'isCollapsedOnInit': true,\r\n 'leftMenu': true,\r\n 'cssClasses': {\r\n 'expanded': 'fa fa-caret-down fa-sm',\r\n 'collapsed': 'fa fa-caret-right fa-sm',\r\n 'leaf': 'fa fa-sm',\r\n 'empty': 'fa fa-caret-right disabled'\r\n },\r\n 'templates': {\r\n 'node': ' ',\r\n 'leaf': ' ',\r\n 'leftMenu': ' '\r\n }\r\n };\r\n\r\n if (this.changeDetector) {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n //if (this.tree.children && this.tree.children.length > 0) {\r\n // this.collapseAllParents(this.tree.children[0].children);\r\n //}\r\n }\r\n\r\n getFilteredNodes(children: LocationTree[], parent: LocationTree, keyword: string) {\r\n //let nodes: LocationTree[] = [];\r\n for (let c of children) {\r\n if (c.children && c.children.length > 0) {\r\n let p = Object.assign({}, c);\r\n p.children = [];\r\n let n = this.getFilteredNodes(c.children, p, keyword);\r\n p = n;\r\n if (p.children.length > 0) {\r\n if (parent.children.findIndex(f => f.value == c.value) < 0) {\r\n parent.children.push(p);\r\n }\r\n }\r\n\r\n }\r\n if (c.value && c.value.toLowerCase().indexOf(keyword.toLowerCase()) !== -1) {\r\n if (parent.children.findIndex(f => f.value == c.value) < 0) {\r\n parent.children.push(c);\r\n }\r\n\r\n }\r\n }\r\n\r\n return parent;\r\n }\r\n\r\n openDialog(location: Location): void {\r\n const dialogRef = this.dialog.open(LocationTreeEditorComponent, {\r\n data: { header: this.header, location: location, institutions: this.allInstitutions, allDirs: this.allDirs }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.loadInstitutions();\r\n this.loadImageReferenceColors();\r\n this.institutionId = this.accountService.currentUser.institutionId;\r\n this.filter = new LocationTreeFilter();\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.filter.currentUserInstitutionId = this.accountService.currentUser.institutionId;\r\n if (this.institutionId) {\r\n this.loadTree(this.institutionId);\r\n }\r\n this.loadDirs();\r\n this.loadData();\r\n }\r\n\r\n loadImageReferenceColors() {\r\n this.colourCodefilter = new Filter(-1, -10);\r\n this.colourCodefilter.sorts = 'Name';\r\n this.colourCodefilter.filters = '';\r\n this.colourCodefilter.page = 0;\r\n this.colourCodefilter.pageSize = 0;\r\n this.colourCodefilter.filters = '(IsActive)==true';\r\n\r\n this.imageReferenceColorService.getImageReferenceColorsByFilter(this.colourCodefilter)\r\n .subscribe(results => {\r\n this.imageReferenceColors = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getImageReferenceColorsByFilter failed\", \"An error occured while trying to get image reference colors from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let institutions = results[0];\r\n this.allFilterInstitutions = institutions;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadDirs() {\r\n this.direcoryListingService.getDirectoryListings()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let dirs = results[0];\r\n this.allDirs = dirs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve directorys from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n changeInstitutions(event) {\r\n if (event && event.source.value) {\r\n this.institutionId = event.source.value\r\n this.loadTree(this.institutionId);\r\n }\r\n }\r\n\r\n\r\n loadTree(id, setOrigOnly?: boolean, filter?: LocationTreeFilter) {\r\n if (!setOrigOnly) {\r\n this.tree = null;\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.currentNode = null;\r\n }\r\n if (!filter) {\r\n this.filter = new LocationTreeFilter();\r\n this.filter.institutionId = id ? id : this.accountService.currentUser.institutionId;\r\n this.filter.currentUserInstitutionId = this.filter.institutionId;\r\n }\r\n\r\n this.locationService.getLocationTree(this.filter)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //Object.assign(this.tree, results);\r\n\r\n //this.tree.children = [];\r\n //results.children.forEach((t, index, trees) => {\r\n // var tm: TreeModel = t;\r\n // if (t.type == \"Hospital\") {\r\n // tm.settings = {\r\n // 'cssClasses': {\r\n // 'expanded': 'fa fa-caret-down fa-sm',\r\n // 'collapsed': 'fa fa-caret-right fa-sm',\r\n // 'leaf': 'fa fa-sm',\r\n // 'empty': 'fa fa-caret-right disabled'\r\n // },\r\n // 'templates': {\r\n // 'node': '',\r\n // 'leaf': '',\r\n // 'leftMenu': ''\r\n // }\r\n // }\r\n // } else if (t.type == \"Building\") {\r\n // tm.settings = {\r\n // 'cssClasses': {\r\n // 'expanded': 'fa fa-caret-down fa-sm',\r\n // 'collapsed': 'fa fa-caret-right fa-sm',\r\n // 'leaf': 'fa fa-sm',\r\n // 'empty': 'fa fa-caret-right disabled'\r\n // },\r\n // 'templates': {\r\n // 'node': '',\r\n // 'leaf': '',\r\n // 'leftMenu': ''\r\n // }\r\n // }\r\n // }\r\n // else {\r\n // tm.settings = {\r\n // 'cssClasses': {\r\n // 'expanded': 'fa fa-caret-down fa-sm',\r\n // 'collapsed': 'fa fa-caret-right fa-sm',\r\n // 'leaf': 'fa fa-sm',\r\n // 'empty': 'fa fa-caret-right disabled'\r\n // },\r\n // 'templates': {\r\n // 'leaf': '',\r\n // 'leftMenu': ''\r\n // }\r\n // }\r\n // }\r\n\r\n // this.tree.children.push(tm);\r\n //});\r\n\r\n if (results && results.children) {\r\n this.originalTree = results;\r\n if (!setOrigOnly) {\r\n this.rootLocation = results.children[0];\r\n this.originalTree = results;\r\n this.tree = results;\r\n this.tree.settings = {\r\n 'static': true,\r\n 'rightMenu': true,\r\n //'isCollapsedOnInit': true,\r\n 'leftMenu': true,\r\n 'cssClasses': {\r\n 'expanded': 'fa fa-caret-down fa-sm',\r\n 'collapsed': 'fa fa-caret-right fa-sm',\r\n 'leaf': 'fa fa-sm',\r\n 'empty': 'fa fa-caret-right disabled'\r\n },\r\n 'templates': {\r\n 'node': ' ',\r\n 'leaf': ' ',\r\n 'leftMenu': ' '\r\n }\r\n };\r\n\r\n if (this.changeDetector) {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n if (this.tree.children && this.tree.children.length > 0) {\r\n this.collapseAllParents(this.tree.children[0].children);\r\n }\r\n }\r\n }\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve locations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n currentNode: TreeModel;\r\n addNode() {\r\n if (this.currentNode) {\r\n var oopNodeController = this.treeComponent.getControllerByNodeId(this.currentNode.id);\r\n let uniqueId = Date.now().toString(36) + Math.random().toString(36).substring(2);\r\n let newNode: TreeModel = {\r\n value: 'New',\r\n id: uniqueId\r\n };\r\n\r\n if (this.currentNode.node.type == 'Hospital') {\r\n newNode.children = [];\r\n }\r\n\r\n this.currentNodeId = uniqueId;\r\n oopNodeController.addChild(newNode);\r\n //oopNodeController.tree.markAsBeingRenamed();\r\n var locInstitutionId = this.authService.currentUser.institutionId ? this.authService.currentUser.institutionId : this.institutionId;\r\n var location = new Location();\r\n location.name = newNode.value.toString();\r\n location.institutionId = locInstitutionId;\r\n location.capacity = 0;\r\n location.institutionIds = [];\r\n location.institutionIds.push(parseInt(locInstitutionId));\r\n\r\n if (this.currentNode.node.type != LocType.Room) {\r\n location.parentLocationId = this.currentNode.node.id;\r\n location.locationTypeName = this.currentNode.node.type == LocType.Building ? LocType.Room : LocType.Building;//this.currentNode.node.type == LocType.Hospital ? LocType.Building : LocType.Hospital;\r\n } else {\r\n location.parentLocationId = this.currentNode.node.parentId;\r\n location.locationTypeName = LocType.Room;\r\n }\r\n\r\n\r\n location.locationTypeId = this.getLocationTypeByName(location.locationTypeName);\r\n this.locationEditor.editLocation(location, this.allInstitutions, this.rootLocation, this.allDirs);\r\n }\r\n }\r\n\r\n renameNode(newName) {\r\n if (this.currentNode) {\r\n var oopNodeController = this.treeComponent.getControllerByNodeId(this.currentNode.id);\r\n oopNodeController.rename(newName);\r\n }\r\n }\r\n\r\n removeNode() {\r\n if (this.currentNode) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + this.currentNode.value + '\\\" ?', DialogType.confirm, () => {\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.locationService.deleteLocation(this.currentNode.id.toString())\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n var oopNodeController = this.treeComponent.getControllerByNodeId(this.currentNode.id);\r\n oopNodeController.remove();\r\n this.loadTree(this.institutionId, true);\r\n this.currentNode = null;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the menu.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n });\r\n }\r\n }\r\n\r\n handleSelected(event, isManual?: boolean) {\r\n console.log('selected');\r\n var oopNodeController = this.treeComponent.getControllerByNodeId(event.node.id);\r\n this.currentNode = event.node;\r\n if (isManual) {\r\n this.currentNodeId = event.node.id;\r\n } else {\r\n this.currentNodeId = event.node.node.id;\r\n }\r\n\r\n this.locationService.getLocationById(this.currentNodeId).subscribe(location => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.selectedNode = location;\r\n this.locationEditor.editLocation(location, this.allInstitutions, this.rootLocation, this.allDirs);\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve location from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n saveCompleted(event) {\r\n //this.loadTree(this.institutionId);\r\n //this.currentNode.id = event.id;\r\n //this.currentNode.value = event.name;\r\n //this.currentNodeId = event.id;\r\n var oopNodeController = this.treeComponent.getControllerByNodeId(this.currentNodeId);\r\n if (oopNodeController) {\r\n if (this.currentNodeId != event.id) {\r\n oopNodeController.changeNodeId(event.id);\r\n }\r\n\r\n oopNodeController.select();\r\n this.currentNode = oopNodeController.tree.node;\r\n this.currentNodeId = event.id;\r\n this.handleSelected(oopNodeController.tree, true);\r\n this.loadTree(this.institutionId, true, this.filter);\r\n }\r\n }\r\n\r\n cancelChangeCompleted(event) {\r\n var oopNodeController = this.treeComponent.getControllerByNodeId(this.currentNodeId);\r\n if (oopNodeController) {\r\n oopNodeController.rename(event.name);\r\n oopNodeController.unselect();\r\n oopNodeController.select();\r\n }\r\n }\r\n\r\n renamedLocation(txt) {\r\n var oopNodeController = this.treeComponent.getControllerByNodeId(this.currentNodeId);\r\n if (oopNodeController) {\r\n oopNodeController.rename(txt);\r\n }\r\n }\r\n\r\n getLocationTypeByName(name: string) {\r\n var types = this.locationTypes.filter(r => Utilities.searchArray(name, false, r.name));\r\n if (types && types.length > 0) {\r\n return types[0].id;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n //if (this.tree.children && this.tree.children.length > 0) {\r\n // var oopNodeController = this.treeComponent.getControllerByNodeId(this.tree.children[0].id);\r\n // console.log(oopNodeController);\r\n // if (oopNodeController) oopNodeController.collapse();\r\n //}\r\n\r\n\r\n //var oopNodeController = this.treeComponent.getControllerByNodeId(this.tree.children[0].id);\r\n //oopNodeController.select();\r\n\r\n if (this.locationEditor) {\r\n\r\n this.locationEditor.changesSavedCallback = () => {\r\n //this.addNewLocationToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.locationEditor.changesCancelledCallback = () => {\r\n //this.editedLocation = null;\r\n //this.sourceLocation = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n }\r\n\r\n\r\n addNewLocationToList() {\r\n if (this.sourceLocation) {\r\n Object.assign(this.sourceLocation, this.editedLocation);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceLocation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceLocation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedLocation = null;\r\n this.sourceLocation = null;\r\n }\r\n else {\r\n let location = new Location();\r\n Object.assign(location, this.editedLocation);\r\n this.editedLocation = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (location).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, location);\r\n this.rows.splice(0, 0, location);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.locationService.getLocationsAndInstitutions(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let locations = results[0];\r\n let institutions = results[1];\r\n\r\n locations.forEach((location, index, locations) => {\r\n (location).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...locations];\r\n this.rows = locations;\r\n\r\n this.allInstitutions = institutions;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve locations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n this.locationService.getLocationTypes()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.locationTypes = results;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve location types from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingLocationName = null;\r\n this.locationEditor.resetForm(true);\r\n }\r\n\r\n\r\n newLocation() {\r\n this.editingLocationName = null;\r\n this.sourceLocation = null;\r\n this.editedLocation = this.locationEditor.newLocation(this.allInstitutions, this.allDirs);\r\n this.openDialog(this.editedLocation);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editLocation(row: Location) {\r\n\r\n this.editingLocationName = { name: row.name };\r\n this.sourceLocation = row;\r\n this.editedLocation = this.locationEditor.editLocation(row, this.allInstitutions, this.rootLocation, this.allDirs);\r\n }\r\n\r\n deleteLocation(row: Location) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" location?', DialogType.confirm, () => this.deleteLocationHelper(row));\r\n }\r\n\r\n\r\n deleteLocationHelper(row: Location) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.locationService.deleteLocation(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the location.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n public importedFile = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n if (!confirm(`Are you sure to import file '${files[0].name}'? \\nImport cannot be undone after the file uploaded.`)) return;\r\n\r\n let fileToUpload = files[0];\r\n const formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n\r\n this.loadingIndicator = true;\r\n this.alertService.startLoadingMessage(\"Uploading...\");\r\n this.locationService.importFile>(formData)\r\n .subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response) {\r\n this.message = 'Upload success.';\r\n //var fileUploadResponse: any = ;\r\n //this.filename = fileUploadResponse.fileName;\r\n this.onUploadFinished(event.body);\r\n }\r\n\r\n this.loadingIndicator = false;\r\n });\r\n }\r\n\r\n onUploadFinished(response: any) {\r\n this.alertService.stopLoadingMessage();\r\n if (response.isSuccess) {\r\n this.alertService.showMessage(response.message);\r\n this.loadTree(null);\r\n } else {\r\n this.alertService.showStickyMessage(\"Import Error\", `Unable to import the file to the server.\\r\\nErrors: \"${response.message}\"`,\r\n MessageSeverity.error);\r\n }\r\n\r\n }\r\n\r\n syncSmartRooms() {\r\n this.locationService.syncSmartRoomResources(this.accountService.currentUser.institutionId).subscribe(response => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n if (response && response.isSuccess) {\r\n this.alertService.showMessage(\"Successful Sync\", response.message, MessageSeverity.success);\r\n this.loadTree(null);\r\n } else {\r\n this.alertService.showStickyMessage(\"Sync Error\", `Unable to sync smart room locations.\\r\\nErrors: \"${response.message}\"`,\r\n MessageSeverity.error);\r\n }\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Sync Error\", `Unable to sync smart room locations.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n syncSmartRoomSchedules() {\r\n this.locationService.syncSmartRoomSchedules(this.accountService.currentUser.institutionId).subscribe(response => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n if (response && response.isSuccess) {\r\n this.alertService.showMessage(\"Successful Sync\", response.message, MessageSeverity.success);\r\n this.loadTree(null);\r\n } else {\r\n this.alertService.showStickyMessage(\"Sync Error\", `Unable to sync smart room schedules.\\r\\nErrors: \"${response.message}\"`,\r\n MessageSeverity.error);\r\n }\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Sync Error\", `Unable to sync smart room schedules.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n export() {\r\n this.gotoUrl(`/api/location/exporttree?currentUserInstitutionId=${this.accountService.currentUser.institutionId}&institutionId=${this.accountService.currentUser.institutionId}`);\r\n }\r\n gotoUrl(url) {\r\n window.open(url, '_blank');\r\n }\r\n\r\n getColorById(id) {\r\n let code = '';\r\n\r\n if (this.imageReferenceColors) {\r\n let color = this.imageReferenceColors.filter(e => e.id == id);\r\n if (color && color.length > 0) {\r\n code = color[0].colorCode;\r\n }\r\n }\r\n\r\n return code;\r\n }\r\n\r\n getColorNameById(id) {\r\n let code = '';\r\n\r\n if (this.imageReferenceColors) {\r\n let color = this.imageReferenceColors.filter(e => e.id == id);\r\n if (color && color.length > 0) {\r\n code = color[0].name;\r\n }\r\n }\r\n\r\n return code;\r\n }\r\n\r\n applyFilters() {\r\n if (!this.filter.keyword) {\r\n this.filter.keyword = '';\r\n }\r\n this.loadTree('', false, this.filter);\r\n }\r\n\r\n clearFilters() {\r\n this.filter = new LocationTreeFilter();\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.filter.currentUserInstitutionId = this.filter.institutionId;\r\n this.applyFilters();\r\n }\r\n\r\n downloadResults() {\r\n //this.cleanFilter();\r\n let url = `/api/location/exporttree?currentUserInstitutionId=${this.filter.currentUserInstitutionId}&institutionId=${this.filter.institutionId}&imageReferenceColorId=${this.filter.imageReferenceColorId}&keyword=${this.filter.keyword}&isBookingOnly=${this.filter.isBookingOnly}`;\r\n this.gotoUrl(url);\r\n }\r\n\r\n //cleanFilter() {\r\n // if (!this.filter.keyword) {\r\n // this.filter.keyword = '';\r\n // }\r\n // if (!this.filter.imageReferenceColorId || this.filter.imageReferenceColorId == \"undefined\") {\r\n // this.filter.imageReferenceColorId = '';\r\n // }\r\n // if (!this.filter.institutionId || this.filter.institutionId == \"undefined\") {\r\n // this.filter.institutionId = '';\r\n // }\r\n //}\r\n\r\n get canManageLocations() {\r\n return this.accountService.userHasPermission(Permission.manageLocationsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n/*input.form-control {\\r\\n border-left-width: 5px;\\r\\n}*/\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.mat-form-field{\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9sb2NhdGlvbnMvbG9jYXRpb24tZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBR0E7O0VBRUU7O0FBRUY7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLFdBQVc7QUFDYiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvbG9jYXRpb25zL2xvY2F0aW9uLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuXHJcbi8qaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn0qL1xyXG5cclxuLmZhY2lsaXR5RXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuLm1hdC1mb3JtLWZpZWxke1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'locations.editor.LocationNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n {{'locations.editor.LocationNameRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'locations.editor.LocationCapacityRequired' | 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 {{locationEdit.institutionName}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n {{institution.name}} - {{institution.description}}\\r\\n \\r\\n {{'locations.editor.InstitutionRequired' | 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 {{facility.name}} - {{facility.description}}\\r\\n \\r\\n {{'locations.editor.FacilitiesRequired' | 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 \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input, ChangeDetectorRef, ViewEncapsulation, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { LocationService } from '../../../services/location.service';\r\nimport { Location } from '../../../models/location.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { FacilityService } from 'src/app/services/facility.service';\r\nimport { Facility } from '../../../models/facility.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'location-editor',\r\n templateUrl: './location-editor.component.html',\r\n styleUrls: ['./location-editor.component.css']\r\n})\r\nexport class LocationEditorComponent {\r\n\r\n private isEditMode = false;\r\n private isNewLocation = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingLocationName: string;\r\n private locationEdit: Location = new Location();\r\n private allInstitutions: Institution[] = [];\r\n private facilitiesList: Facility[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n facilities = new FormControl('', [Validators.required]);\r\n institutions = new FormControl('', [Validators.required]);\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('locationTypes')\r\n private locationTypes;\r\n\r\n @ViewChild('locationTypesSelector')\r\n private locationTypesSelector;\r\n\r\n @ViewChild('institutionsSelector')\r\n private institutionsSelector;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private alertService: AlertService, private accountService: AccountService, private locationService: LocationService, private facilityService: FacilityService,\r\n public dialogRef: MatDialogRef,\r\n private fileService: FileService, @Inject(MAT_DIALOG_DATA) public data: any) {\r\n\r\n if (typeof (data.location) != typeof (undefined)) {\r\n if (data.location.id) {\r\n this.editLocation(data.location, data.institutions);\r\n } else {\r\n this.newLocation(data.institutions);\r\n }\r\n\r\n this.loadFacilities();\r\n //this.institutions.valueChanges.subscribe(value => {\r\n // this.changeInstitutions(value);\r\n //});\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (this.isNewLocation) {\r\n //this.locationEdit.institutionId = this.accountService.currentUser.institutionId;\r\n this.locationService.newLocation(this.locationEdit).subscribe(location => this.saveSuccessHelper(location), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.locationService.updateLocation(this.locationEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(location?: Location) {\r\n if (location)\r\n Object.assign(this.locationEdit, location);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewLocation)\r\n this.alertService.showMessage(\"Success\", `Location \\\"${this.locationEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to location \\\"${this.locationEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.locationEdit = new Location();\r\n\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewLocation && this.accountService.currentUser.locations.some(r => r == this.editingLocationName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.locationEdit = new Location();\r\n \r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newLocation(allInstitutions: Institution[]) {\r\n this.isEditMode = true;\r\n this.isNewLocation = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingLocationName = null;\r\n this.setInstitutions(allInstitutions);\r\n this.selectedValues = {};\r\n this.locationEdit = new Location();\r\n //this.locationEdit.institutionId = this.accountService.currentUser.institutionId;\r\n return this.locationEdit;\r\n }\r\n\r\n editLocation(location: Location, allInstitutions: Institution[]) {\r\n this.isEditMode = true;\r\n if (location) {\r\n this.isNewLocation = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingLocationName = location.name;\r\n this.selectedValues = {};\r\n this.setInstitutions(allInstitutions);\r\n this.locationEdit = new Location();\r\n Object.assign(this.locationEdit, location);\r\n\r\n return this.locationEdit;\r\n }\r\n else {\r\n return this.newLocation(allInstitutions);\r\n }\r\n }\r\n\r\n private setInstitutions(allInstitutions: Institution[]) {\r\n\r\n this.allInstitutions = allInstitutions ? [...allInstitutions] : [];\r\n\r\n if (allInstitutions == null || this.allInstitutions.length != allInstitutions.length)\r\n setTimeout(() => this.institutionsSelector.refresh());\r\n }\r\n\r\n loadFacilities() {\r\n this.facilityService.getFacilitiesAndFacilityTypes(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n let facilities = results[0];\r\n this.facilitiesList = facilities;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getFacilitiesByInstitutionId failed\", \"An error occured while trying to get equipments from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n changeInstitutions(id) {\r\n this.facilityService.getFacilitiesByInstitutionId(id)\r\n .subscribe(results => {\r\n let facilities = results[0];\r\n this.facilitiesList = facilities;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getFacilitiesByInstitutionId failed\", \"An error occured while trying to get equipments from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n setLocationTypeId(id) {\r\n this.locationEdit.locationTypeId = id;\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.locationEdit.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageLocations() {\r\n return this.accountService.userHasPermission(Permission.manageLocationsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9sb2NhdGlvbnMvbG9jYXRpb25zLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL2xvY2F0aW9ucy9sb2NhdGlvbnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'locations.management.Edit' | translate}}\\r\\n {{'locations.management.Details' | translate}}\\r\\n \\r\\n {{'locations.management.Delete' | translate}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'locations.management.LocationDetails' | translate:editingLocationName}}

\\r\\n

{{editingLocationName ? ('locations.management.EditLocation' | translate:editingLocationName) : ('locations.management.NewLocation' | translate)}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { LocationService } from '../../../services/location.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Location } from '../../../models/location.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { LocationEditorComponent } from \"./location-editor.component\";\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nexport interface DialogData {\r\n header: string;\r\n location: Location;\r\n institutions: Institution[];\r\n}\r\n\r\n@Component({\r\n selector: 'locations-management',\r\n templateUrl: './locations-management.component.html',\r\n styleUrls: ['./locations-management.component.css']\r\n})\r\nexport class LocationsManagementComponent implements OnInit, AfterViewInit {\r\n header: string;\r\n columns: any[] = [];\r\n rows: Location[] = [];\r\n rowsCache: Location[] = [];\r\n allInstitutions: Institution[] = [];\r\n editedLocation: Location;\r\n sourceLocation: Location;\r\n editingLocationName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('locationEditor')\r\n locationEditor: LocationEditorComponent;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private locationService: LocationService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(location: Location): void {\r\n const dialogRef = this.dialog.open(LocationEditorComponent, {\r\n data: { header: this.header, location: location, institutions: this.allInstitutions }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('locations.management.Name') },\r\n { prop: 'description', name: gT('locations.management.Description') },\r\n { prop: 'capacity', name: gT('locations.management.Capacity') },\r\n { prop: 'facilityNames', name: gT('locations.management.Facilities') },\r\n { prop: 'institutionNames', name: gT('locations.management.Institution') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.locationEditor.changesSavedCallback = () => {\r\n this.addNewLocationToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.locationEditor.changesCancelledCallback = () => {\r\n this.editedLocation = null;\r\n this.sourceLocation = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewLocationToList() {\r\n if (this.sourceLocation) {\r\n Object.assign(this.sourceLocation, this.editedLocation);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceLocation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceLocation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedLocation = null;\r\n this.sourceLocation = null;\r\n }\r\n else {\r\n let location = new Location();\r\n Object.assign(location, this.editedLocation);\r\n this.editedLocation = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (location).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, location);\r\n this.rows.splice(0, 0, location);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.locationService.getLocationsAndInstitutions(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let locations = results[0];\r\n let institutions = results[1];\r\n\r\n locations.forEach((location, index, locations) => {\r\n (location).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...locations];\r\n this.rows = locations;\r\n\r\n this.allInstitutions = institutions;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve locations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingLocationName = null;\r\n this.locationEditor.resetForm(true);\r\n }\r\n\r\n\r\n newLocation() {\r\n this.editingLocationName = null;\r\n this.sourceLocation = null;\r\n this.editedLocation = this.locationEditor.newLocation(this.allInstitutions);\r\n this.openDialog(this.editedLocation);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editLocation(row: Location) {\r\n \r\n this.editingLocationName = { name: row.name };\r\n this.sourceLocation = row;\r\n this.editedLocation = this.locationEditor.editLocation(row, this.allInstitutions);\r\n //this.editorModal.show();\r\n this.openDialog(this.editedLocation);\r\n }\r\n\r\n deleteLocation(row: Location) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" location?', DialogType.confirm, () => this.deleteLocationHelper(row));\r\n }\r\n\r\n\r\n deleteLocationHelper(row: Location) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.locationService.deleteLocation(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the location.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManageLocations() {\r\n return this.accountService.userHasPermission(Permission.manageLocationsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9tZWRpYS9tZWRpYS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9tZWRpYS9tZWRpYS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n User Groups\\r\\n \\r\\n {{ug.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\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { MediaService } from \"../../../services/media.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Media } from 'src/app/models/media.model';\r\nimport { Role } from '../../../models/role.model';\r\nimport { UserGroupService } from '../../../services/userGroup.service';\r\n\r\n\r\n@Component({\r\n selector: 'media-editor',\r\n templateUrl: './media-editor.component.html',\r\n styleUrls: ['./media-editor.component.css']\r\n})\r\nexport class MediaEditorComponent {\r\n\r\n private isNewMedia = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingMediaName: string;\r\n private mediaEdit: Media = new Media();\r\n private allPermissions: Permission[] = [];\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n private allRoles: Role[] = [];\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n filter: any = {};\r\n allUserGroups: any;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private mediaService: MediaService, private accountService: AccountService, private userGroupService: UserGroupService, \r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.media) != typeof (undefined)) {\r\n if (data.media.id) {\r\n this.editMedia(data.media);\r\n } else {\r\n this.newMedia();\r\n }\r\n }\r\n\r\n this.accountService.getRoles()\r\n .subscribe(results => {\r\n this.allRoles = results;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving roles.`,\r\n MessageSeverity.error);\r\n });\r\n\r\n this.filter.filters = '(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n this.userGroupService.getUserGroupsByFilter(this.filter)\r\n .subscribe(results => {\r\n\r\n this.allUserGroups = results.pagedData;\r\n\r\n },\r\n error => {\r\n });\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.isNewMedia) {\r\n this.mediaService.newMedia(this.mediaEdit).subscribe(media => this.saveSuccessHelper(media), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.mediaService.updateMedia(this.mediaEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(media?: Media) {\r\n if (media)\r\n Object.assign(this.mediaEdit, media);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewMedia)\r\n this.alertService.showMessage(\"Success\", `Media \\\"${this.mediaEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to media \\\"${this.mediaEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.mediaEdit = new Media();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewMedia && this.accountService.currentUser.facilities.some(r => r == this.editingMediaName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.mediaEdit = new Media();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newMedia() {\r\n this.isNewMedia = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingMediaName = null;\r\n this.mediaEdit = new Media();\r\n this.mediaEdit.institutionId = this.accountService.currentUser.institutionId;\r\n return this.mediaEdit;\r\n }\r\n\r\n editMedia(media: Media) {\r\n if (media) {\r\n this.isNewMedia = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingMediaName = media.name;\r\n this.mediaEdit = new Media();\r\n Object.assign(this.mediaEdit, media);\r\n\r\n return this.mediaEdit;\r\n }\r\n else {\r\n return this.newMedia();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageMedias() {\r\n return this.accountService.userHasPermission(Permission.manageMediaGroupsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9tZWRpYS9tZWRpYXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvbWVkaWEvbWVkaWFzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Media Group

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'medias.management.Edit' | translate}}\\r\\n {{'medias.management.Details' | translate}}\\r\\n \\r\\n {{'medias.management.Delete' | translate}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'medias.management.MediaDetails' | translate:editingMediaName}}

\\r\\n

{{editingMediaName ? ('medias.management.EditMedia' | translate:editingMediaName) : ('medias.management.NewMedia' | translate)}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Media } from '../../../models/media.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MediaEditorComponent } from \"./media-editor.component\";\r\nimport { MediaService } from 'src/app/services/media.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { AuthService } from '../../../services/auth.service';\r\n\r\n\r\n@Component({\r\n selector: 'medias-management',\r\n templateUrl: './medias-management.component.html',\r\n styleUrls: ['./medias-management.component.css']\r\n})\r\nexport class MediasManagementComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: Media[] = [];\r\n rowsCache: Media[] = [];\r\n allPermissions: Permission[] = [];\r\n editedMedia: Media;\r\n sourceMedia: Media;\r\n editingMediaName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('mediaEditor')\r\n mediaEditor: MediaEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private mediaService: MediaService, public dialog: MatDialog, private authService: AuthService) {\r\n }\r\n\r\n openDialog(media: Media): void {\r\n const dialogRef = this.dialog.open(MediaEditorComponent, {\r\n data: { header: this.header, media: media },\r\n width: '800px'\r\n });\r\n\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('medias.management.Name') },\r\n { prop: 'description', name: gT('medias.management.Description') },\r\n { prop: 'directorySize', name: gT('medias.management.Size') },\r\n { prop: 'numberOfFiles', name: gT('medias.management.NumberOfFiles') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.mediaEditor.changesSavedCallback = () => {\r\n this.addNewMediaToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.mediaEditor.changesCancelledCallback = () => {\r\n this.editedMedia = null;\r\n this.sourceMedia = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewMediaToList() {\r\n if (this.sourceMedia) {\r\n Object.assign(this.sourceMedia, this.editedMedia);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceMedia, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceMedia, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedMedia = null;\r\n this.sourceMedia = null;\r\n }\r\n else {\r\n let facility = new Media();\r\n Object.assign(facility, this.editedMedia);\r\n this.editedMedia = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (facility).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, facility);\r\n this.rows.splice(0, 0, facility);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.mediaService.getMedias(null, null, null, this.authService.currentUser.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let medias = results;\r\n\r\n medias.forEach((facility, index, medias) => {\r\n (facility).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...medias];\r\n this.rows = medias;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve medias from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingMediaName = null;\r\n this.mediaEditor.resetForm(true);\r\n }\r\n\r\n\r\n newMedia() {\r\n this.editingMediaName = null;\r\n this.sourceMedia = null;\r\n this.editedMedia = this.mediaEditor.newMedia();\r\n //this.editorModal.show();\r\n this.header = 'New Media';\r\n this.openDialog(this.editedMedia);\r\n }\r\n\r\n\r\n editMedia(row: Media) {\r\n this.editingMediaName = { name: row.name };\r\n this.sourceMedia = row;\r\n this.editedMedia = this.mediaEditor.editMedia(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Media';\r\n this.openDialog(this.editedMedia);\r\n }\r\n\r\n deleteMedia(row: Media) {\r\n this.alertService.showDialog('Deleting this media will also delete its files. Are you sure you want to delete \\\"' + row.name + '\\\" media?', DialogType.confirm, () => this.deleteMediaHelper(row));\r\n }\r\n\r\n\r\n deleteMediaHelper(row: Media) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.mediaService.deleteMedia(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the media.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManageMedias() {\r\n return this.accountService.userHasPermission(Permission.manageMediaGroupsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9tb2R1bGUvbW9kdWxlLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL21vZHVsZS9tb2R1bGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Parameters/API
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameUrlAction
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { ModuleService } from \"../../../services/module.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Module } from 'src/app/models/module.model';\r\n\r\n\r\n@Component({\r\n selector: 'module-editor',\r\n templateUrl: './module-editor.component.html',\r\n styleUrls: ['./module-editor.component.css']\r\n})\r\nexport class ModuleEditorComponent {\r\n\r\n private isNewModule = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingModuleName: string;\r\n private moduleEdit: Module = new Module();\r\n private allPermissions: Permission[] = [];\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private moduleService: ModuleService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.module) != typeof (undefined)) {\r\n if (data.module.id) {\r\n this.editModule(data.module);\r\n } else {\r\n this.newModule();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.isNewModule) {\r\n this.moduleService.newModule(this.moduleEdit).subscribe(module => this.saveSuccessHelper(module), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.moduleService.updateModule(this.moduleEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(module?: Module) {\r\n if (module)\r\n Object.assign(this.moduleEdit, module);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewModule)\r\n this.alertService.showMessage(\"Success\", `Module \\\"${this.moduleEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to module \\\"${this.moduleEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.moduleEdit = new Module();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewModule && this.accountService.currentUser.facilities.some(r => r == this.editingModuleName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.moduleEdit = new Module();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newModule() {\r\n this.isNewModule = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingModuleName = null;\r\n this.moduleEdit = new Module();\r\n return this.moduleEdit;\r\n }\r\n\r\n editModule(module: Module) {\r\n if (module) {\r\n this.isNewModule = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingModuleName = module.name;\r\n this.moduleEdit = new Module();\r\n Object.assign(this.moduleEdit, module);\r\n\r\n return this.moduleEdit;\r\n }\r\n else {\r\n return this.newModule();\r\n }\r\n }\r\n\r\n private fieldArray: Array = [];\r\n private newParameter: any = {};\r\n\r\n addParameter() {\r\n if (!this.moduleEdit.moduleParameters) {\r\n this.moduleEdit.moduleParameters = [];\r\n }\r\n this.newParameter.moduleId = this.moduleEdit.id;\r\n this.moduleEdit.moduleParameters.push(this.newParameter)\r\n this.newParameter = {};\r\n }\r\n\r\n deleteParameter(index) {\r\n this.moduleEdit.moduleParameters.splice(index, 1);\r\n }\r\n\r\n get canManageModules() {\r\n return true; //this.accountService.userHasPermission(Permission.manageModulesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9tb2R1bGUvbW9kdWxlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9tb2R1bGUvbW9kdWxlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Modules

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'modules.management.Edit' | translate}}\\r\\n {{'modules.management.Details' | translate}}\\r\\n \\r\\n {{'modules.management.Delete' | translate}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'modules.management.ModuleDetails' | translate:editingModuleName}}

\\r\\n

{{editingModuleName ? ('modules.management.EditModule' | translate:editingModuleName) : ('modules.management.NewModule' | translate)}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Module } from '../../../models/module.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { ModuleEditorComponent } from \"./module-editor.component\";\r\nimport { ModuleService } from 'src/app/services/module.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'modules-management',\r\n templateUrl: './modules-management.component.html',\r\n styleUrls: ['./modules-management.component.css']\r\n})\r\nexport class ModulesManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: Module[] = [];\r\n rowsCache: Module[] = [];\r\n allPermissions: Permission[] = [];\r\n editedModule: Module;\r\n sourceModule: Module;\r\n editingModuleName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('moduleEditor')\r\n moduleEditor: ModuleEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private moduleService: ModuleService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(module: Module): void {\r\n const dialogRef = this.dialog.open(ModuleEditorComponent, {\r\n data: { header: this.header, module: module },\r\n width: '800px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('modules.management.Name') },\r\n { prop: 'route', name: gT('modules.management.Route') },\r\n { prop: 'uri', name: gT('modules.management.Uri') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.moduleEditor.changesSavedCallback = () => {\r\n this.addNewModuleToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.moduleEditor.changesCancelledCallback = () => {\r\n this.editedModule = null;\r\n this.sourceModule = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n addNewModuleToList() {\r\n if (this.sourceModule) {\r\n Object.assign(this.sourceModule, this.editedModule);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceModule, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceModule, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedModule = null;\r\n this.sourceModule = null;\r\n }\r\n else {\r\n let facility = new Module();\r\n Object.assign(facility, this.editedModule);\r\n this.editedModule = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (facility).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, facility);\r\n this.rows.splice(0, 0, facility);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.moduleService.getModules()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let modules = results;\r\n\r\n modules.forEach((facility, index, modules) => {\r\n (facility).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...modules];\r\n this.rows = modules;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve modules from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.route, r.uri));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingModuleName = null;\r\n this.moduleEditor.resetForm(true);\r\n }\r\n\r\n\r\n newModule() {\r\n this.editingModuleName = null;\r\n this.sourceModule = null;\r\n this.editedModule = this.moduleEditor.newModule();\r\n //this.editorModal.show();\r\n this.header = 'New Module';\r\n this.openDialog(this.editedModule);\r\n }\r\n\r\n\r\n editModule(row: Module) {\r\n this.editingModuleName = { name: row.name };\r\n this.sourceModule = row;\r\n this.editedModule = this.moduleEditor.editModule(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Module';\r\n this.openDialog(this.editedModule);\r\n }\r\n\r\n deleteModule(row: Module) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" module?', DialogType.confirm, () => this.deleteModuleHelper(row));\r\n }\r\n\r\n\r\n deleteModuleHelper(row: Module) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.moduleService.deleteModule(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the module.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageModules() {\r\n return true; //this.accountService.userHasPermission(Permission.manageModulesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.unread {\\r\\n font-weight: bold;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n.no-notification {\\r\\n text-align: center;\\r\\n /* height: 40px; */\\r\\n vertical-align: middle;\\r\\n padding: 7px;\\r\\n}\\r\\n\\r\\n.no-notification a {\\r\\n color: #007f7b !important;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9ub3RpZmljYXRpb25zLXZpZXdlci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIsWUFBWTtBQUNkOztBQUVFO0lBQ0UseUJBQXlCO0VBQzNCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9ub3RpZmljYXRpb25zLXZpZXdlci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi51bnJlYWQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcblxyXG4ubm8tbm90aWZpY2F0aW9uIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgLyogaGVpZ2h0OiA0MHB4OyAqL1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgcGFkZGluZzogN3B4O1xyXG59XHJcblxyXG4gIC5uby1ub3RpZmljYXRpb24gYSB7XHJcbiAgICBjb2xvcjogIzAwN2Y3YiAhaW1wb3J0YW50O1xyXG4gIH1cclxuIl19 */\"","module.exports = \"
0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{row.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{row.body}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{getPrintedDate(value)}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n No new notifications\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, ViewChild, Input } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { NotificationService } from \"../../services/notification.service\";\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Permission } from '../../models/permission.model';\r\nimport { Utilities } from \"../../services/utilities\";\r\nimport { Notification } from '../../models/notification.model';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\n\r\n@Component({\r\n selector: 'notifications-viewer',\r\n templateUrl: './notifications-viewer.component.html',\r\n styleUrls: ['./notifications-viewer.component.css']\r\n})\r\nexport class NotificationsViewerComponent implements OnInit, OnDestroy {\r\n columns: any[] = [];\r\n rows: Notification[] = [];\r\n loadingIndicator: boolean;\r\n\r\n dataLoadingConsecutiveFailurs = 0;\r\n dataLoadingSubscription: any;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n verticalScrollbar: boolean = false;\r\n\r\n\r\n @ViewChild('statusHeaderTemplate')\r\n statusHeaderTemplate: TemplateRef;\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('contentHeaderTemplate')\r\n contentHeaderTemplate: TemplateRef;\r\n\r\n @ViewChild('contenBodytTemplate')\r\n contenBodytTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private notificationService: NotificationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n if (this.isViewOnly) {\r\n this.columns = [\r\n { prop: 'date', cellTemplate: this.dateTemplate, width: 100, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'header', cellTemplate: this.contentHeaderTemplate, width: 200, resizeable: false, sortable: false, draggable: false },\r\n ];\r\n }\r\n else {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"\", name: '', width: 10, headerTemplate: this.statusHeaderTemplate, cellTemplate: this.statusTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'date', name: gT('notifications.Date'), cellTemplate: this.dateTemplate, width: 30 },\r\n { prop: 'body', name: gT('notifications.Notification'), cellTemplate: this.contenBodytTemplate, width: 500 },\r\n { name: '', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n\r\n this.initDataLoading();\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this.dataLoadingSubscription)\r\n this.dataLoadingSubscription.unsubscribe();\r\n }\r\n initDataLoading() {\r\n\r\n if (this.isViewOnly && this.notificationService.recentNotifications) {\r\n this.rows = this.processResults(this.notificationService.recentNotifications);\r\n return;\r\n }\r\n\r\n this.loadingIndicator = true;\r\n\r\n var filter = new Filter(1, 10);\r\n filter.sorts = 'date';\r\n filter.page = 1;\r\n filter.filters = `(UserId)==${this.accountService.currentUser.id},(IsActive)==true,(IsRead)==false`;\r\n let dataLoadTask = this.notificationService.getNewNotifications(filter); //this.isViewOnly ? this.notificationService.getNewNotifications(filter) : this.notificationService.getNewNotificationsPeriodically(filter)\r\n\r\n this.dataLoadingSubscription = dataLoadTask\r\n .subscribe(notifications => {\r\n this.loadingIndicator = false;\r\n this.dataLoadingConsecutiveFailurs = 0;\r\n\r\n this.rows = this.processResults(notifications);\r\n },\r\n error => {\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showMessage(\"Load Error\", \"Loading new notifications from the server failed!\", MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n\r\n if (this.dataLoadingConsecutiveFailurs++ < 5)\r\n setTimeout(() => this.initDataLoading(), 5000);\r\n else\r\n this.alertService.showStickyMessage(\"Load Error\", \"Loading new notifications from the server failed!\", MessageSeverity.error);\r\n\r\n });\r\n\r\n\r\n if (this.isViewOnly)\r\n this.dataLoadingSubscription = null;\r\n }\r\n\r\n\r\n private processResults(notifications: Notification[]) {\r\n\r\n if (this.isViewOnly) {\r\n notifications.sort((a, b) => {\r\n return b.date.valueOf() - a.date.valueOf();\r\n });\r\n }\r\n\r\n return notifications;\r\n }\r\n\r\n\r\n\r\n getPrintedDate(value: Date) {\r\n if (value)\r\n return Utilities.printTimeOnly(value) + \" on \" + Utilities.printDateOnly(value);\r\n }\r\n\r\n\r\n deleteNotification(row: Notification) {\r\n this.alertService.showDialog('Are you sure you want to delete the notification \\\"' + row.header + '\\\"?', DialogType.confirm, () => this.deleteNotificationHelper(row));\r\n }\r\n\r\n\r\n deleteNotificationHelper(row: Notification) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.notificationService.deleteNotification(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rows = this.rows.filter(item => item.id != row.id)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the notification.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n togglePin(row: Notification) {\r\n\r\n let pin = !row.isPinned;\r\n let opText = pin ? \"Pinning\" : \"Unpinning\";\r\n\r\n this.alertService.startLoadingMessage(opText + \"...\");\r\n this.loadingIndicator = true;\r\n\r\n this.notificationService.pinUnpinNotification(row, pin)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n row.isPinned = pin;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(opText + \" Error\", `An error occured while ${opText} the notification.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n gotoNotificationsPage(ev) {\r\n ev.preventDefault();\r\n location.href = '/profile';\r\n }\r\n\r\n get canManageNotifications() {\r\n return this.accountService.userHasPermission(Permission.manageRolesPermission); //Todo: Consider creating separate permission for notifications\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.form-group {\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.roleErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.node-menu {\\r\\n position: relative;\\r\\n width: 150px;\\r\\n}\\r\\n\\r\\n.node-menu .node-menu-content {\\r\\n width: 100%;\\r\\n padding: 5px;\\r\\n position: absolute;\\r\\n border: 1px solid #bdbdbd;\\r\\n border-radius: 5%;\\r\\n box-shadow: 0 0 5px #bdbdbd;\\r\\n background-color: #eee;\\r\\n color: #212121;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n z-index: 999;\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content li.node-menu-item {\\r\\n list-style: none;\\r\\n padding: 3px;\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item:hover {\\r\\n border-radius: 5%;\\r\\n opacity: unset;\\r\\n cursor: pointer;\\r\\n background-color: #bdbdbd;\\r\\n transition: background-color 0.2s ease-out;\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-icon {\\r\\n display: inline-block;\\r\\n width: 16px;\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.new-tag:before {\\r\\n content: '\\\\25CF';\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.new-folder:before {\\r\\n content: '\\\\25B6';\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.rename:before {\\r\\n content: '\\\\270E';\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.remove:before {\\r\\n content: '\\\\2716';\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-value {\\r\\n margin-left: 5px;\\r\\n }\\r\\n\\r\\ntree-internal ul {\\r\\n padding: 3px 0 3px 25px;\\r\\n}\\r\\n\\r\\ntree-internal li {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style: none;\\r\\n}\\r\\n\\r\\ntree-internal .over-drop-target {\\r\\n border: 4px solid #757575;\\r\\n transition: padding 0.2s ease-out;\\r\\n padding: 5px;\\r\\n border-radius: 5%;\\r\\n}\\r\\n\\r\\ntree-internal .tree {\\r\\n box-sizing: border-box;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n}\\r\\n\\r\\ntree-internal .tree li {\\r\\n list-style: none;\\r\\n cursor: default;\\r\\n }\\r\\n\\r\\ntree-internal .tree li div {\\r\\n display: inline-block;\\r\\n box-sizing: border-box;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-value {\\r\\n display: inline-block;\\r\\n color: #212121;\\r\\n margin-left: 10px;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-value:after {\\r\\n display: block;\\r\\n padding-top: -3px;\\r\\n width: 0;\\r\\n height: 2px;\\r\\n background-color: #212121;\\r\\n content: '';\\r\\n transition: width 0.3s;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-value:hover:after {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-left-menu {\\r\\n display: inline-block;\\r\\n height: 100%;\\r\\n width: auto;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-left-menu span:before {\\r\\n content: '\\\\2026';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-selected:after {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding {\\r\\n width: 25px;\\r\\n display: inline-block;\\r\\n line-height: 1px;\\r\\n padding: 0 5px;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-collapsed {\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-collapsed:before {\\r\\n content: '\\\\25B6';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-expanded {\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-expanded:before {\\r\\n content: '\\\\25BC';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-empty {\\r\\n color: #212121;\\r\\n text-align: center;\\r\\n font-size: 0.89em;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-empty:before {\\r\\n content: '\\\\25B6';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-leaf {\\r\\n color: #212121;\\r\\n text-align: center;\\r\\n font-size: 0.89em;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-leaf:before {\\r\\n content: '\\\\25CF';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\ntree-internal ul.rootless {\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\ntree-internal div.rootless {\\r\\n display: none !important;\\r\\n}\\r\\n\\r\\ntree-internal .loading-children:after {\\r\\n content: ' loading ...';\\r\\n color: #6a1b9a;\\r\\n font-style: italic;\\r\\n font-size: 0.9em;\\r\\n -webkit-animation-name: loading-children;\\r\\n animation-name: loading-children;\\r\\n -webkit-animation-duration: 2s;\\r\\n animation-duration: 2s;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n -webkit-animation-iteration-count: infinite;\\r\\n animation-iteration-count: infinite;\\r\\n}\\r\\n\\r\\n.tree-details {\\r\\n border-left: 1px solid #eee;\\r\\n min-height: 300px;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes loading-children {\\r\\n 0% {\\r\\n color: #f3e5f5;\\r\\n }\\r\\n\\r\\n 12.5% {\\r\\n color: #e1bee7;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n color: #ce93d8;\\r\\n }\\r\\n\\r\\n 37.5% {\\r\\n color: #ba68c8;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: #ab47bc;\\r\\n }\\r\\n\\r\\n 62.5% {\\r\\n color: #9c27b0;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n color: #8e24aa;\\r\\n }\\r\\n\\r\\n 87.5% {\\r\\n color: #7b1fa2;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #6a1b9a;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes loading-children {\\r\\n 0% {\\r\\n color: #f3e5f5;\\r\\n }\\r\\n\\r\\n 12.5% {\\r\\n color: #e1bee7;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n color: #ce93d8;\\r\\n }\\r\\n\\r\\n 37.5% {\\r\\n color: #ba68c8;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: #ab47bc;\\r\\n }\\r\\n\\r\\n 62.5% {\\r\\n color: #9c27b0;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n color: #8e24aa;\\r\\n }\\r\\n\\r\\n 87.5% {\\r\\n color: #7b1fa2;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #6a1b9a;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9yb2xlLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUdBO0lBQ0ksYUFBYTtJQUNiLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUdBO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7QUFDZDs7QUFFRTtJQUNFLFdBQVc7SUFDWCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6QixpQkFBaUI7SUFDakIsMkJBQTJCO0lBQzNCLHNCQUFzQjtJQUN0QixjQUFjO0lBQ2QsMkRBQTJEO0lBQzNELFlBQVk7RUFDZDs7QUFFRTtNQUNFLGdCQUFnQjtNQUNoQixZQUFZO0lBQ2Q7O0FBRUE7TUFDRSxpQkFBaUI7TUFDakIsY0FBYztNQUNkLGVBQWU7TUFDZix5QkFBeUI7TUFDekIsMENBQTBDO0lBQzVDOztBQUVBO01BQ0UscUJBQXFCO01BQ3JCLFdBQVc7SUFDYjs7QUFFRTtRQUNFLGdCQUFnQjtNQUNsQjs7QUFFQTtRQUNFLGdCQUFnQjtNQUNsQjs7QUFFQTtRQUNFLGdCQUFnQjtNQUNsQjs7QUFFQTtRQUNFLGdCQUFnQjtNQUNsQjs7QUFFRjtNQUNFLGdCQUFnQjtJQUNsQjs7QUFFSjtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLFVBQVU7RUFDVixTQUFTO0VBQ1QsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLGlDQUFpQztFQUNqQyxZQUFZO0VBQ1osaUJBQWlCO0FBQ25COztBQUVBO0VBQ0Usc0JBQXNCO0VBQ3RCLDJEQUEyRDtBQUM3RDs7QUFFRTtJQUNFLGdCQUFnQjtJQUNoQixlQUFlO0VBQ2pCOztBQUVFO01BQ0UscUJBQXFCO01BQ3JCLHNCQUFzQjtJQUN4Qjs7QUFFRjtJQUNFLHFCQUFxQjtJQUNyQixjQUFjO0lBQ2QsaUJBQWlCO0VBQ25COztBQUVFO01BQ0UsY0FBYztNQUNkLGlCQUFpQjtNQUNqQixRQUFRO01BQ1IsV0FBVztNQUNYLHlCQUF5QjtNQUN6QixXQUFXO01BQ1gsc0JBQXNCO0lBQ3hCOztBQUVBO01BQ0UsV0FBVztJQUNiOztBQUVGO0lBQ0UscUJBQXFCO0lBQ3JCLFlBQVk7SUFDWixXQUFXO0VBQ2I7O0FBRUU7TUFDRSxnQkFBZ0I7TUFDaEIsY0FBYztJQUNoQjs7QUFFRjtJQUNFLFdBQVc7RUFDYjs7QUFFQTtJQUNFLFdBQVc7SUFDWCxxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxpQkFBaUI7RUFDbkI7O0FBRUU7TUFDRSxlQUFlO0lBQ2pCOztBQUVFO1FBQ0UsZ0JBQWdCO1FBQ2hCLGNBQWM7TUFDaEI7O0FBRUY7TUFDRSxlQUFlO0lBQ2pCOztBQUVFO1FBQ0UsZ0JBQWdCO1FBQ2hCLGNBQWM7TUFDaEI7O0FBRUY7TUFDRSxjQUFjO01BQ2Qsa0JBQWtCO01BQ2xCLGlCQUFpQjtJQUNuQjs7QUFFRTtRQUNFLGdCQUFnQjtRQUNoQixjQUFjO01BQ2hCOztBQUVGO01BQ0UsY0FBYztNQUNkLGtCQUFrQjtNQUNsQixpQkFBaUI7SUFDbkI7O0FBRUU7UUFDRSxnQkFBZ0I7UUFDaEIsY0FBYztNQUNoQjs7QUFFTjtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2QixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix3Q0FBZ0M7VUFBaEMsZ0NBQWdDO0VBQ2hDLDhCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsOENBQXNDO1VBQXRDLHNDQUFzQztFQUN0QywyQ0FBbUM7VUFBbkMsbUNBQW1DO0FBQ3JDOztBQUVBO0VBQ0UsMkJBQTJCO0VBQzNCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCO0FBQ0Y7O0FBcENBO0VBQ0U7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7QUFDRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvcm9sZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcblxyXG4uZm9ybS1ncm91cCB7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5yb2xlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5ub2RlLW1lbnUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTUwcHg7XHJcbn1cclxuXHJcbiAgLm5vZGUtbWVudSAubm9kZS1tZW51LWNvbnRlbnQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmRiZGJkO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNSU7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNiZGJkYmQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xyXG4gICAgY29sb3I6ICMyMTIxMjE7XHJcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgei1pbmRleDogOTk5O1xyXG4gIH1cclxuXHJcbiAgICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCBsaS5ub2RlLW1lbnUtaXRlbSB7XHJcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgIHBhZGRpbmc6IDNweDtcclxuICAgIH1cclxuXHJcbiAgICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCAubm9kZS1tZW51LWl0ZW06aG92ZXIge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1JTtcclxuICAgICAgb3BhY2l0eTogdW5zZXQ7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcclxuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2Utb3V0O1xyXG4gICAgfVxyXG5cclxuICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgd2lkdGg6IDE2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCAubm9kZS1tZW51LWl0ZW0gLm5vZGUtbWVudS1pdGVtLWljb24ubmV3LXRhZzpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1Q0YnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCAubm9kZS1tZW51LWl0ZW0gLm5vZGUtbWVudS1pdGVtLWljb24ubmV3LWZvbGRlcjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1QjYnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCAubm9kZS1tZW51LWl0ZW0gLm5vZGUtbWVudS1pdGVtLWljb24ucmVuYW1lOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjcwRSc7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0taWNvbi5yZW1vdmU6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnXFwyNzE2JztcclxuICAgICAgfVxyXG5cclxuICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0tdmFsdWUge1xyXG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgfVxyXG5cclxudHJlZS1pbnRlcm5hbCB1bCB7XHJcbiAgcGFkZGluZzogM3B4IDAgM3B4IDI1cHg7XHJcbn1cclxuXHJcbnRyZWUtaW50ZXJuYWwgbGkge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbnRyZWUtaW50ZXJuYWwgLm92ZXItZHJvcC10YXJnZXQge1xyXG4gIGJvcmRlcjogNHB4IHNvbGlkICM3NTc1NzU7XHJcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjJzIGVhc2Utb3V0O1xyXG4gIHBhZGRpbmc6IDVweDtcclxuICBib3JkZXItcmFkaXVzOiA1JTtcclxufVxyXG5cclxudHJlZS1pbnRlcm5hbCAudHJlZSB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4gIHRyZWUtaW50ZXJuYWwgLnRyZWUgbGkge1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICB9XHJcblxyXG4gICAgdHJlZS1pbnRlcm5hbCAudHJlZSBsaSBkaXYge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9XHJcblxyXG4gIHRyZWUtaW50ZXJuYWwgLnRyZWUgLm5vZGUtdmFsdWUge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgY29sb3I6ICMyMTIxMjE7XHJcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICB9XHJcblxyXG4gICAgdHJlZS1pbnRlcm5hbCAudHJlZSAubm9kZS12YWx1ZTphZnRlciB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nLXRvcDogLTNweDtcclxuICAgICAgd2lkdGg6IDA7XHJcbiAgICAgIGhlaWdodDogMnB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xyXG4gICAgICBjb250ZW50OiAnJztcclxuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcztcclxuICAgIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIC5ub2RlLXZhbHVlOmhvdmVyOmFmdGVyIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gIHRyZWUtaW50ZXJuYWwgLnRyZWUgLm5vZGUtbGVmdC1tZW51IHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIC5ub2RlLWxlZnQtbWVudSBzcGFuOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMjYnO1xyXG4gICAgICBjb2xvcjogIzc1NzU3NTtcclxuICAgIH1cclxuXHJcbiAgdHJlZS1pbnRlcm5hbCAudHJlZSAubm9kZS1zZWxlY3RlZDphZnRlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcge1xyXG4gICAgd2lkdGg6IDI1cHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBsaW5lLWhlaWdodDogMXB4O1xyXG4gICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcblxyXG4gICAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWNvbGxhcHNlZCB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAgIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcubm9kZS1jb2xsYXBzZWQ6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnXFwyNUI2JztcclxuICAgICAgICBjb2xvcjogIzc1NzU3NTtcclxuICAgICAgfVxyXG5cclxuICAgIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcubm9kZS1leHBhbmRlZCB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAgIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcubm9kZS1leHBhbmRlZDpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1QkMnO1xyXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xyXG4gICAgICB9XHJcblxyXG4gICAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWVtcHR5IHtcclxuICAgICAgY29sb3I6ICMyMTIxMjE7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZm9udC1zaXplOiAwLjg5ZW07XHJcbiAgICB9XHJcblxyXG4gICAgICB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nLm5vZGUtZW1wdHk6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnXFwyNUI2JztcclxuICAgICAgICBjb2xvcjogIzc1NzU3NTtcclxuICAgICAgfVxyXG5cclxuICAgIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcubm9kZS1sZWFmIHtcclxuICAgICAgY29sb3I6ICMyMTIxMjE7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZm9udC1zaXplOiAwLjg5ZW07XHJcbiAgICB9XHJcblxyXG4gICAgICB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nLm5vZGUtbGVhZjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1Q0YnO1xyXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xyXG4gICAgICB9XHJcblxyXG50cmVlLWludGVybmFsIHVsLnJvb3RsZXNzIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG50cmVlLWludGVybmFsIGRpdi5yb290bGVzcyB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG50cmVlLWludGVybmFsIC5sb2FkaW5nLWNoaWxkcmVuOmFmdGVyIHtcclxuICBjb250ZW50OiAnIGxvYWRpbmcgLi4uJztcclxuICBjb2xvcjogIzZhMWI5YTtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgZm9udC1zaXplOiAwLjllbTtcclxuICBhbmltYXRpb24tbmFtZTogbG9hZGluZy1jaGlsZHJlbjtcclxuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xyXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG59XHJcblxyXG4udHJlZS1kZXRhaWxzIHtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlZWU7XHJcbiAgbWluLWhlaWdodDogMzAwcHg7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgbG9hZGluZy1jaGlsZHJlbiB7XHJcbiAgMCUge1xyXG4gICAgY29sb3I6ICNmM2U1ZjU7XHJcbiAgfVxyXG5cclxuICAxMi41JSB7XHJcbiAgICBjb2xvcjogI2UxYmVlNztcclxuICB9XHJcblxyXG4gIDI1JSB7XHJcbiAgICBjb2xvcjogI2NlOTNkODtcclxuICB9XHJcblxyXG4gIDM3LjUlIHtcclxuICAgIGNvbG9yOiAjYmE2OGM4O1xyXG4gIH1cclxuXHJcbiAgNTAlIHtcclxuICAgIGNvbG9yOiAjYWI0N2JjO1xyXG4gIH1cclxuXHJcbiAgNjIuNSUge1xyXG4gICAgY29sb3I6ICM5YzI3YjA7XHJcbiAgfVxyXG5cclxuICA3NSUge1xyXG4gICAgY29sb3I6ICM4ZTI0YWE7XHJcbiAgfVxyXG5cclxuICA4Ny41JSB7XHJcbiAgICBjb2xvcjogIzdiMWZhMjtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgY29sb3I6ICM2YTFiOWE7XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{'roles.editor.RoleNameRequired' | 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 {{node.data.name }} - {{ node.data.description }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { AfterViewInit, Component, OnChanges, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Role } from '../../models/role.model';\r\nimport { Permission, PermissionNames, PermissionTree, PermissionValues } from '../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Ng2TreeSettings, TreeComponent, TreeModel } from 'ng2-tree';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { IActionMapping, ITreeOptions } from 'angular-tree-component';\r\n\r\n@Component({\r\n selector: 'role-editor',\r\n templateUrl: './role-editor.component.html',\r\n styleUrls: ['./role-editor.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RoleEditorComponent implements AfterViewInit {\r\n //@ViewChild('treeComponent') treeComponent: TreeComponent;\r\n @ViewChild('tree') treeComponent;\r\n nodes = [];\r\n\r\n treeSettings: Ng2TreeSettings = {\r\n showCheckboxes: true,\r\n enableCheckboxes: true,\r\n rootIsVisible: true\r\n };\r\n\r\n actionMapping: IActionMapping = {\r\n mouse: {\r\n click: (tree, node) => this.check(node, !node.data.checked)\r\n }\r\n };\r\n\r\n options: ITreeOptions = {\r\n //useCheckbox: true,\r\n //displayField: 'description',\r\n useTriState: false,\r\n actionMapping: this.actionMapping\r\n };\r\n\r\n public check(node, checked) {\r\n\r\n //if (node.children && node.children.length > 0) {\r\n // //means a parent is being checked; check all children\r\n // this.updateChildNodeCheckbox(node, checked);\r\n // this.updateCheckedIndeterminate(node);\r\n //} else {\r\n // //means a leaf node; just check if all siblings are checked\r\n // node.data.checked = checked;\r\n // this.updateCheckedIndeterminate(node.realParent);\r\n //}\r\n //if (checked) {\r\n // this.addRemovePermission(node.id, node.data.data.value, true);\r\n //} else {\r\n // this.addRemovePermission(node.id, node.data.data.value, false);\r\n //}\r\n \r\n this.updateChildNodeCheckbox(node, checked);\r\n this.updateParentNodeCheckbox(node.realParent);\r\n\r\n }\r\n public updateChildNodeCheckbox(node, checked) {\r\n node.data.checked = checked;\r\n if (checked) {\r\n this.addRemovePermission(node.id, node.data.value, true);\r\n } else {\r\n this.addRemovePermission(node.id, node.data.value, false);\r\n }\r\n\r\n if (checked) {\r\n node.data.indeterminate = false;\r\n }\r\n if (node.children) {\r\n node.children.forEach((child) => this.updateChildNodeCheckbox(child, checked));\r\n }\r\n }\r\n public updateParentNodeCheckbox(node) {\r\n if (!node) {\r\n return;\r\n }\r\n //this.updateCheckedIndeterminate(node);\r\n if (node.data.checked) {\r\n this.addRemovePermission(node.id, node.data.value, true);\r\n } else {\r\n this.addRemovePermission(node.id, node.data.value, false);\r\n }\r\n if (node.realParent)\r\n this.updateParentNodeCheckbox(node.realParent);\r\n }\r\n\r\n updateCheckedIndeterminate(node) {\r\n let allChildrenChecked = true;\r\n let noChildChecked = true;\r\n\r\n for (const child of node.children) {\r\n if (!child.data.checked || child.data.indeterminate) {\r\n allChildrenChecked = false;\r\n }\r\n if (child.data.checked) {\r\n noChildChecked = false;\r\n }\r\n }\r\n\r\n if (allChildrenChecked) {\r\n node.data.checked = true;\r\n node.data.indeterminate = false;\r\n } else if (noChildChecked) {\r\n node.data.checked = false;\r\n node.data.indeterminate = false;\r\n } else {\r\n node.data.checked = true;\r\n node.data.indeterminate = true;\r\n }\r\n }\r\n\r\n loadingIndicator: boolean;\r\n rootLocation: PermissionTree;\r\n private selectedPermissions: Permission[] = [];\r\n\r\n private isNewRole = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingRoleName: string;\r\n private roleEdit: Role = new Role();\r\n private allPermissions: Permission[] = [];\r\n private allPermissionsTree: PermissionTree;\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService) {\r\n\r\n }\r\n\r\n\r\n nodeUnchecked(event) {\r\n console.log('nodeUnchecked');\r\n console.log(event);\r\n if (event && event.node && event.node.id > 0) {\r\n this.addRemovePermission(event.node.id, event.node.data.value, false);\r\n }\r\n\r\n }\r\n nodeChecked(event) {\r\n console.log('nodeChecked');\r\n console.log(event);\r\n if (event && event.node && event.node.id > 0) {\r\n this.addRemovePermission(event.node.data.name, event.node.data.value, true);\r\n }\r\n }\r\n\r\n\r\n addRemovePermission(name: string, value: string, isAdd: boolean) {\r\n let el = new Permission('' as PermissionNames, value as PermissionValues);\r\n if (isAdd) {\r\n if (!this.selectedPermissions || this.selectedPermissions.length == 0) {\r\n this.selectedPermissions.push(el);\r\n } else {\r\n let indx = this.selectedPermissions.findIndex(e => e.value == value);\r\n if (indx < 0) {\r\n this.selectedPermissions.push(el);\r\n }\r\n }\r\n } else {\r\n let indx = this.selectedPermissions.findIndex(e => e.value == value);\r\n if (indx > -1) {\r\n this.selectedPermissions.splice(indx, 1);\r\n }\r\n }\r\n\r\n console.log(this.selectedPermissions);\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.treeComponent && this.treeComponent.treeModel && this.treeComponent.treeModel.roots && this.treeComponent.treeModel.roots.length > 0) {\r\n this.treeComponent.treeModel.roots[0].expand();\r\n }\r\n }\r\n\r\n loadTree() {\r\n this.nodes = null;\r\n this.rootLocation = this.allPermissionsTree;\r\n console.log(this.allPermissionsTree);\r\n this.nodes = this.allPermissionsTree.children;\r\n\r\n if (this.treeComponent && this.treeComponent.treeModel && this.treeComponent.treeModel.roots) {\r\n setTimeout(() => {\r\n this.treeComponent.treeModel.roots[0].expand();\r\n }, 500);\r\n\r\n\r\n }\r\n\r\n\r\n this.setChildrenCheckboxes(this.nodes);\r\n //this.tree.settings = {\r\n // 'static': true,\r\n // 'rightMenu': true,\r\n // 'leftMenu': true,\r\n // 'cssClasses': {\r\n // 'expanded': 'fa fa-caret-down fa-sm',\r\n // 'collapsed': 'fa fa-caret-right fa-sm',\r\n // 'leaf': 'fa fa-sm',\r\n // 'empty': 'fa fa-caret-right disabled'\r\n // },\r\n // 'templates': {\r\n // 'node': ' ',\r\n // 'leaf': ' ',\r\n // 'leftMenu': ' '\r\n // }\r\n //};\r\n }\r\n\r\n setChildrenCheckboxes(children) {\r\n if (children) {\r\n children.forEach((item, indx) => {\r\n if (item.children && item.children.length > 0) {\r\n this.setChildrenCheckboxes(item.children);\r\n }\r\n\r\n if (this.selectedPermissions.findIndex(f => f.value == item.value) > -1) {\r\n //this.treeComponent.treeModel.getNodeById(item.id).setIsSelected(true);\r\n item.checked = true;\r\n } else {\r\n item.checked = false;\r\n //this.treeComponent.treeModel.getNodeById(item.id).setIsSelected(false);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.selectedPermissions = Utilities.getUniqueValues(this.selectedPermissions, 'value'); \r\n console.log(this.selectedPermissions)\r\n this.roleEdit.permissions = this.selectedPermissions;//this.getSelectedPermissions();\r\n\r\n if (this.isNewRole) {\r\n this.accountService.newRole(this.roleEdit).subscribe(role => this.saveSuccessHelper(role), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.accountService.updateRole(this.roleEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(role?: Role) {\r\n if (role)\r\n Object.assign(this.roleEdit, role);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewRole)\r\n this.alertService.showMessage(\"Success\", `Role \\\"${this.roleEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to role \\\"${this.roleEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.roleEdit = new Role();\r\n this.resetForm();\r\n\r\n\r\n if (!this.isNewRole && this.accountService.currentUser.roles.some(r => r == this.editingRoleName))\r\n this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.roleEdit = new Role();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n }\r\n\r\n\r\n\r\n private selectAll() {\r\n this.allPermissions.forEach(p => this.selectedValues[p.value] = true);\r\n }\r\n\r\n\r\n private selectNone() {\r\n this.allPermissions.forEach(p => this.selectedValues[p.value] = false);\r\n }\r\n\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n private getSelectedPermissionsFromTree() {\r\n if (this.treeComponent && this.treeComponent.treeModel && this.treeComponent.treeModel.roots) {\r\n this.treeComponent.treeModel.roots[0];\r\n }\r\n \r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newRole(allPermissions: Permission[], allPermissionsTree?: PermissionTree) {\r\n this.isNewRole = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingRoleName = null;\r\n this.allPermissions = allPermissions;\r\n this.allPermissionsTree = allPermissionsTree;\r\n this.selectedValues = {};\r\n this.roleEdit = new Role();\r\n return this.roleEdit;\r\n }\r\n\r\n editRole(role: Role, allPermissions: Permission[], allPermissionsTree?: PermissionTree) {\r\n if (role) {\r\n this.isNewRole = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingRoleName = role.name;\r\n this.allPermissions = allPermissions;\r\n this.allPermissionsTree = allPermissionsTree;\r\n this.selectedValues = {};\r\n //role.permissions.forEach(p => this.selectedValues[p.value] = true);\r\n\r\n this.selectedPermissions = [];\r\n if (role.permissions) {\r\n role.permissions.forEach((item, indx) => {\r\n if (item) {\r\n this.selectedPermissions.push(new Permission('' as PermissionNames, item.value as PermissionValues));\r\n }\r\n });\r\n }\r\n\r\n this.roleEdit = new Role();\r\n Object.assign(this.roleEdit, role);\r\n\r\n return this.roleEdit;\r\n }\r\n else {\r\n return this.newRole(allPermissions);\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageRoles() {\r\n return this.accountService.userHasPermission(Permission.manageRolesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9yb2xlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9yb2xlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Roles

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'roles.management.Edit' | translate}}\\r\\n {{'roles.management.Details' | translate}}\\r\\n \\r\\n {{'roles.management.Delete' | translate}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'roles.management.RoleDetails' | translate:editingRoleName}}

\\r\\n

{{editingRoleName ? ('roles.management.EditRole' | translate:editingRoleName) : ('roles.management.NewRole' | translate)}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Role } from '../../models/role.model';\r\nimport { Permission, PermissionTree } from '../../models/permission.model';\r\nimport { RoleEditorComponent } from \"./role-editor.component\";\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonFilter, PagedResult } from 'src/app/models/sieve-filter.model';\r\n\r\n\r\n@Component({\r\n selector: 'roles-management',\r\n templateUrl: './roles-management.component.html',\r\n styleUrls: ['./roles-management.component.css']\r\n})\r\nexport class RolesManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: Role[] = [];\r\n rowsCache: Role[] = [];\r\n allPermissions: Permission[] = [];\r\n allPermissionsTree: PermissionTree;\r\n editedRole: Role;\r\n sourceRole: Role;\r\n editingRoleName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n filter: CommonFilter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n sieveFilters = new Map();\r\n\r\n @ViewChild('roleMgtTable') table: any;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('roleEditor')\r\n roleEditor: RoleEditorComponent;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService) {\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new CommonFilter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false, sortable: false },\r\n { prop: 'name', name: gT('roles.management.Name') },\r\n { prop: 'description', name: gT('roles.management.Description') },\r\n { prop: 'usersCount', name: gT('roles.management.Users'), sortable: false },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionCode', name: gT('users.management.Institution') },);\r\n }\r\n }\r\n\r\n initializeDefaultSieveFilter() {\r\n this.sieveFilters.set('(IsActive)==', 'true');\r\n this.sieveFilters.set('(InstitutionId)==', this.accountService.currentUser.institutionId);\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.initializeDefaultSieveFilter();\r\n this.loadData(null, true);\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.roleEditor.changesSavedCallback = () => {\r\n this.addNewRoleToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.roleEditor.changesCancelledCallback = () => {\r\n this.editedRole = null;\r\n this.sourceRole = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n addNewRoleToList() {\r\n if (this.sourceRole) {\r\n Object.assign(this.sourceRole, this.editedRole);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceRole, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceRole, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedRole = null;\r\n this.sourceRole = null;\r\n }\r\n else {\r\n let role = new Role();\r\n Object.assign(role, this.editedRole);\r\n this.editedRole = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (role).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, role);\r\n this.rows.splice(0, 0, role);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n loadData(ev?: any, isFirstLoad?: boolean) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.sieveFilters) {\r\n this.initializeDefaultSieveFilter();\r\n }\r\n if (!this.keyword) this.keyword = '';\r\n\r\n\r\n let val = this.sieveFilters.has('(Name|Description)@=');\r\n if (val) {\r\n this.sieveFilters.delete('(Name|Description)@=');\r\n }\r\n\r\n if (this.keyword) {\r\n this.sieveFilters.set('(Name|Description)@=', this.keyword);\r\n }\r\n\r\n this.filter.filters = '';\r\n let indx = 0;\r\n this.sieveFilters.forEach((value: string, key: string) => {\r\n if (indx > 0) {\r\n this.filter.filters += ','\r\n }\r\n this.filter.filters += key + value;\r\n indx++;\r\n });\r\n this.subscription.add(this.accountService.getRolesAndPermissionsByFilters(this.filter).subscribe(results => {\r\n let pagedResult = results[0];\r\n let permissionsTree = results[1];\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.pagedResult = pagedResult;\r\n let roles = pagedResult.pagedData;\r\n\r\n roles.forEach((role, index, roles) => {\r\n (role).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...roles];\r\n this.rows = roles;\r\n\r\n this.allPermissionsTree = permissionsTree;\r\n\r\n }, error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve roles from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n onEditorModalHidden() {\r\n this.editingRoleName = null;\r\n this.roleEditor.resetForm(true);\r\n }\r\n\r\n\r\n newRole() {\r\n this.editingRoleName = null;\r\n this.sourceRole = null;\r\n this.editedRole = this.roleEditor.newRole(this.allPermissions, this.allPermissionsTree);\r\n this.editedRole.institutionId = this.accountService.currentUser.institutionId;\r\n this.editorModal.show();\r\n this.roleEditor.loadTree();\r\n }\r\n\r\n\r\n editRole(row: Role) {\r\n this.editingRoleName = { name: row.name };\r\n this.sourceRole = row;\r\n this.editedRole = this.roleEditor.editRole(row, this.allPermissions, this.allPermissionsTree);\r\n this.editorModal.show();\r\n this.roleEditor.loadTree();\r\n }\r\n\r\n deleteRole(row: Role) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" role?', DialogType.confirm, () => this.deleteRoleHelper(row));\r\n }\r\n\r\n\r\n deleteRoleHelper(row: Role) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.accountService.deleteRole(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the role.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageRoles() {\r\n return this.accountService.userHasPermission(Permission.manageRolesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.search-icon {\\r\\n pointer-events: none;\\r\\n}\\r\\ninput.form-control {\\r\\n border-left-width: 1px !important;\\r\\n}\\r\\n.clear-input {\\r\\n right: 30px !important;\\r\\n}\\r\\n.refresh-input, .refresh-input:hover {\\r\\n color: #007f7b;\\r\\n text-decoration: none;\\r\\n}\\r\\n.icon-addon.addon-sm .form-control.right-icon {\\r\\n padding-right: 56px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zZWFyY2gtYm94LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksb0JBQW9CO0FBQ3hCO0FBQ0E7RUFDRSxpQ0FBaUM7QUFDbkM7QUFFQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUVBO0VBQ0UsY0FBYztFQUNkLHFCQUFxQjtBQUN2QjtBQUVBO0VBQ0UsOEJBQThCO0FBQ2hDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zZWFyY2gtYm94LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLnNlYXJjaC1pY29uIHtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2xlYXItaW5wdXQge1xyXG4gIHJpZ2h0OiAzMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5yZWZyZXNoLWlucHV0LCAucmVmcmVzaC1pbnB1dDpob3ZlciB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG4uaWNvbi1hZGRvbi5hZGRvbi1zbSAuZm9ybS1jb250cm9sLnJpZ2h0LWljb24ge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDU2cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, ViewChild, ElementRef, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'search-box',\r\n templateUrl: './search-box.component.html',\r\n styleUrls: ['./search-box.component.css']\r\n})\r\nexport class SearchBoxComponent {\r\n\r\n @Input()\r\n placeholder: string = \"Search...\";\r\n\r\n @Output()\r\n onEnter = new EventEmitter();\r\n\r\n @Output()\r\n searchChange = new EventEmitter();\r\n\r\n @ViewChild(\"searchInput\")\r\n searchInput: ElementRef;\r\n\r\n\r\n onValueChange(value: string) {\r\n setTimeout(() => this.searchChange.emit(value));\r\n }\r\n\r\n\r\n clear() {\r\n this.searchInput.nativeElement.value = '';\r\n this.onValueChange(this.searchInput.nativeElement.value);\r\n this.onEnterPress();\r\n }\r\n\r\n onEnterPress() {\r\n setTimeout(() => this.onEnter.emit());\r\n }\r\n}\r\n","module.exports = \"\\r\\n.chart-container {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n\\r\\n.refresh-btn {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n\\r\\n.chart-type-container {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\nli.active2 {\\r\\n background-color: #e8e8e8;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zdGF0aXN0aWNzLWRlbW8uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxjQUFjO0FBQ2xCOzs7QUFHQTtJQUNJLGtCQUFrQjtBQUN0Qjs7O0FBRUE7SUFDSSxxQkFBcUI7QUFDekI7OztBQUdBO0lBQ0kseUJBQXlCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zdGF0aXN0aWNzLWRlbW8uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY2hhcnQtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5cclxuLnJlZnJlc2gtYnRuIHtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG5cclxuLmNoYXJ0LXR5cGUtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuXHJcbmxpLmFjdGl2ZTIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{label}}
{{d && d.label.split(' ').pop()}}{{d && d.data[j]}}
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { Subscription, Observable, fromEvent, of, merge } from 'rxjs';\r\nimport { map, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nrequire('chart.js');\r\n\r\n\r\n\r\n@Component({\r\n selector: 'statistics-demo',\r\n templateUrl: './statistics-demo.component.html',\r\n styleUrls: ['./statistics-demo.component.css']\r\n})\r\nexport class StatisticsDemoComponent implements OnInit, OnDestroy {\r\n\r\n chartData = [\r\n { data: [65, 59, 80, 81, 56, 55], label: 'Series A' },\r\n { data: [28, 48, 40, 19, 86, 27], label: 'Series B' },\r\n { data: [18, 48, 77, 9, 100, 27], label: 'Series C' }\r\n ];\r\n chartLabels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'];\r\n chartOptions = {\r\n responsive: true,\r\n title: {\r\n display: false,\r\n fontSize: 16,\r\n text: 'Important Stuff'\r\n }\r\n };\r\n chartColors = [\r\n { // grey\r\n backgroundColor: 'rgba(148,159,177,0.2)',\r\n borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n { // dark grey\r\n backgroundColor: 'rgba(77,83,96,0.2)',\r\n borderColor: 'rgba(77,83,96,1)',\r\n pointBackgroundColor: 'rgba(77,83,96,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(77,83,96,1)'\r\n },\r\n { // something else\r\n backgroundColor: 'rgba(128,128,128,0.2)',\r\n borderColor: 'rgba(128,128,128,1)',\r\n pointBackgroundColor: 'rgba(128,128,128,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(128,128,128,0.8)'\r\n }\r\n ];\r\n chartLegend = true;\r\n chartType = 'line';\r\n\r\n timerReference: any;\r\n windowWidth$: Observable;\r\n windowWidthSub: Subscription;\r\n\r\n\r\n constructor(private alertService: AlertService) {\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.timerReference = setInterval(() => this.randomize(), 5000);\r\n\r\n let initialWidth$ = of(window.innerWidth);\r\n let resizedWidth$ = fromEvent(window, 'resize').pipe(map((event: any) => event.target.innerWidth));\r\n this.windowWidth$ = merge(initialWidth$, resizedWidth$).pipe(distinctUntilChanged());\r\n\r\n this.windowWidthSub = this.windowWidth$.subscribe(width => this.chartLegend = width < 600 ? false : true);\r\n }\r\n\r\n ngOnDestroy() {\r\n clearInterval(this.timerReference);\r\n this.windowWidthSub.unsubscribe();\r\n }\r\n\r\n\r\n\r\n randomize(): void {\r\n let _chartData = new Array(this.chartData.length);\r\n for (let i = 0; i < this.chartData.length; i++) {\r\n _chartData[i] = { data: new Array(this.chartData[i].data.length), label: this.chartData[i].label };\r\n\r\n for (let j = 0; j < this.chartData[i].data.length; j++) {\r\n _chartData[i].data[j] = Math.floor((Math.random() * 100) + 1);\r\n }\r\n }\r\n\r\n this.chartData = _chartData;\r\n }\r\n\r\n changeChartType(type: string) {\r\n this.chartType = type;\r\n }\r\n\r\n showMessage(msg: string): void {\r\n this.alertService.showMessage(\"Demo\", msg, MessageSeverity.info);\r\n }\r\n\r\n showDialog(msg: string): void {\r\n this.alertService.showDialog(msg, DialogType.prompt, (val) => this.configure(true, val), () => this.configure(false));\r\n }\r\n\r\n configure(response: boolean, value?: string) {\r\n\r\n if (response) {\r\n\r\n this.alertService.showStickyMessage(\"Simulating...\", \"\", MessageSeverity.wait);\r\n\r\n setTimeout(() => {\r\n\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showMessage(\"Demo\", `Your settings was successfully configured to \\\"${value}\\\"`, MessageSeverity.success);\r\n }, 2000);\r\n }\r\n else {\r\n //this.alertService.showMessage(\"Demo\", \"Operation cancelled by user\", MessageSeverity.default);\r\n }\r\n }\r\n\r\n chartClicked(e): void {\r\n console.log(e);\r\n }\r\n\r\n chartHovered(e): void {\r\n console.log(e);\r\n }\r\n}\r\n","module.exports = \"\\r\\n.navbar .nav > li.toolbaritem > a {\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 15px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n.completed {\\r\\n text-decoration: line-through;\\r\\n}\\r\\n\\r\\n.checkbox {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.inline-label {\\r\\n width: 100%;\\r\\n min-height: 1rem;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.inline-editor {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.description-form-group {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.actionBtn-form-group {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin: 10px 0;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy90b2RvLWRlbW8uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0ksNkJBQTZCO0FBQ2pDOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksV0FBVztJQUNYLGdCQUFnQjtJQUNoQixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSxXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3RvZG8tZGVtby5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5uYXZiYXIgLm5hdiA+IGxpLnRvb2xiYXJpdGVtID4gYSB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDE1cHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG4uY29tcGxldGVkIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xyXG59XHJcblxyXG4uY2hlY2tib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uaW5saW5lLWxhYmVsIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWluLWhlaWdodDogMXJlbTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmlubGluZS1lZGl0b3Ige1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5kZXNjcmlwdGlvbi1mb3JtLWdyb3VwIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLmFjdGlvbkJ0bi1mb3JtLWdyb3VwIHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDA7XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'todoDemo.editor.NewTask' | 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 {{'todoDemo.editor.TaskNameRequired' | 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\"","import { Component, OnInit, OnDestroy, Input, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { LocalStoreManager } from '../../services/local-store-manager.service';\r\nimport { Utilities } from \"../../services/utilities\";\r\n\r\n\r\n\r\n@Component({\r\n selector: 'todo-demo',\r\n templateUrl: './todo-demo.component.html',\r\n styleUrls: ['./todo-demo.component.css']\r\n})\r\nexport class TodoDemoComponent implements OnInit, OnDestroy {\r\n public static readonly DBKeyTodoDemo = \"todo-demo.todo_list\";\r\n\r\n rows = [];\r\n rowsCache = [];\r\n columns = [];\r\n editing = {};\r\n taskEdit = {};\r\n isDataLoaded: boolean = false;\r\n loadingIndicator: boolean = true;\r\n formResetToggle: boolean = true;\r\n _currentUserId: string;\r\n _hideCompletedTasks: boolean = false;\r\n\r\n\r\n get currentUserId() {\r\n if (this.authService.currentUser)\r\n this._currentUserId = this.authService.currentUser.id;\r\n\r\n return this._currentUserId;\r\n }\r\n\r\n\r\n set hideCompletedTasks(value: boolean) {\r\n\r\n if (value) {\r\n this.rows = this.rowsCache.filter(r => !r.completed);\r\n }\r\n else {\r\n this.rows = [...this.rowsCache];\r\n }\r\n\r\n\r\n this._hideCompletedTasks = value;\r\n }\r\n\r\n get hideCompletedTasks() {\r\n return this._hideCompletedTasks;\r\n }\r\n\r\n\r\n @Input()\r\n verticalScrollbar: boolean = false;\r\n\r\n\r\n @ViewChild('statusHeaderTemplate')\r\n statusHeaderTemplate: TemplateRef;\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n @ViewChild('nameTemplate')\r\n nameTemplate: TemplateRef;\r\n\r\n @ViewChild('descriptionTemplate')\r\n descriptionTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private localStorage: LocalStoreManager, private authService: AuthService) {\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.loadingIndicator = true;\r\n\r\n this.fetch((data) => {\r\n this.refreshDataIndexes(data);\r\n this.rows = data;\r\n this.rowsCache = [...data];\r\n this.isDataLoaded = true;\r\n\r\n setTimeout(() => { this.loadingIndicator = false; }, 1500);\r\n });\r\n\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"completed\", name: '', width: 30, headerTemplate: this.statusHeaderTemplate, cellTemplate: this.statusTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'name', name: gT('todoDemo.management.Task'), cellTemplate: this.nameTemplate, width: 200 },\r\n { prop: 'description', name: gT('todoDemo.management.Description'), cellTemplate: this.descriptionTemplate, width: 500 },\r\n { name: '', width: 80, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnDestroy() {\r\n this.saveToDisk();\r\n }\r\n\r\n\r\n\r\n fetch(cb) {\r\n let data = this.getFromDisk()\r\n\r\n if (data == null) {\r\n setTimeout(() => {\r\n\r\n data = this.getFromDisk();\r\n\r\n if (data == null) {\r\n data = [\r\n { \"completed\": true, \"important\": true, \"name\": \"Create visual studio extension\", \"description\": \"Create a visual studio VSIX extension package that will add this project as an aspnet-core project template\" },\r\n { \"completed\": false, \"important\": true, \"name\": \"Do a quick how-to writeup\", \"description\": \"\" },\r\n {\r\n \"completed\": false, \"important\": false, \"name\": \"Create aspnet-core/angular7 tutorials based on this project\", \"description\": \"Create tutorials (blog/video/youtube) on how to build applications (full stack)\" +\r\n \" using aspnet-core/angular7. The tutorial will focus on getting productive with the technology right away rather than the details on how and why they work so audience can get onboard quickly.\"\r\n },\r\n ];\r\n }\r\n\r\n cb(data);\r\n }, 1000);\r\n }\r\n else {\r\n cb(data);\r\n }\r\n }\r\n\r\n\r\n refreshDataIndexes(data) {\r\n let index = 0;\r\n\r\n for (let i of data) {\r\n i.$$index = index++;\r\n }\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description) || value == 'important' && r.important || value == 'not important' && !r.important);\r\n }\r\n\r\n\r\n showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n addTask() {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n\r\n this.taskEdit = {};\r\n this.editorModal.show();\r\n });\r\n }\r\n\r\n save() {\r\n this.rowsCache.splice(0, 0, this.taskEdit);\r\n this.rows.splice(0, 0, this.taskEdit);\r\n this.refreshDataIndexes(this.rowsCache);\r\n this.rows = [...this.rows];\r\n\r\n this.saveToDisk();\r\n this.editorModal.hide();\r\n }\r\n\r\n\r\n updateValue(event, cell, cellValue, row) {\r\n this.editing[row.$$index + '-' + cell] = false;\r\n this.rows[row.$$index][cell] = event.target.value;\r\n this.rows = [...this.rows];\r\n\r\n this.saveToDisk();\r\n }\r\n\r\n\r\n delete(row) {\r\n this.alertService.showDialog('Are you sure you want to delete the task?', DialogType.confirm, () => this.deleteHelper(row));\r\n }\r\n\r\n\r\n deleteHelper(row) {\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n\r\n this.saveToDisk();\r\n }\r\n\r\n getFromDisk() {\r\n return this.localStorage.getDataObject(`${TodoDemoComponent.DBKeyTodoDemo}:${this.currentUserId}`);\r\n }\r\n\r\n saveToDisk() {\r\n if (this.isDataLoaded)\r\n this.localStorage.saveSyncedSessionData(this.rowsCache, `${TodoDemoComponent.DBKeyTodoDemo}:${this.currentUserId}`);\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.node-menu {\\r\\n position: relative;\\r\\n width: 150px;\\r\\n}\\r\\n\\r\\n.node-menu .node-menu-content {\\r\\n width: 100%;\\r\\n padding: 5px;\\r\\n position: absolute;\\r\\n border: 1px solid #bdbdbd;\\r\\n border-radius: 5%;\\r\\n box-shadow: 0 0 5px #bdbdbd;\\r\\n background-color: #eee;\\r\\n color: #212121;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n z-index: 999;\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content li.node-menu-item {\\r\\n list-style: none;\\r\\n padding: 3px;\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item:hover {\\r\\n border-radius: 5%;\\r\\n opacity: unset;\\r\\n cursor: pointer;\\r\\n background-color: #bdbdbd;\\r\\n transition: background-color 0.2s ease-out;\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-icon {\\r\\n display: inline-block;\\r\\n width: 16px;\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.new-tag:before {\\r\\n content: '\\\\25CF';\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.new-folder:before {\\r\\n content: '\\\\25B6';\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.rename:before {\\r\\n content: '\\\\270E';\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-icon.remove:before {\\r\\n content: '\\\\2716';\\r\\n }\\r\\n\\r\\n.node-menu .node-menu-content .node-menu-item .node-menu-item-value {\\r\\n margin-left: 5px;\\r\\n }\\r\\n\\r\\ntree-internal ul {\\r\\n padding: 3px 0 3px 25px;\\r\\n}\\r\\n\\r\\ntree-internal li {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style: none;\\r\\n}\\r\\n\\r\\ntree-internal .over-drop-target {\\r\\n border: 4px solid #757575;\\r\\n transition: padding 0.2s ease-out;\\r\\n padding: 5px;\\r\\n border-radius: 5%;\\r\\n}\\r\\n\\r\\ntree-internal .tree {\\r\\n box-sizing: border-box;\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\r\\n}\\r\\n\\r\\ntree-internal .tree li {\\r\\n list-style: none;\\r\\n cursor: default;\\r\\n }\\r\\n\\r\\ntree-internal .tree li div {\\r\\n display: inline-block;\\r\\n box-sizing: border-box;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-value {\\r\\n display: inline-block;\\r\\n color: #212121;\\r\\n margin-left: 10px;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-value:after {\\r\\n display: block;\\r\\n padding-top: -3px;\\r\\n width: 0;\\r\\n height: 2px;\\r\\n background-color: #212121;\\r\\n content: '';\\r\\n transition: width 0.3s;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-value:hover:after {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-left-menu {\\r\\n display: inline-block;\\r\\n height: 100%;\\r\\n width: auto;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-left-menu span:before {\\r\\n content: '\\\\2026';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\ntree-internal .tree .node-selected:after {\\r\\n width: 100%;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding {\\r\\n width: 25px;\\r\\n display: inline-block;\\r\\n line-height: 1px;\\r\\n padding: 0 5px;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-collapsed {\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-collapsed:before {\\r\\n content: '\\\\25B6';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-expanded {\\r\\n cursor: pointer;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-expanded:before {\\r\\n content: '\\\\25BC';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-empty {\\r\\n color: #212121;\\r\\n text-align: center;\\r\\n font-size: 0.89em;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-empty:before {\\r\\n content: '\\\\25B6';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-leaf {\\r\\n color: #212121;\\r\\n text-align: center;\\r\\n font-size: 0.89em;\\r\\n }\\r\\n\\r\\ntree-internal .tree .folding.node-leaf:before {\\r\\n content: '\\\\25CF';\\r\\n color: #757575;\\r\\n }\\r\\n\\r\\ntree-internal ul.rootless {\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\ntree-internal div.rootless {\\r\\n display: none !important;\\r\\n}\\r\\n\\r\\ntree-internal .loading-children:after {\\r\\n content: ' loading ...';\\r\\n color: #6a1b9a;\\r\\n font-style: italic;\\r\\n font-size: 0.9em;\\r\\n -webkit-animation-name: loading-children;\\r\\n animation-name: loading-children;\\r\\n -webkit-animation-duration: 2s;\\r\\n animation-duration: 2s;\\r\\n -webkit-animation-timing-function: ease-in-out;\\r\\n animation-timing-function: ease-in-out;\\r\\n -webkit-animation-iteration-count: infinite;\\r\\n animation-iteration-count: infinite;\\r\\n}\\r\\n\\r\\n.tree-details {\\r\\n border-left: 1px solid #eee;\\r\\n min-height: 300px;\\r\\n}\\r\\n\\r\\n@-webkit-keyframes loading-children {\\r\\n 0% {\\r\\n color: #f3e5f5;\\r\\n }\\r\\n\\r\\n 12.5% {\\r\\n color: #e1bee7;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n color: #ce93d8;\\r\\n }\\r\\n\\r\\n 37.5% {\\r\\n color: #ba68c8;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: #ab47bc;\\r\\n }\\r\\n\\r\\n 62.5% {\\r\\n color: #9c27b0;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n color: #8e24aa;\\r\\n }\\r\\n\\r\\n 87.5% {\\r\\n color: #7b1fa2;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #6a1b9a;\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes loading-children {\\r\\n 0% {\\r\\n color: #f3e5f5;\\r\\n }\\r\\n\\r\\n 12.5% {\\r\\n color: #e1bee7;\\r\\n }\\r\\n\\r\\n 25% {\\r\\n color: #ce93d8;\\r\\n }\\r\\n\\r\\n 37.5% {\\r\\n color: #ba68c8;\\r\\n }\\r\\n\\r\\n 50% {\\r\\n color: #ab47bc;\\r\\n }\\r\\n\\r\\n 62.5% {\\r\\n color: #9c27b0;\\r\\n }\\r\\n\\r\\n 75% {\\r\\n color: #8e24aa;\\r\\n }\\r\\n\\r\\n 87.5% {\\r\\n color: #7b1fa2;\\r\\n }\\r\\n\\r\\n 100% {\\r\\n color: #6a1b9a;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VyLWdyb3VwL3VzZXItZ3JvdXAtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0FBQ2Q7O0FBRUU7SUFDRSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQix5QkFBeUI7SUFDekIsaUJBQWlCO0lBQ2pCLDJCQUEyQjtJQUMzQixzQkFBc0I7SUFDdEIsY0FBYztJQUNkLDJEQUEyRDtJQUMzRCxZQUFZO0VBQ2Q7O0FBRUU7TUFDRSxnQkFBZ0I7TUFDaEIsWUFBWTtJQUNkOztBQUVBO01BQ0UsaUJBQWlCO01BQ2pCLGNBQWM7TUFDZCxlQUFlO01BQ2YseUJBQXlCO01BQ3pCLDBDQUEwQztJQUM1Qzs7QUFFQTtNQUNFLHFCQUFxQjtNQUNyQixXQUFXO0lBQ2I7O0FBRUU7UUFDRSxnQkFBZ0I7TUFDbEI7O0FBRUE7UUFDRSxnQkFBZ0I7TUFDbEI7O0FBRUE7UUFDRSxnQkFBZ0I7TUFDbEI7O0FBRUE7UUFDRSxnQkFBZ0I7TUFDbEI7O0FBRUY7TUFDRSxnQkFBZ0I7SUFDbEI7O0FBRUo7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsU0FBUztFQUNULGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixpQ0FBaUM7RUFDakMsWUFBWTtFQUNaLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QiwyREFBMkQ7QUFDN0Q7O0FBRUU7SUFDRSxnQkFBZ0I7SUFDaEIsZUFBZTtFQUNqQjs7QUFFRTtNQUNFLHFCQUFxQjtNQUNyQixzQkFBc0I7SUFDeEI7O0FBRUY7SUFDRSxxQkFBcUI7SUFDckIsY0FBYztJQUNkLGlCQUFpQjtFQUNuQjs7QUFFRTtNQUNFLGNBQWM7TUFDZCxpQkFBaUI7TUFDakIsUUFBUTtNQUNSLFdBQVc7TUFDWCx5QkFBeUI7TUFDekIsV0FBVztNQUNYLHNCQUFzQjtJQUN4Qjs7QUFFQTtNQUNFLFdBQVc7SUFDYjs7QUFFRjtJQUNFLHFCQUFxQjtJQUNyQixZQUFZO0lBQ1osV0FBVztFQUNiOztBQUVFO01BQ0UsZ0JBQWdCO01BQ2hCLGNBQWM7SUFDaEI7O0FBRUY7SUFDRSxXQUFXO0VBQ2I7O0FBRUE7SUFDRSxXQUFXO0lBQ1gscUJBQXFCO0lBQ3JCLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsaUJBQWlCO0VBQ25COztBQUVFO01BQ0UsZUFBZTtJQUNqQjs7QUFFRTtRQUNFLGdCQUFnQjtRQUNoQixjQUFjO01BQ2hCOztBQUVGO01BQ0UsZUFBZTtJQUNqQjs7QUFFRTtRQUNFLGdCQUFnQjtRQUNoQixjQUFjO01BQ2hCOztBQUVGO01BQ0UsY0FBYztNQUNkLGtCQUFrQjtNQUNsQixpQkFBaUI7SUFDbkI7O0FBRUU7UUFDRSxnQkFBZ0I7UUFDaEIsY0FBYztNQUNoQjs7QUFFRjtNQUNFLGNBQWM7TUFDZCxrQkFBa0I7TUFDbEIsaUJBQWlCO0lBQ25COztBQUVFO1FBQ0UsZ0JBQWdCO1FBQ2hCLGNBQWM7TUFDaEI7O0FBRU47RUFDRSxVQUFVO0FBQ1o7O0FBRUE7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsd0NBQWdDO1VBQWhDLGdDQUFnQztFQUNoQyw4QkFBc0I7VUFBdEIsc0JBQXNCO0VBQ3RCLDhDQUFzQztVQUF0QyxzQ0FBc0M7RUFDdEMsMkNBQW1DO1VBQW5DLG1DQUFtQztBQUNyQzs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjtBQUNGOztBQXBDQTtFQUNFO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGNBQWM7RUFDaEI7O0VBRUE7SUFDRSxjQUFjO0VBQ2hCO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3VzZXItZ3JvdXAvdXNlci1ncm91cC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuLm5vZGUtbWVudSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxNTBweDtcclxufVxyXG5cclxuICAubm9kZS1tZW51IC5ub2RlLW1lbnUtY29udGVudCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiZGJkYmQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1JTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggI2JkYmRiZDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICBjb2xvcjogIzIxMjEyMTtcclxuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XHJcbiAgICB6LWluZGV4OiA5OTk7XHJcbiAgfVxyXG5cclxuICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IGxpLm5vZGUtbWVudS1pdGVtIHtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgcGFkZGluZzogM3B4O1xyXG4gICAgfVxyXG5cclxuICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbTpob3ZlciB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUlO1xyXG4gICAgICBvcGFjaXR5OiB1bnNldDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkO1xyXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1vdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLm5vZGUtbWVudSAubm9kZS1tZW51LWNvbnRlbnQgLm5vZGUtbWVudS1pdGVtIC5ub2RlLW1lbnUtaXRlbS1pY29uIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogMTZweDtcclxuICAgIH1cclxuXHJcbiAgICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0taWNvbi5uZXctdGFnOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjVDRic7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0taWNvbi5uZXctZm9sZGVyOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjVCNic7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5ub2RlLW1lbnUgLm5vZGUtbWVudS1jb250ZW50IC5ub2RlLW1lbnUtaXRlbSAubm9kZS1tZW51LWl0ZW0taWNvbi5yZW5hbWU6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnXFwyNzBFJztcclxuICAgICAgfVxyXG5cclxuICAgICAgLm5vZGUtbWVudSAubm9kZS1tZW51LWNvbnRlbnQgLm5vZGUtbWVudS1pdGVtIC5ub2RlLW1lbnUtaXRlbS1pY29uLnJlbW92ZTpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI3MTYnO1xyXG4gICAgICB9XHJcblxyXG4gICAgLm5vZGUtbWVudSAubm9kZS1tZW51LWNvbnRlbnQgLm5vZGUtbWVudS1pdGVtIC5ub2RlLW1lbnUtaXRlbS12YWx1ZSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgICB9XHJcblxyXG50cmVlLWludGVybmFsIHVsIHtcclxuICBwYWRkaW5nOiAzcHggMCAzcHggMjVweDtcclxufVxyXG5cclxudHJlZS1pbnRlcm5hbCBsaSB7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW46IDA7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxudHJlZS1pbnRlcm5hbCAub3Zlci1kcm9wLXRhcmdldCB7XHJcbiAgYm9yZGVyOiA0cHggc29saWQgIzc1NzU3NTtcclxuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuMnMgZWFzZS1vdXQ7XHJcbiAgcGFkZGluZzogNXB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUlO1xyXG59XHJcblxyXG50cmVlLWludGVybmFsIC50cmVlIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbiAgdHJlZS1pbnRlcm5hbCAudHJlZSBsaSB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIGxpIGRpdiB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1cclxuXHJcbiAgdHJlZS1pbnRlcm5hbCAudHJlZSAubm9kZS12YWx1ZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBjb2xvcjogIzIxMjEyMTtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIC5ub2RlLXZhbHVlOmFmdGVyIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAtM3B4O1xyXG4gICAgICB3aWR0aDogMDtcclxuICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7XHJcbiAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzO1xyXG4gICAgfVxyXG5cclxuICAgIHRyZWUtaW50ZXJuYWwgLnRyZWUgLm5vZGUtdmFsdWU6aG92ZXI6YWZ0ZXIge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgdHJlZS1pbnRlcm5hbCAudHJlZSAubm9kZS1sZWZ0LW1lbnUge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG5cclxuICAgIHRyZWUtaW50ZXJuYWwgLnRyZWUgLm5vZGUtbGVmdC1tZW51IHNwYW46YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJ1xcMjAyNic7XHJcbiAgICAgIGNvbG9yOiAjNzU3NTc1O1xyXG4gICAgfVxyXG5cclxuICB0cmVlLWludGVybmFsIC50cmVlIC5ub2RlLXNlbGVjdGVkOmFmdGVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZyB7XHJcbiAgICB3aWR0aDogMjVweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGxpbmUtaGVpZ2h0OiAxcHg7XHJcbiAgICBwYWRkaW5nOiAwIDVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nLm5vZGUtY29sbGFwc2VkIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgICAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWNvbGxhcHNlZDpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1QjYnO1xyXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xyXG4gICAgICB9XHJcblxyXG4gICAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWV4cGFuZGVkIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG5cclxuICAgICAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWV4cGFuZGVkOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjVCQyc7XHJcbiAgICAgICAgY29sb3I6ICM3NTc1NzU7XHJcbiAgICAgIH1cclxuXHJcbiAgICB0cmVlLWludGVybmFsIC50cmVlIC5mb2xkaW5nLm5vZGUtZW1wdHkge1xyXG4gICAgICBjb2xvcjogIzIxMjEyMTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBmb250LXNpemU6IDAuODllbTtcclxuICAgIH1cclxuXHJcbiAgICAgIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcubm9kZS1lbXB0eTpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICdcXDI1QjYnO1xyXG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xyXG4gICAgICB9XHJcblxyXG4gICAgdHJlZS1pbnRlcm5hbCAudHJlZSAuZm9sZGluZy5ub2RlLWxlYWYge1xyXG4gICAgICBjb2xvcjogIzIxMjEyMTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBmb250LXNpemU6IDAuODllbTtcclxuICAgIH1cclxuXHJcbiAgICAgIHRyZWUtaW50ZXJuYWwgLnRyZWUgLmZvbGRpbmcubm9kZS1sZWFmOmJlZm9yZSB7XHJcbiAgICAgICAgY29udGVudDogJ1xcMjVDRic7XHJcbiAgICAgICAgY29sb3I6ICM3NTc1NzU7XHJcbiAgICAgIH1cclxuXHJcbnRyZWUtaW50ZXJuYWwgdWwucm9vdGxlc3Mge1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbnRyZWUtaW50ZXJuYWwgZGl2LnJvb3RsZXNzIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbnRyZWUtaW50ZXJuYWwgLmxvYWRpbmctY2hpbGRyZW46YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6ICcgbG9hZGluZyAuLi4nO1xyXG4gIGNvbG9yOiAjNmExYjlhO1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICBmb250LXNpemU6IDAuOWVtO1xyXG4gIGFuaW1hdGlvbi1uYW1lOiBsb2FkaW5nLWNoaWxkcmVuO1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XHJcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XHJcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcbn1cclxuXHJcbi50cmVlLWRldGFpbHMge1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2VlZTtcclxuICBtaW4taGVpZ2h0OiAzMDBweDtcclxufVxyXG5cclxuQGtleWZyYW1lcyBsb2FkaW5nLWNoaWxkcmVuIHtcclxuICAwJSB7XHJcbiAgICBjb2xvcjogI2YzZTVmNTtcclxuICB9XHJcblxyXG4gIDEyLjUlIHtcclxuICAgIGNvbG9yOiAjZTFiZWU3O1xyXG4gIH1cclxuXHJcbiAgMjUlIHtcclxuICAgIGNvbG9yOiAjY2U5M2Q4O1xyXG4gIH1cclxuXHJcbiAgMzcuNSUge1xyXG4gICAgY29sb3I6ICNiYTY4Yzg7XHJcbiAgfVxyXG5cclxuICA1MCUge1xyXG4gICAgY29sb3I6ICNhYjQ3YmM7XHJcbiAgfVxyXG5cclxuICA2Mi41JSB7XHJcbiAgICBjb2xvcjogIzljMjdiMDtcclxuICB9XHJcblxyXG4gIDc1JSB7XHJcbiAgICBjb2xvcjogIzhlMjRhYTtcclxuICB9XHJcblxyXG4gIDg3LjUlIHtcclxuICAgIGNvbG9yOiAjN2IxZmEyO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICBjb2xvcjogIzZhMWI5YTtcclxuICB9XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { UserGroupService } from \"../../../services/userGroup.service\";\r\nimport { UserGroup, UserGroupLocation } from '../../../models/userGroup.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Ng2TreeSettings, TreeComponent, TreeModel } from 'ng2-tree';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { CalendarFilter } from 'src/app/models/reservation.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { LocationTree } from 'src/app/models/location-tree.model';\r\nimport { LocationTreeFilter } from 'src/app/models/location.model';\r\n\r\n\r\n@Component({\r\n selector: 'user-group-editor',\r\n templateUrl: './user-group-editor.component.html',\r\n styleUrls: ['./user-group-editor.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UserGroupEditorComponent {\r\n @ViewChild('treeComponent') treeComponent: TreeComponent;\r\n tree: any;\r\n treeSettings: Ng2TreeSettings = {\r\n showCheckboxes: true,\r\n enableCheckboxes: true\r\n };\r\n\r\n private isNewUserGroup = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingUserGroupName: string;\r\n private userGroupEdit: UserGroup = new UserGroup();\r\n private selectedLocations: UserGroupLocation[] = [];\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n loadingIndicator: boolean;\r\n rootLocation: LocationTree;\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private userGroupService: UserGroupService, private accountService: AccountService,\r\n private locationService: LocationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.selectedLocations = [];\r\n if (typeof (data.userGroup) != typeof (undefined)) {\r\n if (data.userGroup.id) {\r\n this.editUserGroup(data.userGroup);\r\n } else {\r\n this.newUserGroup();\r\n }\r\n\r\n this.loadTree(data.userGroup.institutionId);\r\n }\r\n }\r\n\r\n nodeUnchecked(event) {\r\n if (event && event.node && event.node.id > 0) {\r\n this.addRemoveLocation(event.node.id, false);\r\n }\r\n \r\n }\r\n nodeChecked(event) {\r\n if (event && event.node && event.node.id > 0) {\r\n this.addRemoveLocation(event.node.id, true);\r\n }\r\n }\r\n\r\n addRemoveLocation(id: string, isAdd: boolean) {\r\n let el = new UserGroupLocation('0', this.userGroupEdit.id, id);\r\n if (isAdd) {\r\n if (!this.selectedLocations || this.selectedLocations.length == 0) {\r\n this.selectedLocations.push(el);\r\n } else {\r\n let indx = this.selectedLocations.findIndex(e=> e.locationId == id);\r\n if (indx < 0) {\r\n this.selectedLocations.push(el);\r\n }\r\n }\r\n } else {\r\n let indx = this.selectedLocations.findIndex(e => e.locationId == id);\r\n if (indx > -1) {\r\n this.selectedLocations.splice(indx, 1);\r\n }\r\n }\r\n }\r\n\r\n loadTree(id) {\r\n this.tree = null;\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n var filter = new LocationTreeFilter();\r\n filter.institutionId = id ? id : this.accountService.currentUser.institutionId;\r\n this.locationService.getLocationTree(filter)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (results && results.children) {\r\n this.rootLocation = results.children[0];\r\n this.tree = results;\r\n this.setChildrenCheckboxes(this.tree.children);\r\n this.tree.settings = {\r\n 'static': true,\r\n 'rightMenu': true,\r\n 'leftMenu': true,\r\n 'cssClasses': {\r\n 'expanded': 'fa fa-caret-down fa-sm',\r\n 'collapsed': 'fa fa-caret-right fa-sm',\r\n 'leaf': 'fa fa-sm',\r\n 'empty': 'fa fa-caret-right disabled'\r\n },\r\n 'templates': {\r\n 'node': ' ',\r\n 'leaf': ' ',\r\n 'leftMenu': ' '\r\n }\r\n };\r\n }\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve locations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n setChildrenCheckboxes(children) {\r\n if (children) {\r\n children.forEach((item, indx) => {\r\n if (item.children && item.children.length > 0) {\r\n this.setChildrenCheckboxes(item.children);\r\n }\r\n\r\n if (this.selectedLocations.findIndex(f => f.locationId == item.id) > -1) {\r\n item.settings = {\r\n checked: true\r\n }\r\n } else {\r\n item.settings = {\r\n checked: false\r\n }\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n //this.selectedLocations = this.selectedLocations.filter((item, index) => this.selectedLocations.indexOf(item) === index);\r\n //Array.from(new Set(this.selectedLocations));\r\n this.selectedLocations = Utilities.getUniqueValues(this.selectedLocations, 'locationId'); \r\n \r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.userGroupEdit.institutionId = this.accountService.currentUser.institutionId;\r\n this.userGroupEdit.locations = this.selectedLocations;\r\n if (this.isNewUserGroup) {\r\n this.userGroupService.newUserGroup(this.userGroupEdit).subscribe(userGroup => this.saveSuccessHelper(userGroup), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.userGroupService.updateUserGroup(this.userGroupEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(userGroup?: UserGroup) {\r\n if (userGroup)\r\n Object.assign(this.userGroupEdit, userGroup);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewUserGroup)\r\n this.alertService.showMessage(\"Success\", `User Group \\\"${this.userGroupEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to user group \\\"${this.userGroupEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.userGroupEdit = new UserGroup();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewUserGroup && this.accountService.currentUser.facilities.some(r => r == this.editingUserGroupName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.userGroupEdit = new UserGroup();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newUserGroup() {\r\n this.isNewUserGroup = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingUserGroupName = null;\r\n this.selectedValues = {};\r\n this.userGroupEdit = new UserGroup();\r\n\r\n return this.userGroupEdit;\r\n }\r\n\r\n editUserGroup(userGroup: UserGroup) {\r\n if (userGroup) {\r\n this.isNewUserGroup = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingUserGroupName = userGroup.name;\r\n this.selectedValues = {};\r\n this.userGroupEdit = new UserGroup();\r\n Object.assign(this.userGroupEdit, userGroup);\r\n this.selectedLocations = [];\r\n if (userGroup.locations) {\r\n userGroup.locations.forEach((item, indx) => {\r\n this.selectedLocations.push(new UserGroupLocation('0', item.userGroupId, item.locationId));\r\n });\r\n\r\n //userGroup.locations.forEach((item, indx) => {\r\n // this.addRemoveLocation(item.locationId, true);\r\n //});\r\n }\r\n return this.userGroupEdit;\r\n }\r\n else {\r\n return this.newUserGroup();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageUserGroups() {\r\n return this.accountService.userHasPermission(Permission.manageUserGroupsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VyLWdyb3VwL3VzZXItZ3JvdXBzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3VzZXItZ3JvdXAvdXNlci1ncm91cHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

User Groups

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'userGroups.management.Edit' | translate}}\\r\\n {{'userGroups.management.Details' | translate}}\\r\\n \\r\\n {{'userGroups.management.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { UserGroup } from '../../../models/userGroup.model';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { UserGroupEditorComponent } from \"./user-group-editor.component\";\r\nimport { UserGroupService } from 'src/app/services/userGroup.service';\r\nimport { MatDialog } from '@angular/material';\r\n\r\n\r\n@Component({\r\n selector: 'user-groups-management',\r\n templateUrl: './user-groups-management.component.html',\r\n styleUrls: ['./user-groups-management.component.css']\r\n})\r\nexport class UserGroupsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: UserGroup[] = [];\r\n rowsCache: UserGroup[] = [];\r\n allPermissions: Permission[] = [];\r\n editedUserGroup: UserGroup;\r\n sourceUserGroup: UserGroup;\r\n editingUserGroupName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('userGroupEditor')\r\n userGroupEditor: UserGroupEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private userGroupService: UserGroupService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(userGroup: UserGroup): void {\r\n const dialogRef = this.dialog.open(UserGroupEditorComponent, {\r\n data: { header: this.header, userGroup: userGroup },\r\n width: '800px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('userGroups.management.Name') },\r\n { prop: 'description', name: gT('userGroups.management.Description') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name|Description)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.userGroupService.getUserGroupsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let userGroups = results.pagedData;\r\n\r\n userGroups.forEach((userGroup, index, userGroups) => {\r\n (userGroup).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...userGroups];\r\n this.rows = userGroups;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve userGroups from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingUserGroupName = null;\r\n this.userGroupEditor.resetForm(true);\r\n }\r\n\r\n\r\n newUserGroup() {\r\n //this.editingUserGroupName = null;\r\n //this.sourceUserGroup = null;\r\n //this.editedUserGroup = this.userGroupEditor.newUserGroup();\r\n //this.editorModal.show();\r\n this.header = 'New User Group';\r\n this.editedUserGroup = new UserGroup();\r\n this.openDialog(this.editedUserGroup);\r\n }\r\n\r\n\r\n editUserGroup(row: UserGroup) {\r\n //this.editingUserGroupName = { name: row.name };\r\n //this.sourceUserGroup = row;\r\n this.editedUserGroup = row; //this.userGroupEditor.editUserGroup(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit User Group';\r\n this.openDialog(this.editedUserGroup);\r\n }\r\n\r\n deleteUserGroup(row: UserGroup) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" user group?', DialogType.confirm, () => this.deleteUserGroupHelper(row));\r\n }\r\n\r\n\r\n deleteUserGroupHelper(row: UserGroup) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.userGroupService.deleteUserGroup(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the userGroup.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManageUserGroups() {\r\n return this.accountService.userHasPermission(Permission.manageUserGroupsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: none;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: none;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.password-separator-hr {\\r\\n margin: 5px;\\r\\n border-style: none;\\r\\n}\\r\\n\\r\\n.form-group {\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 1px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.hint-sm {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.checkbox.user-enabled {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.unblock-user {\\r\\n margin-left: 34px;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.text-align-right{\\r\\n text-align:right;\\r\\n}\\r\\n\\r\\n/*.cdk-overlay-container, .cdk-global-overlay-wrapper {\\r\\n z-index: 1051;\\r\\n}*/\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VyLWluZm8uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYixzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxrQkFBa0I7QUFDdEI7O0FBR0E7SUFDSSxhQUFhO0lBQ2IsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFFQTtJQUNJLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7O0VBRUU7O0FBRUY7RUFDRSx3Q0FBd0M7QUFDMUMiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3VzZXItaW5mby5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBub25lO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG4ucGFzc3dvcmQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogNXB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG59XHJcblxyXG5cclxuLmZvcm0tZ3JvdXAge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmhpbnQtc20ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5jaGVja2JveC51c2VyLWVuYWJsZWQge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4udW5ibG9jay11c2VyIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAzNHB4O1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4udGV4dC1hbGlnbi1yaWdodHtcclxuICB0ZXh0LWFsaWduOnJpZ2h0O1xyXG59XHJcblxyXG4vKi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XHJcbiAgei1pbmRleDogMTA1MTtcclxufSovXHJcblxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n

Profile

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.employeeId}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.jobTitle}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.userName}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.UserNameRequired' | 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 {{'users.editor.PasswordHint' | translate}}\\r\\n \\r\\n \\r\\n {{'users.editor.CurrentPasswordRequired' | 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

{{user.email}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.EmailRequired' | translate}}\\r\\n \\r\\n \\r\\n {{'users.editor.InvalidEmail' | 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 \\r\\n \\r\\n \\r\\n {{'users.editor.CurrentPasswordRequired' | 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 {{'users.editor.NewPasswordRequired' | 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 {{'users.editor.ConfirmationPasswordRequired' | translate}}\\r\\n \\r\\n \\r\\n {{'users.editor.PasswordMismatch' | 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 {{role}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.RoleRequired' | 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

{{user.registeredDepartment}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

\\r\\n \\r\\n {{user.departmentName}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.DepartmentRequired' | 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 {{ug.userGroupName}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.fullName}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.status}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.pin}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'users.editor.PinRequired' | 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

{{user.phoneNumber}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.homeNo}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.mobileNo}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

{{user.unitNumber}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

{{walletAmount}}

\\r\\n
\\r\\n
\\r\\n

{{walletAmount}}

\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

{{(user.userRewards && user.userRewards.length > 0 ? user.userRewards[0].balance : 0)}}

\\r\\n
\\r\\n
\\r\\n

{{(userEdit.userRewards && userEdit.userRewards.length > 0 ? userEdit.userRewards[0].balance : 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
Plate NoStatus
{{row.plateNumber}}{{row.vehicleStatus}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Plate NoStatus
{{row.plateNumber}}{{row.vehicleStatus}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Card IdStatusRemarks
{{row.cardId}}{{row.status}}{{row.remarks}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Card IdStatusRemarks
{{row.cardId}}{{row.status}}{{row.remarks}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Add Student\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{student.name}}\\r\\n \\r\\n \\r\\n \\r\\n  \\r\\n Add\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
{{row.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
Name
{{row.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
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, ViewChild, Input, ViewEncapsulation, OnDestroy } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Utilities } from '../../services/utilities';\r\nimport { User } from '../../models/user.model';\r\nimport { UserEdit } from '../../models/user-edit.model';\r\nimport { Role } from '../../models/role.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { DepartmentService } from 'src/app/services/department.service';\r\nimport { Department } from 'src/app/models/department.model';\r\nimport { UserVehicleEditorComponent } from './uservehicle/uservehicle-editor.component';\r\nimport { UserCardIdEditorComponent } from './usercardid/usercardid-editor.component';\r\nimport { UserVehicle } from 'src/app/models/uservehicle.model';\r\nimport { UserCardId } from 'src/app/models/usercardid.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { UserGroup, UserGroupMember } from 'src/app/models/userGroup.model';\r\nimport { UserGroupService } from 'src/app/services/userGroup.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { WalletOperation } from 'src/app/models/userwallet.model';\r\nimport { StudentService } from '../../services/meal-order/student.service';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'user-info',\r\n templateUrl: './user-info.component.html',\r\n styleUrls: ['./user-info.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UserInfoComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n private isEditMode = false;\r\n private isNewUser = false;\r\n private isSaving = false;\r\n private isChangePassword = false;\r\n private isEditingSelf = false;\r\n private showValidationErrors = false;\r\n private editingUserName: string;\r\n private uniqueId: string = Utilities.uniqueId();\r\n private user: User = new User();\r\n private userEdit: UserEdit;\r\n private allRoles: Role[] = [];\r\n private allDepartments: Department[] = [];\r\n private allUserGroups: UserGroup[] = [];\r\n private allStatuses: string[] = ['AVAILABLE', 'ENGAGED', 'OFFDUTY', 'CUSTOM'];\r\n private selectedStatus: string;\r\n private selectedUserGroupIds: string[];\r\n public formResetToggle = true;\r\n private topUpAmount:number = 0;\r\n private walletAmount: number = 0;\r\n public isTopUp = true;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n isGeneralEditor = false;\r\n\r\n\r\n\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n //ViewChilds Required because ngIf hides template variables from global scope\r\n @ViewChild('userName')\r\n private userName;\r\n\r\n @ViewChild('userPassword')\r\n private userPassword;\r\n\r\n @ViewChild('email')\r\n private email;\r\n\r\n @ViewChild('currentPassword')\r\n private currentPassword;\r\n\r\n @ViewChild('newPassword')\r\n private newPassword;\r\n\r\n @ViewChild('confirmPassword')\r\n private confirmPassword;\r\n\r\n @ViewChild('roles')\r\n private roles;\r\n\r\n @ViewChild('rolesSelector')\r\n private rolesSelector;\r\n\r\n //@ViewChild('userGroupsSelector')\r\n //private userGroupsSelector;\r\n\r\n @ViewChild('departmentsSelector')\r\n private departmentsSelector;\r\n\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n students: any;\r\n\r\n public searchForm: FormControl = new FormControl();\r\n studentId: any;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private departmentService: DepartmentService,\r\n private fileService: FileService, public dialog: MatDialog, private userGroupService: UserGroupService, private studentService: StudentService) {\r\n\r\n this.getStudents();\r\n }\r\n\r\n addStudent() {\r\n if (!this.studentId) return;\r\n\r\n let source = this.students.find(x => x.id == this.studentId);\r\n\r\n if (!source) return;\r\n\r\n this.userEdit.students = this.userEdit.students || [];\r\n\r\n let dest = this.userEdit.students.find(x => x.studentId == this.studentId);\r\n\r\n if (!dest) {\r\n this.userEdit.students.push({\r\n id: 0,\r\n studentId: this.studentId,\r\n userId: this.userEdit.id,\r\n name: source.name,\r\n isActive: true\r\n });\r\n } else {\r\n dest.isActive = true;\r\n }\r\n\r\n this.studentId = null;\r\n }\r\n\r\n getStudents() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.studentService.getStudentsByFilter(filter)\r\n .subscribe(results => {\r\n this.students = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving carton types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.walletAmount = 0;\r\n this.topUpAmount = 0;\r\n this.isTopUp = false;\r\n //this.loadDepartmets();\r\n this.loadUserGroups();\r\n if (!this.isGeneralEditor) {\r\n this.loadCurrentUserData();\r\n \r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n private loadCurrentUserData() {\r\n this.alertService.startLoadingMessage();\r\n\r\n if (this.canViewAllRoles) {\r\n this.subscription.add(this.accountService.getUserAndRoles(this.accountService.currentUser.id, this.accountService.currentUser.institutionId).subscribe(results => this.onCurrentUserDataLoadSuccessful(results[0], results[1], results[2]), error => this.onCurrentUserDataLoadFailed(error)));\r\n }\r\n else {\r\n var department: Department[] = [];\r\n department.push(new Department(this.accountService.currentUser.departmentId, this.accountService.currentUser.departmentName));\r\n this.subscription.add(this.accountService.getUser(this.accountService.currentUser.id).subscribe(user => this.onCurrentUserDataLoadSuccessful(user, user.roles.map(x => new Role(x)), department), error => this.onCurrentUserDataLoadFailed(error)));\r\n }\r\n }\r\n\r\n private loadUserGroups() {\r\n let filter = new Filter(-1, -1);\r\n filter.filters = '(IsActive)==true,(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n\r\n this.subscription.add(this.userGroupService.getUserGroupsByFilter(filter)\r\n .subscribe(results => {\r\n this.allUserGroups = results.pagedData;\r\n\r\n //if (this.allUserGroups == null || this.allUserGroups.length != this.allUserGroups.length)\r\n // setTimeout(() => this.userGroupsSelector.refresh());\r\n\r\n },\r\n error => {\r\n this.alertService.showMessage(\"Load Error\", \"Loading user groups from the server failed!\", MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n }));\r\n }\r\n\r\n private loadDepartmets() {\r\n this.subscription.add(this.departmentService.getDepartments(1, 10, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allDepartments = results;\r\n },\r\n error => {\r\n this.alertService.showMessage(\"Load Error\", \"Loading departments from the server failed!\", MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n }));\r\n }\r\n\r\n selectUserGroup(ev) {\r\n console.log(ev);\r\n this.selectedUserGroupIds = ev;\r\n }\r\n\r\n private onCurrentUserDataLoadSuccessful(user: User, roles: Role[], departments: Department[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.user = user;\r\n this.allRoles = roles;\r\n this.allDepartments = departments;\r\n\r\n this.selectedUserGroupIds = user.userGroupIds;\r\n this.getWalletByUserId(user.id);\r\n }\r\n\r\n private onCurrentUserDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve user data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n\r\n this.user = new User();\r\n }\r\n\r\n\r\n\r\n private getRoleByName(name: string) {\r\n return this.allRoles.find((r) => r.name == name)\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n public deletePasswordFromUser(user: UserEdit | User) {\r\n let userEdit = user;\r\n\r\n delete userEdit.currentPassword;\r\n delete userEdit.newPassword;\r\n delete userEdit.confirmPassword;\r\n }\r\n\r\n\r\n private edit() {\r\n if (!this.isGeneralEditor) {\r\n this.isEditingSelf = true;\r\n this.userEdit = new UserEdit();\r\n Object.assign(this.userEdit, this.user);\r\n }\r\n else {\r\n if (!this.userEdit)\r\n this.userEdit = new UserEdit();\r\n\r\n this.isEditingSelf = this.accountService.currentUser ? this.userEdit.id == this.accountService.currentUser.id : false;\r\n }\r\n\r\n this.isEditMode = true;\r\n this.showValidationErrors = true;\r\n this.isChangePassword = false;\r\n\r\n if (this.userEdit) {\r\n if (this.allStatuses.findIndex(e => e == this.userEdit.status) < 0) {\r\n this.selectedStatus = 'CUSTOM';\r\n } else {\r\n this.selectedStatus = this.userEdit.status;\r\n }\r\n }\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.selectedUserGroupIds) {\r\n this.userEdit.userGroupMembers = [];\r\n this.selectedUserGroupIds.forEach((ug, index) => {\r\n if (ug) {\r\n let m = new UserGroupMember();\r\n m.userGroupId = ug;\r\n m.userId = this.userEdit.id;\r\n this.userEdit.userGroupMembers.push(m);\r\n }\r\n });\r\n \r\n }\r\n \r\n if (!this.userEdit.institutionId) {\r\n this.userEdit.institutionId = this.accountService.currentUser.institutionId;\r\n }\r\n\r\n if (this.isNewUser) {\r\n this.subscription.add(this.accountService.newUser(this.userEdit).subscribe(user => this.saveSuccessHelper(user), error => this.saveFailedHelper(error)));\r\n }\r\n else {\r\n this.subscription.add(this.accountService.updateUser(this.userEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error)));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(user?: User) {\r\n this.testIsRoleUserCountChanged(this.user, this.userEdit);\r\n\r\n if (user)\r\n Object.assign(this.userEdit, user);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.isChangePassword = false;\r\n this.showValidationErrors = false;\r\n\r\n this.deletePasswordFromUser(this.userEdit);\r\n Object.assign(this.user, this.userEdit);\r\n this.userEdit = new UserEdit();\r\n this.resetForm();\r\n\r\n\r\n if (this.isGeneralEditor) {\r\n if (this.isNewUser)\r\n this.alertService.showMessage(\"Success\", `User \\\"${this.user.userName}\\\" was created successfully`, MessageSeverity.success);\r\n else if (!this.isEditingSelf)\r\n this.alertService.showMessage(\"Success\", `Changes to user \\\"${this.user.userName}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.isEditingSelf) {\r\n this.alertService.showMessage(\"Success\", \"Changes to your User Profile was saved successfully\", MessageSeverity.success);\r\n this.refreshLoggedInUser();\r\n }\r\n\r\n this.isEditMode = false;\r\n\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n\r\n private testIsRoleUserCountChanged(currentUser: User, editedUser: User) {\r\n\r\n let rolesAdded = this.isNewUser || currentUser.roles == null ? editedUser.roles : editedUser.roles.filter(role => currentUser.roles.indexOf(role) == -1);\r\n let rolesRemoved = this.isNewUser || currentUser.roles == null ? [] : currentUser.roles.filter(role => editedUser.roles.indexOf(role) == -1);\r\n\r\n let modifiedRoles = rolesAdded.concat(rolesRemoved);\r\n\r\n if (modifiedRoles.length)\r\n setTimeout(() => this.accountService.onRolesUserCountChanged(modifiedRoles));\r\n }\r\n\r\n\r\n\r\n private cancel() {\r\n if (this.isGeneralEditor)\r\n this.userEdit = this.user = new UserEdit();\r\n else\r\n this.userEdit = new UserEdit();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n //this.alertService.showMessage(\"Cancelled\", \"Operation cancelled by user\", MessageSeverity.default);\r\n this.alertService.resetStickyMessage();\r\n\r\n if (!this.isGeneralEditor)\r\n this.isEditMode = false;\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n }\r\n\r\n\r\n private close() {\r\n this.userEdit = this.user = new UserEdit();\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n this.isEditMode = false;\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n }\r\n\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.subscription.add(this.accountService.refreshLoggedInUser()\r\n .subscribe(user => {\r\n this.loadCurrentUserData();\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n private changePassword() {\r\n this.isChangePassword = true;\r\n }\r\n\r\n\r\n private unlockUser() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Unblocking user...\");\r\n\r\n\r\n this.subscription.add(this.accountService.unblockUser(this.userEdit.id)\r\n .subscribe(response => {\r\n this.isSaving = false;\r\n this.userEdit.isLockedOut = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Success\", \"User has been successfully unblocked\", MessageSeverity.success);\r\n },\r\n error => {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Unblock Error\", \"The below errors occured while unblocking the user:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n this.isChangePassword = false;\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newUser(allRoles: Role[], allDepartments: Department[]) {\r\n this.isGeneralEditor = true;\r\n this.isNewUser = true;\r\n\r\n this.allRoles = [...allRoles];\r\n this.allDepartments = [...allDepartments];\r\n this.editingUserName = null;\r\n this.user = this.userEdit = new UserEdit();\r\n this.userEdit.isEnabled = true;\r\n this.walletAmount = 0;\r\n this.topUpAmount = 0;\r\n this.isTopUp = false;\r\n this.edit();\r\n\r\n return this.userEdit;\r\n }\r\n\r\n editUser(user: User, allRoles: Role[], allDepartments: Department[]) {\r\n if (user) {\r\n this.isGeneralEditor = true;\r\n this.isNewUser = false;\r\n\r\n this.setRolesDepartments(user, allRoles, allDepartments);\r\n this.editingUserName = user.userName;\r\n this.user = new User();\r\n this.userEdit = new UserEdit();\r\n Object.assign(this.user, user);\r\n Object.assign(this.userEdit, user);\r\n this.getWalletByUserId(user.id);\r\n this.isTopUp = false;\r\n this.edit();\r\n\r\n if (user.students && this.students) {\r\n for (let s of user.students) {\r\n let source = this.students.find(x => x.id == s.studentId);\r\n\r\n if (source) s.name = source.name;\r\n }\r\n }\r\n\r\n return this.userEdit;\r\n }\r\n else {\r\n return this.newUser(allRoles, allDepartments);\r\n }\r\n }\r\n\r\n\r\n displayUser(user: User, allRoles?: Role[], allDepartments?: Department[]) {\r\n\r\n this.user = new User();\r\n Object.assign(this.user, user);\r\n this.deletePasswordFromUser(this.user);\r\n this.setRolesDepartments(user, allRoles, allDepartments);\r\n\r\n this.isEditMode = false;\r\n }\r\n\r\n\r\n\r\n private setRolesDepartments(user: User, allRoles?: Role[], allDepartments?: Department[]) {\r\n this.allDepartments = allDepartments ? [...allDepartments] : [];\r\n this.allRoles = allRoles ? [...allRoles] : [];\r\n\r\n if (user.roles) {\r\n for (let ur of user.roles) {\r\n if (!this.allRoles.some(r => r.name == ur))\r\n this.allRoles.unshift(new Role(ur));\r\n }\r\n }\r\n\r\n if (allRoles == null || this.allRoles.length != allRoles.length)\r\n setTimeout(() => this.rolesSelector.refresh());\r\n\r\n if (allDepartments == null || this.allDepartments.length != allDepartments.length)\r\n setTimeout(() => this.departmentsSelector.refresh());\r\n\r\n\r\n \r\n }\r\n\r\n addVehicle() {\r\n var dialog = this.dialog.open(UserVehicleEditorComponent, {\r\n data: { header: \"New vehicle\", userVehicle: new UserVehicle(), isUserInfo: true },\r\n width: '400px',\r\n panelClass: 'user-info-modal',\r\n backdropClass: 'user-info-backdrop',\r\n });\r\n\r\n dialog.afterClosed().subscribe(result => {\r\n if (result && result.plateNumber) {\r\n if (typeof (this.userEdit) == typeof (undefined)) {\r\n this.userEdit = new UserEdit();\r\n }\r\n\r\n if (typeof (this.userEdit.userVehicles) == typeof (undefined)) {\r\n this.userEdit.userVehicles = [];\r\n }\r\n\r\n result.userId = this.userEdit.id;\r\n this.userEdit.userVehicles.push(result);\r\n }\r\n });\r\n }\r\n\r\n deleteVehicle(row: UserVehicle) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.plateNumber + '\\\" ?', DialogType.confirm, () => this.deleteVehicleHelper(row));\r\n }\r\n\r\n deleteVehicleHelper(row: UserVehicle) {\r\n\r\n this.userEdit.userVehicles = this.userEdit.userVehicles.filter(item => item !== row);\r\n }\r\n\r\n addCardId() {\r\n var dialog = this.dialog.open(UserCardIdEditorComponent, {\r\n data: { header: \"New CardId\", userCardId: new UserCardId(), isUserInfo: true },\r\n width: '400px',\r\n panelClass: 'user-info-modal',\r\n backdropClass: 'user-info-backdrop',\r\n });\r\n\r\n dialog.afterClosed().subscribe(result => {\r\n console.log(\"resulting data: \", result)\r\n if (result && result.cardId) {\r\n if (typeof (this.userEdit) == typeof (undefined)) {\r\n this.userEdit = new UserEdit();\r\n }\r\n\r\n if (typeof (this.userEdit.userCardIds) == typeof (undefined)) {\r\n this.userEdit.userCardIds = [];\r\n }\r\n\r\n result.userId = this.userEdit.id;\r\n this.userEdit.userCardIds.push(result);\r\n }\r\n });\r\n }\r\n\r\n editCardId(row,i) {\r\n var dialog = this.dialog.open(UserCardIdEditorComponent, {\r\n data: { header: \"Edit CardId\", userCardId: row, isUserInfo: true },\r\n width: '400px',\r\n panelClass: 'user-info-modal',\r\n backdropClass: 'user-info-backdrop',\r\n });\r\n\r\n dialog.afterClosed().subscribe(result => {\r\n console.log(\"resulting data: \", result)\r\n if (result && result.cardId) {\r\n if (typeof (this.userEdit) == typeof (undefined)) {\r\n this.userEdit = new UserEdit();\r\n }\r\n\r\n if (typeof (this.userEdit.userCardIds) == typeof (undefined)) {\r\n this.userEdit.userCardIds = [];\r\n }\r\n\r\n result.userId = this.userEdit.id;\r\n this.userEdit.userCardIds[i] = result;\r\n }\r\n });\r\n }\r\n\r\n activateCardId(row, i) {\r\n for (var j = 0; j < this.userEdit.userCardIds.length; j++) {\r\n this.userEdit.userCardIds[j].status = \"INACTIVE\";\r\n }\r\n\r\n this.userEdit.userCardIds[i].status = \"ACTIVE\";\r\n }\r\n\r\n deleteCardId(row: UserCardId) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.cardId + '\\\" ?', DialogType.confirm, () => this.deleteCardIdHelper(row));\r\n }\r\n\r\n deleteCardIdHelper(row: UserCardId) {\r\n\r\n this.userEdit.userCardIds = this.userEdit.userCardIds.filter(item => item !== row);\r\n }\r\n\r\n getWalletByUserId(userId) {\r\n this.subscription.add(this.accountService.getWallet(userId).subscribe(response => {\r\n console.log(response);\r\n if (response && response.length > 0) {\r\n this.walletAmount = response[0].balance;\r\n\r\n let u = this.isEditMode ? this.userEdit : this.user;\r\n if (u.userWallets && u.userWallets.length > 0) {\r\n u.userWallets[0].concurrencyStamp = response[0].concurrencyStamp;\r\n }\r\n }\r\n \r\n }, error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n topUpWallet() {\r\n let wallet = new WalletOperation();\r\n let u = this.isEditMode ? this.userEdit : this.user;\r\n if (u.userWallets && u.userWallets.length > 0) {\r\n wallet.walletId = u.userWallets[0].id;\r\n wallet.concurrencyStamp = u.userWallets[0].concurrencyStamp;\r\n wallet.transactionType = \"CREDIT\";\r\n wallet.description = \"TOP UP\";\r\n }\r\n \r\n wallet.amount = this.topUpAmount;\r\n this.subscription.add(this.accountService.transactWallet(wallet).subscribe(response =>\r\n {\r\n console.log(response);\r\n if (response.isSuccess) {\r\n this.alertService.showMessage(\"Success\", \"Successful Cash In!\", MessageSeverity.success);\r\n } else {\r\n this.alertService.showMessage(\"Error\", response.message, MessageSeverity.error);\r\n }\r\n \r\n this.topUpAmount = 0;\r\n this.getWalletByUserId(this.isEditMode ? this.userEdit.id : this.user.id);\r\n }, error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.userEdit.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n changeStatus(ev) {\r\n if (ev == 'CUSTOM') {\r\n this.selectedStatus = 'CUSTOM';\r\n if (this.userEdit && this.user) {\r\n if (this.allStatuses.findIndex(e => e == this.user.status) < 0) {\r\n this.userEdit.status = this.user.status;\r\n } else {\r\n this.userEdit.status = '';\r\n }\r\n }\r\n } else {\r\n if (this.userEdit) {\r\n this.userEdit.status = ev;\r\n }\r\n }\r\n }\r\n\r\n get canViewAllRoles() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canAssignRoles() {\r\n return this.accountService.userHasPermission(Permission.assignRolesPermission);\r\n }\r\n\r\n get canManageDepartments() {\r\n return this.accountService.userHasPermission(Permission.manageDepartmentsPermission);\r\n }\r\n\r\n get canAssignUserGroups() {\r\n return this.accountService.userHasPermission(Permission.manageUserGroupsPermission);\r\n }\r\n}\r\n","module.exports = \"\\r\\n.separator-hr {\\r\\n margin: 7px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.subseparator-hr {\\r\\n margin: 7px 5px;\\r\\n border-top-style: none;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 7px;\\r\\n}\\r\\n\\r\\n.form-group {\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.form-control-static {\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.form-horizontal .checkbox {\\r\\n padding-top: 0;\\r\\n}\\r\\n\\r\\n.col-reset-default {\\r\\n padding-right: 0;\\r\\n}\\r\\n\\r\\n.col-set-default {\\r\\n padding-left: 5px;\\r\\n}\\r\\n\\r\\n@media (min-width: 768px) {\\r\\n .form-horizontal .control-label {\\r\\n padding-top: 5px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VyLXByZWZlcmVuY2VzLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksZUFBZTtJQUNmLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksYUFBYTtJQUNiLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUdBO0lBQ0k7UUFDSSxnQkFBZ0I7SUFDcEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvdXNlci1wcmVmZXJlbmNlcy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiA3cHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uc3Vic2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogN3B4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA3cHg7XHJcbn1cclxuXHJcbi5mb3JtLWdyb3VwIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uZm9ybS1jb250cm9sLXN0YXRpYyB7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4uZm9ybS1ob3Jpem9udGFsIC5jaGVja2JveCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMDtcclxufVxyXG5cclxuLmNvbC1yZXNldC1kZWZhdWx0IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbn1cclxuXHJcbi5jb2wtc2V0LWRlZmF1bHQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5mb3JtLWhvcml6b250YWwgLmNvbnRyb2wtbGFiZWwge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

{{'preferences.ReloadPreferencesHint' | 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

{{'preferences.LanguageHint' | 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

{{'preferences.HomePageHint' | 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

{{'preferences.ThemeHint' | 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
\\r\\n\"","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { BootstrapSelectDirective } from \"../../directives/bootstrap-select.directive\";\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Permission } from '../../models/permission.model';\r\n\r\n\r\n@Component({\r\n selector: 'user-preferences',\r\n templateUrl: './user-preferences.component.html',\r\n styleUrls: ['./user-preferences.component.css']\r\n})\r\nexport class UserPreferencesComponent implements OnInit, OnDestroy {\r\n\r\n themeSelectorToggle = true;\r\n\r\n languageChangedSubscription: any;\r\n\r\n @ViewChild(\"languageSelector\")\r\n languageSelector: BootstrapSelectDirective;\r\n\r\n @ViewChild(\"homePageSelector\")\r\n homePageSelector: BootstrapSelectDirective;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, public configurations: ConfigurationService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.languageChangedSubscription = this.translationService.languageChanged$.subscribe(data => {\r\n this.themeSelectorToggle = false;\r\n\r\n setTimeout(() => {\r\n this.languageSelector.refresh();\r\n this.homePageSelector.refresh();\r\n this.themeSelectorToggle = true;\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.languageChangedSubscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n reloadFromServer() {\r\n this.alertService.startLoadingMessage();\r\n\r\n this.accountService.getUserPreferences()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.configurations.import(results);\r\n\r\n this.alertService.showMessage(\"Defaults loaded!\", \"\", MessageSeverity.info);\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve user preferences from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n setAsDefault() {\r\n this.alertService.showDialog(\"Are you sure you want to set the current configuration as your new defaults?\", DialogType.confirm,\r\n () => this.setAsDefaultHelper(),\r\n () => this.alertService.showMessage(\"Operation Cancelled!\", \"\", MessageSeverity.default));\r\n }\r\n\r\n setAsDefaultHelper() {\r\n this.alertService.startLoadingMessage(\"\", \"Saving new defaults\");\r\n\r\n this.accountService.updateUserPreferences(this.configurations.export())\r\n .subscribe(response => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"New Defaults\", \"Account defaults updated successfully\", MessageSeverity.success)\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", `An error occured while saving configuration defaults.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n resetDefault() {\r\n this.alertService.showDialog(\"Are you sure you want to reset your defaults?\", DialogType.confirm,\r\n () => this.resetDefaultHelper(),\r\n () => this.alertService.showMessage(\"Operation Cancelled!\", \"\", MessageSeverity.default));\r\n }\r\n\r\n resetDefaultHelper() {\r\n this.alertService.startLoadingMessage(\"\", \"Resetting defaults\");\r\n\r\n this.accountService.updateUserPreferences(null)\r\n .subscribe(response => {\r\n this.alertService.stopLoadingMessage();\r\n this.configurations.import(null);\r\n this.alertService.showMessage(\"Defaults Reset\", \"Account defaults reset completed successfully\", MessageSeverity.success)\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", `An error occured while resetting configuration defaults.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canViewUsers() {\r\n return this.accountService.userHasPermission(Permission.viewUsersPermission); \r\n }\r\n\r\n get canViewReservations() {\r\n return this.accountService.userHasPermission(Permission.addReservationsPermission); \r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*.cdk-overlay-container, .cdk-global-overlay-wrapper {\\r\\n z-index: 1051 !important;\\r\\n}*/\\r\\n\\r\\n.cdk-overlay-connected-position-bounding-box {\\r\\n z-index: 1051 !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VyY2FyZGlkL3VzZXJjYXJkaWQtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFJQTs7RUFFRTs7QUFFRjtFQUNFLHdCQUF3QjtBQUMxQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvdXNlcmNhcmRpZC91c2VyY2FyZGlkLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcbi8qLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcclxuICB6LWluZGV4OiAxMDUxICFpbXBvcnRhbnQ7XHJcbn0qL1xyXG5cclxuLmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3gge1xyXG4gIHotaW5kZXg6IDEwNTEgIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{user.fullName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ViewEncapsulation, OnDestroy } from '@angular/core';\r\n\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { UserEdit } from 'src/app/models/user-edit.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { UserCardId } from 'src/app/models/usercardid.model';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'user-cardid-editor',\r\n templateUrl: './usercardid-editor.component.html',\r\n styleUrls: ['./usercardid-editor.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UserCardIdEditorComponent implements OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isNewUserCardId = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingUserCardIdName: string;\r\n private userCardIdEdit: UserCardId = new UserCardId();\r\n private allPermissions: Permission[] = [];\r\n private allUsers: User[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public isUserInfo = true;\r\n private loadingIndicator: boolean;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.userCardId) != typeof (undefined)) {\r\n this.isUserInfo = data.isUserInfo;\r\n this.userCardIdEdit = data.userCardId;\r\n if (!this.isUserInfo) {\r\n this.loadUsers();\r\n }\r\n if (data.userCardId) {\r\n this.editUserCardId(this.userCardIdEdit);\r\n } else {\r\n this.newUserCardId();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n loadUsers() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.accountService.getUsers(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allUsers = results;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve users from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n\r\n if (this.isUserInfo) {\r\n this.dialogRef.close(this.userCardIdEdit);\r\n } else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (!this.userCardIdEdit.id) {\r\n this.subscription.add(this.accountService.newUserCardId(this.userCardIdEdit).subscribe(cardid => this.saveSuccessHelper(cardid), error => this.saveFailedHelper(error)));\r\n }\r\n else {\r\n this.subscription.add(this.accountService.updateUserCardId(this.userCardIdEdit).subscribe(response => this.saveSuccessHelper(this.userCardIdEdit), error => this.saveFailedHelper(error)));\r\n }\r\n }\r\n }\r\n\r\n private saveSuccessHelper(cardid: UserCardId) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Success\", `\"Card with id. '${cardid.cardId}\\\"' has been saved!`, MessageSeverity.success);\r\n this.dialogRef.close(this.userCardIdEdit);\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n\r\n private cancel() {\r\n this.userCardIdEdit = new UserCardId();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n }\r\n\r\n\r\n newUserCardId() {\r\n this.isNewUserCardId = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingUserCardIdName = null;\r\n this.selectedValues = {};\r\n this.userCardIdEdit = new UserCardId();\r\n this.userCardIdEdit.status = \"INACTIVE\";\r\n return this.userCardIdEdit;\r\n }\r\n\r\n editUserCardId(userCardId: UserCardId) {\r\n if (UserCardId) {\r\n this.isNewUserCardId = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingUserCardIdName = userCardId.cardId;\r\n this.selectedValues = {};\r\n this.userCardIdEdit = new UserCardId();\r\n Object.assign(this.userCardIdEdit, userCardId);\r\n return this.userCardIdEdit;\r\n }\r\n else {\r\n return this.newUserCardId();\r\n }\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VycGhvbmVib29rL3VzZXJwaG9uZWJvb2stZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvdXNlcnBob25lYm9vay91c2VycGhvbmVib29rLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, OnDestroy } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { UserPhonebook } from '../../../models/userphonebook.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material';\r\nimport { Department } from 'src/app/models/department.model';\r\nimport { DepartmentService } from 'src/app/services/department.service';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { UserSelectorComponent } from '../../common/user-selector/user-selector.component';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'userphonebook-editor',\r\n templateUrl: './userphonebook-editor.component.html',\r\n styleUrls: ['./userphonebook-editor.component.css']\r\n})\r\nexport class UserPhonebookEditorComponent implements OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n private isNewUserPhonebook = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingUserPhonebookName: string;\r\n private userPhonebookEdit: UserPhonebook = new UserPhonebook();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n departments = new FormControl('', [Validators.required]);\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n private departmentList: Department[] = [];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n\r\n constructor(private alertService: AlertService, private departmentService: DepartmentService, private accountService: AccountService,\r\n private fileService: FileService, public dialogRef: MatDialogRef, public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.userPhonebook) != typeof (undefined)) {\r\n if (data.userPhonebook.id) {\r\n this.editUserPhonebook(data.userPhonebook);\r\n } else {\r\n this.newUserPhonebook();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n openNewEmailContact(): void {\r\n //var dialog = this.dialog.open(CGNewContactEmailEditorComponent, {\r\n // data: { header: \"New contact\", userPhonebookMember: new UserPhonebook() },\r\n // width: '400px'\r\n //});\r\n\r\n //dialog.afterClosed().subscribe(result => {\r\n // if (result.email && result.name) {\r\n // if (typeof (this.userPhonebookEdit) == typeof (undefined)) {\r\n // this.userPhonebookEdit = new UserPhonebook();\r\n // }\r\n\r\n // //if (typeof (this.userPhonebookEdit.members) == typeof (undefined)) {\r\n // // this.userPhonebookEdit.members = [];\r\n // //}\r\n\r\n // //this.userPhonebookEdit.members.push(result);\r\n // }\r\n //});\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.userPhonebookEdit.userId = this.accountService.currentUser.id;\r\n if (this.isNewUserPhonebook) {\r\n this.subscription.add(this.accountService.newUserPhonebook(this.userPhonebookEdit).subscribe(userPhonebook => this.saveSuccessHelper(userPhonebook), error => this.saveFailedHelper(error)));\r\n }\r\n else {\r\n this.subscription.add(this.accountService.updateUserPhonebook(this.userPhonebookEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error)));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(userPhonebook?: UserPhonebook) {\r\n if (userPhonebook)\r\n Object.assign(this.userPhonebookEdit, userPhonebook);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewUserPhonebook)\r\n this.alertService.showMessage(\"Success\", `Contact Group \\\"${this.userPhonebookEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to contact group \\\"${this.userPhonebookEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.userPhonebookEdit = new UserPhonebook();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewUserPhonebook && this.accountService.currentUser.facilities.some(r => r == this.editingUserPhonebookName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.userPhonebookEdit = new UserPhonebook();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n loadDepartments() {\r\n this.subscription.add(this.departmentService.getDepartments(-1, -1, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.departmentList = results;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getDepartments failed\", \"An error occured while trying to get equipments from the server\", MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newUserPhonebook() {\r\n this.isNewUserPhonebook = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingUserPhonebookName = null;\r\n this.selectedValues = {};\r\n this.userPhonebookEdit = new UserPhonebook();\r\n\r\n return this.userPhonebookEdit;\r\n }\r\n\r\n editUserPhonebook(userPhonebook: UserPhonebook) {\r\n if (userPhonebook) {\r\n this.isNewUserPhonebook = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingUserPhonebookName = userPhonebook.name;\r\n this.selectedValues = {};\r\n this.userPhonebookEdit = new UserPhonebook();\r\n Object.assign(this.userPhonebookEdit, userPhonebook);\r\n\r\n return this.userPhonebookEdit;\r\n }\r\n else {\r\n return this.newUserPhonebook();\r\n }\r\n }\r\n\r\n //deleteMember(row: UserPhonebook) {\r\n // this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" ?', DialogType.confirm, () => this.deleteMemberHelper(row));\r\n //}\r\n\r\n //deleteMemberHelper(row: UserPhonebookMember) {\r\n\r\n // this.userPhonebookEdit.members = this.userPhonebookEdit.members.filter(item => item !== row);\r\n //}\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.userPhonebookEdit.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageUserPhonebooks() {\r\n return this.accountService.userHasPermission(Permission.manageUserPhonebooksPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VycGhvbmVib29rL3VzZXJwaG9uZWJvb2tzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2NvbnRyb2xzL3VzZXJwaG9uZWJvb2svdXNlcnBob25lYm9va3MtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"\\r\\n
\\r\\n
\\r\\n

{{'settings.header.Phonebook' | 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 {{value}}\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{'userPhonebooks.management.Edit' | translate}}\\r\\n {{'userPhonebooks.management.Details' | translate}}\\r\\n \\r\\n {{'userPhonebooks.management.Delete' | translate}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'userPhonebooks.management.UserPhonebookDetails' | translate:editingUserPhonebookName}}

\\r\\n

{{editingUserPhonebookName ? ('userPhonebooks.management.EditUserPhonebook' | translate:editingUserPhonebookName) : ('userPhonebooks.management.NewUserPhonebook' | translate)}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { UserSelectorComponent } from '../../common/user-selector/user-selector.component';\r\nimport { UserPhonebook } from 'src/app/models/userphonebook.model';\r\nimport { UserPhonebookEditorComponent } from './userphonebook-editor.component';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'userphonebooks-management',\r\n templateUrl: './userphonebooks-management.component.html',\r\n styleUrls: ['./userphonebooks-management.component.css']\r\n})\r\nexport class UserPhonebooksManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: UserPhonebook[] = [];\r\n rowsCache: UserPhonebook[] = [];\r\n allPermissions: Permission[] = [];\r\n editedUserPhonebook: UserPhonebook;\r\n sourceUserPhonebook: UserPhonebook;\r\n editingUserPhonebookName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('photoTemplate')\r\n photoTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('userPhonebookEditor')\r\n userPhonebookEditor: UserPhonebookEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private fileService: FileService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(userPhonebook: UserPhonebook): void {\r\n const dialogRef = this.dialog.open(UserPhonebookEditorComponent, {\r\n data: { header: this.header, userPhonebook: userPhonebook },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('userPhonebooks.management.Name') },\r\n { prop: 'email', name: gT('userPhonebooks.management.Email')},\r\n { prop: 'phoneNumber', name: gT('userPhonebooks.management.PhoneNumber') },\r\n { prop: 'homeNo', name: gT('userPhonebooks.management.HomeNo') },\r\n { prop: 'mobileNo', name: gT('userPhonebooks.management.MobileNo') },\r\n { prop: 'designation', name: gT('userPhonebooks.management.Designation') },\r\n { name: 'Photo', width: 50, cellTemplate: this.photoTemplate, canAutoResize: false },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.userPhonebookEditor.changesSavedCallback = () => {\r\n this.addNewUserPhonebookToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.userPhonebookEditor.changesCancelledCallback = () => {\r\n this.editedUserPhonebook = null;\r\n this.sourceUserPhonebook = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n addNewUserPhonebookToList() {\r\n if (this.sourceUserPhonebook) {\r\n Object.assign(this.sourceUserPhonebook, this.editedUserPhonebook);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceUserPhonebook, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceUserPhonebook, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedUserPhonebook = null;\r\n this.sourceUserPhonebook = null;\r\n }\r\n else {\r\n let userPhonebook = new UserPhonebook();\r\n Object.assign(userPhonebook, this.editedUserPhonebook);\r\n this.editedUserPhonebook = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (userPhonebook).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, userPhonebook);\r\n this.rows.splice(0, 0, userPhonebook);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.accountService.getUserPhonebooks(this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let userPhonebooks = results;\r\n\r\n userPhonebooks.forEach((userPhonebook, index, userPhonebooks) => {\r\n (userPhonebook).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...userPhonebooks];\r\n this.rows = userPhonebooks;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve contacts from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.email, r.phoneNumber));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingUserPhonebookName = null;\r\n this.userPhonebookEditor.resetForm(true);\r\n }\r\n\r\n\r\n newUserPhonebook() {\r\n this.editingUserPhonebookName = null;\r\n this.sourceUserPhonebook = null;\r\n this.editedUserPhonebook = this.userPhonebookEditor.newUserPhonebook();\r\n //this.editorModal.show();\r\n this.header = 'New Contact';\r\n this.openDialog(this.editedUserPhonebook);\r\n }\r\n\r\n\r\n editUserPhonebook(row: UserPhonebook) {\r\n this.editingUserPhonebookName = { name: row.name };\r\n this.sourceUserPhonebook = row;\r\n this.editedUserPhonebook = this.userPhonebookEditor.editUserPhonebook(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Contact';\r\n this.openDialog(this.editedUserPhonebook);\r\n }\r\n\r\n deleteUserPhonebook(row: UserPhonebook) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" contact?', DialogType.confirm, () => this.deleteUserPhonebookHelper(row));\r\n }\r\n\r\n\r\n deleteUserPhonebookHelper(row: UserPhonebook) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.accountService.deleteUserPhonebook(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the contact.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageUserPhonebooks() {\r\n return this.accountService.userHasPermission(Permission.manageUserPhonebooksPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.user-role {\\r\\n font-size: 0.8em !important;\\r\\n margin-right: 1px;\\r\\n}\\r\\n\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n.user-disabled {\\r\\n color: #777;\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n.locked-out {\\r\\n background-color: orangered;\\r\\n color: whitesmoke;\\r\\n width: 100%;\\r\\n display: inline-block;\\r\\n padding-left: 5px;\\r\\n}\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.status_offline {\\r\\n font-size: 20px;\\r\\n color: lightgray !important;\\r\\n}\\r\\n\\r\\n.status_online {\\r\\n font-size: 20px;\\r\\n color: #08ca08;\\r\\n}\\r\\n\\r\\n.status_engaged {\\r\\n font-size: 20px;\\r\\n color: yellow;\\r\\n}\\r\\n\\r\\n.status_offduty {\\r\\n font-size: 20px;\\r\\n color: #f72626 !important;\\r\\n}\\r\\n\\r\\n.status-container {\\r\\n display: flex;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.status-holder{\\r\\n margin-top:-3px;\\r\\n}\\r\\n\\r\\n.user-info-modal{\\r\\n z-index: 1000 !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2Vycy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksMkJBQTJCO0lBQzNCLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSSxXQUFXO0lBQ1gsa0JBQWtCO0FBQ3RCOztBQUdBO0lBQ0ksMkJBQTJCO0lBQzNCLGlCQUFpQjtJQUNqQixXQUFXO0lBQ1gscUJBQXFCO0lBQ3JCLGlCQUFpQjtBQUNyQjs7QUFHQTtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUdBO0VBQ0UsZUFBZTtFQUNmLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGVBQWU7RUFDZixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGVBQWU7RUFDZix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvdXNlcnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi51c2VyLXJvbGUge1xyXG4gICAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG4udXNlci1kaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogIzc3NztcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuXHJcbi5sb2NrZWQtb3V0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxufVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLnN0YXR1c19vZmZsaW5lIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgY29sb3I6IGxpZ2h0Z3JheSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3RhdHVzX29ubGluZSB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGNvbG9yOiAjMDhjYTA4O1xyXG59XHJcblxyXG4uc3RhdHVzX2VuZ2FnZWQge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBjb2xvcjogeWVsbG93O1xyXG59XHJcblxyXG4uc3RhdHVzX29mZmR1dHkge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBjb2xvcjogI2Y3MjYyNiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3RhdHVzLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uc3RhdHVzLWhvbGRlcntcclxuICBtYXJnaW4tdG9wOi0zcHg7XHJcbn1cclxuXHJcbi51c2VyLWluZm8tbW9kYWx7XHJcbiAgei1pbmRleDogMTAwMCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Users

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Pending for approval\\r\\n
\\r\\n
\\r\\n Online only\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n fiber_manual_record\\r\\n fiber_manual_record\\r\\n fiber_manual_record\\r\\n \\r\\n \\r\\n {{row.status}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{role}}\\r\\n \\r\\n\\r\\n \\r\\n {{dept}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{editingUserName ? ('users.management.EditUser' | translate:editingUserName) : ('users.management.NewUser' | translate)}}

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Utilities } from \"../../services/utilities\";\r\nimport { FRSHubConnections, User } from '../../models/user.model';\r\nimport { Role } from '../../models/role.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { UserEdit } from '../../models/user-edit.model';\r\nimport { UserInfoComponent } from \"./user-info.component\";\r\nimport { Department } from 'src/app/models/department.model';\r\nimport { DepartmentService } from 'src/app/services/department.service';\r\nimport * as signalRCore from '@aspnet/signalr';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { CommonFilter, Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { Subscription } from 'rxjs';\r\nimport { ContactGroupService } from 'src/app/services/contactgroup.service';\r\nimport { isNumeric } from 'jquery';\r\nimport { RewardOperation } from 'src/app/models/userreward.model';\r\n\r\n@Component({\r\n selector: 'users-management',\r\n templateUrl: './users-management.component.html',\r\n styleUrls: ['./users-management.component.css']\r\n})\r\nexport class UsersManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: User[] = [];\r\n rowsCache: User[] = [];\r\n editedUser: UserEdit;\r\n sourceUser: UserEdit;\r\n editingUserName: { name: string };\r\n loadingIndicator: boolean;\r\n forApproval = false;\r\n forOnline = false;\r\n searchText = '';\r\n allRoles: Role[] = [];\r\n allDepartments: Department[] = [];\r\n\r\n @ViewChild('userMgtTable') table: any;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('userNameTemplate')\r\n userNameTemplate: TemplateRef;\r\n\r\n @ViewChild('rolesTemplate')\r\n rolesTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('userEditor')\r\n userEditor: UserInfoComponent;\r\n\r\n private connection: signalRCore.HubConnection;\r\n filter: CommonFilter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n sieveFilters = new Map();\r\n\r\n constructor(private alertService: AlertService, public connections: FRSHubConnections, private translationService: AppTranslationService, private authService: AuthService, private accountService: AccountService, private departmentService: DepartmentService,\r\n protected configurations: ConfigurationService, private contactGroupService: ContactGroupService ) {\r\n\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new CommonFilter(1, 10);\r\n this.filter.sorts = 'userName';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '', width: 100, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'jobTitle', name: gT('users.management.Title') },\r\n { prop: 'userName', name: gT('users.management.UserName'), cellTemplate: this.userNameTemplate },\r\n { prop: 'fullName', name: gT('users.management.FullName') },\r\n { prop: 'email', name: gT('users.management.Email') },\r\n { prop: 'departmentName', name: gT('users.management.Department') },\r\n { prop: 'roles', name: gT('users.management.Roles'), cellTemplate: this.rolesTemplate, sortable: false },\r\n { prop: 'phoneNumber', name: gT('users.management.PhoneNumber') }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionCode', name: gT('users.management.Institution') },);\r\n }\r\n\r\n\r\n if (this.canManageUsers)\r\n this.columns.push({ name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false });\r\n\r\n }\r\n\r\n initializeDefaultSieveFilter() {\r\n this.sieveFilters.set('(IsActive)==', 'true');\r\n this.sieveFilters.set('(InstitutionId)==', this.accountService.currentUser.institutionId);\r\n //this.sieveFilters = [];\r\n //this.sieveFilters = ['(IsActive)==true'];\r\n //this.sieveFilters.push('(InstitutionId)==' + this.accountService.currentUser.institutionId);\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.initializeDefaultSieveFilter();\r\n this.loadData(null, true);\r\n \r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.userEditor.changesSavedCallback = () => {\r\n this.addNewUserToList();\r\n this.editorModal.hide();\r\n //this.loadData();\r\n };\r\n\r\n this.userEditor.changesCancelledCallback = () => {\r\n this.editedUser = null;\r\n this.sourceUser = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n updateUserStatus(email: string, status: string) {\r\n if (this.connection != null) {\r\n this.connection.invoke('UpdateStatus', email, status)\r\n .catch(err => console.error(err));\r\n }\r\n }\r\n\r\n refilter() {\r\n\r\n this.forApproval = !this.forApproval;\r\n this.onFilterApprovedUsers();\r\n\r\n this.forOnline = !this.forOnline;\r\n this.onFilterOnlineUsers();\r\n\r\n this.onSearchChanged(this.searchText);\r\n }\r\n\r\n initUserHubConnection() {\r\n if (this.connections.userHubConnection == null || this.connections.userHubConnection.state !== signalRCore.HubConnectionState.Connected) {\r\n //let status = this.accountService.currentUser.status ? this.accountService.currentUser.status : 'ONLINE';\r\n this.connections.userHubConnection = this.authService.signalRConnection(this.configurations.baseUrl + `/hub/user?email=${this.accountService.currentUser.email}`, true);\r\n this.connection = this.connections.userHubConnection;\r\n if (this.connection != null) {\r\n this.connection.off(\"BroadcastUserStatusChange\");\r\n this.connection.on(\"BroadcastUserStatusChange\", (user) => {\r\n console.log('BroadcastUserStatusChange');\r\n console.log(user);\r\n let userCache = this.rowsCache.filter(item => item && item.email == user.email);\r\n if (userCache && userCache.length > 0) {\r\n //let indx = this.rowsCache.indexOf(userCache[0]);\r\n //this.rowsCache[indx].status = user.status;\r\n userCache[0].status = user.status;\r\n userCache[0].isConnected = user.isConnected;\r\n //this.rowsCache = [...this.rowsCache];\r\n }\r\n\r\n //let userRow = this.rows.filter(item => item && item.email == user.email);\r\n //if (userRow && userRow.length > 0) {\r\n // userRow[0].status = user.status;\r\n // userRow[0].isConnected = user.isConnected;\r\n\r\n // this.rows = [...this.rows];\r\n //}\r\n\r\n this.filterAll();\r\n });\r\n\r\n this.connection.off(\"BroadcastAddedUser\");\r\n this.connection.on(\"BroadcastAddedUser\", (user) => {\r\n console.log('BroadcastAddedUser');\r\n console.log(user);\r\n\r\n if (user && user.id) {\r\n //this.sourceUser = null;\r\n //this.editedUser = user;\r\n //this.addNewUserToList();\r\n //this.rowsCache.push(user);\r\n //this.rows = this.rowsCache;\r\n //let maxIndex = 0;\r\n //for (let u of this.rowsCache) {\r\n // if ((u).index > maxIndex)\r\n // maxIndex = (u).index;\r\n //}\r\n\r\n //(user).index = maxIndex + 1;\r\n\r\n //this.rowsCache.splice(0, 0, user);\r\n //this.rows.splice(0, 0, user);\r\n //this.rows = [...this.rows];\r\n }\r\n });\r\n\r\n this.connection.off(\"BroadcastUpdatedUser\");\r\n this.connection.on(\"BroadcastUpdatedUser\", (user) => {\r\n console.log('BroadcastUpdatedUser');\r\n console.log(user);\r\n\r\n if (user && user.id) {\r\n //this.sourceUser = user;\r\n //this.editedUser = user;\r\n //this.addNewUserToList();\r\n let userCache = this.rowsCache.filter(item => item && item.id == user.id);\r\n if (userCache && userCache.length > 0) {\r\n let indx = this.rowsCache.indexOf(userCache[0]);\r\n //this.rowsCache[indx] = user;\r\n this.rowsCache[indx] = user;\r\n this.rowsCache = [...this.rowsCache];\r\n }\r\n\r\n let userRow = this.rows.filter(item => item && item.id == user.id);\r\n if (userRow && userRow.length > 0) {\r\n let indx = this.rows.indexOf(userRow[0]);\r\n //this.rowsCache[indx] = user;\r\n this.rows[indx] = user;\r\n this.rows = [...this.rows];\r\n }\r\n\r\n this.filterAll();\r\n }\r\n\r\n });\r\n\r\n this.connection.off(\"BroadcastDeletedUser\");\r\n this.connection.on(\"BroadcastDeletedUser\", (user) => {\r\n console.log('BroadcastDeletedUser');\r\n console.log(user);\r\n });\r\n }\r\n } else {\r\n this.connection = this.connections.userHubConnection;\r\n if (this.connection != null) {\r\n this.connection.off(\"BroadcastUserStatusChange\");\r\n this.connection.on(\"BroadcastUserStatusChange\", (user) => {\r\n console.log('BroadcastUserStatusChange');\r\n console.log(user);\r\n let userCache = this.rowsCache.filter(item => item && item.email == user.email);\r\n if (userCache && userCache.length > 0) {\r\n //let indx = this.rowsCache.indexOf(userCache[0]);\r\n //this.rowsCache[indx].status = user.status;\r\n userCache[0].status = user.status;\r\n userCache[0].isConnected = user.isConnected;\r\n this.rowsCache = [...this.rowsCache];\r\n }\r\n\r\n let userRow = this.rows.filter(item => item && item.email == user.email);\r\n if (userRow && userRow.length > 0) {\r\n userRow[0].status = user.status;\r\n userRow[0].isConnected = user.isConnected;\r\n\r\n this.rows = [...this.rows];\r\n }\r\n\r\n this.filterAll();\r\n });\r\n\r\n this.connection.off(\"BroadcastAddedUser\");\r\n this.connection.on(\"BroadcastAddedUser\", (user) => {\r\n console.log('BroadcastAddedUser');\r\n console.log(user);\r\n\r\n if (user && user.id) {\r\n //let userCache = this.rowsCache.filter(item => item && item.id == user.id);\r\n //if (userCache && userCache.length > 0) {\r\n // let indx = this.rowsCache.indexOf(userCache[0]);\r\n // //this.rowsCache[indx] = user;\r\n // userCache[0] = user;\r\n //}\r\n\r\n //this.rows = this.rowsCache;\r\n\r\n //this.sourceUser = null;\r\n //this.editedUser = user;\r\n //this.addNewUserToList();\r\n //this.rowsCache.push(user);\r\n //this.rows = this.rowsCache;\r\n //let maxIndex = 0;\r\n //for (let u of this.rowsCache) {\r\n // if ((u).index > maxIndex)\r\n // maxIndex = (u).index;\r\n //}\r\n\r\n //(user).index = maxIndex + 1;\r\n\r\n //this.rowsCache.splice(0, 0, user);\r\n //this.rows.splice(0, 0, user);\r\n //this.rows = [...this.rows];\r\n }\r\n });\r\n\r\n this.connection.off(\"BroadcastUpdatedUser\");\r\n this.connection.on(\"BroadcastUpdatedUser\", (user) => {\r\n console.log('BroadcastUpdatedUser');\r\n console.log(user);\r\n\r\n if (user && user.id) {\r\n //this.sourceUser = user;\r\n //this.editedUser = user;\r\n //this.addNewUserToList();\r\n let userCache = this.rowsCache.filter(item => item && item.id == user.id);\r\n if (userCache && userCache.length > 0) {\r\n let indx = this.rowsCache.indexOf(userCache[0]);\r\n //this.rowsCache[indx] = user;\r\n this.rowsCache[indx] = user;\r\n this.rowsCache = [...this.rowsCache];\r\n }\r\n\r\n let userRow = this.rows.filter(item => item && item.id == user.id);\r\n if (userRow && userRow.length > 0) {\r\n let indx = this.rows.indexOf(userRow[0]);\r\n //this.rowsCache[indx] = user;\r\n this.rows[indx] = user;\r\n this.rows = [...this.rows];\r\n }\r\n\r\n this.filterAll();\r\n }\r\n\r\n });\r\n this.connection.off(\"BroadcastDeletedUser\");\r\n this.connection.on(\"BroadcastDeletedUser\", (user) => {\r\n console.log('BroadcastDeletedUser');\r\n console.log(user);\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n\r\n addNewUserToList() {\r\n if (this.sourceUser) {\r\n Object.assign(this.sourceUser, this.editedUser);\r\n this.updateUserStatus(this.editedUser.email, this.editedUser.status);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceUser, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceUser, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedUser = null;\r\n this.sourceUser = null;\r\n }\r\n else {\r\n let user = new User();\r\n Object.assign(user, this.editedUser);\r\n this.editedUser = null;\r\n\r\n let maxIndex = 0;\r\n for (let u of this.rowsCache) {\r\n if (u && ((u).index > maxIndex))\r\n maxIndex = (u).index;\r\n }\r\n\r\n (user).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, user);\r\n this.rows.splice(0, 0, user);\r\n this.rows = [...this.rows];\r\n this.updateUserStatus(user.email, user.status);\r\n }\r\n }\r\n\r\n\r\n loadData(ev?: any, isFirstLoad?: boolean) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n this.filter.institutionId = this.accountService.currentUser.institutionId; \r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.sieveFilters) {\r\n this.initializeDefaultSieveFilter();\r\n }\r\n if (!this.keyword) this.keyword = '';\r\n\r\n \r\n let val = this.sieveFilters.has('(UserName|Email|PhoneNumber|departmentName)@=');\r\n if (val) {\r\n this.sieveFilters.delete('(UserName|Email|PhoneNumber|departmentName)@=');\r\n }\r\n\r\n if (this.keyword) {\r\n this.sieveFilters.set('(UserName|Email|PhoneNumber|departmentName)@=', this.keyword);\r\n }\r\n \r\n this.filter.filters = '';\r\n let indx = 0;\r\n this.sieveFilters.forEach((value: string, key: string) => {\r\n if (indx > 0) {\r\n this.filter.filters += ','\r\n }\r\n this.filter.filters += key + value;\r\n indx++;\r\n });\r\n\r\n if (this.canViewRoles) {\r\n if (isFirstLoad) {\r\n this.subscription.add(this.accountService.getUsersAndRolesByFilters(this.filter).subscribe(results => this.onDataLoadSuccessful(results[0], results[1], results[2]), error => this.onDataLoadFailed(error)));\r\n } else {\r\n this.subscription.add(this.accountService.getUsersByFilter(this.filter).subscribe(users => this.onDataLoadSuccessful(users, this.allRoles, this.allDepartments), error => this.onDataLoadFailed(error)));\r\n }\r\n }\r\n else {\r\n var department: Department[] = [];\r\n department.push(new Department(this.accountService.currentUser.departmentId, this.accountService.currentUser.departmentName));\r\n this.subscription.add(this.accountService.getUsersByFilter(this.filter).subscribe(users => this.onDataLoadSuccessful(users, this.accountService.currentUser.roles.map(x => new Role(x)), department), error => this.onDataLoadFailed(error)));\r\n }\r\n }\r\n\r\n loadDepartmets() {\r\n this.subscription.add(this.departmentService.getDepartments(1, 10, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allDepartments = results;\r\n },\r\n error => {\r\n this.alertService.showMessage(\"Load Error\", \"Loading departments from the server failed!\", MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n }));\r\n }\r\n\r\n onDataLoadSuccessful(pagedResult: PagedResult, roles: Role[], departments: Department[]) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.pagedResult = pagedResult;\r\n let users = pagedResult.pagedData;\r\n\r\n users.forEach((user, index, users) => {\r\n (user).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...users];\r\n this.rows = users;\r\n\r\n this.allRoles = roles;\r\n this.allDepartments = departments;\r\n\r\n this.initUserHubConnection();\r\n //this.updateUserStatus(this.accountService.currentUser.email);\r\n }\r\n\r\n\r\n onDataLoadFailed(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve users from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }\r\n\r\n filterAll() {\r\n //this.rows = this.rowsCache;\r\n\r\n //if (this.searchText) {\r\n // this.rows = this.rowsCache.filter(r => r && Utilities.searchArray(this.searchText, false, r.userName, r.fullName, r.email, r.phoneNumber, r.jobTitle, r.roles));\r\n //}\r\n\r\n //if (this.forApproval) {\r\n // this.rows = this.rows.filter(r => !r.isEnabled);\r\n //}\r\n\r\n //if (this.forOnline) {\r\n // this.rows = this.rows.filter(r => r.isConnected);\r\n //}\r\n\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n \r\n //this.clearFilterAndPagedResult();\r\n this.keyword = value;\r\n //this.loadData(null);\r\n //this.rows = this.rowsCache.filter(r => r && Utilities.searchArray(value, false, r.userName, r.fullName, r.email, r.phoneNumber, r.jobTitle, r.roles));\r\n //this.searchText = value;\r\n //this.filterAll();\r\n //this.forOnline = !this.forOnline;\r\n //this.forApproval = !this.forApproval;\r\n //this.onFilterApprovedUsers();\r\n //this.onFilterOnlineUsers();\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n onFilterApprovedUsers() {\r\n this.forApproval = !this.forApproval;\r\n this.clearFilterAndPagedResult();\r\n\r\n let val = this.sieveFilters.has('(IsEnabled)==');\r\n if (val) {\r\n this.sieveFilters.delete('(IsEnabled)==');\r\n }\r\n\r\n if (this.forApproval) {\r\n this.sieveFilters.set('(IsEnabled)==', \"false\");\r\n }\r\n\r\n this.loadData(null, false);\r\n //this.filterAll();\r\n //this.forApproval = !this.forApproval;\r\n //if (this.forApproval) {\r\n // this.rows = this.rows.filter(r => !r.isEnabled);\r\n //} else {\r\n // //this.rows = this.rowsCache;\r\n //}\r\n }\r\n\r\n onFilterOnlineUsers() {\r\n this.clearFilterAndPagedResult();\r\n this.forOnline = !this.forOnline;\r\n\r\n let val = this.sieveFilters.has('(IsConnected)==');\r\n if (val) {\r\n this.sieveFilters.delete('(IsConnected)==');\r\n }\r\n\r\n if (this.forOnline) {\r\n this.sieveFilters.set('(IsConnected)==', \"true\");\r\n }\r\n this.loadData(null, false);\r\n //this.filterAll();\r\n //this.forOnline = !this.forOnline;\r\n //if (this.forOnline) {\r\n // this.rows = this.rows.filter(r => r.isConnected);\r\n //} else {\r\n // //this.rows = this.rowsCache;\r\n //}\r\n }\r\n\r\n onEditorModalHidden() {\r\n this.editingUserName = null;\r\n this.userEditor.resetForm(true);\r\n }\r\n\r\n\r\n newUser() {\r\n this.editingUserName = null;\r\n this.sourceUser = null;\r\n this.editedUser = this.userEditor.newUser(this.allRoles, this.allDepartments);\r\n this.editorModal.show();\r\n }\r\n\r\n\r\n editUser(row: UserEdit) {\r\n this.editingUserName = { name: row.userName };\r\n this.sourceUser = row;\r\n console.log(this.allRoles);\r\n this.editedUser = this.userEditor.editUser(row, this.allRoles, this.allDepartments);\r\n this.editorModal.show();\r\n }\r\n\r\n\r\n deleteUser(row: UserEdit) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.userName + '\\\"?', DialogType.confirm, () => this.deleteUserHelper(row));\r\n }\r\n\r\n\r\n deleteUserHelper(row: UserEdit) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.accountService.deleteUser(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the user.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n addRewardPoints(row: UserEdit): void {\r\n this.alertService.showDialog(\"How many points do you want to add?\", DialogType.prompt, (val) => this.addRewardPointsHelper(row, val), () => this.addRewardPointsHelper(null, 0));\r\n }\r\n\r\n addRewardPointsHelper(row?: UserEdit, points?: any) {\r\n if (row) {\r\n if (isNumeric(points)) {\r\n let reward = new RewardOperation();\r\n if (row.userRewards && row.userRewards.length > 0) {\r\n reward.rewardId = row.userRewards[0].id;\r\n reward.concurrencyStamp = row.userRewards[0].concurrencyStamp;\r\n reward.transactionType = \"CREDIT\";\r\n reward.description = \"ADD POINTS FROM USER MANAGEMENT\";\r\n reward.amount = points;\r\n\r\n this.subscription.add(this.accountService.transactReward(reward)\r\n .subscribe(response => {\r\n if (response.isSuccess) {\r\n this.alertService.showMessage(\"Success\", \"Successfully added reward points!\", MessageSeverity.success);\r\n } else {\r\n this.alertService.showMessage(\"Error\", response.message, MessageSeverity.error);\r\n }\r\n row.userRewards[0].balance = response.data.balance;\r\n row.userRewards[0].concurrencyStamp = response.data.concurrencyStamp;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Add Point Error\", `An error occured while addting reward points the user.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n } else{\r\n this.alertService.showStickyMessage(\"Add Point Error\", `An error occured while addting reward points the user.\\r\\nError: No reward record found for this user.\"`,\r\n MessageSeverity.error);\r\n }\r\n } else {\r\n this.alertService.showMessage(\"Error\", \"Please enter a number.\", MessageSeverity.error);\r\n }\r\n }\r\n }\r\n \r\n\r\n uploadCSV() {\r\n }\r\n\r\n syncAd() {\r\n this.alertService.showDialog('Are you sure you want to sync user from Active Directory?', DialogType.confirm, () => this.syncAdHelper());\r\n }\r\n\r\n syncAdHelper() {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.contactGroupService.syncLdap()\r\n .subscribe(results => {\r\n this.alertService.showMessage('Users are now synced.');\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Sync Error\", `An error occured while synchronizing the users.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n get canAssignRoles() {\r\n return this.accountService.userHasPermission(Permission.assignRolesPermission);\r\n }\r\n\r\n get canViewRoles() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission)\r\n }\r\n\r\n get canManageUsers() {\r\n return this.accountService.userHasPermission(Permission.manageUsersPermission);\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*.cdk-overlay-container, .cdk-global-overlay-wrapper {\\r\\n z-index: 1051 !important;\\r\\n}*/\\r\\n\\r\\n.cdk-overlay-connected-position-bounding-box {\\r\\n z-index: 1051 !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VydmVoaWNsZS91c2VydmVoaWNsZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUlBOztFQUVFOztBQUVGO0VBQ0Usd0JBQXdCO0FBQzFCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VydmVoaWNsZS91c2VydmVoaWNsZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG4vKi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XHJcbiAgei1pbmRleDogMTA1MSAhaW1wb3J0YW50O1xyXG59Ki9cclxuXHJcbi5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcclxuICB6LWluZGV4OiAxMDUxICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{user.fullName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ViewEncapsulation, OnDestroy } from '@angular/core';\r\n\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { UserEdit } from 'src/app/models/user-edit.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { UserVehicle } from 'src/app/models/uservehicle.model';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'user-vehicle-editor',\r\n templateUrl: './uservehicle-editor.component.html',\r\n styleUrls: ['./uservehicle-editor.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UserVehicleEditorComponent implements OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isNewUserVehicle = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingUserVehicleName: string;\r\n private userVehicleEdit: UserVehicle = new UserVehicle();\r\n private allPermissions: Permission[] = [];\r\n private allUsers: User[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public isUserInfo = true;\r\n private loadingIndicator: boolean;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.userVehicle) != typeof (undefined)) {\r\n this.isUserInfo = data.isUserInfo;\r\n this.userVehicleEdit = data.userVehicle;\r\n if (!this.isUserInfo) {\r\n this.loadUsers();\r\n }\r\n if (data.userVehicle.id) {\r\n this.editUserVehicle(this.userVehicleEdit);\r\n } else {\r\n this.newUserVehicle();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n loadUsers() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.accountService.getUsers(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allUsers = results;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve users from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n\r\n if (this.isUserInfo) {\r\n this.dialogRef.close(this.userVehicleEdit);\r\n } else {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (!this.userVehicleEdit.id) {\r\n this.subscription.add(this.accountService.newUserVehicle(this.userVehicleEdit).subscribe(vehicle => this.saveSuccessHelper(vehicle), error => this.saveFailedHelper(error)));\r\n }\r\n else {\r\n this.subscription.add(this.accountService.updateUserVehicle(this.userVehicleEdit).subscribe(response => this.saveSuccessHelper(this.userVehicleEdit), error => this.saveFailedHelper(error)));\r\n }\r\n }\r\n }\r\n\r\n private saveSuccessHelper(vehicle: UserVehicle) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Success\", `\"Vehicle with plate no. '${vehicle.plateNumber}\\\"' has been saved!`, MessageSeverity.success);\r\n this.dialogRef.close(this.userVehicleEdit);\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n\r\n private cancel() {\r\n this.userVehicleEdit = new UserVehicle();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n }\r\n\r\n\r\n newUserVehicle() {\r\n this.isNewUserVehicle = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingUserVehicleName = null;\r\n this.selectedValues = {};\r\n this.userVehicleEdit = new UserVehicle();\r\n this.userVehicleEdit.vehicleStatus = \"PENDING\";\r\n return this.userVehicleEdit;\r\n }\r\n\r\n editUserVehicle(userVehicle: UserVehicle) {\r\n if (userVehicle) {\r\n this.isNewUserVehicle = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingUserVehicleName = userVehicle.plateNumber;\r\n this.selectedValues = {};\r\n this.userVehicleEdit = new UserVehicle();\r\n Object.assign(this.userVehicleEdit, userVehicle);\r\n return this.userVehicleEdit;\r\n }\r\n else {\r\n return this.newUserVehicle();\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VydmVoaWNsZS91c2VydmVoaWNsZS1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy91c2VydmVoaWNsZS91c2VydmVoaWNsZS1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

{{'pageHeader.Vehicles' | 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 {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'userVehicles.management.Approve' | translate}}\\r\\n {{'userVehicles.management.Revoke' | translate}}\\r\\n {{'userVehicles.management.Edit' | translate}}\\r\\n {{'userVehicles.management.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { UserVehicle } from 'src/app/models/uservehicle.model';\r\nimport { UserVehicleEditorComponent } from './uservehicle-editor.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'user-vehicle-management',\r\n templateUrl: './uservehicle-management.component.html',\r\n styleUrls: ['./uservehicle-management.component.css']\r\n})\r\nexport class UserVehiclesManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: UserVehicle[] = [];\r\n rowsCache: UserVehicle[] = [];\r\n\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n public dialog: MatDialog,\r\n private ref: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'plateNumber', name: gT('userVehicles.management.PlateNumber') },\r\n { prop: 'userName', name: gT('userVehicles.management.Owner') },\r\n { prop: 'vehicleStatus', name: gT('userVehicles.management.Status') },\r\n { name: '', width: 250, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n addEditVehicle(userVehicle?: UserVehicle) {\r\n let header = userVehicle ? \"Edit Vehicle\" : \"New Vehicle\";\r\n if (!userVehicle) {\r\n userVehicle = new UserVehicle();\r\n }\r\n\r\n var dialog = this.dialog.open(UserVehicleEditorComponent, {\r\n data: { header: header, userVehicle: userVehicle, isUserInfo: false },\r\n width: '400px'\r\n });\r\n\r\n dialog.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n deleteVehicle(row: UserVehicle) {\r\n this.alertService.showDialog('Are you sure you want to delete vehicle with plate no. \\\"' + row.plateNumber + '\\\"?', DialogType.confirm, () => this.deleteUserVehicleHelper(row));\r\n }\r\n\r\n\r\n deleteUserVehicleHelper(row: UserVehicle) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.accountService.deleteUserVehicle(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the vehicle.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.accountService.getUserVehicles(null, null)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let userVehicles = results;\r\n\r\n userVehicles.forEach((uv, index, userVehicle) => {\r\n (uv).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...userVehicles];\r\n this.rows = userVehicles;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve vehicles from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.plateNumber, r.vehicleStatus));\r\n }\r\n\r\n approveVehicle(row: UserVehicle) {\r\n this.alertService.showDialog('Are you sure you want to approve the vehicle with plate no. \\\"' + row.plateNumber + '\\\"?', DialogType.confirm, () => {\r\n row.isApprove = true;\r\n this.rows = [...this.rows];\r\n this.rowsCache = this.rows;\r\n this.subscription.add(this.accountService.updateUserVehicle(row).subscribe(response => this.saveSuccessHelper(row, response), error => this.saveFailedHelper(error)));\r\n });\r\n\r\n \r\n }\r\n\r\n disapproveVehicle(row: UserVehicle) {\r\n this.alertService.showDialog('Are you sure you want to revoke the vehicle with plate no. \\\"' + row.plateNumber + '\\\"?', DialogType.confirm, () => {\r\n row.isApprove = false;\r\n row.vehicleStatus = 'PENDING';\r\n this.rows = [...this.rows];\r\n this.rowsCache = this.rows;\r\n this.subscription.add(this.accountService.updateUserVehicle(row).subscribe(response => this.saveSuccessHelper(row, response, false), error => this.saveFailedHelper(error)));\r\n });\r\n\r\n\r\n }\r\n\r\n private saveSuccessHelper(vehicle: UserVehicle, response: any, isApproved: boolean = true) {\r\n this.alertService.stopLoadingMessage();\r\n vehicle.vehicleStatus = isApproved ? \"APPROVED\" : \"PENDING\";\r\n this.alertService.showMessage(\"Success\", `\"Vehicle with plate no. '${vehicle.plateNumber} has been ${(isApproved ? \"approved\" : \"revoked\")}!`, MessageSeverity.success);\r\n this.ref.detectChanges();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n get canManageUserVehicles() {\r\n return this.accountService.userHasPermission(Permission.manageUserVehiclesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".mat-expansion-panel-header-description {\\r\\n justify-content: space-between;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\nmat-form-field {\\r\\n margin-right: 12px;\\r\\n}\\r\\n\\r\\n.device-for-approval-title div {\\r\\n width: 50%;\\r\\n float: left;\\r\\n font-size: medium;\\r\\n}\\r\\n\\r\\n.device-for-approval-title div mat-icon {\\r\\n vertical-align: bottom;\\r\\n }\\r\\n\\r\\n::ng-deep .mat-card-header-text{\\r\\n width: 100% !important;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.mat-card {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-expansion-panel-body {\\r\\n min-height: 140px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvYXZhaWxhYmxlLXJvb20vYXZhaWxhYmxlLXJvb20uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDhCQUE4QjtFQUM5QixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLGlCQUFpQjtBQUNuQjs7QUFFRTtJQUNFLHNCQUFzQjtFQUN4Qjs7QUFFRjtFQUNFLHNCQUFzQjtFQUN0QixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2Rhc2hib2FyZC9hdmFpbGFibGUtcm9vbS9hdmFpbGFibGUtcm9vbS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxubWF0LWZvcm0tZmllbGQge1xyXG4gIG1hcmdpbi1yaWdodDogMTJweDtcclxufVxyXG5cclxuLmRldmljZS1mb3ItYXBwcm92YWwtdGl0bGUgZGl2IHtcclxuICB3aWR0aDogNTAlO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIGZvbnQtc2l6ZTogbWVkaXVtO1xyXG59XHJcblxyXG4gIC5kZXZpY2UtZm9yLWFwcHJvdmFsLXRpdGxlIGRpdiBtYXQtaWNvbiB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG4gIH1cclxuXHJcbjo6bmctZGVlcCAubWF0LWNhcmQtaGVhZGVyLXRleHR7XHJcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICBtYXJnaW46IDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hdC1jYXJkIHtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1leHBhbnNpb24tcGFuZWwtYm9keSB7XHJcbiAgbWluLWhlaWdodDogMTQwcHg7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n

Available Rooms Today

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionFacilitiesCapacityAvailability
{{row.name}}{{row.description}}{{row.facilityNames}}{{row.capacity}}{{row.availableTimeDisplay}}
\\r\\n
\\r\\n

\\r\\n No available rooms to book.\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, ViewChild, Input, AfterViewInit } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { DashboardService } from \"../../../services/dashboard.service\";\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Utilities } from \"../../../services/utilities\";\r\nimport { Location } from 'src/app/models/location.model';\r\nimport { MatPaginator, MatSort } from '@angular/material';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { CalendarFilter } from 'src/app/models/reservation.model';\r\nimport { endOfDay } from 'date-fns';\r\n\r\n\r\n@Component({\r\n selector: 'dashboard-available-room',\r\n templateUrl: './available-room.component.html',\r\n styleUrls: ['./available-room.component.css']\r\n})\r\nexport class DashboardAvailableRoomComponent implements OnInit, AfterViewInit, OnDestroy {\r\n locations: Location[] = [];\r\n loadingIndicator: boolean;\r\n show_no_results = true;\r\n\r\n dataLoadingConsecutiveFailurs = 0;\r\n dataLoadingSubscription: any;\r\n\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private locationService: LocationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.initDataLoading();\r\n }\r\n\r\n ngAfterViewInit() {\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.dataLoadingSubscription)\r\n this.dataLoadingSubscription.unsubscribe();\r\n }\r\n\r\n initDataLoading() {\r\n var filter = new CalendarFilter();\r\n filter.start = Utilities.getCurrentDate(true);\r\n filter.end = endOfDay(filter.start);\r\n filter.hasAvailableTimeSlot = true;\r\n filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.dataLoadingSubscription = this.locationService.getAvailableLocations(filter)\r\n .subscribe(results => {\r\n\r\n this.locations = results;\r\n if (this.locations && this.locations.length > 0) {\r\n this.show_no_results = false;\r\n }\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve locations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n \r\n\r\n\r\n get canManageNotifications() {\r\n return this.accountService.userHasPermission(Permission.manageRolesPermission); //Todo: Consider creating separate permission for notifications\r\n }\r\n\r\n}\r\n","module.exports = \".mat-expansion-panel-header-description {\\r\\n justify-content: space-between;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\nmat-form-field {\\r\\n margin-right: 12px;\\r\\n}\\r\\n\\r\\n.device-for-approval-title div {\\r\\n width: 50%;\\r\\n float: left;\\r\\n font-size: medium;\\r\\n}\\r\\n\\r\\n.device-for-approval-title div mat-icon {\\r\\n vertical-align: bottom;\\r\\n }\\r\\n\\r\\n::ng-deep .mat-card-header-text{\\r\\n width: 100% !important;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.mat-card {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-expansion-panel-body {\\r\\n min-height: 140px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvZGV2aWNlLWZvci1hcHByb3ZhbC9kZXZpY2UtZm9yLWFwcHJvdmFsLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxpQkFBaUI7QUFDbkI7O0FBRUU7SUFDRSxzQkFBc0I7RUFDeEI7O0FBRUY7RUFDRSxzQkFBc0I7RUFDdEIsb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvZGV2aWNlLWZvci1hcHByb3ZhbC9kZXZpY2UtZm9yLWFwcHJvdmFsLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG5tYXQtZm9ybS1maWVsZCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xyXG59XHJcblxyXG4uZGV2aWNlLWZvci1hcHByb3ZhbC10aXRsZSBkaXYge1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgZm9udC1zaXplOiBtZWRpdW07XHJcbn1cclxuXHJcbiAgLmRldmljZS1mb3ItYXBwcm92YWwtdGl0bGUgZGl2IG1hdC1pY29uIHtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbiAgfVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtY2FyZC1oZWFkZXItdGV4dHtcclxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWF0LWNhcmQge1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWV4cGFuc2lvbi1wYW5lbC1ib2R5IHtcclxuICBtaW4taGVpZ2h0OiAxNDBweDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n

Devices For Approval

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
CodeIP AddressMAC AddressSerialLocationStartEnd
{{row.code}}{{row.ipAddress}}{{row.macAddress}}{{row.serialNumber}}{{row.locationName}}{{row.startDate | date: 'longDate'}}{{row.endDate | date: 'longDate'}}
\\r\\n\\r\\n
\\r\\n

\\r\\n No devices for approval.\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, ViewChild, Input, AfterViewInit } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { DashboardService } from \"../../../services/dashboard.service\";\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Utilities } from \"../../../services/utilities\";\r\nimport { Device, DeviceFilter } from 'src/app/models/device.model';\r\nimport { MatPaginator, MatSort } from '@angular/material';\r\n\r\n\r\n@Component({\r\n selector: 'device-for-approval',\r\n templateUrl: './device-for-approval.component.html',\r\n styleUrls: ['./device-for-approval.component.css']\r\n})\r\nexport class DeviceForApprovalComponent implements OnInit, AfterViewInit, OnDestroy {\r\n devices: Device[] = [];\r\n loadingIndicator: boolean;\r\n show_no_results = true;\r\n displayedColumns: string[];\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n dataLoadingConsecutiveFailurs = 0;\r\n dataLoadingSubscription: any;\r\n\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private dashboardService: DashboardService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.displayedColumns = ['code', 'ipAddress'];\r\n this.initDataLoading();\r\n }\r\n\r\n ngAfterViewInit() {\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.dataLoadingSubscription)\r\n this.dataLoadingSubscription.unsubscribe();\r\n }\r\n\r\n initDataLoading() {\r\n var filter = new DeviceFilter();\r\n filter.institutionId = parseInt(this.accountService.currentUser.institutionId);\r\n filter.isActive = true;\r\n filter.isApproved = false;\r\n this.dataLoadingSubscription = this.dashboardService.getDeviceForApproval(1, 5, filter)\r\n .subscribe(devices => {\r\n this.loadingIndicator = false;\r\n this.dataLoadingConsecutiveFailurs = 0;\r\n\r\n this.devices = devices;\r\n if (devices && devices.length > 0) {\r\n this.show_no_results = false;\r\n }\r\n },\r\n error => {\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showMessage(\"Load Error\", \"Loading devices from the server failed!\", MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n\r\n if (this.dataLoadingConsecutiveFailurs++ < 5)\r\n setTimeout(() => this.initDataLoading(), 5000);\r\n else\r\n this.alertService.showStickyMessage(\"Load Error\", \"Loading devices from the server failed!\", MessageSeverity.error);\r\n\r\n });\r\n }\r\n \r\n\r\n\r\n get canViewDevices() {\r\n return this.accountService.userHasPermission(Permission.viewDevicesPermission); //Todo: Consider creating separate permission for notifications\r\n }\r\n\r\n}\r\n","module.exports = \".mat-expansion-panel-header-description {\\r\\n justify-content: space-between;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\nmat-form-field {\\r\\n margin-right: 12px;\\r\\n}\\r\\n\\r\\n.device-for-approval-title div {\\r\\n width: 50%;\\r\\n float: left;\\r\\n font-size: medium;\\r\\n}\\r\\n\\r\\n.device-for-approval-title div mat-icon {\\r\\n vertical-align: bottom;\\r\\n }\\r\\n\\r\\n::ng-deep .mat-card-header-text{\\r\\n width: 100% !important;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.mat-card {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-expansion-panel-body {\\r\\n min-height: 140px;\\r\\n}\\r\\n\\r\\n.status_offline {\\r\\n font-size: 20px;\\r\\n color: #f72626 !important;\\r\\n}\\r\\n\\r\\n.status_online {\\r\\n font-size: 20px;\\r\\n color: #08ca08;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvcGliLWRldmljZS1saXN0L3BpYi1kZXZpY2UtbGlzdC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsaUJBQWlCO0FBQ25COztBQUVFO0lBQ0Usc0JBQXNCO0VBQ3hCOztBQUVGO0VBQ0Usc0JBQXNCO0VBQ3RCLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGVBQWU7RUFDZix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsY0FBYztBQUNoQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZGFzaGJvYXJkL3BpYi1kZXZpY2UtbGlzdC9waWItZGV2aWNlLWxpc3QuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbm1hdC1mb3JtLWZpZWxkIHtcclxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XHJcbn1cclxuXHJcbi5kZXZpY2UtZm9yLWFwcHJvdmFsLXRpdGxlIGRpdiB7XHJcbiAgd2lkdGg6IDUwJTtcclxuICBmbG9hdDogbGVmdDtcclxuICBmb250LXNpemU6IG1lZGl1bTtcclxufVxyXG5cclxuICAuZGV2aWNlLWZvci1hcHByb3ZhbC10aXRsZSBkaXYgbWF0LWljb24ge1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuICB9XHJcblxyXG46Om5nLWRlZXAgLm1hdC1jYXJkLWhlYWRlci10ZXh0e1xyXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXQtY2FyZCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWJvZHkge1xyXG4gIG1pbi1oZWlnaHQ6IDE0MHB4O1xyXG59XHJcblxyXG4uc3RhdHVzX29mZmxpbmUge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBjb2xvcjogI2Y3MjYyNiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3RhdHVzX29ubGluZSB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGNvbG9yOiAjMDhjYTA4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n

PIB Devices

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CodeLabelMAC AddressLocationStatus
{{row.device_code}}{{row.device_label}}{{row.macAddress}}{{row.location_code}}\\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

\\r\\n No PIB devices.\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, ViewChild, Input, AfterViewInit } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { DashboardService } from \"../../../services/dashboard.service\";\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Utilities } from \"../../../services/utilities\";\r\nimport { MatPaginator, MatSort } from '@angular/material';\r\nimport { PIBDevice } from 'src/app/models/department.model';\r\nimport { DeviceFilter } from 'src/app/models/device.model';\r\n\r\n\r\n@Component({\r\n selector: 'pib-device-list',\r\n templateUrl: './pib-device-list.component.html',\r\n styleUrls: ['./pib-device-list.component.css']\r\n})\r\nexport class PIBDeviceStatusListComponent implements OnInit, AfterViewInit, OnDestroy {\r\n devices: PIBDevice[] = [];\r\n loadingIndicator: boolean;\r\n show_no_results = true;\r\n displayedColumns: string[];\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n dataLoadingConsecutiveFailurs = 0;\r\n dataLoadingSubscription: any;\r\n\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private dashboardService: DashboardService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.displayedColumns = ['device_code', 'location_code', 'status_display'];\r\n this.initDataLoading();\r\n }\r\n\r\n ngAfterViewInit() {\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.dataLoadingSubscription)\r\n this.dataLoadingSubscription.unsubscribe();\r\n }\r\n\r\n initDataLoading() {\r\n var filter = new DeviceFilter();\r\n filter.institutionId = parseInt(this.accountService.currentUser.institutionId);\r\n filter.isActive = true;\r\n filter.isApproved = false;\r\n this.dataLoadingSubscription = this.dashboardService.getPIBDeviceStatusList(1, 5, filter)\r\n .subscribe(devices => {\r\n this.loadingIndicator = false;\r\n this.dataLoadingConsecutiveFailurs = 0;\r\n\r\n this.devices = devices;\r\n if (devices && devices.length > 0) {\r\n this.show_no_results = false;\r\n }\r\n },\r\n error => {\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showMessage(\"Load Error\", \"Loading devices from the server failed!\", MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n\r\n if (this.dataLoadingConsecutiveFailurs++ < 5)\r\n setTimeout(() => this.initDataLoading(), 5000);\r\n else\r\n this.alertService.showStickyMessage(\"Load Error\", \"Loading devices from the server failed!\", MessageSeverity.error);\r\n\r\n });\r\n }\r\n}\r\n","module.exports = \".mat-expansion-panel-header-description {\\r\\n justify-content: space-between;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\nmat-form-field {\\r\\n margin-right: 12px;\\r\\n}\\r\\n\\r\\n.device-for-approval-title div {\\r\\n width: 50%;\\r\\n float: left;\\r\\n font-size: medium;\\r\\n}\\r\\n\\r\\n.device-for-approval-title div mat-icon {\\r\\n vertical-align: bottom;\\r\\n }\\r\\n\\r\\n::ng-deep .mat-card-header-text {\\r\\n width: 100% !important;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.mat-card {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-expansion-panel-body {\\r\\n min-height: 140px;\\r\\n}\\r\\n\\r\\n.status_offline {\\r\\n font-size: 20px;\\r\\n color: #f72626 !important;\\r\\n}\\r\\n\\r\\n.status_online {\\r\\n font-size: 20px;\\r\\n color: #08ca08;\\r\\n}\\r\\n\\r\\n.filter {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.font-weight-bold {\\r\\n font-weight: 600 !important;\\r\\n}\\r\\n\\r\\n.text-uppercase {\\r\\n text-transform: uppercase !important;\\r\\n}\\r\\n\\r\\n.text-muted {\\r\\n color: #8898aa !important;\\r\\n}\\r\\n\\r\\n.text-white {\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.card {\\r\\n margin-bottom: 30px;\\r\\n box-shadow: 0 0 2rem 0 rgba(136,152,170,.15);\\r\\n border: 0;\\r\\n border-radius: .375rem;\\r\\n}\\r\\n\\r\\n.bg-gradient-info {\\r\\n background: linear-gradient(87deg,#86c7f3,#185b88) !important;\\r\\n}\\r\\n\\r\\n.bg-gradient-alive {\\r\\n background: linear-gradient(87deg,#8ddca0,#389a4f) !important;\\r\\n}\\r\\n\\r\\n.bg-gradient-unassigned {\\r\\n background: linear-gradient(87deg,#f1b224,#c5683c) !important;\\r\\n}\\r\\n\\r\\n.bg-gradient-top-category {\\r\\n background: linear-gradient(87deg,#c1c4ca,#9498a0) !important;\\r\\n}\\r\\n\\r\\n.bg-gradient-unreachable {\\r\\n background: linear-gradient(87deg,#ec6e70,#ec090d) !important;\\r\\n}\\r\\n\\r\\n.card-body {\\r\\n flex: 1 1 auto;\\r\\n padding: 1.5rem;\\r\\n}\\r\\n\\r\\n.row {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n margin-right: -15px;\\r\\n margin-left: -15px;\\r\\n}\\r\\n\\r\\n.col {\\r\\n flex-basis: 0;\\r\\n flex-grow: 1;\\r\\n max-width: 100%;\\r\\n position: relative;\\r\\n width: 100%;\\r\\n padding-right: 15px;\\r\\n padding-left: 15px;\\r\\n}\\r\\n\\r\\n.col-auto {\\r\\n flex: 0 0 auto;\\r\\n width: auto;\\r\\n max-width: 100%;\\r\\n}\\r\\n\\r\\n.filter-container {\\r\\n padding-top: 20px;\\r\\n border-top: 1px solid #edeff329;\\r\\n}\\r\\n\\r\\n.chart-box {\\r\\n padding: 20px;\\r\\n}\\r\\n\\r\\n.truncate {\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n}\\r\\n\\r\\n.text-white {\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvc2lnbmFnZS9sb2NhdGlvbi1wYW5lbC9sb2NhdGlvbi1wYW5lbC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsaUJBQWlCO0FBQ25COztBQUVFO0lBQ0Usc0JBQXNCO0VBQ3hCOztBQUVGO0VBQ0Usc0JBQXNCO0VBQ3RCLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGVBQWU7RUFDZix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsY0FBYztBQUNoQjs7QUFHQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLG9DQUFvQztBQUN0Qzs7QUFFQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQiw0Q0FBNEM7RUFDNUMsU0FBUztFQUNULHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLDZEQUE2RDtBQUMvRDs7QUFFQTtFQUNFLDZEQUE2RDtBQUMvRDs7QUFFQTtFQUNFLDZEQUE2RDtBQUMvRDs7QUFFQTtFQUNFLDZEQUE2RDtBQUMvRDs7QUFFQTtFQUNFLDZEQUE2RDtBQUMvRDs7QUFFQTtFQUVFLGNBQWM7RUFDZCxlQUFlO0FBQ2pCOztBQUVBO0VBRUUsYUFBYTtFQUNiLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsYUFBYTtFQUViLFlBQVk7RUFDWixlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsY0FBYztFQUNkLFdBQVc7RUFDWCxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLCtCQUErQjtBQUNqQzs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvc2lnbmFnZS9sb2NhdGlvbi1wYW5lbC9sb2NhdGlvbi1wYW5lbC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxubWF0LWZvcm0tZmllbGQge1xyXG4gIG1hcmdpbi1yaWdodDogMTJweDtcclxufVxyXG5cclxuLmRldmljZS1mb3ItYXBwcm92YWwtdGl0bGUgZGl2IHtcclxuICB3aWR0aDogNTAlO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIGZvbnQtc2l6ZTogbWVkaXVtO1xyXG59XHJcblxyXG4gIC5kZXZpY2UtZm9yLWFwcHJvdmFsLXRpdGxlIGRpdiBtYXQtaWNvbiB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG4gIH1cclxuXHJcbjo6bmctZGVlcCAubWF0LWNhcmQtaGVhZGVyLXRleHQge1xyXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXQtY2FyZCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWJvZHkge1xyXG4gIG1pbi1oZWlnaHQ6IDE0MHB4O1xyXG59XHJcblxyXG4uc3RhdHVzX29mZmxpbmUge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBjb2xvcjogI2Y3MjYyNiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3RhdHVzX29ubGluZSB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGNvbG9yOiAjMDhjYTA4O1xyXG59XHJcblxyXG5cclxuLmZpbHRlciB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5mb250LXdlaWdodC1ib2xkIHtcclxuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi50ZXh0LXVwcGVyY2FzZSB7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udGV4dC1tdXRlZCB7XHJcbiAgY29sb3I6ICM4ODk4YWEgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnRleHQtd2hpdGUge1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jYXJkIHtcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCAycmVtIDAgcmdiYSgxMzYsMTUyLDE3MCwuMTUpO1xyXG4gIGJvcmRlcjogMDtcclxuICBib3JkZXItcmFkaXVzOiAuMzc1cmVtO1xyXG59XHJcblxyXG4uYmctZ3JhZGllbnQtaW5mbyB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDg3ZGVnLCM4NmM3ZjMsIzE4NWI4OCkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmJnLWdyYWRpZW50LWFsaXZlIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODdkZWcsIzhkZGNhMCwjMzg5YTRmKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYmctZ3JhZGllbnQtdW5hc3NpZ25lZCB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDg3ZGVnLCNmMWIyMjQsI2M1NjgzYykgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmJnLWdyYWRpZW50LXRvcC1jYXRlZ29yeSB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDg3ZGVnLCNjMWM0Y2EsIzk0OThhMCkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmJnLWdyYWRpZW50LXVucmVhY2hhYmxlIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoODdkZWcsI2VjNmU3MCwjZWMwOTBkKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2FyZC1ib2R5IHtcclxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xyXG4gIGZsZXg6IDEgMSBhdXRvO1xyXG4gIHBhZGRpbmc6IDEuNXJlbTtcclxufVxyXG5cclxuLnJvdyB7XHJcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcclxuICBtYXJnaW4tbGVmdDogLTE1cHg7XHJcbn1cclxuXHJcbi5jb2wge1xyXG4gIGZsZXgtYmFzaXM6IDA7XHJcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcclxuICBmbGV4LWdyb3c6IDE7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xyXG4gIHBhZGRpbmctbGVmdDogMTVweDtcclxufVxyXG5cclxuLmNvbC1hdXRvIHtcclxuICBmbGV4OiAwIDAgYXV0bztcclxuICB3aWR0aDogYXV0bztcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5maWx0ZXItY29udGFpbmVyIHtcclxuICBwYWRkaW5nLXRvcDogMjBweDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VkZWZmMzI5O1xyXG59XHJcblxyXG4uY2hhcnQtYm94IHtcclxuICBwYWRkaW5nOiAyMHB4O1xyXG59XHJcblxyXG4udHJ1bmNhdGUge1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxufVxyXG5cclxuLnRleHQtd2hpdGUge1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"\\r\\n \\r\\n {{item.value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","import { Component, OnInit, ViewChild, Input, EventEmitter, Output } from \"@angular/core\";\r\nimport { MatMenu, MatSelect } from \"@angular/material\";\r\n\r\n@Component({\r\n selector: \"app-location-panel\",\r\n templateUrl: \"./location-panel.component.html\",\r\n styleUrls: [\"./location-panel.component.css\"]\r\n})\r\nexport class LocationPanelComponent implements OnInit {\r\n @ViewChild(\"select\") menu: MatSelect;\r\n @Input() items: any[];\r\n @Output('submit')\r\n submit: EventEmitter = new EventEmitter();\r\n @Input() selectedMenu: any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n submitActivity(menu: any) {\r\n //console.log(this.menu);\r\n //this.selectedMenu = menu;\r\n this.submit.emit(menu);\r\n }\r\n\r\n triggerSubmit(menu) {\r\n //console.log(this.selectedMenu);\r\n this.submit.emit(menu);\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvc2lnbmFnZS9wdXNoLW1lc3NhZ2UtZGlhbG9nL3B1c2gtbWVzc2FnZS1kaWFsb2cuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvc2lnbmFnZS9wdXNoLW1lc3NhZ2UtZGlhbG9nL3B1c2gtbWVzc2FnZS1kaWFsb2cuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

\\r\\n {{data.header}}\\r\\n
\\r\\n * This will push the messages to all devices in the list\\r\\n
\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { SignageDashboardFilter } from 'src/app/models/dashboard.model';\r\nimport { DevicePushMessage } from 'src/app/models/device.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { DeviceService } from 'src/app/services/device.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\n\r\n\r\n@Component({\r\n selector: 'device-push-message-dialog',\r\n templateUrl: './push-message-dialog.component.html',\r\n styleUrls: ['./push-message-dialog.component.css']\r\n})\r\nexport class DevicePushMessageDialog {\r\n\r\n private isNewDepartment = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingDepartmentName: string;\r\n private message: DevicePushMessage = new DevicePushMessage();\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n sgnFilter: SignageDashboardFilter;\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private deviceService: DeviceService, \r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (data && data.sgnFilter) {\r\n this.sgnFilter = data.sgnFilter;\r\n }\r\n\r\n }\r\n private pushMessage() {\r\n let dto = new DevicePushMessage();\r\n dto.filter = this.sgnFilter;\r\n dto.emergencyMessage1 = this.message.emergencyMessage1;\r\n dto.emergencyMessage2 = this.message.emergencyMessage2;\r\n dto.emergencyMessage3 = this.message.emergencyMessage3;\r\n dto.emergencyMessage4 = this.message.emergencyMessage4;\r\n\r\n this.alertService.startLoadingMessage(\"Pushing messages to the devices...\");\r\n\r\n this.deviceService.pushMessages(dto)\r\n .subscribe(results => {\r\n console.log(results);\r\n this.alertService.stopLoadingMessage();\r\n if (results.isSuccess) {\r\n this.alertService.showMessage(\"Successfully pushed to all devices!\", \"\", MessageSeverity.success);\r\n } else {\r\n this.alertService.showMessage(results.message, \"\", MessageSeverity.error);\r\n }\r\n\r\n this.dialogRef.close(results);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Push Message Error\", `An error occured while pusing the messages to the devices.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n \r\n }\r\n\r\n\r\n private cancel() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","module.exports = \".mat-expansion-panel-header-description {\\r\\n justify-content: space-between;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\nmat-form-field {\\r\\n margin-right: 12px;\\r\\n}\\r\\n\\r\\n.device-for-approval-title div {\\r\\n width: 50%;\\r\\n float: left;\\r\\n font-size: medium;\\r\\n}\\r\\n\\r\\n.device-for-approval-title div mat-icon {\\r\\n vertical-align: bottom;\\r\\n }\\r\\n\\r\\n::ng-deep .mat-card-header-text {\\r\\n width: 100% !important;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.mat-card {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-expansion-panel-body {\\r\\n min-height: 140px;\\r\\n}\\r\\n\\r\\n.status_offline {\\r\\n font-size: 20px;\\r\\n color: #f72626 !important;\\r\\n}\\r\\n\\r\\n.status_online {\\r\\n font-size: 20px;\\r\\n color: #08ca08;\\r\\n}\\r\\n\\r\\n.status_sleep {\\r\\n font-size: 20px;\\r\\n color: #f1b224;\\r\\n}\\r\\n\\r\\n.filter {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.font-weight-bold {\\r\\n font-weight: 600 !important;\\r\\n}\\r\\n\\r\\n.text-uppercase {\\r\\n text-transform: uppercase !important;\\r\\n}\\r\\n\\r\\n.text-muted {\\r\\n color: #8898aa !important;\\r\\n}\\r\\n\\r\\n.text-white {\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.card {\\r\\n margin-bottom: 30px;\\r\\n box-shadow: 0 0 2rem 0 rgba(136,152,170,.15);\\r\\n border: 0;\\r\\n border-radius: .375rem;\\r\\n}\\r\\n\\r\\n.bg-gradient-info {\\r\\n background: linear-gradient(87deg,#86c7f3,#185b88) !important;\\r\\n}\\r\\n\\r\\n.bg-gradient-alive {\\r\\n background: linear-gradient(87deg,#8ddca0,#389a4f) !important;\\r\\n}\\r\\n\\r\\n.bg-gradient-unassigned {\\r\\n background: linear-gradient(87deg,#f1b224,#c5683c) !important;\\r\\n}\\r\\n\\r\\n.bg-gradient-top-category {\\r\\n background: linear-gradient(87deg,#c1c4ca,#9498a0) !important;\\r\\n}\\r\\n\\r\\n.bg-gradient-unreachable {\\r\\n background: linear-gradient(87deg,#ec6e70,#ec090d) !important;\\r\\n}\\r\\n\\r\\n.card-body {\\r\\n flex: 1 1 auto;\\r\\n padding: 1.5rem;\\r\\n}\\r\\n\\r\\n.row {\\r\\n display: flex;\\r\\n flex-wrap: wrap;\\r\\n margin-right: -15px;\\r\\n margin-left: -15px;\\r\\n}\\r\\n\\r\\n.col {\\r\\n flex-basis: 0;\\r\\n flex-grow: 1;\\r\\n max-width: 100%;\\r\\n position: relative;\\r\\n width: 100%;\\r\\n padding-right: 15px;\\r\\n padding-left: 15px;\\r\\n}\\r\\n\\r\\n.col-auto {\\r\\n flex: 0 0 auto;\\r\\n width: auto;\\r\\n max-width: 100%;\\r\\n}\\r\\n\\r\\n.filter-container {\\r\\n padding-top: 20px;\\r\\n border-top: 1px solid #edeff329;\\r\\n}\\r\\n\\r\\n.chart-box {\\r\\n padding: 20px;\\r\\n}\\r\\n\\r\\n.truncate {\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n}\\r\\n\\r\\n.text-white {\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.status_offline {\\r\\n font-size: 20px;\\r\\n color: #f72626 !important;\\r\\n}\\r\\n\\r\\n.status_online {\\r\\n font-size: 20px;\\r\\n color: #08ca08;\\r\\n}\\r\\n\\r\\ntd .mat-form-field-infix{\\r\\n border: 0px !important;\\r\\n padding-top:0px !important;\\r\\n}\\r\\n\\r\\n.signage-device-rows td {\\r\\n vertical-align: top;\\r\\n}\\r\\n\\r\\n.signage-device-rows p {\\r\\n margin-bottom:0px;\\r\\n}\\r\\n\\r\\n.publications {\\r\\n padding-left: 0px !important;\\r\\n padding-right: 0px !important;\\r\\n}\\r\\n\\r\\n.padding-top-1em {\\r\\n padding-top: 1.1em;\\r\\n}\\r\\n\\r\\ntext-center{\\r\\n text-align: center !important;\\r\\n}\\r\\n\\r\\n.paginator {\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.optionGroup {\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.optionChild {\\r\\n padding-left: 35px;\\r\\n}\\r\\n\\r\\n.device-label {\\r\\n font-weight: 400;\\r\\n margin-bottom: 5px;\\r\\n color: #0ea49f;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvc2lnbmFnZS9zaWduYWdlLWRhc2hib2FyZC1jb250YWluZXIvc2lnbmFnZS1kYXNoYm9hcmQtY29udGFpbmVyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxpQkFBaUI7QUFDbkI7O0FBRUU7SUFDRSxzQkFBc0I7RUFDeEI7O0FBRUY7RUFDRSxzQkFBc0I7RUFDdEIsb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsZUFBZTtFQUNmLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxvQ0FBb0M7QUFDdEM7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsNENBQTRDO0VBQzVDLFNBQVM7RUFDVCxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSw2REFBNkQ7QUFDL0Q7O0FBRUE7RUFDRSw2REFBNkQ7QUFDL0Q7O0FBRUE7RUFDRSw2REFBNkQ7QUFDL0Q7O0FBRUE7RUFDRSw2REFBNkQ7QUFDL0Q7O0FBRUE7RUFDRSw2REFBNkQ7QUFDL0Q7O0FBRUE7RUFFRSxjQUFjO0VBQ2QsZUFBZTtBQUNqQjs7QUFFQTtFQUVFLGFBQWE7RUFDYixlQUFlO0VBQ2YsbUJBQW1CO0VBQ25CLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGFBQWE7RUFFYixZQUFZO0VBQ1osZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQiwrQkFBK0I7QUFDakM7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGVBQWU7RUFDZix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHNCQUFzQjtFQUN0QiwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsYUFBYTtFQUNiLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsY0FBYztBQUNoQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZGFzaGJvYXJkL3NpZ25hZ2Uvc2lnbmFnZS1kYXNoYm9hcmQtY29udGFpbmVyL3NpZ25hZ2UtZGFzaGJvYXJkLWNvbnRhaW5lci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxubWF0LWZvcm0tZmllbGQge1xyXG4gIG1hcmdpbi1yaWdodDogMTJweDtcclxufVxyXG5cclxuLmRldmljZS1mb3ItYXBwcm92YWwtdGl0bGUgZGl2IHtcclxuICB3aWR0aDogNTAlO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIGZvbnQtc2l6ZTogbWVkaXVtO1xyXG59XHJcblxyXG4gIC5kZXZpY2UtZm9yLWFwcHJvdmFsLXRpdGxlIGRpdiBtYXQtaWNvbiB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG4gIH1cclxuXHJcbjo6bmctZGVlcCAubWF0LWNhcmQtaGVhZGVyLXRleHQge1xyXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXQtY2FyZCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWJvZHkge1xyXG4gIG1pbi1oZWlnaHQ6IDE0MHB4O1xyXG59XHJcblxyXG4uc3RhdHVzX29mZmxpbmUge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBjb2xvcjogI2Y3MjYyNiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3RhdHVzX29ubGluZSB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGNvbG9yOiAjMDhjYTA4O1xyXG59XHJcblxyXG4uc3RhdHVzX3NsZWVwIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgY29sb3I6ICNmMWIyMjQ7XHJcbn1cclxuXHJcbi5maWx0ZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZm9udC13ZWlnaHQtYm9sZCB7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udGV4dC11cHBlcmNhc2Uge1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnRleHQtbXV0ZWQge1xyXG4gIGNvbG9yOiAjODg5OGFhICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi50ZXh0LXdoaXRlIHtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2FyZCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICBib3gtc2hhZG93OiAwIDAgMnJlbSAwIHJnYmEoMTM2LDE1MiwxNzAsLjE1KTtcclxuICBib3JkZXI6IDA7XHJcbiAgYm9yZGVyLXJhZGl1czogLjM3NXJlbTtcclxufVxyXG5cclxuLmJnLWdyYWRpZW50LWluZm8ge1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4N2RlZywjODZjN2YzLCMxODViODgpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5iZy1ncmFkaWVudC1hbGl2ZSB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDg3ZGVnLCM4ZGRjYTAsIzM4OWE0ZikgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmJnLWdyYWRpZW50LXVuYXNzaWduZWQge1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4N2RlZywjZjFiMjI0LCNjNTY4M2MpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5iZy1ncmFkaWVudC10b3AtY2F0ZWdvcnkge1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4N2RlZywjYzFjNGNhLCM5NDk4YTApICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5iZy1ncmFkaWVudC11bnJlYWNoYWJsZSB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDg3ZGVnLCNlYzZlNzAsI2VjMDkwZCkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNhcmQtYm9keSB7XHJcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcclxuICBmbGV4OiAxIDEgYXV0bztcclxuICBwYWRkaW5nOiAxLjVyZW07XHJcbn1cclxuXHJcbi5yb3cge1xyXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIG1hcmdpbi1yaWdodDogLTE1cHg7XHJcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xyXG59XHJcblxyXG4uY29sIHtcclxuICBmbGV4LWJhc2lzOiAwO1xyXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XHJcbiAgZmxleC1ncm93OiAxO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcGFkZGluZy1yaWdodDogMTVweDtcclxuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbn1cclxuXHJcbi5jb2wtYXV0byB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZGVmZjMyOTtcclxufVxyXG5cclxuLmNoYXJ0LWJveCB7XHJcbiAgcGFkZGluZzogMjBweDtcclxufVxyXG5cclxuLnRydW5jYXRlIHtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbn1cclxuXHJcbi50ZXh0LXdoaXRlIHtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3RhdHVzX29mZmxpbmUge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBjb2xvcjogI2Y3MjYyNiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc3RhdHVzX29ubGluZSB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGNvbG9yOiAjMDhjYTA4O1xyXG59XHJcbnRkIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtcclxuICBib3JkZXI6IDBweCAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmctdG9wOjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2lnbmFnZS1kZXZpY2Utcm93cyB0ZCB7XHJcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcclxufVxyXG5cclxuLnNpZ25hZ2UtZGV2aWNlLXJvd3MgcCB7XHJcbiAgbWFyZ2luLWJvdHRvbTowcHg7XHJcbn1cclxuXHJcbi5wdWJsaWNhdGlvbnMge1xyXG4gIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wYWRkaW5nLXRvcC0xZW0ge1xyXG4gIHBhZGRpbmctdG9wOiAxLjFlbTtcclxufVxyXG5cclxudGV4dC1jZW50ZXJ7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wYWdpbmF0b3Ige1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5vcHRpb25Hcm91cCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5vcHRpb25DaGlsZCB7XHJcbiAgcGFkZGluZy1sZWZ0OiAzNXB4O1xyXG59XHJcblxyXG4uZGV2aWNlLWxhYmVsIHtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxuICBjb2xvcjogIzBlYTQ5ZjtcclxufVxyXG4iXX0= */\"","module.exports = \"\\r\\n \\r\\n \\r\\n

Signage Dashboard

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Units not reachable
\\r\\n {{dashboard.unreachable}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Unit Asleep
\\r\\n {{dashboard.asleep}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Units Alive
\\r\\n {{dashboard.alive}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Filter By Location\\r\\n \\r\\n ALL LOCATIONS\\r\\n \\r\\n {{building.name}}\\r\\n {{location.name}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Filter By Status\\r\\n \\r\\n ALL STATUS\\r\\n Alive\\r\\n Asleep\\r\\n Unreachable\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Filter By Device Type\\r\\n \\r\\n ALL DEVICE TYPES\\r\\n \\r\\n {{deviceType.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
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
StatusSignage PlayerLocationPublication to UsePush Messages
\\r\\n
\\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

\\r\\n {{row.device_label}}\\r\\n \\r\\n

\\r\\n

IP Address: {{row.ipAddress}}

\\r\\n

Identifier: {{row.code}}

\\r\\n

Mac: {{row.macAddress}}

\\r\\n

Serial: {{row.serialNumber}}

\\r\\n

\\r\\n \\r\\n Rotation:\\r\\n {{row.rotation}}\\r\\n \\r\\n \\r\\n {{rotation}}\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n

\\r\\n \\r\\n Resolution:\\r\\n {{row.resolution}}\\r\\n \\r\\n \\r\\n {{res.viewValue}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n

\\r\\n

\\r\\n \\r\\n Brightness:\\r\\n {{row.brightness}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n

\\r\\n \\r\\n Volume:\\r\\n {{row.volume > 0 ? row.volume : 0}}/100\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n\\r\\n

Screen: {{row.isScreenOn ? \\\"ON\\\" :\\\"OFF\\\"}}

\\r\\n
\\r\\n Cancel\\r\\n Save\\r\\n
\\r\\n
\\r\\n

{{row.locationName}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{publication.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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n View\\r\\n Reboot\\r\\n Refresh\\r\\n Screenshot\\r\\n\\r\\n
0\\\">\\r\\n
\\r\\n \\r\\n Select Channel\\r\\n \\r\\n Select Channel\\r\\n \\r\\n {{ci.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n Channel Up\\r\\n Channel Down\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n No device.\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, ViewChild, Input, AfterViewInit, Output, EventEmitter } from '@angular/core';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { SignageDashboard, SignageDashboardFilter } from 'src/app/models/dashboard.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { AlertService, DialogType, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { DashboardService } from 'src/app/services/dashboard.service';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { Location } from 'src/app/models/location.model';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { LocType } from 'src/app/models/enums';\r\nimport { SignagePublication } from 'src/app/models/signage-publication.model';\r\nimport { SignagePublicationService } from 'src/app/services/signage-publication.service';\r\nimport { Device, DevicePushMessage } from 'src/app/models/device.model';\r\nimport { DeviceService } from 'src/app/services/device.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { FormControl } from '@angular/forms';\r\nimport { pairwise, startWith } from 'rxjs/operators';\r\nimport { ApplicationSettingService } from 'src/app/services/application-setting.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { DevicePushMessageDialog } from '../push-message-dialog/push-message-dialog.component';\r\nimport { setTime } from 'ngx-bootstrap/chronos/utils/date-setters';\r\nimport { Subscription } from 'rxjs';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { ChannelInfoService } from '../../../../services/channel-info.service';\r\n\r\n@Component({\r\n selector: 'signage-dashboard-container',\r\n templateUrl: './signage-dashboard-container.component.html',\r\n styleUrls: ['./signage-dashboard-container.component.css']\r\n})\r\nexport class SignageDashboardContainerComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n loadingIndicator: boolean;\r\n show_no_results = true;\r\n private locations: Location[] = [];\r\n private rooms: Location[] = [];\r\n public dashboard: SignageDashboard;\r\n private signalRCoreconnection: signalR.HubConnection;\r\n public sgnFilter: SignageDashboardFilter;\r\n private keyword: string;\r\n private location_id: string;\r\n private status: string;\r\n locationIds: string[];\r\n allPublications: SignagePublication[];\r\n pubControl = new FormControl();\r\n scheme: string = 'http';\r\n port: string = '80';\r\n public ress = [\r\n { value: '', viewValue: '' },\r\n { value: '1024x768', viewValue: '1024 x 768' },\r\n { value: '1280x720', viewValue: '1280 x 720' },\r\n { value: '1920x1080', viewValue: '1920 x 1080' },\r\n { value: '3840x2160', viewValue: '3840 x 2160' }\r\n ];\r\n rotations = ['', 'Left', 'Right', 'Normal', 'Inverted'];\r\n public deviceTypes = [];\r\n public searchForm: FormControl = new FormControl();\r\n @Output()\r\n dateChange: EventEmitter>;\r\n deviceTypeId: string;\r\n allChannelInfos: [];\r\n channelId: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private dashboardService: DashboardService,\r\n private authService: AuthService, private configurations: ConfigurationService, private locationService: LocationService,\r\n private signagePublicationService: SignagePublicationService, private channelInfoService: ChannelInfoService, private deviceService: DeviceService, private applicationSetting: ApplicationSettingService,\r\n private domSanitizer: DomSanitizer, public dialog: MatDialog ) {\r\n\r\n //this.applicationSetting.getApplicationSettingByKey(null, 'DEVICE_ADMIN_SCHEME').subscribe(result => {\r\n // this.scheme = result.value;\r\n //}, error => { });\r\n\r\n //this.applicationSetting.getApplicationSettingByKey(null, 'DEVICE_ADMIN_PORT').subscribe(result => {\r\n // this.port = result.value;\r\n //}, error => { });\r\n }\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n console.log('On INIT');\r\n this.getFilters();\r\n this.initializeSignalR();\r\n this.applyFilters();\r\n this.getPublications();\r\n\r\n this.getChannelInfos();\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n initFilter() {\r\n if (!this.sgnFilter) {\r\n this.sgnFilter = new SignageDashboardFilter();\r\n this.sgnFilter.filter = new Filter();\r\n }\r\n \r\n this.sgnFilter.filter.filters = '(IsActive)==true,(moduleRoute)==/signagedisplay';\r\n this.sgnFilter.filter.page = 1;\r\n if (!this.sgnFilter.filter.pageSize || this.sgnFilter.filter.pageSize < 1) {\r\n this.sgnFilter.filter.pageSize = 10;\r\n }\r\n \r\n }\r\n\r\n addFilters() {\r\n if (this.keyword) {\r\n this.sgnFilter.filter.filters = this.sgnFilter.filter.filters +\r\n ',(Code | MacAddress | SerialNumber | IpAddress | locationName | device_label)@=' + this.keyword;\r\n }\r\n\r\n this.locationIds = [];\r\n\r\n if (this.location_id || this.location_id == \"0\") {\r\n if (this.location_id == \"0\") {\r\n //All locations\r\n this.locationIds = this.rooms.map(function (v) { return v.id; });\r\n } else {\r\n this.locationIds = this.getRoomsByBuildingId(this.location_id).map(function (v) { return v.id; });\r\n\r\n if (!this.locationIds || this.locationIds.length == 0) {\r\n this.locationIds = [];\r\n this.locationIds.push(this.location_id);\r\n }\r\n } \r\n\r\n //let locFilter = ',(FindDeviceWithLocationIdIncludeParent)==' + this.locationIds.join('|');\r\n let locFilter = ',(LocationId)==' + this.locationIds.join('|');\r\n this.sgnFilter.filter.filters = this.sgnFilter.filter.filters + locFilter;\r\n \r\n } else {\r\n this.sgnFilter.filter.filters = this.sgnFilter.filter.filters +\r\n ',(LocationId)==-1';\r\n }\r\n\r\n let deviceTypeIds = [];\r\n\r\n if (this.deviceTypeId || this.deviceTypeId == \"0\") {\r\n if (this.deviceTypeId == \"0\") {\r\n //All device types\r\n deviceTypeIds = this.deviceTypes.map(function (v) { return v.id; });\r\n } else {\r\n deviceTypeIds.push(this.deviceTypeId);\r\n } \r\n let deviceTypeFilter = ',(DeviceTypeId)==' + deviceTypeIds.join('|');\r\n this.sgnFilter.filter.filters = this.sgnFilter.filter.filters + deviceTypeFilter;\r\n } \r\n\r\n this.sgnFilter.status = this.status;\r\n //this.sgnFilter.institutionId = this.accountService.currentUser.institutionId;\r\n }\r\n\r\n clearFilters() {\r\n \r\n this.initFilter();\r\n this.location_id = '';\r\n this.keyword = '';\r\n this.status = '';\r\n this.deviceTypeId = '';\r\n this.addFilters();\r\n this.loadData();\r\n }\r\n\r\n applyFilters(obj?: any) {\r\n this.initFilter();\r\n\r\n if (obj) {\r\n this.sgnFilter.filter.page = obj.pageIndex + 1;\r\n this.sgnFilter.filter.pageSize = obj.pageSize;\r\n }\r\n \r\n this.addFilters();\r\n this.loadData();\r\n }\r\n\r\n openPushMessageDialog() {\r\n const dialogRef = this.dialog.open(DevicePushMessageDialog, {\r\n data: { header: \"Bulk Push Messages\", sgnFilter: this.sgnFilter },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result && result.isSuccess) {\r\n this.applyFilters();\r\n }\r\n });\r\n }\r\n\r\n bulkReboot() {\r\n this.alertService.showDialog('You are about to reboot the devices on the list. Do you wish to proceed?', DialogType.confirm, () => this.bulkRebootDeviceHelper());\r\n }\r\n\r\n bulkRebootDeviceHelper() {\r\n this.alertService.startLoadingMessage(\"Rebooting devices...\");\r\n this.deviceService.bulkReboot(this.sgnFilter)\r\n .subscribe(results => {\r\n console.log(results);\r\n this.alertService.stopLoadingMessage();\r\n if (results.isSuccess) {\r\n this.alertService.showMessage(\"Successfully rebooted all devices!\", \"\", MessageSeverity.success);\r\n } else {\r\n this.alertService.showMessage(results.message, \"\", MessageSeverity.error);\r\n }\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Reboot Error\", `An error occured while rebooting the devices.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n bulkRefresh() {\r\n this.alertService.showDialog('You are about to refresh the display of the devices on the list. Do you wish to proceed?', DialogType.confirm, () => this.bulkRefreshDeviceHelper());\r\n }\r\n\r\n bulkRefreshDeviceHelper() {\r\n this.alertService.startLoadingMessage(\"Refreshing display...\");\r\n this.deviceService.bulkRefresh(this.sgnFilter)\r\n .subscribe(results => {\r\n console.log(results);\r\n this.alertService.stopLoadingMessage();\r\n if (results.isSuccess) {\r\n this.alertService.showMessage(\"Successfully refreshed all devices!\", \"\", MessageSeverity.success);\r\n } else {\r\n this.alertService.showMessage(results.message, \"\", MessageSeverity.error);\r\n }\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Refresh Error\", `An error occured while refreshing the devices.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n initializeSignalR() {\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurations.baseUrl + \"/hub/frs\", true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"RefreshPIBDeviceList\", (deviceVM) => {\r\n console.log('Refreshing Device List');\r\n this.applyFilters();\r\n\r\n });\r\n }\r\n }\r\n\r\n buildingList: Location[];\r\n getRoomsByBuildingId(id) {\r\n let unsortedLocations = this.locations.filter(f => f.parentLocationId == id)\r\n unsortedLocations.sort((a, b) => (a.name < b.name ? -1 : 1));\r\n\r\n return unsortedLocations;\r\n }\r\n\r\n getFilters() {\r\n //get locations\r\n \r\n this.subscription.add(this.locationService.getLocationsByUser(this.accountService.currentUser.id, false)\r\n .subscribe(results => {\r\n this.locations = results;\r\n console.log('getFilters');\r\n var rooms = results.filter(f => f.locationTypeName == LocType.Room);//.filter(f => f.locationTypeName == LocType.Room);\r\n this.rooms = rooms;\r\n this.buildingList = [];\r\n var bList = {};\r\n rooms.forEach(function (loc, i, array) {\r\n if (loc.parentLocation != null && loc.parentLocation.locationTypeName == LocType.Building) {\r\n if (!bList.hasOwnProperty(loc.parentLocation.id)) {\r\n bList[loc.parentLocation.id] = loc.parentLocation;\r\n }\r\n }\r\n });\r\n\r\n var keys = Object.keys(bList);\r\n this.buildingList = keys.map(function (v) { return bList[v]; });\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.`,\r\n MessageSeverity.error);\r\n }));\r\n\r\n this.getDeviceTypes();\r\n }\r\n\r\n loadData() {\r\n this.subscription.add(this.dashboardService.getSignageDashboard(this.sgnFilter)\r\n .subscribe(results => {\r\n this.show_no_results = false;\r\n this.dashboard = results;\r\n if (!this.dashboard || !this.dashboard.pagedDevices || this.dashboard.pagedDevices.totalCount == 0) {\r\n this.show_no_results = true;\r\n } else {\r\n this.dashboard.pagedDevices.pagedData.forEach((device, ind, devices) => {\r\n device.assignedPublicationId = device.publicationId;\r\n });\r\n }\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the report.`,\r\n // MessageSeverity.error);\r\n }));\r\n\r\n }\r\n\r\n getDeviceTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n this.deviceService.getDeviceTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.deviceTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving device types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getPublications() {\r\n this.subscription.add(this.signagePublicationService.getSignagePublications(null, null)\r\n .subscribe(results => {\r\n this.allPublications = results[0];\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the publications.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getChannelInfos() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.subscription.add(this.channelInfoService.getChannelInfosByFilter(filter)\r\n .subscribe(results => {\r\n this.allChannelInfos = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the publications.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n changePublication(row: any) {\r\n if (row.assignedPublicationId != row.publicationId) {\r\n this.alertService.showDialog('You are about to change the publication of \\\"' + row.device_label + '\\\". Do you wish to proceed?', DialogType.confirm, () => this.updatePublicationHelper(row),\r\n () => { row.assignedPublicationId = row.publicationId });\r\n }\r\n }\r\n\r\n updatePublicationHelper(row: any) {\r\n row.publicationId = row.assignedPublicationId;\r\n this.alertService.startLoadingMessage(\"Updating...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.deviceService.updateDevice(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Successfully changed!\", \"\", MessageSeverity.success);\r\n this.loadingIndicator = false;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Update Error\", `An error occured while updating the device.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n reboot(row: any) {\r\n this.alertService.showDialog('You are about to reboot \\\"' + row.device_label + '\\\". Do you wish to proceed?', DialogType.confirm, () => this.rebootDeviceHelper(row));\r\n }\r\n\r\n\r\n rebootDeviceHelper(row: any) {\r\n\r\n this.alertService.startLoadingMessage(\"Rebooting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.deviceService.reboot(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage(\"Success\", `\\\"${row.device_label}\\\" was rebooted`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while trying to reboot the device.`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n channelup(row: any) {\r\n this.alertService.showDialog('You are about to do channel up \\\"' + row.device_label + '\\\". Do you wish to proceed?', DialogType.confirm, () => this.channelupDeviceHelper(row));\r\n }\r\n\r\n\r\n channelupDeviceHelper(row: any) {\r\n\r\n this.alertService.startLoadingMessage(\"Channel up...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.deviceService.channelup(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage(\"Success\", `\\\"${row.device_label}\\\" was channel up`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while trying to channel up the device.`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n changechannel(row: any) {\r\n if (!row.channelId) return;\r\n this.alertService.showDialog('You are about to change the channel \\\"' + row.device_label + '\\\". Do you wish to proceed?', DialogType.confirm, () => this.changechannelDeviceHelper(row));\r\n }\r\n\r\n\r\n changechannelDeviceHelper(row: any) {\r\n\r\n this.alertService.startLoadingMessage(\"Changing the channel...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.deviceService.changechannel(row.id, row.channelId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage(\"Success\", `\\\"${row.device_label}\\\" channel was changed`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while trying to change the channel.`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n channeldown(row: any) {\r\n this.alertService.showDialog('You are about to do channel down \\\"' + row.device_label + '\\\". Do you wish to proceed?', DialogType.confirm, () => this.channeldownDeviceHelper(row));\r\n }\r\n\r\n\r\n channeldownDeviceHelper(row: any) {\r\n\r\n this.alertService.startLoadingMessage(\"Channel down...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.deviceService.channeldown(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage(\"Success\", `\\\"${row.device_label}\\\" was channel down`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while trying to channel down of the device.`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n screenon(row: any) {\r\n this.alertService.showDialog('You are about to do screen on \\\"' + row.device_label + '\\\". Do you wish to proceed?', DialogType.confirm, () => this.screenonDeviceHelper(row));\r\n }\r\n\r\n\r\n screenonDeviceHelper(row: any) {\r\n\r\n this.alertService.startLoadingMessage(\"Screen on...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.deviceService.screenon(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage(\"Success\", `\\\"${row.device_label}\\\" was screen on`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while trying to screen on of the device.`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n screenoff(row: any) {\r\n this.alertService.showDialog('You are about to do screen off \\\"' + row.device_label + '\\\". Do you wish to proceed?', DialogType.confirm, () => this.screenoffDeviceHelper(row));\r\n }\r\n\r\n\r\n screenoffDeviceHelper(row: any) {\r\n\r\n this.alertService.startLoadingMessage(\"Screen off...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.deviceService.screenoff(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage(\"Success\", `\\\"${row.device_label}\\\" was screen off`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while trying to screen off of the device.`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n refresh(row: any) {\r\n this.alertService.showDialog('You are about to refresh \\\"' + row.device_label + '\\\". Do you wish to proceed?', DialogType.confirm, () => this.refreshDeviceHelper(row));\r\n }\r\n\r\n\r\n refreshDeviceHelper(row: any) {\r\n\r\n this.alertService.startLoadingMessage(\"Refreshing...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.deviceService.refresh(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage(\"Success\", `\\\"${row.device_label}\\\" was refreshed`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while trying to refresh the device.`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n pushMessages(row: any) {\r\n row.publicationId = row.assignedPublicationId;\r\n this.alertService.startLoadingMessage(\"Pushing messages...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.deviceService.updateDevice(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Pushed!\", \"\", MessageSeverity.success);\r\n this.loadingIndicator = false;\r\n this.applyFilters();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Update Error\", `An error occured while pushing the messages.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n editDevice(device) {\r\n device.isEdit = true;\r\n if (!device.orig) {\r\n //device.orig = new Device();\r\n device.orig = { rotation: device.rotation, resolution: device.resolution, brightness: device.brightness, volume: device.volume };\r\n }\r\n }\r\n\r\n cancelEditDevice(device) {\r\n device.isEdit = false;\r\n if (device.orig) {\r\n device.rotation = device.orig.rotation;\r\n device.resolution = device.orig.resolution;\r\n device.brightness = device.orig.brightness;\r\n device.volume = device.orig.volume;\r\n }\r\n }\r\n\r\n saveDevice(row) {\r\n this.alertService.startLoadingMessage(\"Updating...\");\r\n this.loadingIndicator = true;\r\n this.subscription.add(this.deviceService.updateDevice(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Successfully changed!\", \"\", MessageSeverity.success);\r\n this.loadingIndicator = false;\r\n row.isEdit = false;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Update Error\", `An error occured while updating the device.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n sanitize(row) {\r\n //let url = (row.scheme ? row.scheme : 'http') + '://' + row.ipAddress + ':' + (row.port ? row.port : '80') + '/admin';\r\n let url = (row.scheme ? row.scheme : 'http') + '://' + row.ipAddress;\r\n if (row.port) {\r\n url = url + ':' + row.port;\r\n }\r\n\r\n url = url + '/admin';\r\n\r\n return this.domSanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n screenshot(row) {\r\n //let url = (row.scheme ? row.scheme : 'http') + '://' + row.ipAddress + ':' + (row.port ? row.port : '80') + '/admin';\r\n let url = (row.scheme ? row.scheme : 'http') + '://' + row.ipAddress;\r\n if (row.port) {\r\n url = url + ':' + row.port;\r\n }\r\n\r\n url = url + '/admin/download/SSimg';\r\n\r\n return this.domSanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n get canPushMessage() {\r\n return this.accountService.userHasPermission(Permission.pushmessageSignageControlPermission);\r\n }\r\n\r\n get canPreview() {\r\n return this.accountService.userHasPermission(Permission.previewSignageControlPermission); \r\n }\r\n\r\n get canReboot() {\r\n return this.accountService.userHasPermission(Permission.rebootSignageControlPermission);\r\n }\r\n\r\n get canRefresh() {\r\n return this.accountService.userHasPermission(Permission.refreshSignageControlPermission);\r\n }\r\n\r\n get canScreenshot() {\r\n return this.accountService.userHasPermission(Permission.screenshotSignageControlPermission);\r\n }\r\n\r\n get canChangePublication() {\r\n return this.accountService.userHasPermission(Permission.publicationSignageControlPermission);\r\n }\r\n\r\n get canChangeDeviceInformation() {\r\n return this.accountService.userHasPermission(Permission.deviceinfoSignageControlPermission);\r\n }\r\n\r\n}\r\n\r\n\r\n","module.exports = \".mat-expansion-panel-header-description {\\r\\n justify-content: space-between;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\nmat-form-field {\\r\\n margin-right: 12px;\\r\\n}\\r\\n\\r\\n.upcoming-event-title div {\\r\\n width: 50%;\\r\\n float: left;\\r\\n font-size: medium;\\r\\n}\\r\\n\\r\\n.upcoming-event-title div mat-icon {\\r\\n vertical-align: bottom;\\r\\n }\\r\\n\\r\\n::ng-deep .mat-card-header-text{\\r\\n width: 100% !important;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.mat-card {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-expansion-panel-body {\\r\\n min-height: 140px;\\r\\n}\\r\\n\\r\\n.mat-content {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvdXBjb21pbmctZXZlbnRzL3VwY29taW5nLWV2ZW50cy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsaUJBQWlCO0FBQ25COztBQUVFO0lBQ0Usc0JBQXNCO0VBQ3hCOztBQUVGO0VBQ0Usc0JBQXNCO0VBQ3RCLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFJQTtFQUNFLGNBQWM7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2Rhc2hib2FyZC91cGNvbWluZy1ldmVudHMvdXBjb21pbmctZXZlbnRzLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG5tYXQtZm9ybS1maWVsZCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xyXG59XHJcblxyXG4udXBjb21pbmctZXZlbnQtdGl0bGUgZGl2IHtcclxuICB3aWR0aDogNTAlO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIGZvbnQtc2l6ZTogbWVkaXVtO1xyXG59XHJcblxyXG4gIC51cGNvbWluZy1ldmVudC10aXRsZSBkaXYgbWF0LWljb24ge1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuICB9XHJcblxyXG46Om5nLWRlZXAgLm1hdC1jYXJkLWhlYWRlci10ZXh0e1xyXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXQtY2FyZCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWJvZHkge1xyXG4gIG1pbi1oZWlnaHQ6IDE0MHB4O1xyXG59XHJcblxyXG5cclxuXHJcbi5tYXQtY29udGVudCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n

My Upcoming Events

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n calendar_today\\r\\n {{event.startDateTime | date: 'longDate'}}\\r\\n
\\r\\n
\\r\\n access_time\\r\\n {{event.startDateTime | date:'shortTime'}}\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n {{event.locationName}}\\r\\n

\\r\\n {{event.longDescription}}\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n

\\r\\n You have no events.\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, ViewChild, Input } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { DashboardService } from \"../../../services/dashboard.service\";\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Utilities } from \"../../../services/utilities\";\r\nimport { CalendarFilter, Reservation } from 'src/app/models/reservation.model';\r\n\r\n\r\n@Component({\r\n selector: 'upcoming-events',\r\n templateUrl: './upcoming-events.component.html',\r\n styleUrls: ['./upcoming-events.component.css']\r\n})\r\nexport class UpcomingEventsComponent implements OnInit, OnDestroy {\r\n events: Reservation[] = [];\r\n loadingIndicator: boolean;\r\n show_no_events = true;\r\n\r\n dataLoadingConsecutiveFailurs = 0;\r\n dataLoadingSubscription: any;\r\n\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n @Input()\r\n verticalScrollbar: boolean = false;\r\n\r\n\r\n @ViewChild('statusHeaderTemplate')\r\n statusHeaderTemplate: TemplateRef;\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n @ViewChild('dateTemplate')\r\n dateTemplate: TemplateRef;\r\n\r\n @ViewChild('contentHeaderTemplate')\r\n contentHeaderTemplate: TemplateRef;\r\n\r\n @ViewChild('contenBodytTemplate')\r\n contenBodytTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private dashboardService: DashboardService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.initDataLoading();\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this.dataLoadingSubscription)\r\n this.dataLoadingSubscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n initDataLoading() {\r\n\r\n var filter = new CalendarFilter();\r\n filter.start = Utilities.getCurrentDate(true);\r\n filter.bookedById = parseInt(this.accountService.currentUser.id);\r\n filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.dataLoadingSubscription = this.dashboardService.getUpcomingEvents(5, filter)\r\n .subscribe(events => {\r\n this.loadingIndicator = false;\r\n this.dataLoadingConsecutiveFailurs = 0;\r\n\r\n this.events = events;\r\n if (events && events.length > 0) {\r\n this.show_no_events = false;\r\n }\r\n },\r\n error => {\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showMessage(\"Load Error\", \"Loading upcoming events from the server failed!\", MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n\r\n if (this.dataLoadingConsecutiveFailurs++ < 5)\r\n setTimeout(() => this.initDataLoading(), 5000);\r\n else\r\n this.alertService.showStickyMessage(\"Load Error\", \"Loading upcoming events from the server failed!\", MessageSeverity.error);\r\n\r\n });\r\n }\r\n \r\n\r\n\r\n get canManageNotifications() {\r\n return this.accountService.userHasPermission(Permission.manageRolesPermission); //Todo: Consider creating separate permission for notifications\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n

{{'pageHeader.DeviceManager' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'settings.header.UnknownDevice' | translate}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

{{'settings.header.ApproveDevice' | translate}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from \"../../directives/bootstrap-tab.directive\";\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Permission } from '../../models/permission.model';\r\nimport { DevicesManagementComponent } from './unknown-device/devices-management.component';\r\n\r\n\r\n@Component({\r\n selector: 'device-manager',\r\n templateUrl: './device-manager.component.html',\r\n styleUrls: ['./device-manager.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class DeviceManagerComponent implements OnInit, OnDestroy {\r\n\r\n\r\n @ViewChild('deviceManagement')\r\n deviceManagement: DevicesManagementComponent;\r\n\r\n\r\n isUnknownDevice = true;\r\n isApproveDevice = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly unknownDeviceTab = \"unknownDevice\";\r\n readonly approveDeviceTab = \"approveDevice\";\r\n\r\n @ViewChild(\"tab\")\r\n tab: BootstrapTabDirective;\r\n\r\n\r\n constructor(private route: ActivatedRoute, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n showContent(anchor: string) {\r\n if ((this.isFragmentEquals(anchor, this.unknownDeviceTab) && !this.canViewDevices) ||\r\n (this.isFragmentEquals(anchor, this.approveDeviceTab) && !this.canViewDevices))\r\n return;\r\n\r\n this.tab.show(`#${anchor || this.unknownDeviceTab}Tab`);\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null)\r\n fragment1 = \"\";\r\n\r\n if (fragment2 == null)\r\n fragment2 = \"\";\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n let activeTab = event.target.hash.split(\"#\", 2).pop();\r\n\r\n this.isUnknownDevice = activeTab == this.unknownDeviceTab;\r\n this.isApproveDevice = activeTab == this.approveDeviceTab;\r\n this.deviceManagement.isApproval = this.isApproveDevice;\r\n \r\n }\r\n\r\n setIsApproval(isApproval: boolean) {\r\n this.deviceManagement.isApproval = this.isApproveDevice;\r\n }\r\n\r\n get canViewDevices() {\r\n return this.accountService.userHasPermission(Permission.viewDevicesPermission);\r\n }\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kZXZpY2UtbWFuYWdlci9kZXZpY2UtbWFuYWdlci5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsYUFBYTtBQUNmIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9kZXZpY2UtbWFuYWdlci9kZXZpY2UtbWFuYWdlci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2lkZS1tZW51IHtcclxuICBtaW4td2lkdGg6IDEyMHB4O1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbltoaWRkZW5dIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcbiJdfQ== */\"","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: 11px !important;\\r\\n font-weight: 400 !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kZXZpY2UtbWFuYWdlci91bmtub3duLWRldmljZS9kZXZpY2UtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBR0E7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLDBCQUEwQjtFQUMxQiwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2RldmljZS1tYW5hZ2VyL3Vua25vd24tZGV2aWNlL2RldmljZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5RXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n --\\r\\n \\r\\n {{module.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 http\\r\\n https\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{publication.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{institution.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{location.name}} - {{location.description}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{location.ancestor.alias}} - {{location.alias}}
\\r\\n
{{location.alias}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n --\\r\\n {{v.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n --\\r\\n \\r\\n {{menu.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{v.label}}\\r\\n \\r\\n {{'devices.editor.DisplayTypeRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Resolution\\r\\n \\r\\n \\r\\n {{res.viewValue}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{v}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Enter value from 0-10\\r\\n \\r\\n \\r\\n \\r\\n Enter value from 0-100\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Enter value from 0-100\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n EMS\\r\\n \\r\\n \\r\\n {{ems.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Media Group\\r\\n \\r\\n \\r\\n {{media.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n EMS\\r\\n \\r\\n \\r\\n {{ems.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Media Group\\r\\n \\r\\n \\r\\n {{media.label}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n On\\r\\n Off\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Device Type\\r\\n \\r\\n \\r\\n {{deviceType.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 \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { DeviceService } from '../../../services/device.service';\r\nimport { Device } from '../../../models/device.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Location } from '../../../models/location.model';\r\nimport { Institution } from '../../../models/institution.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { LocType } from 'src/app/models/enums';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { SignagePublicationService } from '../../../services/signage-publication.service';\r\nimport { SignagePublication } from '../../../models/signage-publication.model';\r\nimport { ModuleService } from 'src/app/services/module.service';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { Module } from 'src/app/models/module.model';\r\nimport { ModulePath } from 'src/app/helpers/enums';\r\nimport { EmsService } from '../../../services/ems.service';\r\nimport { MediaService } from 'src/app/services/media.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\n\r\n@Component({\r\n selector: 'device-editor',\r\n templateUrl: './device-editor.component.html',\r\n styleUrls: ['./device-editor.component.css']\r\n})\r\nexport class DeviceEditorComponent {\r\n private subscription: Subscription = new Subscription();\r\n private isEditMode = false;\r\n private isNewDevice = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingDeviceCode: string;\r\n private deviceEdit: Device = new Device();\r\n private currentModule: Module;\r\n private allLocations: any[] = [];\r\n private allInstitutions: Institution[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public searchForm: FormControl = new FormControl();\r\n public locationSearchForm: FormControl = new FormControl();\r\n fcLocations = new FormControl('', [Validators.required]);\r\n fcInstitution = new FormControl('', [Validators.required]);\r\n fcModule = new FormControl('', []);\r\n fcVolume = new FormControl('', [Validators.max(100), Validators.min(0)]);\r\n fcVideoVolume = new FormControl('', [Validators.max(100), Validators.min(0)]);\r\n fcBrightness = new FormControl('', [Validators.max(10), Validators.min(0)]);\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('locations')\r\n private locations;\r\n\r\n @ViewChild('locationsSelector')\r\n private locationsSelector;\r\n\r\n @ViewChild('institutions')\r\n private institutions;\r\n\r\n @ViewChild('institutionsSelector')\r\n private institutionsSelector;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n isApproval: boolean;\r\n allPublications: SignagePublication[];\r\n public modules = [];\r\n public deviceTypes = [];\r\n private filteredLocations: any[] = [];\r\n private display_types: any[] = [];\r\n emses: any[] = [];\r\n medias: any[] = [];\r\n public ress = [\r\n { value: '', viewValue: '' },\r\n { value: '1024x768', viewValue: '1024 x 768' },\r\n { value: '1280x720', viewValue: '1280 x 720' },\r\n { value: '1920x1080', viewValue: '1920 x 1080' },\r\n { value: '3840x2160', viewValue: '3840 x 2160' }\r\n ];\r\n rotations = ['', 'Left', 'Right', 'Normal', 'Inverted'];\r\n //public modules = [\r\n // { name: 'Meeting Room Display', path: ModulePath.MeetingRoom },\r\n // { name: 'Signage Display', path: ModulePath.SignageDisplay }\r\n //];\r\n constructor(private alertService: AlertService, private accountService: AccountService, private deviceService: DeviceService, private locationService: LocationService, signagePublicationService: SignagePublicationService,\r\n private moduleService: ModuleService, private emsService: EmsService, private mediaService: MediaService,\r\n\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.device) != typeof (undefined)) {\r\n this.getModules();\r\n this.getDeviceTypes();\r\n if (data.device.id) {\r\n this.isApproval = data.isApproval;\r\n this.editDevice(data.device, data.locations, data.institutions);\r\n } else {\r\n this.newDevice(data.locations, data.institutions);\r\n }\r\n }\r\n\r\n //this.getEmses();\r\n //this.fcInstitution.valueChanges.subscribe(value => {\r\n // this.changeInstitutions(value);\r\n //});\r\n\r\n //signagePublicationService.getSignagePublicationByInstitutionId(this.accountService.currentUser.institutionId)\r\n // .subscribe(results => {\r\n\r\n // this.allPublications = results[0];\r\n\r\n // },\r\n // error => {\r\n\r\n // });\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n //private approve() {\r\n // this.isSaving = true;\r\n // this.alertService.startLoadingMessage(\"Processing approval...\");\r\n // this.deviceEdit.isApproved = true;\r\n // this.deviceService.updateDevice(this.deviceEdit).subscribe(device => this.saveSuccessHelper(deviceEdit), error => this.saveFailedHelper(error));\r\n //}\r\n\r\n private save(isApproval?: boolean) {\r\n if (isApproval || (this.form.form.valid)) {\r\n this.isSaving = true;\r\n if (isApproval) {\r\n this.deviceEdit.isApproved = true;\r\n this.alertService.startLoadingMessage(\"Processing approval...\");\r\n } else {\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n }\r\n\r\n //if (this.allLocations) {\r\n // let selectedLocation = this.allLocations.filter(e => e.id == this.deviceEdit.locationId);\r\n // if (selectedLocation && selectedLocation.length > 0) {\r\n // this.deviceEdit.locationName = selectedLocation[0].name;\r\n // }\r\n //}\r\n\r\n if (this.isNewDevice) {\r\n this.deviceEdit.isApproved = false;\r\n this.deviceService.newDevice(this.deviceEdit).subscribe(device => this.saveSuccessHelper(device), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deviceService.updateDevice(this.deviceEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(device?: Device) {\r\n if (device)\r\n Object.assign(this.deviceEdit, device);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewDevice)\r\n this.alertService.showMessage(\"Success\", `Device \\\"${this.deviceEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to device \\\"${this.deviceEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.deviceEdit = new Device();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewDevice && this.accountService.currentUser.devices.some(r => r == this.editingDeviceCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.deviceEdit = new Device();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newDevice(allLocations: Location[], allInstitutions: Institution[]) {\r\n this.isEditMode = true;\r\n this.isNewDevice = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDeviceCode = null;\r\n //this.allLocations = allLocations;\r\n //this.allInstitutions = allInstitutions;\r\n //this.allLocations = allLocations;\r\n //this.buildingList = allLocations.filter(f => f.locationTypeName == LocType.Building);\r\n this.allInstitutions = allInstitutions;\r\n this.selectedValues = {};\r\n this.deviceEdit = new Device();\r\n this.deviceEdit.startDate = new Date();\r\n return this.deviceEdit;\r\n }\r\n\r\n editDevice(device: Device, allLocations: Location[], allInstitutions: Institution[]) {\r\n this.isEditMode = true;\r\n //this.allLocations = allLocations;\r\n //this.buildingList = allLocations.filter(f => f.locationTypeName == LocType.Building);\r\n this.allInstitutions = allInstitutions;\r\n\r\n if (device) {\r\n this.isNewDevice = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDeviceCode = device.code;\r\n this.selectedValues = {};\r\n //this.setLocations(device, allLocations);\r\n //this.setInstitutions(device, allInstitutions);\r\n this.deviceEdit = new Device();\r\n Object.assign(this.deviceEdit, device);\r\n return this.deviceEdit;\r\n }\r\n else {\r\n return this.newDevice(allLocations, allInstitutions);\r\n }\r\n }\r\n\r\n buildingList: Location[];\r\n getRoomsByBuildingId(id) {\r\n let unsortedLocations = this.allLocations.filter(f => f.parentLocationId == id)\r\n unsortedLocations.sort((a, b) => (a.name < b.name ? -1 : 1));\r\n\r\n return unsortedLocations;\r\n }\r\n private setLocations(device: Device, allLocations?: Location[]) {\r\n\r\n //this.allLocations = allLocations ? [...allLocations] : [];\r\n\r\n //if (allLocations == null || this.allLocations.length != allLocations.length)\r\n // setTimeout(() => this.locationsSelector.refresh());\r\n\r\n\r\n }\r\n\r\n private setInstitutions(device: Device, allInstitutions?: Institution[]) {\r\n\r\n this.allInstitutions = allInstitutions ? [...allInstitutions] : [];\r\n\r\n if (allInstitutions == null || this.allInstitutions.length != allInstitutions.length)\r\n setTimeout(() => this.institutionsSelector.refresh());\r\n\r\n }\r\n\r\n setIsApproval(isApproval: boolean) {\r\n this.isApproval = isApproval;\r\n }\r\n\r\n changePublications(id) {\r\n this.deviceEdit.publicationId = id;\r\n }\r\n\r\n changeInstitutions(id) {\r\n if (!id) id = this.accountService.currentUser.institutionId;\r\n\r\n if (id) {\r\n let selectedInstitution = this.allInstitutions.filter(e => e.id == id);\r\n if (selectedInstitution && selectedInstitution.length > 0) {\r\n this.deviceEdit.institutionName = selectedInstitution[0].name;\r\n }\r\n\r\n if (this.currentModule.moduleParameters) {\r\n let selectedModule = this.currentModule.moduleParameters.filter(e => e.name == 'LOCATION_API');\r\n let uri = '/api/location/locations/list';\r\n if (selectedModule && selectedModule.length > 0) {\r\n uri = selectedModule[0].url;\r\n }\r\n uri += '?institutionId=' + id;\r\n this.getLocations(true, uri, false, null, true);\r\n }\r\n //this.locationService.getLocationsByInstitutionId(id)\r\n // .subscribe(results => {\r\n // this.allLocations = results;\r\n // var rooms = results.filter(f => f.locationTypeName == LocType.Room);\r\n // this.buildingList = [];\r\n // var bList = {};\r\n // rooms.forEach(function (loc, i, array) {\r\n // if (loc.parentLocation != null && loc.parentLocation.locationTypeName == LocType.Building) {\r\n // if (!bList.hasOwnProperty(loc.parentLocation.id)) {\r\n // bList[loc.parentLocation.id] = loc.parentLocation;\r\n // }\r\n // }\r\n // });\r\n\r\n // var keys = Object.keys(bList);\r\n\r\n // this.buildingList = keys.map(function (v) { return bList[v]; });\r\n // },\r\n // error => {\r\n // this.alertService.resetStickyMessage();\r\n // this.alertService.showStickyMessage(\"getLocationsByInstitutionId failed\", \"An error occured while trying to get locations from the server\", MessageSeverity.error);\r\n // });\r\n }\r\n }\r\n\r\n filterLocations() {\r\n this.filteredLocations = this.deviceEdit.module_path_value == ModulePath.NurseCheckinCounter ? this.allLocations.filter(e => e.ward) : this.allLocations.filter(e => !e.ward);\r\n }\r\n\r\n getLocations(isShowMessage: boolean, url?: string, isPost?: boolean, params?: any, isFRS?: boolean) {\r\n console.log(\"LOCATION URL\", url);\r\n\r\n\r\n if (isShowMessage) {\r\n this.alertService.startLoadingMessage(\"Loading locations...\");\r\n }\r\n this.subscription.add(this.deviceService.getDataByUrl(url, isPost, params)\r\n .subscribe(results => {\r\n if (!isFRS) {\r\n this.allLocations = results.data;\r\n if (this.allLocations) {\r\n this.filterLocations();\r\n }\r\n } else {\r\n this.allLocations = results;\r\n var rooms = results.filter(f => f.locationTypeName == LocType.Room);\r\n this.buildingList = [];\r\n var bList = {};\r\n rooms.forEach(function (loc, i, array) {\r\n if (loc.parentLocation != null && loc.parentLocation.locationTypeName == LocType.Building) {\r\n if (!bList.hasOwnProperty(loc.parentLocation.id)) {\r\n bList[loc.parentLocation.id] = loc.parentLocation;\r\n }\r\n }\r\n });\r\n\r\n var keys = Object.keys(bList);\r\n this.buildingList = keys.map(function (v) { return bList[v]; });\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n onModuleChange(moduleId) {\r\n this.allLocations = [];\r\n //let uri = '';\r\n\r\n if (moduleId) {\r\n let selectedModule = this.modules.filter(e => e.id == moduleId);\r\n if (selectedModule && selectedModule.length > 0) {\r\n this.deviceEdit.module_path_value = selectedModule[0].route;\r\n this.currentModule = selectedModule[0];\r\n //uri = selectedModule[0].uri;\r\n\r\n }\r\n }\r\n\r\n this.getDropdownValuesFromUri();\r\n }\r\n\r\n getModules() {\r\n this.moduleService.getModules()\r\n .subscribe(results => {\r\n this.modules = results;\r\n this.onModuleChange(this.deviceEdit.moduleId);\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving modules.\\r\\n\"`,\r\n MessageSeverity.error);\r\n\r\n this.onModuleChange(null);\r\n });\r\n }\r\n\r\n getDeviceTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n this.deviceService.getDeviceTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.deviceTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving device types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getDropdownValuesFromUri() {\r\n if (this.deviceEdit.module_path_value == ModulePath.PibDisplay\r\n || this.deviceEdit.module_path_value == ModulePath.NurseCheckinCounter\r\n || this.deviceEdit.module_path_value == ModulePath.PatientCommunicatorDisplay\r\n || this.deviceEdit.module_path_value == ModulePath.Epaper) {\r\n //this.deviceEdit.isWard = this.deviceEdit.module_path_value == \"/nursecheckincounter\";\r\n //get hospital id first\r\n if (this.currentModule.moduleParameters) {\r\n let idHospital = this.currentModule.moduleParameters.filter(e => e.name == 'HospitalCode');\r\n if (idHospital && idHospital.length > 0) {\r\n let hospitalId = idHospital[0].url;\r\n let selectedModule = this.currentModule.moduleParameters.filter(e => e.name == 'LOCATION_API');\r\n let uri = '/api/location/locations/list';\r\n if (selectedModule && selectedModule.length > 0) {\r\n let uri = selectedModule[0].url;\r\n //this.getLocations(true, uri);\r\n }\r\n\r\n this.getLocations(true, uri, true, { hospitalCode: hospitalId, query: { paged: false, activeOnly: true } });\r\n }\r\n\r\n let displayTypes = this.currentModule.moduleParameters.filter(e => e.name == 'DISPLAY_TYPES');\r\n if (displayTypes && displayTypes.length > 0) {\r\n let uri = displayTypes[0].url;\r\n this.getDisplayTypes(uri);\r\n }\r\n\r\n let emses = this.currentModule.moduleParameters.filter(e => e.name == 'EMS_API');\r\n if (emses && emses.length > 0) {\r\n let uri = emses[0].url;\r\n this.getEmses(uri);\r\n }\r\n\r\n let medias = this.currentModule.moduleParameters.filter(e => e.name == 'MEDIA_API');\r\n if (medias && medias.length > 0) {\r\n let uri = medias[0].url;\r\n this.getMedias(uri);\r\n }\r\n }\r\n\r\n if (this.deviceEdit.module_path_value == ModulePath.PatientCommunicatorDisplay) {\r\n let selectedModule = this.currentModule.moduleParameters.filter(e => e.name == 'MENU_API');\r\n if (selectedModule && selectedModule.length > 0) {\r\n let uri = selectedModule[0].url;\r\n this.getMenus(uri);\r\n }\r\n } else if (this.deviceEdit.module_path_value == ModulePath.PibDisplay) {\r\n if (this.currentModule.moduleParameters) {\r\n let selectedModule = this.currentModule.moduleParameters.filter(e => e.name == 'TEMPLATE_API');\r\n if (selectedModule && selectedModule.length > 0) {\r\n let uri = selectedModule[0].url;\r\n this.getTemplates(uri);\r\n }\r\n }\r\n }\r\n } else {\r\n //add FRS modules\r\n this.medias = [];\r\n this.emses = [];\r\n if (!this.currentModule) this.currentModule = new Module();\r\n if (!this.currentModule.moduleParameters) this.currentModule.moduleParameters = [];\r\n\r\n let selectedModule = this.currentModule.moduleParameters.filter(e => e.name == 'INSTITUTION_API');\r\n let institutionsUri = '/api/simpleresult/institutions/list'\r\n if (selectedModule && selectedModule.length > 0) {\r\n institutionsUri = selectedModule[0].url;\r\n }\r\n this.getInstitutions(institutionsUri);\r\n\r\n\r\n if (this.deviceEdit.module_path_value == ModulePath.SignageDisplay) {\r\n if (this.currentModule.moduleParameters) {\r\n let selectedModule = this.currentModule.moduleParameters.filter(e => e.name == 'SIGNAGE_PUBLICATION_API');\r\n let publicationUri = '/api/simpleresult/signagepublications/list';\r\n if (selectedModule && selectedModule.length > 0) {\r\n publicationUri = selectedModule[0].url;\r\n\r\n }\r\n this.getPublications(publicationUri);\r\n }\r\n }\r\n\r\n let emses = this.currentModule.moduleParameters.filter(e => e.name == 'EMS_API');\r\n let emsUri = '/api/ems/emses/list'\r\n if (emses && emses.length > 0) {\r\n emsUri = emses[0].url\r\n\r\n }\r\n emsUri += '?institutionId=' + this.accountService.currentUser.institutionId;\r\n this.getEmses(emsUri);\r\n\r\n let medias = this.currentModule.moduleParameters.filter(e => e.name == 'MEDIA_API');\r\n let mediaUri = '/api/media/medias/list';\r\n if (medias && medias.length > 0) {\r\n mediaUri = medias[0].url;\r\n }\r\n this.getMedias(mediaUri);\r\n\r\n //this.applicationSetting.getApplicationSettingByKey(null, 'URL_FRS_SIGNAGE_PUBLICATION_API').subscribe(result => {\r\n // uri = uri + result.value;\r\n // this.getSignagePublications(uri);\r\n //}, error => { });\r\n\r\n\r\n }\r\n }\r\n\r\n menus: any[] = [];\r\n getMenus(url?: string) {\r\n this.subscription.add(this.deviceService.getDataByUrl(url)\r\n .subscribe(results => {\r\n this.menus = results;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving menu records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n templates: any[] = [];\r\n getTemplates(url?: string) {\r\n this.subscription.add(this.deviceService.getDataByUrl(url)\r\n .subscribe(results => {\r\n this.templates = results;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving templates.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getDataByUrl(component, url?: string) {\r\n this.subscription.add(this.deviceService.getDataByUrl(url)\r\n .subscribe(results => {\r\n component = results;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the data.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getPublications(url?: string) {\r\n this.subscription.add(this.deviceService.getDataByUrl(url)\r\n .subscribe(results => {\r\n this.allPublications = results;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the publications.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getInstitutions(url?: string) {\r\n this.subscription.add(this.deviceService.getDataByUrl(url)\r\n .subscribe(results => {\r\n this.allInstitutions = results;\r\n this.changeInstitutions(this.deviceEdit.institutionId);\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the institutions.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getDisplayTypes(url) {\r\n this.subscription.add(this.deviceService.getDataByUrl(url)\r\n .subscribe(results => {\r\n this.display_types = results;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving display types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n getEmses(url) {\r\n let promise: Observable;\r\n if (url) {\r\n promise = this.deviceService.getDataByUrl(url);\r\n } else {\r\n promise = this.emsService.getEmses(null, null, this.accountService.currentUser.institutionId)\r\n }\r\n\r\n this.subscription.add(promise\r\n .subscribe(results => {\r\n this.emses = results;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving EMS records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getMedias(url) {\r\n let promise: Observable;\r\n if (url) {\r\n promise = this.deviceService.getDataByUrl(url);\r\n } else {\r\n promise = this.mediaService.getMedias(null, null, this.accountService.currentUser.institutionId)\r\n }\r\n\r\n this.subscription.add(promise\r\n .subscribe(results => {\r\n this.medias = results;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving Media records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n get canManageDevices() {\r\n return this.accountService.userHasPermission(Permission.manageDevicesPermission)\r\n }\r\n\r\n get canApproveDevices() {\r\n return this.accountService.userHasPermission(Permission.approveDevicesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.link{\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n.status_offline {\\r\\n font-size: 20px;\\r\\n color: #f72626 !important;\\r\\n}\\r\\n\\r\\n.status_online {\\r\\n font-size: 20px;\\r\\n color: #08ca08;\\r\\n}\\r\\n\\r\\n.status_sleep {\\r\\n font-size: 20px;\\r\\n color: #f1b224;\\r\\n}\\r\\n\\r\\n.datatable-header {\\r\\n min-width: 100%;\\r\\n}\\r\\n\\r\\n.datatable-body {\\r\\n min-width: 100%;\\r\\n}\\r\\n\\r\\n.datatable-row-detail {\\r\\n width: 100vw;\\r\\n} \\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kZXZpY2UtbWFuYWdlci91bmtub3duLWRldmljZS9kZXZpY2VzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLFlBQVk7QUFDZCIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZGV2aWNlLW1hbmFnZXIvdW5rbm93bi1kZXZpY2UvZGV2aWNlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubGlua3tcclxuICBjdXJzb3I6cG9pbnRlcjtcclxufVxyXG5cclxuLnN0YXR1c19vZmZsaW5lIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgY29sb3I6ICNmNzI2MjYgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnN0YXR1c19vbmxpbmUge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBjb2xvcjogIzA4Y2EwODtcclxufVxyXG5cclxuLnN0YXR1c19zbGVlcCB7XHJcbiAgZm9udC1zaXplOiAyMHB4O1xyXG4gIGNvbG9yOiAjZjFiMjI0O1xyXG59XHJcblxyXG4uZGF0YXRhYmxlLWhlYWRlciB7XHJcbiAgbWluLXdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZGF0YXRhYmxlLWJvZHkge1xyXG4gIG1pbi13aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmRhdGF0YWJsZS1yb3ctZGV0YWlsIHtcclxuICB3aWR0aDogMTAwdnc7XHJcbn0gXHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Unknown Devices

\\r\\n

Devices for Approval

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n\\r\\n \\r\\n \\r\\n All Status\\r\\n Approved\\r\\n Pending\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n Add To Approve List\\r\\n Remove From Approve List\\r\\n\\r\\n {{'devices.management.Edit' | translate}}\\r\\n \\r\\n \\r\\n {{'devices.management.Delete' | translate}}\\r\\n\\r\\n Screenshot\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { DeviceService } from '../../../services/device.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Device } from '../../../models/device.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { DeviceEditorComponent } from \"./device-editor.component\";\r\nimport { Location } from '../../../models/location.model';\r\nimport { Institution } from '../../../models/institution.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { MatDialog } from '@angular/material';\r\nimport { CommonFilter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { ApplicationSetting } from 'src/app/models/application-setting.model';\r\nimport { ApplicationSettingService } from 'src/app/services/application-setting.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Subscription } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\r\n\r\nexport interface DialogData {\r\n header: string;\r\n device: Device;\r\n locations: Location[];\r\n institutions: Institution[];\r\n isApproval: boolean,\r\n data: any\r\n}\r\n\r\n@Component({\r\n selector: 'devices-management',\r\n templateUrl: './devices-management.component.html',\r\n styleUrls: ['./devices-management.component.css']\r\n})\r\nexport class DevicesManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private deviceListSub: Subscription = new Subscription();\r\n private deviceDeleteSub: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: Device[] = [];\r\n rowsCache: Device[] = [];\r\n allLocations: Location[] = [];\r\n allInstitutions: Institution[] = [];\r\n editedDevice: Device;\r\n sourceDevice: Device;\r\n editingDeviceCode: { code: string };\r\n loadingIndicator: boolean;\r\n filter: CommonFilter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n sieveFilters = new Map();\r\n private signalRCoreconnection: signalR.HubConnection;\r\n\r\n public locationSearchForm: FormControl = new FormControl();\r\n\r\n @Input()\r\n isApproval: boolean;\r\n\r\n @ViewChild('deviceMgtTable') table: any;\r\n\r\n @ViewChild('statusDisplayTemplate')\r\n statusDisplayTemplate: TemplateRef;\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('codeTemplate')\r\n codeTemplate: TemplateRef;\r\n\r\n @ViewChild('ipAddressTemplate')\r\n ipAddressTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('deviceEditor')\r\n deviceEditor: DeviceEditorComponent;\r\n\r\n exportList: any = {};\r\n\r\n filterStatus: string = '';\r\n\r\n _route: ActivatedRoute;\r\n scheme: string = 'http';\r\n port: string = '80';\r\n header: string;\r\n public currentPageLimit: number = 20;\r\n public pageLimit = [\r\n { value: 5 },\r\n { value: 10 },\r\n { value: 25 },\r\n { value: 50 },\r\n { value: 100 },\r\n ];\r\n\r\n public progress: number;\r\n public message: string;\r\n\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deviceService: DeviceService, private route: ActivatedRoute, public dialog: MatDialog, private configurations: ConfigurationService,\r\n private authService: AuthService, private applicationSetting: ApplicationSettingService, private domSanitizer: DomSanitizer) {\r\n this._route = route;\r\n //this.applicationSetting.getApplicationSettingByKey(null, 'DEVICE_ADMIN_SCHEME').subscribe(result => {\r\n // this.scheme = result.value;\r\n //}, error => { });\r\n\r\n //this.applicationSetting.getApplicationSettingByKey(null, 'DEVICE_ADMIN_PORT').subscribe(result => {\r\n // this.port = result.value;\r\n //}, error => { });\r\n //this.route.params.subscribe(queryParams => {\r\n // this.isApproval = queryParams[\"type\"] == 'approval';\r\n // this.clearFilterAndPagedResult();\r\n // this.ngOnInit();\r\n //});\r\n }\r\n\r\n public importedFile = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n if (!confirm(`Are you sure to import file '${files[0].name}'? \\nImport cannot be undone after the file uploaded.`)) return;\r\n\r\n let fileToUpload = files[0];\r\n const formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n\r\n this.loadingIndicator = true;\r\n this.alertService.startLoadingMessage(\"Uploading...\");\r\n this.deviceService.importFile>(formData)\r\n .subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response) {\r\n this.message = 'Upload success.';\r\n //var fileUploadResponse: any = event.body;\r\n //this.filename = fileUploadResponse.fileName;\r\n this.onUploadFinished();\r\n }\r\n\r\n this.loadingIndicator = false;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Upload Error\", `Upload error.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onUploadFinished() {\r\n this.alertService.showStickyMessage(\"Upload Success\", `Upload Success`,\r\n MessageSeverity.success);\r\n //const currentRoute = this.router.url;\r\n\r\n //this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n //this.router.navigate([currentRoute]); // navigate to same route\r\n //}); \r\n this.loadData();\r\n }\r\n\r\n addToExport(row) {\r\n if (!this.exportList[row.id]) this.exportList[row.id] = row;\r\n\r\n this.exportList[row.id].included = true;\r\n }\r\n\r\n removeFromExport(row) {\r\n if (this.exportList[row.id]) {\r\n this.exportList[row.id].included = false;\r\n }\r\n }\r\n\r\n numberOfExports() {\r\n return (Object.values(this.exportList)).filter(i => i.included).length;\r\n }\r\n\r\n approveCount = 0;\r\n async export() {\r\n let devices = (Object.values(this.exportList)).filter(i => i.included);\r\n\r\n this.alertService.startLoadingMessage(\"Processing approval...\");\r\n for (let d of devices) {\r\n \r\n await this.save(d, true);\r\n }\r\n }\r\n\r\n private async save(device, isApproval?: boolean) {\r\n \r\n \r\n if (isApproval) {\r\n device.isApproved = true;\r\n \r\n }\r\n\r\n //if (this.allLocations) {\r\n // let selectedLocation = this.allLocations.filter(e => e.id == this.deviceEdit.locationId);\r\n // if (selectedLocation && selectedLocation.length > 0) {\r\n // this.deviceEdit.locationName = selectedLocation[0].name;\r\n // }\r\n //}\r\n\r\n this.approveCount += 1;\r\n await this.deviceService.updateDevice(device).subscribe(response => {\r\n this.alertService.showMessage(\"Success\", `Changes to device \\\"${device.code}\\\" was saved successfully`, MessageSeverity.success)\r\n this.approveCount -= 1;\r\n\r\n if (this.approveCount <= 0) {\r\n this.exportList = {};\r\n this.loadData()\r\n\r\n console.log('exportlist', this.exportList);\r\n };\r\n }, error => {\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error)\r\n this.approveCount -= 1;\r\n\r\n if (this.approveCount <= 0) this.loadData();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.alertService.resetStickyMessage();\r\n if (this.deviceListSub && !this.deviceListSub.closed) {\r\n this.deviceListSub.unsubscribe();\r\n }\r\n\r\n if (this.deviceDeleteSub && !this.deviceDeleteSub.closed) {\r\n this.deviceDeleteSub.unsubscribe();\r\n }\r\n }\r\n\r\n public onLimitChange(limit: any): void {\r\n this.currentPageLimit = parseInt(limit, 10);\r\n this.clearFilterAndPagedResult();\r\n this.filter.pageSize = this.currentPageLimit;\r\n\r\n this.loadData(null);\r\n }\r\n\r\n\r\n openDialog(device: Device, isApproval?: boolean): void {\r\n const dialogRef = this.dialog.open(DeviceEditorComponent, {\r\n data: { header: this.header, device: device, locations: this.allLocations, institutions: this.allInstitutions, isApproval: isApproval },\r\n width: '600px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new CommonFilter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n this.filter.pageSize = 20;\r\n\r\n\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n this.keyword = '';\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'connection_status_display', name: '', cellTemplate: this.statusDisplayTemplate, sortable: false },\r\n { prop: 'linkCode', name: gT('devices.management.Code'), sortable: false },\r\n { prop: 'device_label', name: gT('devices.management.Label') },\r\n { code: 'ipAddress', name: gT('devices.management.IpAddress'), cellTemplate: this.ipAddressTemplate },\r\n { prop: 'locationName', name: gT('devices.management.Location') },\r\n { prop: 'macAddress', name: gT('devices.management.MacAddress') },\r\n { prop: 'serialNumber', name: gT('devices.management.SerialNumber') },\r\n //{ prop: 'startDate', name: gT('devices.management.StartDate'), width: 80, pipe: new DateOnlyPipe('en-SG') },\r\n //{ prop: 'endDate', name: gT('devices.management.EndDate'), width: 80, pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'status', name: gT('devices.management.Status') },\r\n { name: '', cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: true, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n initializeDefaultSieveFilter() {\r\n this.sieveFilters.set('(IsActive)==', 'true');\r\n //this.sieveFilters.set('(InstitutionId)==', this.accountService.currentUser.institutionId);\r\n }\r\n\r\n initializeSignalR() {\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurations.baseUrl + \"/hub/frs\", true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"RefreshPIBDeviceList\", (deviceVM) => {\r\n console.log('Refreshing Device List');\r\n console.log(deviceVM);\r\n if (!this.rows) {\r\n this.rows = [];\r\n }\r\n\r\n //find the device id; add/update\r\n this.rows.forEach((device, index, devices) => {\r\n if (deviceVM.id == device.id) {\r\n this.rows[index].status_display = deviceVM.status_display;\r\n this.rows[index].connection_status_display = deviceVM.connection_status_display;\r\n this.rows[index].device_status = deviceVM.device_status;\r\n }\r\n });\r\n\r\n this.rows = [...this.rows];\r\n this.rowsCache = [...this.rows];\r\n console.log(this.rows);\r\n });\r\n }\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n init() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.initializeDefaultSieveFilter();\r\n this.initializeSignalR();\r\n this.loadData(null, true);\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n\r\n this.route.params.subscribe(queryParams => {\r\n this.isApproval = queryParams[\"type\"] == 'approval';\r\n this.clearFilterAndPagedResult();\r\n this.init();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.deviceEditor.changesSavedCallback = () => {\r\n this.addNewDeviceToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.deviceEditor.changesCancelledCallback = () => {\r\n this.editedDevice = null;\r\n this.sourceDevice = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewDeviceToList() {\r\n if (this.sourceDevice) {\r\n Object.assign(this.sourceDevice, this.editedDevice);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceDevice, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceDevice, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedDevice = null;\r\n this.sourceDevice = null;\r\n }\r\n else {\r\n let device = new Device();\r\n Object.assign(device, this.editedDevice);\r\n this.editedDevice = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (device).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, device);\r\n this.rows.splice(0, 0, device);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData(ev?: any, isFirstLoad?: boolean) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.sieveFilters) {\r\n this.initializeDefaultSieveFilter();\r\n }\r\n if (!this.keyword) this.keyword = '';\r\n\r\n let val = this.sieveFilters.has('(Code|MacAddress|SerialNumber|IpAddress|device_label|LocationName)@=');\r\n if (val) {\r\n this.sieveFilters.delete('(Code|MacAddress|SerialNumber|IpAddress|device_label|LocationName)@=');\r\n }\r\n\r\n if (this.keyword) {\r\n this.sieveFilters.set('(Code|MacAddress|SerialNumber|IpAddress|device_label|LocationName)@=', this.keyword);\r\n }\r\n\r\n this.sieveFilters.set('(DeviceIsApproval)==', String(this.isApproval));\r\n\r\n console.log(\"FFStatus\", this.filterStatus);\r\n if (!this.filterStatus) this.filterStatus = '';\r\n this.sieveFilters.set('(IsApproved)==', String((this.filterStatus)));\r\n\r\n this.filter.filters = '';\r\n let indx = 0;\r\n this.sieveFilters.forEach((value: string, key: string) => {\r\n if (indx > 0) {\r\n this.filter.filters += ','\r\n }\r\n this.filter.filters += key + value;\r\n indx++;\r\n });\r\n\r\n if (this.deviceListSub && !this.deviceListSub.closed) {\r\n this.deviceListSub.unsubscribe();\r\n }\r\n\r\n this.deviceListSub = this.deviceService.getDevicesLocationsInstitutionsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n let pagedResult = results[0];\r\n this.pagedResult = pagedResult;\r\n let devices = pagedResult.pagedData;\r\n let locations = results[1];\r\n let institutions = results[2];\r\n\r\n devices.forEach((device, index, devices) => {\r\n (device).index = index + 1;\r\n (device).linkCode = `${device.code}`;\r\n });\r\n\r\n\r\n this.rowsCache = [...devices];\r\n this.rows = devices;\r\n //this.onSearchChanged(this.keyword);\r\n this.allLocations = locations;\r\n this.allInstitutions = institutions;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve devices from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.ipAddress));\r\n //this.keyword = value;\r\n //this.clearFilterAndPagedResult();\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n onEditorModalHidden() {\r\n this.editingDeviceCode = null;\r\n this.deviceEditor.resetForm(true);\r\n }\r\n\r\n\r\n newDevice() {\r\n this.editingDeviceCode = null;\r\n this.sourceDevice = null;\r\n this.editedDevice = this.deviceEditor.newDevice(this.allLocations, this.allInstitutions);\r\n this.header = 'New Device';\r\n this.openDialog(this.editedDevice, false);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editDevice(row: Device, isApproval?: boolean) {\r\n this.editingDeviceCode = { code: row.code };\r\n this.sourceDevice = row;\r\n this.editedDevice = this.deviceEditor.editDevice(row, this.allLocations, this.allInstitutions);\r\n this.header = row.status == 'Approved' ? 'View Device' : 'Edit Device';\r\n this.openDialog(this.editedDevice, isApproval);\r\n //this.editorModal.show();\r\n }\r\n\r\n deleteDevice(row: Device) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\" device?', DialogType.confirm, () => this.deleteDeviceHelper(row));\r\n }\r\n\r\n\r\n deleteDeviceHelper(row: Device) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deviceDeleteSub = this.deviceService.deleteDevice(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the device.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n sanitize(row) {\r\n let url = (row.scheme ? row.scheme : 'http') + '://' + row.ipAddress;\r\n if (row.port) {\r\n url = url + ':' + row.port;\r\n }\r\n\r\n url = url + '/admin';\r\n return this.domSanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n get canManageDevices() {\r\n return this.accountService.userHasPermission(Permission.manageDevicesPermission)\r\n }\r\n\r\n get canApproveDevices() {\r\n return this.accountService.userHasPermission(Permission.approveDevicesPermission)\r\n }\r\n}\r\n","module.exports = \".toast.toasta-theme-bootstrap.toasta-type-error {\\r\\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkQyQUI3Q0EzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkQyQUI3Q0IzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0QTNBMDVFQjMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0QTNBMDVFQzMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po9jTrYAAAKTSURBVHja7Jq/SyNBFMfNuSYB0cbCUzmtTvwbbPwb7KPV/Rmnu5tYWR1XX6WFpYL2giBW/igUFCxEuMJeZMXg3Bt4kcmwiftm3kuG5R58mc0G3ptPZnfmzZtUlFIjZbBKWUC+CPqOQA3QLSjDtoH3+U2PiIBqoE2Vb5v4PWtMCYh6HwgTph4yiO5coopZwgnDCVElQJgw1ZBAIgcIEyYKBSRVfpaGAJIoHkuGCZIqXkuHAdIEvTODvKPfgYG0QG9Kxt7QvziIDvKqZO2VCuMCkRE7dQPawZZiGQWGOjtRIf6AZkCT2KZEH1nR2YwCQX2crkDfcpLJY4fHLPEFifBXbDs854c9fG45TBRt7EfkAqJzoNjjhT0CVXL87nn4jHvlZv2y2Nhz5jnH98L0Owo68fQb52XNvql4P3sArVi+F0HXTOlMvR9IjWEkOvYM+mH5XwU9MfmPzZ2mPexcEB3btkB+Mqc1Mfa7C6QhsELvg8aMGL8FYuh+d1VRNgRqG1OgSbyugeYFYmzY5aAFgSAa4iteVw0oTluwQR6FQKrGiEwIxHi0K41roB3mIC+gM9Bf0AxoGTTOHGMdtMtVQBiWfRQuJNcRaeu5jnCv7GbCd++YeDqv7NwwB6DvoGlsDyQgimS/PjA6p1qyfC555loJNfvl2I+c5vxydbzv8ng670fs+hV1h3gJmrX8zOF96g7x03oXtRhH2W+/4Myi349xbLeJo5sVLdoNoopyAfqFbRBVlFLVtcwCQlsIoo3+B1b7bQnVflvqfzU+DBivwx6uE6umJ0RTBXSGmHqMRDBniJ3cLHWACOpU18ylUgJEkOfspfrnQ5GdZtfOLnSQESzM6eLZHaYcd/h5TCJeaf6v9U+AAQAvyHBRYhRQ4wAAAABJRU5ErkJggg==) !important;\\r\\n background-color: #d9534f;\\r\\n border-color: #d43f3a;\\r\\n}\\r\\n\\r\\n.toast.toasta-theme-bootstrap {\\r\\n font-size: 1em;\\r\\n}\\r\\n\\r\\n.toast.toasta-theme-bootstrap {\\r\\n font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif !important;\\r\\n font-size: 12px;\\r\\n border-radius: 4px;\\r\\n border: 1px solid transparent;\\r\\n}\\r\\n\\r\\n.toast {\\r\\n cursor: pointer;\\r\\n margin: 0 0 6px;\\r\\n padding: 0;\\r\\n width: 100%;\\r\\n height: 65px;\\r\\n display: table;\\r\\n background-size: 24px 24px;\\r\\n background-position: 15px center;\\r\\n background-repeat: no-repeat;\\r\\n box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.25);\\r\\n opacity: 0.9;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.toast .close-button {\\r\\n padding: 0;\\r\\n cursor: pointer;\\r\\n background: transparent;\\r\\n border: 0;\\r\\n -webkit-appearance: none;\\r\\n position: absolute;\\r\\n right: 10px;\\r\\n top: 3px;\\r\\n opacity: 0.5;\\r\\n filter: alpha(opacity=50);\\r\\n }\\r\\n\\r\\n.toast.toasta-theme-bootstrap .toast-text {\\r\\n color: #ffffff;\\r\\n }\\r\\n\\r\\n.toast .toast-text {\\r\\n padding: 5px 20px 5px 60px;\\r\\n display: table-cell;\\r\\n vertical-align: middle;\\r\\n }\\r\\n\\r\\n.toast.toasta-theme-bootstrap .toast-text .toast-title {\\r\\n font-size: 1.04em;\\r\\n }\\r\\n\\r\\n.toast.toasta-theme-bootstrap .toast-text .toast-title {\\r\\n font-size: 25px;\\r\\n }\\r\\n\\r\\n.toast .toast-text .toast-title {\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kZXZpY2Utd2FybmluZy9kZXZpY2Utd2FybmluZy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsNG1FQUE0bUU7RUFDNW1FLHlCQUF5QjtFQUN6QixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usc0VBQXNFO0VBQ3RFLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsZUFBZTtFQUNmLGVBQWU7RUFDZixVQUFVO0VBQ1YsV0FBVztFQUNYLFlBQVk7RUFDWixjQUFjO0VBQ2QsMEJBQTBCO0VBQzFCLGdDQUFnQztFQUNoQyw0QkFBNEI7RUFDNUIsK0NBQStDO0VBQy9DLFlBQVk7RUFDWixrQkFBa0I7QUFDcEI7O0FBRUU7SUFDRSxVQUFVO0lBQ1YsZUFBZTtJQUNmLHVCQUF1QjtJQUN2QixTQUFTO0lBQ1Qsd0JBQXdCO0lBQ3hCLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsUUFBUTtJQUNSLFlBQVk7SUFDWix5QkFBeUI7RUFDM0I7O0FBRUE7SUFDRSxjQUFjO0VBQ2hCOztBQUVBO0lBQ0UsMEJBQTBCO0lBQzFCLG1CQUFtQjtJQUNuQixzQkFBc0I7RUFDeEI7O0FBRUE7SUFDRSxpQkFBaUI7RUFDbkI7O0FBRUE7SUFDRSxlQUFlO0VBQ2pCOztBQUVBO0lBQ0UsaUJBQWlCO0VBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9kZXZpY2Utd2FybmluZy9kZXZpY2Utd2FybmluZy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRvYXN0LnRvYXN0YS10aGVtZS1ib290c3RyYXAudG9hc3RhLXR5cGUtZXJyb3Ige1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURJQUFBQXlDQVlBQUFBZVA0aXhBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlocFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TlMxak1ESXhJRGM1TGpFMU5UYzNNaXdnTWpBeE5DOHdNUzh4TXkweE9UbzBORG93TUNBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFFnS0UxaFkybHVkRzl6YUNraUlIaHRjRTFOT2tsdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk1rUXlRVUkzUTBFek1qSkNNVEZGTlVJNFFqWkVRa0ZFTjBRNVJVRXhOekFpSUhodGNFMU5Pa1J2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TWtReVFVSTNRMEl6TWpKQ01URkZOVUk0UWpaRVFrRkVOMFE1UlVFeE56QWlQaUE4ZUcxd1RVMDZSR1Z5YVhabFpFWnliMjBnYzNSU1pXWTZhVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wUVROQk1EVkZRak15TWtFeE1VVTFRamhDTmtSQ1FVUTNSRGxGUVRFM01DSWdjM1JTWldZNlpHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBRVE5CTURWRlF6TXlNa0V4TVVVMVFqaENOa1JDUVVRM1JEbEZRVEUzTUNJdlBpQThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNGdQQzl5WkdZNlVrUkdQaUE4TDNnNmVHMXdiV1YwWVQ0Z1BEOTRjR0ZqYTJWMElHVnVaRDBpY2lJL1BvOWpUcllBQUFLVFNVUkJWSGphN0pxL1N5TkJGTWZOdVNZQjBjYkNVem10VHZ3YmJQd2I3S1BWL1JtbnU1dFlXUjFYWDZXRnBZTDJnaUJXL2lnVUZDeEV1TUplWk1YZzNCdDRrY213aWZ0bTNrdUc1UjU4bWMwRzNwdFBabmZtelp0VWxGSWpaYkJLV1VDK0NQcU9RQTNRTFNqRHRvSDMrVTJQaUlCcW9FMlZiNXY0UFd0TUNZaDZId2dUcGg0eWlPNWNvb3Bad2duRENWRWxRSmd3MVpCQUlnY0lFeVlLQlNSVmZwYUdBSklvSGt1R0NaSXFYa3VIQWRJRXZUT0R2S1BmZ1lHMFFHOUt4dDdRdnppSUR2S3FaTzJWQ3VNQ2tSRTdkUVBhd1paaUdRV0dPanRSSWY2QVprQ1QyS1pFSDFuUjJZd0NRWDJjcmtEZmNwTEpZNGZITFBFRmlmQlhiRHM4NTRjOWZHNDVUQlJ0N0Vma0FxSnpvTmpqaFQwQ1ZYTDg3bm40akh2bFp2MnkyTmh6NWpuSDk4TDBPd282OGZRYjUyWE52cWw0UDNzQXJWaStGMEhYVE9sTXZSOUlqV0VrT3ZZTSttSDVYd1U5TWZtUHpaMm1QZXhjRUIzYnRrQitNcWMxTWZhN0M2UWhzRUx2ZzhhTUdMOEZZdWgrZDFWUk5nUnFHMU9nU2J5dWdlWUZZbXpZNWFBRmdTQWE0aXRlVncwb1RsdXdRUjZGUUtyR2lFd0l4SGkwSzQxcm9CM21JQytnTTlCZjBBeG9HVFRPSEdNZHRNdFZRQmlXZlJRdUpOY1JhZXU1am5DdjdHYkNkKytZZURxdjdOd3dCNkR2b0dsc0R5UWdpbVMvUGpBNnAxcXlmQzU1NWxvSk5mdmwySStjNXZ4eWRienY4bmc2NzBmcytoVjFoM2dKbXJYOHpPRjk2Zzd4MDNvWHRSaEgyVysvNE15aTM0OXhiTGVKbzVzVkxkb05vb3B5QWZxRmJSQlZsRkxWdGN3Q1Fsc0lvbzMrQjFiN2JRblZmbHZxZnpVK0RCaXZ3eDZ1RTZ1bUowUlRCWFNHbUhxTVJEQm5pSjNjTEhXQUNPcFUxOHlsVWdKRWtPZnNwZnJuUTVHZFp0Zk9MblNRRVN6TTZlTFpIYVljZC9oNVRDSmVhZjZ2OVUrQUFRQXZ5SEJSWWhSUTR3QUFBQUJKUlU1RXJrSmdnZz09KSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZDQzZjNhO1xyXG59XHJcblxyXG4udG9hc3QudG9hc3RhLXRoZW1lLWJvb3RzdHJhcCB7XHJcbiAgZm9udC1zaXplOiAxZW07XHJcbn1cclxuXHJcbi50b2FzdC50b2FzdGEtdGhlbWUtYm9vdHN0cmFwIHtcclxuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLnRvYXN0IHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgbWFyZ2luOiAwIDAgNnB4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiA2NXB4O1xyXG4gIGRpc3BsYXk6IHRhYmxlO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogMjRweCAyNHB4O1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IDE1cHggY2VudGVyO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgYm94LXNoYWRvdzogMHB4IDBweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XHJcbiAgb3BhY2l0eTogMC45O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuICAudG9hc3QgLmNsb3NlLWJ1dHRvbiB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMTBweDtcclxuICAgIHRvcDogM3B4O1xyXG4gICAgb3BhY2l0eTogMC41O1xyXG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcclxuICB9XHJcblxyXG4gIC50b2FzdC50b2FzdGEtdGhlbWUtYm9vdHN0cmFwIC50b2FzdC10ZXh0IHtcclxuICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gIH1cclxuXHJcbiAgLnRvYXN0IC50b2FzdC10ZXh0IHtcclxuICAgIHBhZGRpbmc6IDVweCAyMHB4IDVweCA2MHB4O1xyXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG5cclxuICAudG9hc3QudG9hc3RhLXRoZW1lLWJvb3RzdHJhcCAudG9hc3QtdGV4dCAudG9hc3QtdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxLjA0ZW07XHJcbiAgfVxyXG5cclxuICAudG9hc3QudG9hc3RhLXRoZW1lLWJvb3RzdHJhcCAudG9hc3QtdGV4dCAudG9hc3QtdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAyNXB4O1xyXG4gIH1cclxuXHJcbiAgLnRvYXN0IC50b2FzdC10ZXh0IC50b2FzdC10aXRsZSB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n\\r\\n {{errorMessage}}\\r\\n\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, OnDestroy, Input, ViewEncapsulation } from \"@angular/core\";\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\n\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { LocalStoreManager } from \"src/app/services/local-store-manager.service\";\r\n\r\n@Component({\r\n selector: \"device-display-warning\",\r\n templateUrl: './device-warning.component.html',\r\n styleUrls: ['./device-warning.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class DeviceDisplayWarningComponent implements OnInit, OnDestroy {\r\n msg: string;\r\n errorMessage: string;\r\n device_id: string;\r\n mac_address: string;\r\n\r\n constructor(private alertService: AlertService, private authService: AuthService, private configurations: ConfigurationService,\r\n private route: ActivatedRoute, private storeManager: LocalStoreManager) {\r\n this.route.params.subscribe(queryParams => {\r\n this.msg = queryParams[\"msg\"];\r\n this.device_id = queryParams[\"id\"];\r\n this.mac_address = queryParams[\"address\"];\r\n this.setErrorMessage();\r\n });\r\n\r\n if (!this.msg) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.errorMessage = queryParams[\"mac_address\"];\r\n this.device_id = queryParams[\"id\"];\r\n this.mac_address = queryParams[\"address\"];\r\n this.setErrorMessage();\r\n });\r\n }\r\n\r\n //this.route.params.subscribe(queryParams => {\r\n // this.msg = queryParams.get(\"msg\");\r\n // this.device_id = queryParams.get(\"id\");\r\n // this.errorMessage = \"\";\r\n // if (this.msg == \"adminreq\") {\r\n // this.errorMessage = \"Device needs to be setup. Please contact administrator.\";\r\n // } else if (this.msg == \"new_error\") {\r\n // this.errorMessage = \"An error occurred during device registration. Please contact administrator.\";\r\n // } else if (this.msg == \"macreq\") {\r\n // this.errorMessage = \"Please provide the device MAC Address.\";\r\n // }\r\n //});\r\n }\r\n\r\n setErrorMessage() {\r\n this.errorMessage = \"\";\r\n if (this.msg == \"adminreq\") {\r\n this.errorMessage = \"Device \" + (this.mac_address ? \"(\" + this.mac_address + \") \" : \"\") + \"needs to be setup. Please contact administrator.\\n\";\r\n } else if (this.msg == \"new_error\") {\r\n this.errorMessage = \"An error occurred during device registration. Please contact administrator.\";\r\n } else if (this.msg == \"macreq\") {\r\n this.errorMessage = \"Please provide the device MAC Address.\";\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZGlyZWN0b3J5LWxpc3RpbmctY2F0ZWdvcnkvZGlyZWN0b3J5LWxpc3RpbmctY2F0ZWdvcnktZWRpdG9yLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"

{{'pageHeader.DirectoryListingCategorys' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{'directoryListingCategorys.editor.CodeRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'directoryListingCategorys.editor.LabelRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { DirectoryListingCategory } from 'src/app/models/directory-listing-category.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { DirectoryListingCategoryService } from 'src/app/services/directory-listing-category.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'directory-listing-category-editor',\r\n templateUrl: './directory-listing-category-editor.component.html',\r\n styleUrls: ['./directory-listing-category-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class DirectoryListingCategoryEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewDirectoryListingCategory = false;\r\n private originalDirectoryListingCategory: DirectoryListingCategory = new DirectoryListingCategory();\r\n private directoryListingCategoryEdit: DirectoryListingCategory = new DirectoryListingCategory();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false};\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private directoryListingCategoryService: DirectoryListingCategoryService, private fileService: FileService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.directoryListingCategory) != typeof (undefined)) {\r\n if (data.directoryListingCategory.id) {\r\n this.editDirectoryListingCategory(data.directoryListingCategory);\r\n } else {\r\n this.newDirectoryListingCategory();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.directoryListingCategoryEdit.id) {\r\n this.directoryListingCategoryService.newDirectoryListingCategory(this.directoryListingCategoryEdit).subscribe(directoryListingCategory => this.saveSuccessHelper(directoryListingCategory), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.directoryListingCategoryService.updateDirectoryListingCategory(this.directoryListingCategoryEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(directoryListingCategory?: DirectoryListingCategory) {\r\n if (directoryListingCategory)\r\n Object.assign(this.directoryListingCategoryEdit, directoryListingCategory);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewDirectoryListingCategory) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.directoryListingCategoryEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.directoryListingCategoryEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.directoryListingCategoryEdit = new DirectoryListingCategory();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newDirectoryListingCategory() {\r\n this.showValidationErrors = true;\r\n this.isNewDirectoryListingCategory = true;\r\n this.directoryListingCategoryEdit = new DirectoryListingCategory();\r\n return this.directoryListingCategoryEdit;\r\n }\r\n\r\n editDirectoryListingCategory(directoryListingCategory: DirectoryListingCategory) {\r\n if (directoryListingCategory) {\r\n this.isNewDirectoryListingCategory = false;\r\n this.showValidationErrors = true;\r\n this.originalDirectoryListingCategory = directoryListingCategory;\r\n this.directoryListingCategoryEdit = new DirectoryListingCategory();\r\n Object.assign(this.directoryListingCategoryEdit, directoryListingCategory);\r\n\r\n return this.directoryListingCategoryEdit;\r\n }\r\n else {\r\n return this.newDirectoryListingCategory();\r\n }\r\n }\r\n\r\n get canManageDirectoryListingCategorys() {\r\n return true;//this.accountService.userHasPermission(Permission.manageDirectoryListingCategoryPermission);\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n console.log(\"finish uploading... \", event)\r\n this.fileUploadResponse = event;\r\n this.directoryListingCategoryEdit.icon = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kaXJlY3RvcnktbGlzdGluZy1jYXRlZ29yeS9kaXJlY3RvcnktbGlzdGluZy1jYXRlZ29yeXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZGlyZWN0b3J5LWxpc3RpbmctY2F0ZWdvcnkvZGlyZWN0b3J5LWxpc3RpbmctY2F0ZWdvcnlzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Directory Listing Category

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'directoryListingCategorys.management.Edit' | translate}}\\r\\n {{'directoryListingCategorys.management.Details' | translate}}\\r\\n \\r\\n {{'directoryListingCategorys.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { DirectoryListingCategoryService } from 'src/app/services/directory-listing-category.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { DirectoryListingCategory } from 'src/app/models/directory-listing-category.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { DirectoryListingCategoryEditorComponent } from './directory-listing-category-editor.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'directory-listing-categorys-management',\r\n templateUrl: './directory-listing-categorys-management.component.html',\r\n styleUrls: ['./directory-listing-categorys-management.component.css']\r\n})\r\nexport class DirectoryListingCategorysManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: DirectoryListingCategory[] = [];\r\n rowsCache: DirectoryListingCategory[] = [];\r\n allPermissions: Permission[] = [];\r\n editedDirectoryListingCategory: DirectoryListingCategory;\r\n sourceDirectoryListingCategory: DirectoryListingCategory;\r\n editingDirectoryListingCategoryName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('directoryListingCategoryEditor')\r\n directoryListingCategoryEditor: DirectoryListingCategoryEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private directoryListingCategoryService: DirectoryListingCategoryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(directoryListingCategory: DirectoryListingCategory): void {\r\n const dialogRef = this.dialog.open(DirectoryListingCategoryEditorComponent, {\r\n data: { header: this.header, directoryListingCategory: directoryListingCategory },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'code', name: gT('directoryListingCategorys.management.Code') },\r\n { prop: 'label', name: gT('directoryListingCategorys.management.Label') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.directoryListingCategoryEditor.changesSavedCallback = () => {\r\n this.addNewDirectoryListingCategoryToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.directoryListingCategoryEditor.changesCancelledCallback = () => {\r\n this.editedDirectoryListingCategory = null;\r\n this.sourceDirectoryListingCategory = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewDirectoryListingCategoryToList() {\r\n if (this.sourceDirectoryListingCategory) {\r\n Object.assign(this.sourceDirectoryListingCategory, this.editedDirectoryListingCategory);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceDirectoryListingCategory, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceDirectoryListingCategory, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedDirectoryListingCategory = null;\r\n this.sourceDirectoryListingCategory = null;\r\n }\r\n else {\r\n let directoryListingCategory = new DirectoryListingCategory();\r\n Object.assign(directoryListingCategory, this.editedDirectoryListingCategory);\r\n this.editedDirectoryListingCategory = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (directoryListingCategory).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, directoryListingCategory);\r\n this.rows.splice(0, 0, directoryListingCategory);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.directoryListingCategoryService.getDirectoryListingCategoryByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let directoryListingCategorys = results[0];\r\n let permissions = results[1];\r\n\r\n directoryListingCategorys.forEach((directoryListingCategory, index, directoryListingCategorys) => {\r\n (directoryListingCategory).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...directoryListingCategorys];\r\n this.rows = directoryListingCategorys;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingDirectoryListingCategoryName = null;\r\n this.directoryListingCategoryEditor.resetForm(true);\r\n }\r\n\r\n\r\n newDirectoryListingCategory() {\r\n this.editingDirectoryListingCategoryName = null;\r\n this.sourceDirectoryListingCategory = null;\r\n this.editedDirectoryListingCategory = this.directoryListingCategoryEditor.newDirectoryListingCategory();\r\n this.header = 'New';\r\n this.openDialog(this.editedDirectoryListingCategory);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editDirectoryListingCategory(row: DirectoryListingCategory) {\r\n this.editingDirectoryListingCategoryName = { key: row.code };\r\n this.sourceDirectoryListingCategory = row;\r\n this.editedDirectoryListingCategory = this.directoryListingCategoryEditor.editDirectoryListingCategory(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedDirectoryListingCategory);\r\n }\r\n\r\n deleteDirectoryListingCategory(row: DirectoryListingCategory) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\"?', DialogType.confirm, () => this.deleteDirectoryListingCategoryHelper(row));\r\n }\r\n\r\n\r\n deleteDirectoryListingCategoryHelper(row: DirectoryListingCategory) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.directoryListingCategoryService.deleteDirectoryListingCategory(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageDirectoryListingCategorys() {\r\n return true;//this.accountService.userHasPermission(Permission.manageDirectoryListingCategoryPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZGlyZWN0b3J5LWxpc3RpbmcvZGlyZWN0b3J5LWxpc3RpbmctZWRpdG9yLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"

{{'pageHeader.DirectoryListings' | 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 {{'directoryListings.editor.CodeRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'directoryListings.editor.LabelRequired' | translate}}\\r\\n \\r\\n\\r\\n \\r\\n Select category\\r\\n \\r\\n None\\r\\n \\r\\n {{c.label}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Select Floor\\r\\n \\r\\n None\\r\\n \\r\\n {{f.label}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Unit Number\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Aliases\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Contact\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Map Display Name\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Available for booking\\r\\n
\\r\\n\\r\\n
\\r\\n Don't Display to Public\\r\\n
\\r\\n\\r\\n
\\r\\n Icon \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { DirectoryListing } from 'src/app/models/directory-listing.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { DirectoryListingService } from 'src/app/services/directory-listing.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { DirectoryListingCategoryService } from '../../services/directory-listing-category.service';\r\nimport { DirectoryListingCategory } from '../../models/directory-listing-category.model';\r\nimport { FloorService } from '../../services/floor.service';\r\nimport { Floor } from '../../models/floor.model';\r\n\r\n\r\n@Component({\r\n selector: 'directory-listing-editor',\r\n templateUrl: './directory-listing-editor.component.html',\r\n styleUrls: ['./directory-listing-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class DirectoryListingEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewDirectoryListing = false;\r\n private originalDirectoryListing: DirectoryListing = new DirectoryListing();\r\n private directoryListingEdit: DirectoryListing = new DirectoryListing();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false};\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n directoryListingCategorys: DirectoryListingCategory[];\r\n floors: Floor[];\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private directoryListingService: DirectoryListingService, private directoryListingCategoryService: DirectoryListingCategoryService,\r\n public dialogRef: MatDialogRef, private floorService: FloorService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.directoryListing) != typeof (undefined)) {\r\n if (data.directoryListing.id) {\r\n this.editDirectoryListing(data.directoryListing);\r\n } else {\r\n this.newDirectoryListing();\r\n }\r\n }\r\n\r\n if (!this.directoryListingCategorys) this.directoryListingCategoryService.getDirectoryListingCategoryByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.directoryListingCategorys = results[0];\r\n },\r\n error => {\r\n });\r\n\r\n if (!this.floors) this.floorService.getFloorByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.floors = results[0];\r\n },\r\n error => {\r\n });\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.directoryListingEdit.iconUrl = event ? event.dbPath : null;\r\n\r\n if (this.directoryListingEdit.iconUrl) this.directoryListingEdit.iconUrl = this.directoryListingEdit.iconUrl.replace(/\\\\/g, '/');\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.directoryListingEdit.id) {\r\n this.directoryListingService.newDirectoryListing(this.directoryListingEdit).subscribe(directoryListing => this.saveSuccessHelper(directoryListing), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.directoryListingService.updateDirectoryListing(this.directoryListingEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(directoryListing?: DirectoryListing) {\r\n if (directoryListing)\r\n Object.assign(this.directoryListingEdit, directoryListing);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewDirectoryListing) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.directoryListingEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.directoryListingEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.directoryListingEdit = new DirectoryListing();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newDirectoryListing() {\r\n this.showValidationErrors = true;\r\n this.isNewDirectoryListing = true;\r\n this.directoryListingEdit = new DirectoryListing();\r\n return this.directoryListingEdit;\r\n }\r\n\r\n editDirectoryListing(directoryListing: DirectoryListing) {\r\n if (directoryListing) {\r\n this.isNewDirectoryListing = false;\r\n this.showValidationErrors = true;\r\n this.originalDirectoryListing = directoryListing;\r\n this.directoryListingEdit = new DirectoryListing();\r\n Object.assign(this.directoryListingEdit, directoryListing);\r\n\r\n return this.directoryListingEdit;\r\n }\r\n else {\r\n return this.newDirectoryListing();\r\n }\r\n }\r\n\r\n get canManageDirectoryListings() {\r\n return true;//this.accountService.userHasPermission(Permission.manageDirectoryListingPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kaXJlY3RvcnktbGlzdGluZy9kaXJlY3RvcnktbGlzdGluZ3MtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZGlyZWN0b3J5LWxpc3RpbmcvZGlyZWN0b3J5LWxpc3RpbmdzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Directory Listing

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'directoryListings.management.Edit' | translate}}\\r\\n {{'directoryListings.management.Details' | translate}}\\r\\n \\r\\n {{'directoryListings.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { DirectoryListingService } from 'src/app/services/directory-listing.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { DirectoryListing } from 'src/app/models/directory-listing.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { DirectoryListingEditorComponent } from './directory-listing-editor.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'directory-listings-management',\r\n templateUrl: './directory-listings-management.component.html',\r\n styleUrls: ['./directory-listings-management.component.css']\r\n})\r\nexport class DirectoryListingsManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: DirectoryListing[] = [];\r\n rowsCache: DirectoryListing[] = [];\r\n allPermissions: Permission[] = [];\r\n editedDirectoryListing: DirectoryListing;\r\n sourceDirectoryListing: DirectoryListing;\r\n editingDirectoryListingName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n public progress: number;\r\n public message: string;\r\n public filename: string;\r\n fileTypes: string;\r\n showTxt: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('directoryListingEditor')\r\n directoryListingEditor: DirectoryListingEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private router: Router,\r\n private directoryListingService: DirectoryListingService, public dialog: MatDialog) {\r\n }\r\n\r\n public importedFile = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n if (!confirm(`Are you sure to import file '${files[0].name}'? \\nImport cannot be undone after the file uploaded.`)) return;\r\n\r\n let fileToUpload = files[0];\r\n const formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n\r\n this.loadingIndicator = true;\r\n this.alertService.startLoadingMessage(\"Uploading...\");\r\n this.directoryListingService.importFile>(formData)\r\n .subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response) {\r\n this.message = 'Upload success.';\r\n //var fileUploadResponse: any = event.body;\r\n //this.filename = fileUploadResponse.fileName;\r\n this.onUploadFinished();\r\n }\r\n\r\n this.loadingIndicator = false;\r\n });\r\n }\r\n\r\n onUploadFinished() {\r\n //const currentRoute = this.router.url;\r\n\r\n //this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n //this.router.navigate([currentRoute]); // navigate to same route\r\n //}); \r\n this.loadData();\r\n }\r\n\r\n openDialog(directoryListing: DirectoryListing): void {\r\n const dialogRef = this.dialog.open(DirectoryListingEditorComponent, {\r\n data: { header: this.header, directoryListing: directoryListing },\r\n width: '80vw',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n //this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: \"id\", name: 'id', width: 50, canAutoResize: false },\r\n { prop: 'code', name: gT('directoryListings.management.Code') },\r\n { prop: 'label', name: gT('directoryListings.management.Label') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.directoryListingEditor.changesSavedCallback = () => {\r\n //this.addNewDirectoryListingToList();\r\n //this.editorModal.hide();\r\n this.loadData();\r\n };\r\n\r\n this.directoryListingEditor.changesCancelledCallback = () => {\r\n this.editedDirectoryListing = null;\r\n this.sourceDirectoryListing = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewDirectoryListingToList() {\r\n if (this.sourceDirectoryListing) {\r\n Object.assign(this.sourceDirectoryListing, this.editedDirectoryListing);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceDirectoryListing, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceDirectoryListing, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedDirectoryListing = null;\r\n this.sourceDirectoryListing = null;\r\n }\r\n else {\r\n let directoryListing = new DirectoryListing();\r\n Object.assign(directoryListing, this.editedDirectoryListing);\r\n this.editedDirectoryListing = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (directoryListing).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, directoryListing);\r\n this.rows.splice(0, 0, directoryListing);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.directoryListingService.getDirectoryListingByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let directoryListings = results[0];\r\n let permissions = results[1];\r\n\r\n directoryListings.forEach((directoryListing, index, directoryListings) => {\r\n (directoryListing).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...directoryListings];\r\n this.rows = directoryListings;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingDirectoryListingName = null;\r\n this.directoryListingEditor.resetForm(true);\r\n }\r\n\r\n\r\n newDirectoryListing() {\r\n this.editingDirectoryListingName = null;\r\n this.sourceDirectoryListing = null;\r\n this.editedDirectoryListing = this.directoryListingEditor.newDirectoryListing();\r\n this.header = 'New';\r\n this.openDialog(this.editedDirectoryListing);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editDirectoryListing(row: DirectoryListing) {\r\n this.editingDirectoryListingName = { key: row.code };\r\n this.sourceDirectoryListing = row;\r\n this.editedDirectoryListing = this.directoryListingEditor.editDirectoryListing(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedDirectoryListing);\r\n }\r\n\r\n deleteDirectoryListing(row: DirectoryListing) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\"?', DialogType.confirm, () => this.deleteDirectoryListingHelper(row));\r\n }\r\n\r\n\r\n deleteDirectoryListingHelper(row: DirectoryListing) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.directoryListingService.deleteDirectoryListing(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageDirectoryListings() {\r\n return true;//this.accountService.userHasPermission(Permission.manageDirectoryListingPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZW1wbG95ZWUtZGF0YS9lbXBsb3llZS1kYXRhLWVkaXRvci5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"

{{'pageHeader.EmployeeDatas' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{'employeeDatas.editor.CodeRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'employeeDatas.editor.NameRequired' | translate}}\\r\\n \\r\\n\\r\\n \\r\\n Select designation\\r\\n \\r\\n None\\r\\n \\r\\n {{c.label}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Display 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\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { EmployeeData } from 'src/app/models/employee-data.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { EmployeeDataService } from 'src/app/services/employee-data.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { EmployeeDesignationService } from '../../services/employee-designation.service';\r\n\r\n\r\n@Component({\r\n selector: 'employee-data-editor',\r\n templateUrl: './employee-data-editor.component.html',\r\n styleUrls: ['./employee-data-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class EmployeeDataEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewEmployeeData = false;\r\n private originalEmployeeData: EmployeeData = new EmployeeData();\r\n private employeeDataEdit: EmployeeData = new EmployeeData();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false};\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n employeeDesignations: any;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private employeeDataService: EmployeeDataService, private employeeDesignationService: EmployeeDesignationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.employeeData) != typeof (undefined)) {\r\n if (data.employeeData.id) {\r\n this.editEmployeeData(data.employeeData);\r\n } else {\r\n this.newEmployeeData();\r\n }\r\n }\r\n\r\n if (!this.employeeDesignations) this.employeeDesignationService.getEmployeeDesignationByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.employeeDesignations = results[0];\r\n },\r\n error => {\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.employeeDataEdit.id) {\r\n this.employeeDataService.newEmployeeData(this.employeeDataEdit).subscribe(employeeData => this.saveSuccessHelper(employeeData), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.employeeDataService.updateEmployeeData(this.employeeDataEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(employeeData?: EmployeeData) {\r\n if (employeeData)\r\n Object.assign(this.employeeDataEdit, employeeData);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewEmployeeData) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.employeeDataEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.employeeDataEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.employeeDataEdit = new EmployeeData();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newEmployeeData() {\r\n this.showValidationErrors = true;\r\n this.isNewEmployeeData = true;\r\n this.employeeDataEdit = new EmployeeData();\r\n return this.employeeDataEdit;\r\n }\r\n\r\n editEmployeeData(employeeData: EmployeeData) {\r\n if (employeeData) {\r\n this.isNewEmployeeData = false;\r\n this.showValidationErrors = true;\r\n this.originalEmployeeData = employeeData;\r\n this.employeeDataEdit = new EmployeeData();\r\n Object.assign(this.employeeDataEdit, employeeData);\r\n\r\n return this.employeeDataEdit;\r\n }\r\n else {\r\n return this.newEmployeeData();\r\n }\r\n }\r\n\r\n get canManageEmployeeDatas() {\r\n return this.accountService.userHasPermission(Permission.manageEmployeeDataPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9lbXBsb3llZS1kYXRhL2VtcGxveWVlLWRhdGFzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2VtcGxveWVlLWRhdGEvZW1wbG95ZWUtZGF0YXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Employee

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'employeeDatas.management.Edit' | translate}}\\r\\n {{'employeeDatas.management.Details' | translate}}\\r\\n {{canManageEmployeeDatas ? '|' : ''}}\\r\\n {{'employeeDatas.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { EmployeeDataService } from 'src/app/services/employee-data.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { EmployeeData } from 'src/app/models/employee-data.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { EmployeeDataEditorComponent } from './employee-data-editor.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'employee-datas-management',\r\n templateUrl: './employee-datas-management.component.html',\r\n styleUrls: ['./employee-datas-management.component.css']\r\n})\r\nexport class EmployeeDatasManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: EmployeeData[] = [];\r\n rowsCache: EmployeeData[] = [];\r\n allPermissions: Permission[] = [];\r\n editedEmployeeData: EmployeeData;\r\n sourceEmployeeData: EmployeeData;\r\n editingEmployeeDataName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('employeeDataEditor')\r\n employeeDataEditor: EmployeeDataEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private employeeDataService: EmployeeDataService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(employeeData: EmployeeData): void {\r\n const dialogRef = this.dialog.open(EmployeeDataEditorComponent, {\r\n data: { header: this.header, employeeData: employeeData },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'code', name: gT('employeeDatas.management.Code') },\r\n { prop: 'name', name: gT('employeeDatas.management.Name') },\r\n { prop: 'employeeDesignationLabel', name: gT('employeeDatas.management.Designation') },\r\n { prop: 'displayName', name: gT('employeeDatas.management.DisplayName') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.employeeDataEditor.changesSavedCallback = () => {\r\n this.addNewEmployeeDataToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.employeeDataEditor.changesCancelledCallback = () => {\r\n this.editedEmployeeData = null;\r\n this.sourceEmployeeData = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewEmployeeDataToList() {\r\n if (this.sourceEmployeeData) {\r\n Object.assign(this.sourceEmployeeData, this.editedEmployeeData);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceEmployeeData, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceEmployeeData, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedEmployeeData = null;\r\n this.sourceEmployeeData = null;\r\n }\r\n else {\r\n let employeeData = new EmployeeData();\r\n Object.assign(employeeData, this.editedEmployeeData);\r\n this.editedEmployeeData = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (employeeData).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, employeeData);\r\n this.rows.splice(0, 0, employeeData);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.employeeDataService.getEmployeeDataByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let employeeDatas = results[0];\r\n let permissions = results[1];\r\n\r\n employeeDatas.forEach((employeeData, index, employeeDatas) => {\r\n (employeeData).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...employeeDatas];\r\n this.rows = employeeDatas;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.name));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingEmployeeDataName = null;\r\n this.employeeDataEditor.resetForm(true);\r\n }\r\n\r\n\r\n newEmployeeData() {\r\n this.editingEmployeeDataName = null;\r\n this.sourceEmployeeData = null;\r\n this.editedEmployeeData = this.employeeDataEditor.newEmployeeData();\r\n this.header = 'New';\r\n this.openDialog(this.editedEmployeeData);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editEmployeeData(row: EmployeeData) {\r\n this.editingEmployeeDataName = { key: row.code };\r\n this.sourceEmployeeData = row;\r\n this.editedEmployeeData = this.employeeDataEditor.editEmployeeData(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedEmployeeData);\r\n }\r\n\r\n deleteEmployeeData(row: EmployeeData) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\"?', DialogType.confirm, () => this.deleteEmployeeDataHelper(row));\r\n }\r\n\r\n\r\n deleteEmployeeDataHelper(row: EmployeeData) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.employeeDataService.deleteEmployeeData(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageEmployeeDatas() {\r\n return this.accountService.userHasPermission(Permission.manageEmployeeDataPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZW1wbG95ZWUtZGVzaWduYXRpb24vZW1wbG95ZWUtZGVzaWduYXRpb24tZWRpdG9yLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"

{{'pageHeader.EmployeeDesignations' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{'employeeDesignations.editor.CodeRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'employeeDesignations.editor.LabelRequired' | 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\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { EmployeeDesignation } from 'src/app/models/employee-designation.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { EmployeeDesignationService } from 'src/app/services/employee-designation.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'employee-designation-editor',\r\n templateUrl: './employee-designation-editor.component.html',\r\n styleUrls: ['./employee-designation-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class EmployeeDesignationEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewEmployeeDesignation = false;\r\n private originalEmployeeDesignation: EmployeeDesignation = new EmployeeDesignation();\r\n private employeeDesignationEdit: EmployeeDesignation = new EmployeeDesignation();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false};\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private employeeDesignationService: EmployeeDesignationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.employeeDesignation) != typeof (undefined)) {\r\n if (data.employeeDesignation.id) {\r\n this.editEmployeeDesignation(data.employeeDesignation);\r\n } else {\r\n this.newEmployeeDesignation();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.employeeDesignationEdit.id) {\r\n this.employeeDesignationService.newEmployeeDesignation(this.employeeDesignationEdit).subscribe(employeeDesignation => this.saveSuccessHelper(employeeDesignation), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.employeeDesignationService.updateEmployeeDesignation(this.employeeDesignationEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(employeeDesignation?: EmployeeDesignation) {\r\n if (employeeDesignation)\r\n Object.assign(this.employeeDesignationEdit, employeeDesignation);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewEmployeeDesignation) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.employeeDesignationEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.employeeDesignationEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.employeeDesignationEdit = new EmployeeDesignation();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newEmployeeDesignation() {\r\n this.showValidationErrors = true;\r\n this.isNewEmployeeDesignation = true;\r\n this.employeeDesignationEdit = new EmployeeDesignation();\r\n return this.employeeDesignationEdit;\r\n }\r\n\r\n editEmployeeDesignation(employeeDesignation: EmployeeDesignation) {\r\n if (employeeDesignation) {\r\n this.isNewEmployeeDesignation = false;\r\n this.showValidationErrors = true;\r\n this.originalEmployeeDesignation = employeeDesignation;\r\n this.employeeDesignationEdit = new EmployeeDesignation();\r\n Object.assign(this.employeeDesignationEdit, employeeDesignation);\r\n\r\n return this.employeeDesignationEdit;\r\n }\r\n else {\r\n return this.newEmployeeDesignation();\r\n }\r\n }\r\n\r\n get canManageEmployeeDesignations() {\r\n return true;//this.accountService.userHasPermission(Permission.manageEmployeeDesignationPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9lbXBsb3llZS1kZXNpZ25hdGlvbi9lbXBsb3llZS1kZXNpZ25hdGlvbnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZW1wbG95ZWUtZGVzaWduYXRpb24vZW1wbG95ZWUtZGVzaWduYXRpb25zLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Employee Designation

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'employeeDesignations.management.Edit' | translate}}\\r\\n {{'employeeDesignations.management.Details' | translate}}\\r\\n \\r\\n {{'employeeDesignations.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { EmployeeDesignationService } from 'src/app/services/employee-designation.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { EmployeeDesignation } from 'src/app/models/employee-designation.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { EmployeeDesignationEditorComponent } from './employee-designation-editor.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'employee-designations-management',\r\n templateUrl: './employee-designations-management.component.html',\r\n styleUrls: ['./employee-designations-management.component.css']\r\n})\r\nexport class EmployeeDesignationsManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: EmployeeDesignation[] = [];\r\n rowsCache: EmployeeDesignation[] = [];\r\n allPermissions: Permission[] = [];\r\n editedEmployeeDesignation: EmployeeDesignation;\r\n sourceEmployeeDesignation: EmployeeDesignation;\r\n editingEmployeeDesignationName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('employeeDesignationEditor')\r\n employeeDesignationEditor: EmployeeDesignationEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private employeeDesignationService: EmployeeDesignationService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(employeeDesignation: EmployeeDesignation): void {\r\n const dialogRef = this.dialog.open(EmployeeDesignationEditorComponent, {\r\n data: { header: this.header, employeeDesignation: employeeDesignation },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'code', name: gT('employeeDesignations.management.Code') },\r\n { prop: 'label', name: gT('employeeDesignations.management.Label') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.employeeDesignationEditor.changesSavedCallback = () => {\r\n this.addNewEmployeeDesignationToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.employeeDesignationEditor.changesCancelledCallback = () => {\r\n this.editedEmployeeDesignation = null;\r\n this.sourceEmployeeDesignation = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewEmployeeDesignationToList() {\r\n if (this.sourceEmployeeDesignation) {\r\n Object.assign(this.sourceEmployeeDesignation, this.editedEmployeeDesignation);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceEmployeeDesignation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceEmployeeDesignation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedEmployeeDesignation = null;\r\n this.sourceEmployeeDesignation = null;\r\n }\r\n else {\r\n let employeeDesignation = new EmployeeDesignation();\r\n Object.assign(employeeDesignation, this.editedEmployeeDesignation);\r\n this.editedEmployeeDesignation = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (employeeDesignation).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, employeeDesignation);\r\n this.rows.splice(0, 0, employeeDesignation);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.employeeDesignationService.getEmployeeDesignationByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let employeeDesignations = results[0];\r\n let permissions = results[1];\r\n\r\n employeeDesignations.forEach((employeeDesignation, index, employeeDesignations) => {\r\n (employeeDesignation).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...employeeDesignations];\r\n this.rows = employeeDesignations;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingEmployeeDesignationName = null;\r\n this.employeeDesignationEditor.resetForm(true);\r\n }\r\n\r\n\r\n newEmployeeDesignation() {\r\n this.editingEmployeeDesignationName = null;\r\n this.sourceEmployeeDesignation = null;\r\n this.editedEmployeeDesignation = this.employeeDesignationEditor.newEmployeeDesignation();\r\n this.header = 'New';\r\n this.openDialog(this.editedEmployeeDesignation);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editEmployeeDesignation(row: EmployeeDesignation) {\r\n this.editingEmployeeDesignationName = { key: row.code };\r\n this.sourceEmployeeDesignation = row;\r\n this.editedEmployeeDesignation = this.employeeDesignationEditor.editEmployeeDesignation(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedEmployeeDesignation);\r\n }\r\n\r\n deleteEmployeeDesignation(row: EmployeeDesignation) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\"?', DialogType.confirm, () => this.deleteEmployeeDesignationHelper(row));\r\n }\r\n\r\n\r\n deleteEmployeeDesignationHelper(row: EmployeeDesignation) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.employeeDesignationService.deleteEmployeeDesignation(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageEmployeeDesignations() {\r\n return true;//this.accountService.userHasPermission(Permission.manageEmployeeDesignationPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"

{{'pageHeader.EmployeeSchedules' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Monday\\r\\n Tuesday\\r\\n Wednesday\\r\\n Thursday\\r\\n Friday\\r\\n Saturday\\r\\n Sunday\\r\\n \\r\\n Click on table cell to assign employees.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{s.name}}
{{l.name}}\\r\\n\\r\\n
\\r\\n {{c.name}}  \\r\\n\\r\\n \\r\\n Cover\\r\\n Remove\\r\\n \\r\\n
\\r\\n \\r\\n {{c.coverName}} (cover for {{c.name}})\\r\\n Remove\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Covering Employee\\r\\n \\r\\n \\r\\n {{sc.name}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Cover\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Extend Schedule\\r\\n
\\r\\n
\\r\\n Don't Display\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Add Employees\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{sc.name}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Add\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { EmployeeSchedule } from 'src/app/models/employee-schedule.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { EmployeeScheduleService } from 'src/app/services/employee-schedule.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { EmployeeScheduleShift } from '../../models/employee-schedule-shift.model';\r\nimport { LocationService } from '../../services/location.service';\r\nimport { EmployeeDataService } from '../../services/employee-data.service';\r\nimport { Location } from '../../models/location.model';\r\nimport { EmployeeData } from 'src/app/models/employee-data.model';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'employee-schedule-assign',\r\n templateUrl: './employee-schedule-assign.component.html',\r\n animations: [fadeInOut]\r\n})\r\nexport class EmployeeScheduleAssignComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewEmployeeSchedule = false;\r\n private originalEmployeeSchedule: EmployeeSchedule = new EmployeeSchedule();\r\n private employeeScheduleEdit: EmployeeSchedule = new EmployeeSchedule();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false};\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n public day: any = '1';\r\n\r\n public clickedLocationId: any;\r\n public clickedShiftId: any;\r\n public clickedDay: any;\r\n\r\n public searchForm: FormControl = new FormControl();\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('radioGroup')\r\n private radioGroup;\r\n\r\n @ViewChild('label')\r\n private label;\r\n allLocations: Location[];\r\n selected: any;\r\n selectedCover: any;\r\n allEmployeeDatas: EmployeeData[];\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private employeeScheduleService: EmployeeScheduleService, private locationService: LocationService, private employeeDataService: EmployeeDataService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.employeeSchedule) != typeof (undefined)) {\r\n if (data.employeeSchedule.id) {\r\n this.editEmployeeSchedule(data.employeeSchedule);\r\n } else {\r\n this.newEmployeeSchedule();\r\n }\r\n }\r\n\r\n this.locationService.getLocationsByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allLocations = results;\r\n \r\n },\r\n error => {\r\n \r\n });\r\n\r\n this.employeeDataService.getEmployeeDataByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allEmployeeDatas = results[0];\r\n\r\n },\r\n error => {\r\n });\r\n\r\n this.day = new Date().getDay() + '';\r\n }\r\n\r\n clickedCell(locationId, shiftId, day) {\r\n this.clickedLocationId = locationId;\r\n this.clickedShiftId = shiftId;\r\n this.clickedDay = day;\r\n\r\n if (!this.employeeScheduleEdit.infos) this.employeeScheduleEdit.infos = [];\r\n\r\n if (!this.employeeScheduleEdit.infos.some(e => e.locationId == locationId && e.shiftId == shiftId && e.day == day)) {\r\n this.employeeScheduleEdit.infos.push({\r\n locationId : locationId,\r\n shiftId : shiftId,\r\n day : day\r\n });\r\n }\r\n }\r\n\r\n addCover(selected, slot) {\r\n if (!selected) return;\r\n\r\n slot.coveringEmployeeDataId = selected.id;\r\n slot.coverName = selected.name;\r\n slot.cover = false;\r\n\r\n this.selectedCover = null;\r\n }\r\n\r\n addEmployee(selected, locationId, shiftId, day) {\r\n if (!selected) return;\r\n if (!this.employeeScheduleEdit.slots) this.employeeScheduleEdit.slots = [];\r\n\r\n if (this.employeeScheduleEdit.slots.some(e => e.isActive && e.employeeDataId === selected.id && e.locationId == locationId && e.shiftId == shiftId && e.day == day)) {\r\n this.alertService.showStickyMessage(\"Error\", \"Employee is already added\", MessageSeverity.error);\r\n return;\r\n }\r\n\r\n let s: any = {};\r\n s.isActive = 1;\r\n\r\n s.employeeDataId = selected.id;\r\n s.name = selected.name;\r\n s.locationId = locationId;\r\n s.shiftId = shiftId;\r\n s.day = day;\r\n\r\n this.employeeScheduleEdit.slots.push(s);\r\n\r\n this.selected = null;\r\n }\r\n\r\n addShift() {\r\n if (!this.employeeScheduleEdit.shifts) this.employeeScheduleEdit.shifts = [];\r\n\r\n let s = new EmployeeScheduleShift();\r\n s.isActive = 1;\r\n\r\n this.employeeScheduleEdit.shifts.push(s);\r\n }\r\n\r\n addLocation(selected: any) {\r\n if (!selected) return;\r\n if (!this.employeeScheduleEdit.locations) this.employeeScheduleEdit.locations = [];\r\n\r\n if (this.employeeScheduleEdit.locations.some(e => e.locationId === selected.id && e.isActive)) {\r\n this.alertService.showStickyMessage(\"Error\", \"Location is already added\", MessageSeverity.error);\r\n return;\r\n }\r\n\r\n let c: any = {};\r\n Object.assign(c, selected);\r\n c.isActive = 1;\r\n\r\n c.locationId = c.id;\r\n c.id = \"0\";\r\n this.employeeScheduleEdit.locations.push(c);\r\n\r\n this.selected = null;\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.employeeScheduleEdit.id) {\r\n this.employeeScheduleService.newEmployeeSchedule(this.employeeScheduleEdit).subscribe(employeeSchedule => this.saveSuccessHelper(employeeSchedule), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.employeeScheduleService.updateEmployeeSchedule(this.employeeScheduleEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(employeeSchedule?: EmployeeSchedule) {\r\n if (employeeSchedule)\r\n Object.assign(this.employeeScheduleEdit, employeeSchedule);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewEmployeeSchedule) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.employeeScheduleEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.employeeScheduleEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.employeeScheduleEdit = new EmployeeSchedule();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newEmployeeSchedule() {\r\n this.showValidationErrors = true;\r\n this.isNewEmployeeSchedule = true;\r\n this.employeeScheduleEdit = new EmployeeSchedule();\r\n return this.employeeScheduleEdit;\r\n }\r\n\r\n editEmployeeSchedule(employeeSchedule: EmployeeSchedule) {\r\n if (employeeSchedule) {\r\n this.isNewEmployeeSchedule = false;\r\n this.showValidationErrors = true;\r\n this.originalEmployeeSchedule = employeeSchedule;\r\n this.employeeScheduleEdit = new EmployeeSchedule();\r\n Object.assign(this.employeeScheduleEdit, employeeSchedule);\r\n\r\n return this.employeeScheduleEdit;\r\n }\r\n else {\r\n return this.newEmployeeSchedule();\r\n }\r\n }\r\n\r\n get canManageEmployeeSchedules() {\r\n return true;//this.accountService.userHasPermission(Permission.manageEmployeeSchedulePermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZW1wbG95ZWUtc2NoZWR1bGUvZW1wbG95ZWUtc2NoZWR1bGUtZWRpdG9yLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"

{{'pageHeader.EmployeeSchedules' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'employeeSchedules.editor.CodeRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'employeeSchedules.editor.LabelRequired' | translate}}\\r\\n \\r\\n\\r\\n \\r\\n Effective date\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Ineffective date\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Add Shift\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Shift Name\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Monday \\r\\n Tuesday \\r\\n Wednesday \\r\\n Thursday \\r\\n Friday \\r\\n Saturday \\r\\n Sunday\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n Start Time \\r\\n \\r\\n  \\r\\n\\r\\n\\r\\n End Time \\r\\n  \\r\\n\\r\\n Remove \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Select Locations\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{location.name}} - {{location.description}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Add\\r\\n
\\r\\n
\\r\\n Remove   {{c.name}} - {{c.description}}
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { EmployeeSchedule } from 'src/app/models/employee-schedule.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { EmployeeScheduleService } from 'src/app/services/employee-schedule.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { EmployeeScheduleShift } from '../../models/employee-schedule-shift.model';\r\nimport { LocationService } from '../../services/location.service';\r\nimport { Location } from '../../models/location.model';\r\nimport { LocType } from 'src/app/models/enums';\r\nimport { FormControl, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'employee-schedule-editor',\r\n templateUrl: './employee-schedule-editor.component.html',\r\n styleUrls: ['./employee-schedule-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class EmployeeScheduleEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewEmployeeSchedule = false;\r\n private originalEmployeeSchedule: EmployeeSchedule = new EmployeeSchedule();\r\n private employeeScheduleEdit: EmployeeSchedule = new EmployeeSchedule();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false};\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n public locationSearchForm: FormControl = new FormControl();\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n allLocations: Location[];\r\n selected: any;\r\n\r\n buildingList: Location[];\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private employeeScheduleService: EmployeeScheduleService, private locationService: LocationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.employeeSchedule) != typeof (undefined)) {\r\n if (data.employeeSchedule.id) {\r\n this.editEmployeeSchedule(data.employeeSchedule);\r\n } else {\r\n this.newEmployeeSchedule();\r\n }\r\n }\r\n\r\n this.locationService.getLocationsByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allLocations = results;\r\n\r\n var rooms = results.filter(f => f.locationTypeName == LocType.Room);\r\n this.buildingList = [];\r\n var bList = {};\r\n rooms.forEach(function (loc, i, array) {\r\n if (loc.parentLocation != null && loc.parentLocation.locationTypeName == LocType.Building) {\r\n if (!bList.hasOwnProperty(loc.parentLocation.id)) {\r\n bList[loc.parentLocation.id] = loc.parentLocation;\r\n }\r\n }\r\n });\r\n\r\n var keys = Object.keys(bList);\r\n this.buildingList = keys.map(function (v) { return bList[v]; });\r\n },\r\n error => {\r\n \r\n });\r\n }\r\n\r\n getRoomsByBuildingId(id) {\r\n let unsortedLocations = this.allLocations.filter(f => f.parentLocationId == id)\r\n unsortedLocations.sort((a, b) => (a.name < b.name ? -1 : 1));\r\n\r\n return unsortedLocations;\r\n }\r\n\r\n addShift() {\r\n if (!this.employeeScheduleEdit.shifts) this.employeeScheduleEdit.shifts = [];\r\n\r\n let s = new EmployeeScheduleShift();\r\n s.isActive = 1;\r\n\r\n this.employeeScheduleEdit.shifts.push(s);\r\n }\r\n\r\n addLocation(selected: any) {\r\n if (!selected) return;\r\n if (!this.employeeScheduleEdit.locations) this.employeeScheduleEdit.locations = [];\r\n\r\n if (this.employeeScheduleEdit.locations.some(e => e.locationId === selected.id)) {\r\n this.alertService.showStickyMessage(\"Error\", \"Location is already added\", MessageSeverity.error);\r\n return;\r\n }\r\n\r\n let c: any = {};\r\n Object.assign(c, selected);\r\n c.isActive = 1;\r\n\r\n c.locationId = c.id;\r\n c.id = \"0\";\r\n this.employeeScheduleEdit.locations.push(c);\r\n\r\n console.log('sLoc', this.employeeScheduleEdit.locations);\r\n\r\n this.selected = null;\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.employeeScheduleEdit.id) {\r\n this.employeeScheduleService.newEmployeeSchedule(this.employeeScheduleEdit).subscribe(employeeSchedule => this.saveSuccessHelper(employeeSchedule), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.employeeScheduleService.updateEmployeeSchedule(this.employeeScheduleEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(employeeSchedule?: EmployeeSchedule) {\r\n if (employeeSchedule)\r\n Object.assign(this.employeeScheduleEdit, employeeSchedule);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewEmployeeSchedule) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.employeeScheduleEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.employeeScheduleEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.employeeScheduleEdit = new EmployeeSchedule();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newEmployeeSchedule() {\r\n this.showValidationErrors = true;\r\n this.isNewEmployeeSchedule = true;\r\n this.employeeScheduleEdit = new EmployeeSchedule();\r\n return this.employeeScheduleEdit;\r\n }\r\n\r\n editEmployeeSchedule(employeeSchedule: EmployeeSchedule) {\r\n if (employeeSchedule) {\r\n this.isNewEmployeeSchedule = false;\r\n this.showValidationErrors = true;\r\n this.originalEmployeeSchedule = employeeSchedule;\r\n this.employeeScheduleEdit = new EmployeeSchedule();\r\n Object.assign(this.employeeScheduleEdit, employeeSchedule);\r\n\r\n return this.employeeScheduleEdit;\r\n }\r\n else {\r\n return this.newEmployeeSchedule();\r\n }\r\n }\r\n\r\n get canManageEmployeeSchedules() {\r\n return this.accountService.userHasPermission(Permission.manageEmployeeSchedulePermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9lbXBsb3llZS1zY2hlZHVsZS9lbXBsb3llZS1zY2hlZHVsZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZW1wbG95ZWUtc2NoZWR1bGUvZW1wbG95ZWUtc2NoZWR1bGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Employee Schedule

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'employeeSchedules.management.Edit' | translate}}\\r\\n {{'employeeSchedules.management.AssignEmployee' | translate}}\\r\\n {{'employeeSchedules.management.Details' | translate}}\\r\\n \\r\\n {{'employeeSchedules.management.Delete' | translate}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { EmployeeScheduleService } from 'src/app/services/employee-schedule.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { EmployeeSchedule } from 'src/app/models/employee-schedule.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { EmployeeScheduleEditorComponent } from './employee-schedule-editor.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { EmployeeScheduleAssignComponent } from './employee-schedule-assign.component';\r\n\r\n\r\n@Component({\r\n selector: 'employee-schedules-management',\r\n templateUrl: './employee-schedules-management.component.html',\r\n styleUrls: ['./employee-schedules-management.component.css']\r\n})\r\nexport class EmployeeSchedulesManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: EmployeeSchedule[] = [];\r\n rowsCache: EmployeeSchedule[] = [];\r\n allPermissions: Permission[] = [];\r\n editedEmployeeSchedule: EmployeeSchedule;\r\n sourceEmployeeSchedule: EmployeeSchedule;\r\n editingEmployeeScheduleName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('employeeScheduleEditor')\r\n employeeScheduleEditor: EmployeeScheduleEditorComponent;\r\n\r\n @ViewChild('employeeScheduleAssign')\r\n employeeScheduleAssign: EmployeeScheduleAssignComponent;\r\n\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private employeeScheduleService: EmployeeScheduleService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(employeeSchedule: EmployeeSchedule): void {\r\n const dialogRef = this.dialog.open(EmployeeScheduleEditorComponent, {\r\n data: { header: this.header, employeeSchedule: employeeSchedule },\r\n width: '90vw',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n importClicked() {\r\n document.getElementById('file').click()\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n let importFile = event ? event.dbPath : null;\r\n\r\n var r = confirm(`Are you sure you want to import from selected file?\\nAny data with same name will be overwritten, and you cannot undo this action.`);\r\n if (r) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.employeeScheduleService.import(importFile)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n\r\n this.alertService.showMessage(\"Import Success\", \"Import Success\", MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to import employee schedule to the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n }\r\n\r\n openAssignDialog(employeeSchedule: EmployeeSchedule): void {\r\n const dialogRef = this.dialog.open(EmployeeScheduleAssignComponent, {\r\n data: { header: this.header, employeeSchedule: employeeSchedule },\r\n width: '90vw',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'code', name: gT('employeeSchedules.management.Code'), width: 200 },\r\n { prop: 'label', name: gT('employeeSchedules.management.Label'), width: 200 },\r\n { name: '', width: 300, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.employeeScheduleEditor.changesSavedCallback = () => {\r\n this.addNewEmployeeScheduleToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.employeeScheduleEditor.changesCancelledCallback = () => {\r\n this.editedEmployeeSchedule = null;\r\n this.sourceEmployeeSchedule = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewEmployeeScheduleToList() {\r\n if (this.sourceEmployeeSchedule) {\r\n Object.assign(this.sourceEmployeeSchedule, this.editedEmployeeSchedule);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceEmployeeSchedule, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceEmployeeSchedule, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedEmployeeSchedule = null;\r\n this.sourceEmployeeSchedule = null;\r\n }\r\n else {\r\n let employeeSchedule = new EmployeeSchedule();\r\n Object.assign(employeeSchedule, this.editedEmployeeSchedule);\r\n this.editedEmployeeSchedule = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (employeeSchedule).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, employeeSchedule);\r\n this.rows.splice(0, 0, employeeSchedule);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.employeeScheduleService.getEmployeeScheduleByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let employeeSchedules = results[0];\r\n let permissions = results[1];\r\n\r\n employeeSchedules.forEach((employeeSchedule, index, employeeSchedules) => {\r\n (employeeSchedule).index = index + 1;\r\n\r\n employeeSchedule.shifts.forEach((shift) => {\r\n try {\r\n shift.startTime = shift.startTime.split(\"T\")[1];\r\n shift.endTime = shift.endTime.split(\"T\")[1];\r\n } catch (ex) { }\r\n });\r\n\r\n employeeSchedule.shifts = employeeSchedule.shifts.sort((a, b) => {\r\n if (!a.startTime || !b.startTime) return 0;\r\n return a.startTime.localeCompare(b.startTime)\r\n });\r\n employeeSchedule.locations = employeeSchedule.locations.sort((a, b) => {\r\n if (!a.name || !b.name) return 0;\r\n return a.name.localeCompare(b.name)\r\n });\r\n });\r\n\r\n\r\n this.rowsCache = [...employeeSchedules];\r\n this.rows = employeeSchedules;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingEmployeeScheduleName = null;\r\n this.employeeScheduleEditor.resetForm(true);\r\n }\r\n\r\n\r\n newEmployeeSchedule() {\r\n this.editingEmployeeScheduleName = null;\r\n this.sourceEmployeeSchedule = null;\r\n this.editedEmployeeSchedule = this.employeeScheduleEditor.newEmployeeSchedule();\r\n this.header = 'New';\r\n this.openDialog(this.editedEmployeeSchedule);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editEmployeeSchedule(row: EmployeeSchedule) {\r\n this.editingEmployeeScheduleName = { key: row.code };\r\n this.sourceEmployeeSchedule = row;\r\n this.editedEmployeeSchedule = this.employeeScheduleEditor.editEmployeeSchedule(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedEmployeeSchedule);\r\n }\r\n\r\n assignEmployeeSchedule(row: EmployeeSchedule) {\r\n this.editingEmployeeScheduleName = { key: row.code };\r\n this.sourceEmployeeSchedule = row;\r\n this.editedEmployeeSchedule = this.employeeScheduleAssign.editEmployeeSchedule(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openAssignDialog(this.editedEmployeeSchedule);\r\n }\r\n\r\n deleteEmployeeSchedule(row: EmployeeSchedule) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\"?', DialogType.confirm, () => this.deleteEmployeeScheduleHelper(row));\r\n }\r\n\r\n\r\n deleteEmployeeScheduleHelper(row: EmployeeSchedule) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.employeeScheduleService.deleteEmployeeSchedule(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageEmployeeSchedules() {\r\n return this.accountService.userHasPermission(Permission.manageEmployeeSchedulePermission);\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.no-padding-top{\\r\\n padding-top: 0px !important;\\r\\n}\\r\\n\\r\\n.font-unbold {\\r\\n font-weight: 100 !important;\\r\\n}\\r\\n\\r\\n.padding-right-10 {\\r\\n padding-right: 10px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9lbXMtcHJvZmlsZS9lbXMtcHJvZmlsZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFHQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsOEJBQThCO0FBQ2hDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9lbXMtcHJvZmlsZS9lbXMtcHJvZmlsZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5RXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuLm5vLXBhZGRpbmctdG9we1xyXG4gIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZvbnQtdW5ib2xkIHtcclxuICBmb250LXdlaWdodDogMTAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wYWRkaW5nLXJpZ2h0LTEwIHtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n No Changes \\r\\n On \\r\\n Off\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Reboot\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Resolution\\r\\n \\r\\n \\r\\n {{res.viewValue}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{v}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { EmsProfileService } from '../../services/ems-profile.service';\r\nimport { EmsProfile } from '../../models/ems-profile.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { ModuleService } from '../../services/module.service';\r\n//import { PatientCommunicatorService } from '../../services/patient-communicator.service';\r\n//import { CommunicatorRootMenu } from '../../models/communicator-menu.model';\r\n\r\ninterface Resolution {\r\n value: string;\r\n viewValue: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ems-profile-editor',\r\n templateUrl: './ems-profile-editor.component.html',\r\n styleUrls: ['./ems-profile-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class EmsProfileEditorComponent {\r\n\r\n private isEditMode = false;\r\n private isNewEmsProfile = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingEmsProfileName: string;\r\n private emsProfileEdit: EmsProfile = new EmsProfile();\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public disabledTime = false;\r\n\r\n //menus: CommunicatorRootMenu[] = [];\r\n\r\n public modules: any;\r\n\r\n public ress: Resolution[] = [\r\n { value: '', viewValue: '' },\r\n { value: '1024x768', viewValue: '1024 x 768' },\r\n { value: '1280x720', viewValue: '1280 x 720' },\r\n { value: '1920x1080', viewValue: '1920 x 1080' },\r\n { value: '3840x2160', viewValue: '3840 x 2160' }\r\n ];\r\n\r\n rotations = ['', 'Left', 'Right', 'Normal', 'Inverted'];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('facilities')\r\n private facilities;\r\n\r\n @ViewChild('locationsSelector')\r\n private locationsSelector;\r\n\r\n @ViewChild('allStartTimesSelector')\r\n private allStartTimesSelector;\r\n\r\n @ViewChild('allEndTimesSelector')\r\n private allEndTimesSelector;\r\n\r\n @ViewChild('startTime')\r\n private startTime;\r\n\r\n @ViewChild('endTime')\r\n private endTime;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n //moduleService: any;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private emsProfileService: EmsProfileService, private moduleService: ModuleService\r\n //private menuService: PatientCommunicatorService\r\n ) {\r\n this.getMenus();\r\n\r\n this.moduleService.getModules()\r\n .subscribe(results => {\r\n this.modules = results;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving modules.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.isNewEmsProfile) {\r\n this.emsProfileService.newEmsProfile(this.emsProfileEdit).subscribe(emsProfile => this.saveSuccessHelper(emsProfile), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.emsProfileService.updateEmsProfile(this.emsProfileEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n getMenus() {\r\n //this.menuService.getRootMenus(null, null)\r\n // .subscribe(results => {\r\n // this.menus = results;\r\n // },\r\n // error => {\r\n // //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving menu records.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n // });\r\n }\r\n\r\n private saveSuccessHelper(emsProfile?: EmsProfile) {\r\n if (emsProfile) {\r\n Object.assign(this.emsProfileEdit, emsProfile);\r\n }\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewEmsProfile)\r\n this.alertService.showMessage(\"Success\", `Ems Profile \\\"${this.emsProfileEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to ems profile \\\"${this.emsProfileEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.emsProfileEdit = new EmsProfile();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewEmsProfile && this.accountService.currentUser.emsProfiles.some(r => r == this.editingEmsProfileName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.emsProfileEdit = new EmsProfile();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n }\r\n\r\n \r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n public toggleTime() {\r\n setTimeout(() => this.allStartTimesSelector.refresh());\r\n setTimeout(() => this.allEndTimesSelector.refresh());\r\n }\r\n\r\n\r\n newEmsProfile() {\r\n this.isEditMode = true;\r\n this.isNewEmsProfile = true;\r\n this.showValidationErrors = true;\r\n this.disabledTime = false;\r\n this.editingEmsProfileName = null;\r\n this.selectedValues = {};\r\n this.emsProfileEdit = new EmsProfile();\r\n\r\n return this.emsProfileEdit;\r\n }\r\n\r\n editEmsProfile(emsProfile: EmsProfile) {\r\n this.isEditMode = true;\r\n if (emsProfile) {\r\n this.isNewEmsProfile = false;\r\n this.showValidationErrors = true;\r\n this.selectedValues = {};\r\n this.emsProfileEdit = new EmsProfile();\r\n Object.assign(this.emsProfileEdit, emsProfile);\r\n \r\n \r\n return this.emsProfileEdit;\r\n }\r\n else {\r\n return this.newEmsProfile();\r\n }\r\n }\r\n\r\n get canManageEmsProfiles() {\r\n return true;// || this.accountService.userHasPermission(Permission.manageEmsProfilesPermission)\r\n }\r\n}\r\n","module.exports = \".modal {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9lbXMtcHJvZmlsZS9lbXMtcHJvZmlsZXMuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQWE7QUFDZiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZW1zLXByb2ZpbGUvZW1zLXByb2ZpbGVzLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubW9kYWwge1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

{{'pageHeader.EmsProfiles' | 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 {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'emsProfiles.management.EmsProfileDetails' | translate:editingEmsProfileName}}

\\r\\n

{{editingEmsProfileName ? ('emsProfiles.management.EditEmsProfile' | translate:editingEmsProfileName) : ('emsProfiles.management.NewEmsProfile' | 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\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { AccountService } from '../../services/account.service';\r\nimport { EmsProfileService } from '../../services/ems-profile.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { EmsProfile } from '../../models/ems-profile.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { EmsProfileEditorComponent } from \"./ems-profile-editor.component\";\r\n\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { DateOnlyPipe } from '../../pipes/datetime.pipe';\r\n\r\n\r\n@Component({\r\n selector: 'ems-profiles',\r\n templateUrl: './ems-profiles.component.html',\r\n styleUrls: ['./ems-profiles.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class EmsProfilesComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: EmsProfile[] = [];\r\n rowsCache: EmsProfile[] = [];\r\n editedEmsProfile: EmsProfile;\r\n sourceEmsProfile: EmsProfile;\r\n editingEmsProfileName: { shortDescription: string };\r\n loadingIndicator: boolean;\r\n @Input()\r\n viewDate: Date;\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('emsProfileEditor')\r\n emsProfileEditor: EmsProfileEditorComponent;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private emsProfileService: EmsProfileService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'code', name: gT('emsProfiles.management.Code') },\r\n { prop: 'label', name: gT('emsProfiles.management.Label') },\r\n { name: '', width: 100, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: true, sortable: false, draggable: false }\r\n\r\n ];\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.emsProfileEditor.changesSavedCallback = () => {\r\n this.addNewEmsProfileToList();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.emsProfileEditor.changesCancelledCallback = () => {\r\n this.editedEmsProfile = null;\r\n this.sourceEmsProfile = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewEmsProfileToList() {\r\n if (this.sourceEmsProfile) {\r\n Object.assign(this.sourceEmsProfile, this.editedEmsProfile);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceEmsProfile, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceEmsProfile, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedEmsProfile = null;\r\n this.sourceEmsProfile = null;\r\n }\r\n else {\r\n let emsProfile = new EmsProfile();\r\n Object.assign(emsProfile, this.editedEmsProfile);\r\n this.editedEmsProfile = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (emsProfile).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, emsProfile);\r\n this.rows.splice(0, 0, emsProfile);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.emsProfileService.getEmsProfiles(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let emsProfiles = results[0];\r\n let locations = results[2];\r\n\r\n emsProfiles.forEach((emsProfile, index, emsProfiles) => {\r\n (emsProfile).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...emsProfiles];\r\n this.rows = emsProfiles;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve ems profiles from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingEmsProfileName = null;\r\n this.emsProfileEditor.resetForm(true);\r\n }\r\n\r\n\r\n newEmsProfile() {\r\n this.editingEmsProfileName = null;\r\n this.sourceEmsProfile = null;\r\n this.editedEmsProfile = this.emsProfileEditor.newEmsProfile();\r\n this.editorModal.show();\r\n }\r\n\r\n\r\n editEmsProfile(row: EmsProfile) {\r\n this.editingEmsProfileName = { shortDescription: row.code };\r\n this.sourceEmsProfile = row;\r\n this.editedEmsProfile = this.emsProfileEditor.editEmsProfile(row);\r\n this.editorModal.show();\r\n }\r\n\r\n deleteEmsProfile(row: EmsProfile) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\" ems profile?', DialogType.confirm, () => this.deleteEmsProfileHelper(row));\r\n }\r\n\r\n\r\n deleteEmsProfileHelper(row: EmsProfile) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.emsProfileService.deleteEmsProfile(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the ems profile.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canCreateEmsProfiles() {\r\n return this.accountService.userHasPermission(Permission.createEMSProfilesPermission)\r\n }\r\n\r\n get canUpdateEmsProfiles() {\r\n return this.accountService.userHasPermission(Permission.updateEMSProfilesPermission)\r\n }\r\n\r\n get canDeleteEmsProfiles() {\r\n return this.accountService.userHasPermission(Permission.deleteEMSProfilesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.no-padding-top{\\r\\n padding-top: 0px !important;\\r\\n}\\r\\n\\r\\n.font-unbold {\\r\\n font-weight: 100 !important;\\r\\n}\\r\\n\\r\\n.padding-right-10 {\\r\\n padding-right: 10px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9lbXMtc2NoZWR1bGUvZW1zLXNjaGVkdWxlLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUdBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSw4QkFBOEI7QUFDaEMiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2Vtcy1zY2hlZHVsZS9lbXMtc2NoZWR1bGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5uby1wYWRkaW5nLXRvcHtcclxuICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mb250LXVuYm9sZCB7XHJcbiAgZm9udC13ZWlnaHQ6IDEwMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFkZGluZy1yaWdodC0xMCB7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Monday\\r\\n \\r\\n  \\r\\n \\r\\n Tuesday\\r\\n \\r\\n  \\r\\n \\r\\n Wednesday\\r\\n \\r\\n  \\r\\n \\r\\n Thursday\\r\\n \\r\\n  \\r\\n \\r\\n Friday\\r\\n \\r\\n  \\r\\n \\r\\n Saturday\\r\\n \\r\\n  \\r\\n \\r\\n Sunday\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Except Holiday\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { EmsScheduleService } from '../../services/ems-schedule.service';\r\nimport { EmsSchedule } from '../../models/ems-schedule.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { PIBTemplateLocation } from '../../models/department.model';\r\nimport { PIBService } from '../../services/pib.service';\r\nimport { EmsProfile } from '../../models/ems-profile.model';\r\nimport { EmsProfileService } from '../../services/ems-profile.service';\r\nimport { Ems } from '../../models/ems.model';\r\nimport { EmsService } from '../../services/ems.service';\r\nimport { LocationService } from '../../services/location.service';\r\nimport { Location } from '../../models/location.model';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ems-schedule-editor',\r\n templateUrl: './ems-schedule-editor.component.html',\r\n styleUrls: ['./ems-schedule-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class EmsScheduleEditorComponent {\r\n\r\n private isEditMode = false;\r\n private isNewEmsSchedule = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingEmsScheduleName: string;\r\n private emsScheduleEdit: EmsSchedule = new EmsSchedule();\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public disabledTime = false;\r\n\r\n private allLocations: Location[] = [];\r\n private allProfiles: EmsProfile[] = [];\r\n private allEmsGroups: Ems[] = [];\r\n\r\n public searchForm: FormControl = new FormControl();\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('facilities')\r\n private facilities;\r\n\r\n @ViewChild('locationsSelector')\r\n private locationsSelector;\r\n\r\n @ViewChild('allStartTimesSelector')\r\n private allStartTimesSelector;\r\n\r\n @ViewChild('allEndTimesSelector')\r\n private allEndTimesSelector;\r\n\r\n @ViewChild('startTime')\r\n private startTime;\r\n\r\n @ViewChild('endTime')\r\n private endTime;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private emsScheduleService: EmsScheduleService, private pibService: PIBService, private emsProfileService: EmsProfileService, private locationService: LocationService, private emsService: EmsService) {\r\n\r\n this.locationService.getLocationsByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allLocations = results;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.`,\r\n MessageSeverity.error);\r\n });\r\n\r\n this.emsProfileService.getAllEmsProfiles()\r\n .subscribe(results => {\r\n this.allProfiles = results;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving ems profiles.`,\r\n MessageSeverity.error);\r\n });\r\n\r\n this.emsService.getEmses()\r\n .subscribe(results => {\r\n this.allEmsGroups = results;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving ems groups.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.isNewEmsSchedule) {\r\n this.emsScheduleService.newEmsSchedule(this.emsScheduleEdit).subscribe(emsSchedule => this.saveSuccessHelper(emsSchedule), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.emsScheduleService.updateEmsSchedule(this.emsScheduleEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(emsSchedule?: EmsSchedule) {\r\n if (emsSchedule) {\r\n Object.assign(this.emsScheduleEdit, emsSchedule);\r\n }\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewEmsSchedule)\r\n this.alertService.showMessage(\"Success\", `EMS Schedule \\\"${this.emsScheduleEdit.label}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to ems schedule \\\"${this.emsScheduleEdit.label}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.emsScheduleEdit = new EmsSchedule();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewEmsSchedule && this.accountService.currentUser.emsSchedules.some(r => r == this.editingEmsScheduleName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.emsScheduleEdit = new EmsSchedule();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n }\r\n\r\n \r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n public toggleTime() {\r\n setTimeout(() => this.allStartTimesSelector.refresh());\r\n setTimeout(() => this.allEndTimesSelector.refresh());\r\n }\r\n\r\n\r\n newEmsSchedule() {\r\n this.isEditMode = true;\r\n this.isNewEmsSchedule = true;\r\n this.showValidationErrors = true;\r\n this.disabledTime = false;\r\n this.editingEmsScheduleName = null;\r\n this.selectedValues = {};\r\n this.emsScheduleEdit = new EmsSchedule();\r\n\r\n return this.emsScheduleEdit;\r\n }\r\n\r\n editEmsSchedule(emsSchedule: EmsSchedule) {\r\n this.isEditMode = true;\r\n if (emsSchedule) {\r\n this.isNewEmsSchedule = false;\r\n this.showValidationErrors = true;\r\n this.selectedValues = {};\r\n this.emsScheduleEdit = new EmsSchedule();\r\n Object.assign(this.emsScheduleEdit, emsSchedule);\r\n \r\n \r\n return this.emsScheduleEdit;\r\n }\r\n else {\r\n return this.newEmsSchedule();\r\n }\r\n }\r\n\r\n get canManageEmsSchedules() {\r\n return true;// || this.accountService.userHasPermission(Permission.manageEmsSchedulesPermission)\r\n }\r\n}\r\n","module.exports = \".modal {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9lbXMtc2NoZWR1bGUvZW1zLXNjaGVkdWxlcy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtBQUNmIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9lbXMtc2NoZWR1bGUvZW1zLXNjaGVkdWxlcy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1vZGFsIHtcclxuICB6LWluZGV4OiAxMDAwO1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

{{'pageHeader.EmsSchedules' | 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 Previous\\r\\n
\\r\\n
\\r\\n Today\\r\\n
\\r\\n
\\r\\n Next\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ viewDate | calendarDate: ((view === 'list' ? 'day' : view) + 'ViewTitle'):locale }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Month\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

{{editingEmsScheduleName ? ('emsSchedules.management.EditEmsSchedule' | translate:editingEmsScheduleName) : ('emsSchedules.management.NewEmsSchedule' | 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\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, NgZone, ViewEncapsulation } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { AccountService } from '../../services/account.service';\r\nimport { EmsScheduleService } from '../../services/ems-schedule.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { EmsSchedule } from '../../models/ems-schedule.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { EmsScheduleEditorComponent } from \"./ems-schedule-editor.component\";\r\n\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { DateOnlyPipe } from '../../pipes/datetime.pipe';\r\nimport { CalendarView, CalendarEvent, CalendarEventAction, CalendarMonthViewBeforeRenderEvent, CalendarWeekViewBeforeRenderEvent, CalendarDayViewBeforeRenderEvent } from 'angular-calendar';\r\nimport { ViewPeriod } from 'calendar-utils';\r\nimport RRule from 'rrule';\r\nimport * as moment from 'moment';\r\nimport { CalendarService } from '../../services/calendar.service';\r\nimport {\r\n startOfDay,\r\n endOfDay,\r\n subDays,\r\n addDays,\r\n endOfMonth,\r\n isSameDay,\r\n isSameMonth,\r\n addHours,\r\n} from 'date-fns';\r\n\r\n@Component({\r\n selector: 'ems-schedules',\r\n templateUrl: './ems-schedules.component.html',\r\n styleUrls: ['./ems-schedules.component.css'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class EmsSchedulesComponent implements OnInit, AfterViewInit {\r\n schedules: EmsSchedule[] = [];\r\n rowsCache: EmsSchedule[] = [];\r\n editedEmsSchedule: EmsSchedule;\r\n sourceEmsSchedule: EmsSchedule;\r\n editingEmsScheduleName: { shortDescription: string };\r\n loadingIndicator: boolean;\r\n @Input()\r\n\r\n view: CalendarView = CalendarView.Month;\r\n viewDate: Date = new Date();\r\n @Output() viewChange: EventEmitter = new EventEmitter();\r\n\r\n @Output() viewDateChange: EventEmitter = new EventEmitter();\r\n\r\n actions: CalendarEventAction[] = [\r\n {\r\n label: this.canUpdateEmsSchedules ? '' : '',\r\n //a11yLabel: 'Edit',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n this.editEmsSchedule(event.meta);\r\n },\r\n },\r\n {\r\n label: this.canDeleteEmsSchedules ? '' : '',\r\n //a11yLabel: 'Delete',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n this.deleteEmsSchedule(event.meta);\r\n },\r\n },\r\n ];\r\n\r\n calendarEvents: CalendarEvent[];\r\n\r\n viewPeriod: ViewPeriod;\r\n\r\n //refresh: Subject = new Subject();\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('emsScheduleEditor')\r\n emsScheduleEditor: EmsScheduleEditorComponent;\r\n publicHolidays: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private emsScheduleService: EmsScheduleService, private cdr: ChangeDetectorRef, public zone: NgZone, private changeDetector: ChangeDetectorRef, private calendarService: CalendarService) {\r\n }\r\n\r\n\r\n\r\n activeDayIsOpen: boolean = true;\r\n\r\n dayClicked({ date, events }: { date: Date; events: CalendarEvent[] }): 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 }\r\n this.viewDate = date;\r\n }\r\n }\r\n\r\n\r\n handleEvent(action: string, event: CalendarEvent): void {\r\n\r\n }\r\n\r\n eventUpdateEvent() {\r\n this.calendarEvents = [];\r\n this.calendarEvents.length = 0;\r\n this.schedules.forEach((event) => {\r\n if (!event.rrule || !event.rrule.byweekday || event.rrule.byweekday.length == 0) return;\r\n\r\n const rule: RRule = new RRule({\r\n ...event.rrule,\r\n dtstart: moment(this.viewPeriod.start).startOf('day').toDate(),\r\n until: moment(this.viewPeriod.end).endOf('day').toDate(),\r\n });\r\n const { label, color } = event;\r\n\r\n let events = [];\r\n\r\n rule.all().forEach((date) => {\r\n date.setDate(date.getDate() - 1);\r\n if (date >= event.effectiveDateObj && date <= event.ineffectiveDateObj) {\r\n let start = new Date(date.getFullYear(), date.getMonth(), date.getDate(), event.startTimeObj.getHours(), event.startTimeObj.getMinutes(), event.startTimeObj.getSeconds());\r\n let end = new Date(date.getFullYear(), date.getMonth(), date.getDate(), event.endTimeObj.getHours(), event.endTimeObj.getMinutes(), event.endTimeObj.getSeconds());\r\n\r\n let time = \"(\" + event.startTime.substring(0, 5) + \" - \" + event.endTime.substring(0, 5) + \")\"\r\n\r\n if (event.exceptHoliday && this.publicHolidays && this.publicHolidays.find(p => p.dateObj.getTime() === date.getTime())) return;\r\n\r\n events.push({\r\n title: time + \" \" + label,\r\n color,\r\n start: start,\r\n end: end,\r\n actions: this.actions,\r\n meta: event\r\n });\r\n }\r\n });\r\n\r\n this.calendarEvents = this.calendarEvents.concat(Array.from(events));\r\n });\r\n\r\n let holevents = [];\r\n\r\n if (this.publicHolidays) {\r\n for (let h of this.publicHolidays) {\r\n\r\n\r\n holevents.push({\r\n title: h.name,\r\n color: { \"primary\": \"red\" },\r\n start: new Date(h.date),\r\n //end: h.date,\r\n allDay: true,\r\n })\r\n }\r\n\r\n this.calendarEvents = this.calendarEvents.concat(Array.from(holevents));\r\n }\r\n\r\n //this.refresh.next();\r\n }\r\n\r\n updateCalendarEvents(\r\n viewRender:\r\n | CalendarMonthViewBeforeRenderEvent\r\n | CalendarWeekViewBeforeRenderEvent\r\n | CalendarDayViewBeforeRenderEvent\r\n ): void {\r\n if (!this.viewPeriod ||\r\n !moment(this.viewPeriod.start).isSame(viewRender.period.start) ||\r\n !moment(this.viewPeriod.end).isSame(viewRender.period.end)\r\n ) {\r\n this.viewPeriod = viewRender.period;\r\n this.calendarEvents = [];\r\n\r\n this.eventUpdateEvent();\r\n }\r\n }\r\n\r\n ngAfterContentChecked() {\r\n\r\n this.changeDetector.detectChanges();\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.calendarEvents = []\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n setTimeout(() => {\r\n this.getPublicHoliday();\r\n\r\n }, 0);\r\n \r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.emsScheduleEditor.changesSavedCallback = () => {\r\n this.loadData();\r\n this.editorModal.hide();\r\n };\r\n\r\n this.emsScheduleEditor.changesCancelledCallback = () => {\r\n this.editedEmsSchedule = null;\r\n this.sourceEmsSchedule = null;\r\n this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n loadData() {\r\n console.log(\"SCHEDULE FILE\");\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.emsScheduleService.getEmsSchedules(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let emsSchedules = results[0];\r\n let locations = results[2];\r\n\r\n emsSchedules = emsSchedules.filter(e => e.startTime && e.endTime);\r\n\r\n emsSchedules.forEach((emsSchedule, index, emsSchedules) => {\r\n try {\r\n (emsSchedule).index = index + 1;\r\n\r\n let weekday = [];\r\n if (emsSchedule.monday) weekday.push(RRule.MO);\r\n if (emsSchedule.tuesday) weekday.push(RRule.TU);\r\n if (emsSchedule.wednesday) weekday.push(RRule.WE);\r\n if (emsSchedule.thursday) weekday.push(RRule.TH);\r\n if (emsSchedule.friday) weekday.push(RRule.FR);\r\n if (emsSchedule.saturday) weekday.push(RRule.SA);\r\n if (emsSchedule.sunday) weekday.push(RRule.SU);\r\n\r\n if (emsSchedule.effectiveDate) {\r\n emsSchedule.effectiveDateObj = new Date(emsSchedule.effectiveDate);\r\n emsSchedule.effectiveDate = emsSchedule.effectiveDate.split(\"T\")[0];\r\n }\r\n\r\n if (emsSchedule.ineffectiveDate) {\r\n emsSchedule.ineffectiveDateObj = new Date(emsSchedule.ineffectiveDate);\r\n emsSchedule.ineffectiveDate = emsSchedule.ineffectiveDate.split(\"T\")[0];\r\n }\r\n\r\n if (emsSchedule.startTime) {\r\n emsSchedule.startTimeObj = new Date(emsSchedule.startTime);\r\n emsSchedule.startTime = emsSchedule.startTime.split(\"T\")[1];\r\n }\r\n\r\n if (emsSchedule.endTime) {\r\n emsSchedule.endTimeObj = new Date(emsSchedule.endTime);\r\n emsSchedule.endTime = emsSchedule.endTime.split(\"T\")[1];\r\n }\r\n\r\n emsSchedule.rrule = {\r\n freq: RRule.WEEKLY,\r\n byweekday: weekday,\r\n }\r\n } catch (ex) {}\r\n });\r\n\r\n\r\n this.rowsCache = [...emsSchedules];\r\n this.schedules = emsSchedules;\r\n\r\n this.eventUpdateEvent();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve ems schedules from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingEmsScheduleName = null;\r\n this.emsScheduleEditor.resetForm(true);\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n newEmsSchedule() {\r\n this.editingEmsScheduleName = null;\r\n this.sourceEmsSchedule = null;\r\n this.editedEmsSchedule = this.emsScheduleEditor.newEmsSchedule();\r\n this.editorModal.show();\r\n }\r\n\r\n\r\n editEmsSchedule(row: EmsSchedule) {\r\n this.editingEmsScheduleName = { shortDescription: row.label };\r\n this.sourceEmsSchedule = row;\r\n this.editedEmsSchedule = this.emsScheduleEditor.editEmsSchedule(row);\r\n this.editorModal.show();\r\n }\r\n\r\n deleteEmsSchedule(row: EmsSchedule) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.label + '\\\" ems schedule?', DialogType.confirm, () => this.deleteEmsScheduleHelper(row));\r\n }\r\n\r\n\r\n deleteEmsScheduleHelper(row: EmsSchedule) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.emsScheduleService.deleteEmsSchedule(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row);\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the ems schedule.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getPublicHoliday() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n let now = new Date();\r\n\r\n let filter: any = {};\r\n filter.filters = `(Date)>=${now.getFullYear()}-${now.getMonth() + 1}-01,(IsActive)==true`;\r\n\r\n this.calendarService.getPublicHolidaysByFilter(filter)\r\n .subscribe(results => {\r\n \r\n this.publicHolidays = results.pagedData;\r\n\r\n this.publicHolidays.forEach((publicHoliday, index, publicHolidays) => {\r\n if (publicHoliday.date) {\r\n publicHoliday.dateObj = new Date(publicHoliday.date);\r\n publicHoliday.date = publicHoliday.date.split(\"T\")[0];\r\n }\r\n\r\n (publicHoliday).index = index + 1;\r\n });\r\n\r\n\r\n this.loadData();\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canCreateEmsSchedules() {\r\n return this.accountService.userHasPermission(Permission.createEMSSchedulesPermission)\r\n }\r\n\r\n get canUpdateEmsSchedules() {\r\n return this.accountService.userHasPermission(Permission.updateEMSSchedulesPermission)\r\n }\r\n\r\n get canDeleteEmsSchedules() {\r\n return this.accountService.userHasPermission(Permission.deleteEMSSchedulesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmFjaWxpdGllcy9mYWNpbGl0aWVzLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\r\\n
\\r\\n

{{'pageHeader.Facilities' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
NOTHING
\\r\\n
\\r\\n
\\r\\n\"","import { Component } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\n\r\n@Component({\r\n selector: 'facilities',\r\n templateUrl: './facilities.component.html',\r\n styleUrls: ['./facilities.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class FacilitiesComponent {\r\n\r\n}\r\n","module.exports = \"\\r\\n.bottom-space {\\r\\n margin-bottom: 40px;\\r\\n}\\r\\n\\r\\n.no-bottom-space {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.statistics-close-btn {\\r\\n}\\r\\n\\r\\n.todo-close-btn {\\r\\n margin: 0 10px -25px 0;\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.banner-close-btn {\\r\\n margin: 0 10px -25px 0;\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.choices {\\r\\n padding-top: 20px;\\r\\n}\\r\\n\\r\\n.choices .mat-icon {\\r\\n font-size: 80px !important;\\r\\n height: 80px !important;\\r\\n width: 80px !important;\\r\\n padding-top: 20px !important;\\r\\n }\\r\\n\\r\\n.choices .mat-icon-button {\\r\\n padding: 20px !important;\\r\\n min-width: 0;\\r\\n /* width: 40px; */\\r\\n /* height: 40px; */\\r\\n /* flex-shrink: 0; */\\r\\n line-height: 40px;\\r\\n border-radius: 50%;\\r\\n width: 100% !important;\\r\\n height: 100% !important;\\r\\n border: 1px solid black;\\r\\n border-radius: 0;\\r\\n background: #f1f1f1;\\r\\n }\\r\\n\\r\\n.choices a {\\r\\n text-decoration: underline;\\r\\n outline: none;\\r\\n }\\r\\n\\r\\n.choices a:focus, .choices a:active, .choices a:hover, .choices a.selected {\\r\\n background: #007f7b;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n.mat-card{\\r\\n box-shadow: none !important;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mZWVkYmFjay9mZWVkYmFjay5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtBQUNBOztBQUVBO0lBQ0ksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixVQUFVO0FBQ2Q7O0FBRUE7SUFDSSxzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLFVBQVU7QUFDZDs7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFDRTtJQUNFLDBCQUEwQjtJQUMxQix1QkFBdUI7SUFDdkIsc0JBQXNCO0lBQ3RCLDRCQUE0QjtFQUM5Qjs7QUFFQTtJQUNFLHdCQUF3QjtJQUN4QixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixnQkFBZ0I7SUFDaEIsbUJBQW1CO0VBQ3JCOztBQUVBO0lBQ0UsMEJBQTBCO0lBQzFCLGFBQWE7RUFDZjs7QUFFRTtNQUNFLG1CQUFtQjtNQUNuQixZQUFZO0lBQ2Q7O0FBRUE7TUFDRSwyQkFBMkI7SUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2ZlZWRiYWNrL2ZlZWRiYWNrLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmJvdHRvbS1zcGFjZSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG59XHJcblxyXG4ubm8tYm90dG9tLXNwYWNlIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbi5zdGF0aXN0aWNzLWNsb3NlLWJ0biB7XHJcbn1cclxuXHJcbi50b2RvLWNsb3NlLWJ0biB7XHJcbiAgICBtYXJnaW46IDAgMTBweCAtMjVweCAwO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMTtcclxufVxyXG5cclxuLmJhbm5lci1jbG9zZS1idG4ge1xyXG4gICAgbWFyZ2luOiAwIDEwcHggLTI1cHggMDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDE7XHJcbn1cclxuLmNob2ljZXMge1xyXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xyXG59XHJcbiAgLmNob2ljZXMgLm1hdC1pY29uIHtcclxuICAgIGZvbnQtc2l6ZTogODBweCAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiA4MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogODBweCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5jaG9pY2VzIC5tYXQtaWNvbi1idXR0b24ge1xyXG4gICAgcGFkZGluZzogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgbWluLXdpZHRoOiAwO1xyXG4gICAgLyogd2lkdGg6IDQwcHg7ICovXHJcbiAgICAvKiBoZWlnaHQ6IDQwcHg7ICovXHJcbiAgICAvKiBmbGV4LXNocmluazogMDsgKi9cclxuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgYmFja2dyb3VuZDogI2YxZjFmMTtcclxuICB9XHJcblxyXG4gIC5jaG9pY2VzIGEge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuXHJcbiAgICAuY2hvaWNlcyBhOmZvY3VzLCAuY2hvaWNlcyBhOmFjdGl2ZSwgLmNob2ljZXMgYTpob3ZlciwgLmNob2ljZXMgYS5zZWxlY3RlZCB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICMwMDdmN2I7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIH1cclxuXHJcbiAgICAubWF0LWNhcmR7XHJcbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuIl19 */\"","module.exports = \"
\\r\\n

{{'pageHeader.Feedback' | translate}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

How did the event go?

\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Leave a comment\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { ActivatedRoute, NavigationStart, Router, NavigationEnd } from \"@angular/router\";\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { ReservationService } from 'src/app/services/reservation.service';\r\n\r\n@Component({\r\n selector: 'feedback',\r\n templateUrl: './feedback.component.html',\r\n styleUrls: ['./feedback.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class FeedbackComponent implements OnInit{\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n private feedback = { reservationId: '', userId: '', feedback: '', comment: '' };\r\n choices: any[] = [\r\n { name: 'VERY GOOD', icon: 'sentiment_very_satisfied' },\r\n { name: 'GOOD', icon: 'sentiment_satisfied' },\r\n { name: 'POOR', icon: 'sentiment_dissatisfied' },\r\n { name: 'VERY POOR', icon: 'sentiment_very_dissatisfied' }];\r\n\r\n private isSaving = false;\r\n\r\n @ViewChild('f')\r\n private form;\r\n public formResetToggle = true;\r\n showValidationErrors = true;\r\n\r\n constructor(private alertService: AlertService, public configurations: ConfigurationService, private accountService: AccountService, private authService: AuthService,\r\n public router: Router, private route: ActivatedRoute, private reservationService: ReservationService ) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n if (this.router.url.indexOf('/feedback') > -1) {\r\n var queryParams: string = '';\r\n var queryParamSec = this.router.url.split('?');\r\n if (queryParamSec && queryParamSec.length > 0) {\r\n queryParams = queryParamSec[1];\r\n var queryStrings = Utilities.getQueryParamsFromString(queryParams);\r\n if (queryStrings) {\r\n this.feedback.reservationId = queryStrings['reservationId'];\r\n this.feedback.userId = queryStrings['userId'];\r\n }\r\n }\r\n \r\n }\r\n }\r\n\r\n private save() {\r\n if (!this.feedback.feedback) {\r\n this.alertService.showMessage(\"Error\", 'Please select one choice.', MessageSeverity.error);\r\n return;\r\n }\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Submitting feedback...\");\r\n this.reservationService.validateFeedback(this.feedback)\r\n .subscribe(data => {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n let message = data.isSuccess ? data.message : 'Failed to submit your feedback for this event - ' + data.message;\r\n if (data.isSuccess) {\r\n this.form.reset();\r\n this.alertService.showMessage(\"Success\", message, MessageSeverity.success);\r\n } else {\r\n this.alertService.showMessage(\"Error\", message, MessageSeverity.error);\r\n }\r\n },\r\n error => this.saveFailedHelper(error));\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Submit Error\", \"The below errors occured while submitting your feedback:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmxvb3IvZmxvb3ItZWRpdG9yLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"

{{'pageHeader.Floors' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{'floors.editor.CodeRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'floors.editor.LabelRequired' | 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\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { Floor } from 'src/app/models/floor.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { FloorService } from 'src/app/services/floor.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'floor-editor',\r\n templateUrl: './floor-editor.component.html',\r\n styleUrls: ['./floor-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class FloorEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewFloor = false;\r\n private originalFloor: Floor = new Floor();\r\n private floorEdit: Floor = new Floor();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false};\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private floorService: FloorService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.floor) != typeof (undefined)) {\r\n if (data.floor.id) {\r\n this.editFloor(data.floor);\r\n } else {\r\n this.newFloor();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.floorEdit.id) {\r\n this.floorService.newFloor(this.floorEdit).subscribe(floor => this.saveSuccessHelper(floor), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.floorService.updateFloor(this.floorEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(floor?: Floor) {\r\n if (floor)\r\n Object.assign(this.floorEdit, floor);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewFloor) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.floorEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.floorEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.floorEdit = new Floor();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newFloor() {\r\n this.showValidationErrors = true;\r\n this.isNewFloor = true;\r\n this.floorEdit = new Floor();\r\n return this.floorEdit;\r\n }\r\n\r\n editFloor(floor: Floor) {\r\n if (floor) {\r\n this.isNewFloor = false;\r\n this.showValidationErrors = true;\r\n this.originalFloor = floor;\r\n this.floorEdit = new Floor();\r\n Object.assign(this.floorEdit, floor);\r\n\r\n return this.floorEdit;\r\n }\r\n else {\r\n return this.newFloor();\r\n }\r\n }\r\n\r\n get canManageFloors() {\r\n return true;//this.accountService.userHasPermission(Permission.manageFloorPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mbG9vci9mbG9vcnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZmxvb3IvZmxvb3JzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Floors

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'floors.management.Edit' | translate}}\\r\\n {{'floors.management.Details' | translate}}\\r\\n \\r\\n {{'floors.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { FloorService } from 'src/app/services/floor.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Floor } from 'src/app/models/floor.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { FloorEditorComponent } from './floor-editor.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'floors-management',\r\n templateUrl: './floors-management.component.html',\r\n styleUrls: ['./floors-management.component.css']\r\n})\r\nexport class FloorsManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: Floor[] = [];\r\n rowsCache: Floor[] = [];\r\n allPermissions: Permission[] = [];\r\n editedFloor: Floor;\r\n sourceFloor: Floor;\r\n editingFloorName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('floorEditor')\r\n floorEditor: FloorEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private floorService: FloorService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(floor: Floor): void {\r\n const dialogRef = this.dialog.open(FloorEditorComponent, {\r\n data: { header: this.header, floor: floor },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'code', name: gT('floors.management.Code') },\r\n { prop: 'label', name: gT('floors.management.Label') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.floorEditor.changesSavedCallback = () => {\r\n this.addNewFloorToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.floorEditor.changesCancelledCallback = () => {\r\n this.editedFloor = null;\r\n this.sourceFloor = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewFloorToList() {\r\n if (this.sourceFloor) {\r\n Object.assign(this.sourceFloor, this.editedFloor);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceFloor, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceFloor, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedFloor = null;\r\n this.sourceFloor = null;\r\n }\r\n else {\r\n let floor = new Floor();\r\n Object.assign(floor, this.editedFloor);\r\n this.editedFloor = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (floor).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, floor);\r\n this.rows.splice(0, 0, floor);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.floorService.getFloorByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let floors = results[0];\r\n let permissions = results[1];\r\n\r\n floors.forEach((floor, index, floors) => {\r\n (floor).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...floors];\r\n this.rows = floors;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingFloorName = null;\r\n this.floorEditor.resetForm(true);\r\n }\r\n\r\n\r\n newFloor() {\r\n this.editingFloorName = null;\r\n this.sourceFloor = null;\r\n this.editedFloor = this.floorEditor.newFloor();\r\n this.header = 'New';\r\n this.openDialog(this.editedFloor);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editFloor(row: Floor) {\r\n this.editingFloorName = { key: row.code };\r\n this.sourceFloor = row;\r\n this.editedFloor = this.floorEditor.editFloor(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedFloor);\r\n }\r\n\r\n deleteFloor(row: Floor) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\"?', DialogType.confirm, () => this.deleteFloorHelper(row));\r\n }\r\n\r\n\r\n deleteFloorHelper(row: Floor) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.floorService.deleteFloor(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageFloors() {\r\n return true;//this.accountService.userHasPermission(Permission.manageFloorPermission);\r\n }\r\n\r\n}\r\n","module.exports = \".boxshadow {\\r\\n position: relative;\\r\\n box-shadow: 1px 2px 4px rgba(0, 0, 0, .5);\\r\\n padding: 10px;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n\\r\\n .boxshadow::after {\\r\\n content: '';\\r\\n position: absolute;\\r\\n z-index: -1; /* hide shadow behind image */\\r\\n box-shadow: 0 15px 20px rgba(0, 0, 0, 0.3);\\r\\n width: 70%;\\r\\n left: 15%; /* one half of the remaining 30% */\\r\\n height: 100px;\\r\\n bottom: 0;\\r\\n }\\r\\n\\r\\n\\r\\n .cardshadow {\\r\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\\r\\n}\\r\\n\\r\\n\\r\\n .separator-hr {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n\\r\\n .last-control-group {\\r\\n margin-bottom: -25px;\\r\\n}\\r\\n\\r\\n\\r\\n .login-container .panel-primary > .panel-heading {\\r\\n color: #fff;\\r\\n background-color: #007f7b;\\r\\n border-color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n .login-container .btn-primary {\\r\\n color: #fff;\\r\\n background-color: #007f7b;\\r\\n border-color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n @media (min-width: 768px) {\\r\\n .login-container {\\r\\n width: 700px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n /*@media (min-width: 992px) {\\r\\n .login-container {\\r\\n width: 700px;\\r\\n }\\r\\n}*/\\r\\n\\r\\n\\r\\n @media (min-width: 1200px) {\\r\\n .login-container {\\r\\n width: 730px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxrQkFBa0I7SUFHbEIseUNBQXlDO0lBQ3pDLGFBQWE7SUFDYixpQkFBaUI7QUFDckI7OztJQUdJO1FBQ0ksV0FBVztRQUNYLGtCQUFrQjtRQUNsQixXQUFXLEVBQUUsNkJBQTZCO1FBRzFDLDBDQUEwQztRQUMxQyxVQUFVO1FBQ1YsU0FBUyxFQUFFLGtDQUFrQztRQUM3QyxhQUFhO1FBQ2IsU0FBUztJQUNiOzs7SUFHSjtJQUNJLDRFQUE0RTtBQUNoRjs7O0lBR0E7SUFDSSxTQUFTO0FBQ2I7OztJQUVBO0lBQ0ksb0JBQW9CO0FBQ3hCOzs7SUFFQTtFQUNFLFdBQVc7RUFDWCx5QkFBeUI7RUFDekIscUJBQXFCO0FBQ3ZCOzs7SUFFQTtFQUNFLFdBQVc7RUFDWCx5QkFBeUI7RUFDekIscUJBQXFCO0FBQ3ZCOzs7SUFFQTtFQUNFO1FBQ00sWUFBWTtJQUNoQjtBQUNKOzs7SUFFQTs7OztFQUlFOzs7SUFFRjtJQUNJO1FBQ0ksWUFBWTtJQUNoQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYm94c2hhZG93IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC1tb3otYm94LXNoYWRvdzogMXB4IDJweCA0cHggcmdiYSgwLCAwLCAwLDAuNSk7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDFweCAycHggNHB4IHJnYmEoMCwgMCwgMCwgLjUpO1xyXG4gICAgYm94LXNoYWRvdzogMXB4IDJweCA0cHggcmdiYSgwLCAwLCAwLCAuNSk7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbn1cclxuXHJcblxyXG4gICAgLmJveHNoYWRvdzo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB6LWluZGV4OiAtMTsgLyogaGlkZSBzaGFkb3cgYmVoaW5kIGltYWdlICovXHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDE1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDE1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICAgICAgbGVmdDogMTUlOyAvKiBvbmUgaGFsZiBvZiB0aGUgcmVtYWluaW5nIDMwJSAqL1xyXG4gICAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgfVxyXG5cclxuXHJcbi5jYXJkc2hhZG93IHtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA2cHggMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xOSk7XHJcbn1cclxuXHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmxhc3QtY29udHJvbC1ncm91cCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMjVweDtcclxufVxyXG5cclxuLmxvZ2luLWNvbnRhaW5lciAucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1oZWFkaW5nIHtcclxuICBjb2xvcjogI2ZmZjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3ZjdiO1xyXG4gIGJvcmRlci1jb2xvcjogIzAwN2Y3YjtcclxufVxyXG5cclxuLmxvZ2luLWNvbnRhaW5lciAuYnRuLXByaW1hcnkge1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdmN2I7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAubG9naW4tY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogNzAwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAubG9naW4tY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogNzAwcHg7XHJcbiAgICB9XHJcbn0qL1xyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gICAgLmxvZ2luLWNvbnRhaW5lciB7XHJcbiAgICAgICAgd2lkdGg6IDczMHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n Forgot Password\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Email is required\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, OnDestroy, Input, ViewChild } from \"@angular/core\";\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { UserLogin } from '../../models/user-login.model';\r\nimport { Router } from \"@angular/router\";\r\n@Component({\r\n selector: \"app-forgot-password\",\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.css']\r\n})\r\n\r\nexport class ForgotPasswordComponent implements OnInit, OnDestroy {\r\n\r\n userLogin = new UserLogin();\r\n isLoading = false;\r\n formResetToggle = true;\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private authService: AuthService, private configurations: ConfigurationService,\r\n public router: Router ) {\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n \r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n\r\n }\r\n\r\n\r\n\r\n\r\n showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\nsetInstitutionCode() {\r\n this.userLogin.institutionCode = '';\r\n var queryParams: string = '';\r\n var queryParamSection: string[] = [];\r\n if (this.router.url.indexOf('?') > -1) {\r\n queryParams = this.router.url.split('?')[1];\r\n queryParamSection = queryParams.split('&');\r\n }\r\n if (queryParamSection && queryParamSection.length > 0) {\r\n var queryStrings = Utilities.getQueryParamsFromString(queryParams);\r\n this.userLogin.institutionCode = queryStrings['institutioncode'];\r\n }\r\n\r\n }\r\n\r\n forgotPassword() {\r\n this.setInstitutionCode();\r\n this.isLoading = true;\r\n this.alertService.startLoadingMessage(\"\", \"Submitting...\");\r\n\r\n this.authService.forgotPassword(this.userLogin.email, this.userLogin.institutionCode)\r\n .subscribe(\r\n response => {\r\n setTimeout(() => {\r\n this.alertService.stopLoadingMessage();\r\n this.isLoading = false;\r\n if (response.isSuccess) {\r\n this.reset();\r\n this.alertService.showStickyMessage(\"Success\", response.message, MessageSeverity.success);\r\n } else {\r\n this.alertService.showStickyMessage(\"Unable to reset password\", response.message, MessageSeverity.error);\r\n }\r\n \r\n }, 500);\r\n },\r\n error => {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Unable to reset password\", \"An error occured while resetting password, please try again later.\\nError: \" + Utilities.getResponseBody(error), MessageSeverity.error);\r\n\r\n\r\n setTimeout(() => {\r\n this.isLoading = false;\r\n }, 500);\r\n });\r\n }\r\n\r\n\r\n reset() {\r\n this.form.reset();\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n

{{'pageHeader.DeviceManager' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'settings.header.UnknownDevice' | translate}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

{{'settings.header.ApproveDevice' | translate}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from \"../../directives/bootstrap-tab.directive\";\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Permission } from '../../models/permission.model';\r\nimport { EpaperDevicesManagementComponent } from './frs-unknown-device/frs-devices-management.component';\r\n\r\n\r\n@Component({\r\n selector: 'frs-device-manager',\r\n templateUrl: './frs-device-manager.component.html',\r\n styleUrls: ['./frs-device-manager.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class EpaperDeviceManagerComponent implements OnInit, OnDestroy {\r\n\r\n\r\n @ViewChild('epaperDeviceManagement')\r\n epaperDeviceManagement: EpaperDevicesManagementComponent;\r\n\r\n\r\n isUnknownEpaperDevice = true;\r\n isApproveEpaperDevice = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly unknownEpaperDeviceTab = \"unknownEpaperDevice\";\r\n readonly approveEpaperDeviceTab = \"approveEpaperDevice\";\r\n\r\n @ViewChild(\"tab\")\r\n tab: BootstrapTabDirective;\r\n\r\n\r\n constructor(private route: ActivatedRoute, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n showContent(anchor: string) {\r\n if ((this.isFragmentEquals(anchor, this.unknownEpaperDeviceTab) && !this.canViewEpaperDevices) ||\r\n (this.isFragmentEquals(anchor, this.approveEpaperDeviceTab) && !this.canViewEpaperDevices))\r\n return;\r\n\r\n this.tab.show(`#${anchor || this.unknownEpaperDeviceTab}Tab`);\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null)\r\n fragment1 = \"\";\r\n\r\n if (fragment2 == null)\r\n fragment2 = \"\";\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n let activeTab = event.target.hash.split(\"#\", 2).pop();\r\n\r\n this.isUnknownEpaperDevice = activeTab == this.unknownEpaperDeviceTab;\r\n this.isApproveEpaperDevice = activeTab == this.approveEpaperDeviceTab;\r\n this.epaperDeviceManagement.isApproval = this.isApproveEpaperDevice;\r\n \r\n }\r\n\r\n setIsApproval(isApproval: boolean) {\r\n this.epaperDeviceManagement.isApproval = this.isApproveEpaperDevice;\r\n }\r\n\r\n get canViewEpaperDevices() {\r\n return this.accountService.userHasPermission(Permission.viewEpaperDevicesPermission);\r\n }\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mcnMtZGV2aWNlLW1hbmFnZXIvZnJzLWRldmljZS1tYW5hZ2VyLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0FBQ2YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2Zycy1kZXZpY2UtbWFuYWdlci9mcnMtZGV2aWNlLW1hbmFnZXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNpZGUtbWVudSB7XHJcbiAgbWluLXdpZHRoOiAxMjBweDtcclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG5baGlkZGVuXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4iXX0= */\"","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mcnMtZGV2aWNlLW1hbmFnZXIvZnJzLXVua25vd24tZGV2aWNlL2Zycy1kZXZpY2UtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBR0E7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZnJzLWRldmljZS1tYW5hZ2VyL2Zycy11bmtub3duLWRldmljZS9mcnMtZGV2aWNlLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{location.name}} - {{location.description}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Location } from '../../../models/location.model';\r\nimport { Institution } from '../../../models/institution.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { LocType } from 'src/app/models/enums';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { EpaperDevice, EpaperTemplateLocation } from 'src/app/models/epaper.model';\r\nimport { EpaperService } from 'src/app/services/epaper.service';\r\n\r\n@Component({\r\n selector: 'frs-device-editor',\r\n templateUrl: './frs-device-editor.component.html',\r\n styleUrls: ['./frs-device-editor.component.css']\r\n})\r\nexport class EpaperDeviceEditorComponent {\r\n\r\n private isEditMode = false;\r\n private isNewEpaperDevice = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingEpaperDeviceCode: string;\r\n private epaperDeviceEdit: EpaperDevice = new EpaperDevice();\r\n private allLocations: any = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n fcLocation = new FormControl('', [Validators.required] );\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('locations')\r\n private locations;\r\n\r\n @ViewChild('locationsSelector')\r\n private locationsSelector;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private epaperDeviceService: EpaperService, private locationService: LocationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.epaperDevice) != typeof (undefined)) {\r\n\r\n if (!data.locations || data.locations.length == 0) {\r\n this.getLocations(true);\r\n }\r\n\r\n if (data.epaperDevice.id) {\r\n this.editEpaperDevice(data.epaperDevice, data.locations);\r\n } else {\r\n this.newEpaperDevice(data.locations);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n private save() {\r\n if (this.form.form.valid && this.fcLocation.valid) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n var locations = this.allLocations.filter(f => f.id == this.epaperDeviceEdit.location_id);\r\n if (locations && locations.length > 0) {\r\n this.epaperDeviceEdit.location_code = locations[0].name;\r\n }\r\n if (this.isNewEpaperDevice) {\r\n this.epaperDeviceService.newEpaperDevice(this.epaperDeviceEdit).subscribe(epaperDevice => this.saveSuccessHelper(epaperDevice), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.epaperDeviceService.updateEpaperDevice(this.epaperDeviceEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(epaperDevice?: EpaperDevice) {\r\n if (epaperDevice)\r\n Object.assign(this.epaperDeviceEdit, epaperDevice);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewEpaperDevice)\r\n this.alertService.showMessage(\"Success\", `EpaperDevice \\\"${this.epaperDeviceEdit.device_code}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to epaperDevice \\\"${this.epaperDeviceEdit.device_code}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.epaperDeviceEdit = new EpaperDevice();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewEpaperDevice && this.accountService.currentUser.epaperDevices.some(r => r == this.editingEpaperDeviceCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n //this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.epaperDeviceEdit = new EpaperDevice();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newEpaperDevice(allLocations: Location[]) {\r\n this.isEditMode = true;\r\n this.isNewEpaperDevice = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingEpaperDeviceCode = null;\r\n this.allLocations = allLocations;\r\n this.selectedValues = {};\r\n this.epaperDeviceEdit = new EpaperDevice();\r\n return this.epaperDeviceEdit;\r\n }\r\n\r\n editEpaperDevice(epaperDevice: EpaperDevice, allLocations: Location[]) {\r\n this.isEditMode = true;\r\n this.allLocations = allLocations;\r\n if (epaperDevice) {\r\n this.isNewEpaperDevice = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingEpaperDeviceCode = epaperDevice.device_code;\r\n this.selectedValues = {};\r\n this.epaperDeviceEdit = new EpaperDevice();\r\n Object.assign(this.epaperDeviceEdit, epaperDevice);\r\n\r\n return this.epaperDeviceEdit;\r\n }\r\n else {\r\n return this.newEpaperDevice(allLocations);\r\n }\r\n }\r\n\r\n getLocations(isShowMessage: boolean) {\r\n if (isShowMessage) {\r\n this.alertService.startLoadingMessage(\"Loading locations...\");\r\n }\r\n\r\n this.locationService.getLocations(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allLocations = results;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageEpaperDevices() {\r\n return this.accountService.userHasPermission(Permission.manageEpaperDevicesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.status_offline {\\r\\n font-size: 20px;\\r\\n color: #f72626 !important;\\r\\n}\\r\\n\\r\\n.status_online {\\r\\n font-size: 20px;\\r\\n color: #08ca08;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mcnMtZGV2aWNlLW1hbmFnZXIvZnJzLXVua25vd24tZGV2aWNlL2Zycy1kZXZpY2VzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBRUE7RUFDRSxlQUFlO0VBQ2YseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2Zycy1kZXZpY2UtbWFuYWdlci9mcnMtdW5rbm93bi1kZXZpY2UvZnJzLWRldmljZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG5cclxuLnN0YXR1c19vZmZsaW5lIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgY29sb3I6ICNmNzI2MjYgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnN0YXR1c19vbmxpbmUge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBjb2xvcjogIzA4Y2EwODtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Epaper Device Management

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{'devices.management.Edit' | translate}}\\r\\n \\r\\n {{'devices.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ChangeDetectorRef, NgModule, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Location } from '../../../models/location.model';\r\nimport { Institution } from '../../../models/institution.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { MatDialog } from '@angular/material';\r\nimport { EpaperDevice, EpaperTemplateLocation } from 'src/app/models/epaper.model';\r\nimport { EpaperDeviceEditorComponent } from './frs-device-editor.component';\r\nimport { EpaperService } from 'src/app/services/epaper.service';\r\nimport * as signalRCore from '@aspnet/signalr';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\n//var oldSignalR: any = require('../../../assets/scripts/jquery.signalR-2.3.0.min.js');\r\n//let $: JQueryStatic = (window as any)[\"jQuery\"];\r\n\r\n//import { SignalRModule } from 'ng2-signalr';\r\n//import { IConnectionOptions, SignalR } from 'ng2-signalr';\r\n\r\n\r\nexport interface DialogData {\r\n header: string;\r\n epaperDevice: EpaperDevice;\r\n locations: Location[];\r\n institutions: Institution[];\r\n isApproval: boolean,\r\n data: any\r\n}\r\n\r\n@Component({\r\n selector: 'frs-devices-management',\r\n templateUrl: './frs-devices-management.component.html',\r\n styleUrls: ['./frs-devices-management.component.css']\r\n})\r\nexport class EpaperDevicesManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n columns: any[] = [];\r\n rows: EpaperDevice[] = [];\r\n rowsCache: EpaperDevice[] = [];\r\n allLocations: any = [];\r\n allInstitutions: Institution[] = [];\r\n editedEpaperDevice: EpaperDevice;\r\n sourceEpaperDevice: EpaperDevice;\r\n editingEpaperDeviceCode: { code: string };\r\n loadingIndicator: boolean;\r\n\r\n @Input()\r\n isApproval: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('epaperDeviceEditor')\r\n epaperDeviceEditor: EpaperDeviceEditorComponent;\r\n\r\n _route: ActivatedRoute;\r\n header: string;\r\n private connection: signalRCore.HubConnection;\r\n\r\n deviceInterval: any;\r\n locationInterval: any;\r\n ////signalR connection reference\r\n //private epaperConnection: SignalR;\r\n\r\n ////signalR proxy reference\r\n //private proxy: SignalR.Hub.Proxy;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private epaperDeviceService: EpaperService, private route: ActivatedRoute, public dialog: MatDialog, private cd: ChangeDetectorRef,\r\n protected configurations: ConfigurationService,\r\n private locationService: LocationService) {\r\n this._route = route;\r\n\r\n //this.epaperConnection.hub.start().done(function () {\r\n // console.log(\"Connected, transport = \" + $.connection.hub.transport.name);\r\n //});\r\n\r\n //initialize connection\r\n //this.epaperConnection = $.connection;\r\n //this.epaperConnection.hub.url = 'http://119.73.206.36:89/signalr';\r\n\r\n ////to create proxy give your hub class name as parameter. IMPORTANT: notice that I followed camel casing in giving class name\r\n //this.proxy = this.epaperConnection.hub.createHubProxy('patientHub');\r\n ////$.connection.hub.qs = { \"identifier\": 1 };\r\n ////$.connection.hub.qs = { \"bed\": bed };\r\n //this.epaperConnection.hub.start()\r\n // .done(function () {\r\n // console.log(\"Connected, connection ID = \" + this.epaperConnection.hub.id + \", transport = \" + this.epaperConnection.hub.transport.name);\r\n // })\r\n // .fail(function () {\r\n // console.log(\"Could not connect!\");\r\n // });\r\n\r\n //define a callback method for proxy\r\n //this.proxy.on('newPatientUpdate', (obj) => console.log(obj));\r\n\r\n //this.connection = new signalRCore.HubConnectionBuilder()\r\n // .withUrl(\"/hub/frs\")\r\n // .build();\r\n this.connection = this.accountService.signalRConnection(this.configurations.baseUrl + \"/hub/frs\");\r\n if (this.connection != null) {\r\n this.connection.on(\"RefreshEpaperDeviceList\", (device: EpaperDevice) => {\r\n //this.loadData();\r\n var rows = this.rows;\r\n this.rows.push(device);\r\n this.rows = [...this.rows]\r\n\r\n //this.rows = [];\r\n //this.rowsCache = [];\r\n //rows.push(device);\r\n //this.rows = rows;\r\n this.rowsCache = [...this.rows];\r\n this.cd.detectChanges();\r\n \r\n });\r\n }\r\n\r\n //this.connection.start().catch(err => {\r\n // console.log(err);\r\n //});\r\n }\r\n\r\n openDialog(epaperDevice: EpaperDevice, isApproval?: boolean): void {\r\n const dialogRef = this.dialog.open(EpaperDeviceEditorComponent, {\r\n data: { header: this.header, epaperDevice: epaperDevice, locations: this.allLocations, institutions: this.allInstitutions, isApproval: isApproval},\r\n width: '600px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'device_code', name: gT('devices.management.Code')},\r\n { prop: 'device_label', name: gT('devices.management.Label') },\r\n { prop: 'ip_address', name: gT('devices.management.IpAddress') },\r\n { prop: 'location_code', name: gT('devices.management.Location') },\r\n { prop: 'mac_address', name: gT('devices.management.MacAddress') },\r\n //{ prop: 'status_display', name: gT('devices.management.Status'), width: 80 },\r\n { name: gT('devices.management.Status'), code: '', width: 50, cellTemplate: this.statusTemplate, resizeable: false, canAutoResize: true, sortable: false, draggable: false },\r\n { code: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: true, sortable: false, draggable: false }\r\n ];\r\n var component = this;\r\n this.deviceInterval = setInterval(() => { component.loadData(); }, 60000);\r\n this.locationInterval = setInterval(() => { component.getLocations(false); }, 60000);\r\n this.loadData();\r\n this.getLocations(true);\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.epaperDeviceEditor.changesSavedCallback = () => {\r\n this.addNewEpaperDeviceToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.epaperDeviceEditor.changesCancelledCallback = () => {\r\n this.editedEpaperDevice = null;\r\n this.sourceEpaperDevice = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n clearInterval(this.locationInterval);\r\n clearInterval(this.deviceInterval);\r\n }\r\n addNewEpaperDeviceToList() {\r\n if (this.sourceEpaperDevice) {\r\n Object.assign(this.sourceEpaperDevice, this.editedEpaperDevice);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceEpaperDevice, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceEpaperDevice, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedEpaperDevice = null;\r\n this.sourceEpaperDevice = null;\r\n }\r\n else {\r\n let epaperDevice = new EpaperDevice();\r\n Object.assign(epaperDevice, this.editedEpaperDevice);\r\n this.editedEpaperDevice = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (epaperDevice).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, epaperDevice);\r\n this.rows.splice(0, 0, epaperDevice);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n syncLocations() {\r\n this.alertService.startLoadingMessage(\"Synchronizing locations...\");\r\n this.loadingIndicator = true;\r\n\r\n this.epaperDeviceService.syncLocations()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(results);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to sync locations from the server.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getLocations(isShowMessage: boolean) {\r\n if (isShowMessage) {\r\n this.alertService.startLoadingMessage(\"Loading locations...\");\r\n }\r\n this.locationService.getLocations(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allLocations = results;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.epaperDeviceService.getDevices()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let epaperDevices = results[0];\r\n\r\n epaperDevices.forEach((epaperDevice, index, epaperDevices) => {\r\n (epaperDevice).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...epaperDevices];\r\n this.rows = epaperDevices;\r\n\r\n \r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve epaper devices from the server.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.device_code, r.device_label, r.mac_address, r.location_code, r.ip_address));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingEpaperDeviceCode = null;\r\n this.epaperDeviceEditor.resetForm(true);\r\n }\r\n\r\n\r\n newEpaperDevice() {\r\n this.editingEpaperDeviceCode = null;\r\n this.sourceEpaperDevice = null;\r\n this.editedEpaperDevice = this.epaperDeviceEditor.newEpaperDevice(this.allLocations);\r\n this.header = 'New Epaper Device';\r\n this.openDialog(this.editedEpaperDevice, false);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editEpaperDevice(row: EpaperDevice, isApproval?: boolean) {\r\n this.editingEpaperDeviceCode = { code: row.device_code };\r\n this.sourceEpaperDevice = row;\r\n this.editedEpaperDevice = this.epaperDeviceEditor.editEpaperDevice(row, this.allLocations);\r\n this.header = 'View Epaper Device';//row.device_status == 'Approved' ? 'View EpaperDevice' : 'Edit EpaperDevice';\r\n this.openDialog(this.editedEpaperDevice, isApproval);\r\n //this.editorModal.show();\r\n }\r\n\r\n deleteEpaperDevice(row: EpaperDevice) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.device_label + '\\\" epaper device?', DialogType.confirm, () => this.deleteEpaperDeviceHelper(row));\r\n }\r\n\r\n\r\n deleteEpaperDeviceHelper(row: EpaperDevice) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.epaperDeviceService.deleteEpaperDevice(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the epaper device.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManageEpaperDevices() {\r\n return this.accountService.userHasPermission(Permission.manageEpaperDevicesPermission)\r\n }\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n#template_editor_container {\\r\\n \\r\\n min-height: 300px;\\r\\n height: 300px;\\r\\n display:block;\\r\\n}\\r\\n\\r\\n#stage-parent {\\r\\n border: 1px solid black !important;\\r\\n background-color: white !important;\\r\\n float: left;\\r\\n}\\r\\n\\r\\ncanvas {\\r\\n border: 1px solid black !important;\\r\\n}\\r\\n\\r\\n.close-properties {\\r\\n float: right;\\r\\n padding-right: 10px;\\r\\n font-size: small;\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.properties {\\r\\n width: 25%;\\r\\n position: absolute;\\r\\n border: solid 1px;\\r\\n right: 0;\\r\\n background: #dadada;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n.properties-handle {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n left: 30px;\\r\\n color: #969696;\\r\\n cursor: move;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n}\\r\\n\\r\\n.field_name_label {\\r\\n margin: 3px 8px auto 0;\\r\\n color: rgba(0,0,0,.54);\\r\\n font-weight: 500;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n.field_name_select {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.tools-container button{\\r\\n border-right: 1px solid #000;\\r\\n border-top: 1px solid #000;\\r\\n border-radius: 0px;\\r\\n min-width: 30px;\\r\\n}\\r\\n\\r\\n.tools-container button:first-child {\\r\\n border-left: 1px solid #000;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mcnMtdGVtcGxhdGUtZWRpdG9yL2Zycy1wcmV2aWV3L2Zycy1wcmV2aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBOztFQUVFLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2IsYUFBYTtBQUNmOztBQUVBO0VBQ0Usa0NBQWtDO0VBQ2xDLGtDQUFrQztFQUNsQyxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxrQ0FBa0M7QUFDcEM7O0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQiwwQkFBMEI7RUFDMUIsZUFBZTtBQUNqQjs7QUFDQTtFQUNFLFVBQVU7RUFDVixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLFFBQVE7RUFDUixtQkFBbUI7RUFDbkIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsVUFBVTtFQUNWLGNBQWM7RUFDZCxZQUFZO0VBQ1osV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIsMEJBQTBCO0VBQzFCLGtCQUFrQjtFQUNsQixlQUFlO0FBQ2pCOztBQUVFO0lBQ0UsMkJBQTJCO0VBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mcnMtdGVtcGxhdGUtZWRpdG9yL2Zycy1wcmV2aWV3L2Zycy1wcmV2aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2lkZS1tZW51IHtcclxuICBtaW4td2lkdGg6IDEyMHB4O1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbltoaWRkZW5dIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4jdGVtcGxhdGVfZWRpdG9yX2NvbnRhaW5lciB7XHJcbiAgXHJcbiAgbWluLWhlaWdodDogMzAwcHg7XHJcbiAgaGVpZ2h0OiAzMDBweDtcclxuICBkaXNwbGF5OmJsb2NrO1xyXG59XHJcblxyXG4jc3RhZ2UtcGFyZW50IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCBibGFjayAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbn1cclxuXHJcbmNhbnZhcyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2sgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNsb3NlLXByb3BlcnRpZXMge1xyXG4gIGZsb2F0OiByaWdodDtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gIGZvbnQtc2l6ZTogc21hbGw7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbi5wcm9wZXJ0aWVzIHtcclxuICB3aWR0aDogMjUlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3JkZXI6IHNvbGlkIDFweDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kOiAjZGFkYWRhO1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcblxyXG4ucHJvcGVydGllcy1oYW5kbGUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDEwcHg7XHJcbiAgbGVmdDogMzBweDtcclxuICBjb2xvcjogIzk2OTY5NjtcclxuICBjdXJzb3I6IG1vdmU7XHJcbiAgd2lkdGg6IDI0cHg7XHJcbiAgaGVpZ2h0OiAyNHB4O1xyXG59XHJcblxyXG4uZmllbGRfbmFtZV9sYWJlbCB7XHJcbiAgbWFyZ2luOiAzcHggOHB4IGF1dG8gMDtcclxuICBjb2xvcjogcmdiYSgwLDAsMCwuNTQpO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcblxyXG4uZmllbGRfbmFtZV9zZWxlY3Qge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLnRvb2xzLWNvbnRhaW5lciBidXR0b257XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDtcclxuICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAzMHB4O1xyXG59XHJcblxyXG4gIC50b29scy1jb250YWluZXIgYnV0dG9uOmZpcnN0LWNoaWxkIHtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzAwMDtcclxuICB9XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
Preview
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
Preview
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material\";\r\nimport { Component, Inject, OnInit, AfterViewInit } from \"@angular/core\";\r\nimport { DialogData } from \"../../device-manager/unknown-device/devices-management.component\";\r\nimport Konva from \"konva\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { PIBService } from \"src/app/services/pib.service\";\r\nimport { PIBTemplate } from \"src/app/models/department.model\";\r\nimport { AlertService, MessageSeverity } from \"src/app/services/alert.service\";\r\nimport { ShapeService } from \"src/app/services/shape.service\";\r\nimport { TextNodeService } from \"src/app/services/text-node.service\";\r\nimport { AuthService } from \"src/app/services/auth.service\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\n\r\n@Component({\r\n selector: 'frs-template-editor-preview',\r\n templateUrl: './frs-preview.component.html',\r\n styleUrls: ['./frs-preview.component.css'],\r\n})\r\nexport class FRSTemplateEditorPreviewDialog implements OnInit, AfterViewInit {\r\n dup_stage: Konva.Stage;\r\n dup_layer: Konva.Layer;\r\n imgSrc: string;\r\n\r\n origWidth = 1304;\r\n origHeight = 984;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dlgData: any,\r\n private shapeService: ShapeService,\r\n private textNodeService: TextNodeService,\r\n private pibService: PIBService,\r\n private alertService: AlertService,\r\n private route: ActivatedRoute,\r\n private authService: AuthService,\r\n private accountService: AccountService,\r\n private router: Router) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.router.url.indexOf('/pibdevicetemplate') > -1) {\r\n this.authService.reLoginDelegate = () => null;\r\n var queryParams = this.router.url.split('?');\r\n if (queryParams && queryParams.length > 0) {\r\n var queryParamSection = queryParams[1].split('&');\r\n if (queryParamSection && queryParamSection.length > 0) {\r\n var mac_address = queryParamSection[0].split('=')[1];\r\n this.pibService.getTemplateByMacAddress(mac_address).subscribe(result => {\r\n var template = result.data;\r\n template.isStaticLink = true;\r\n template.macAddress = mac_address;\r\n this.preview(template);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n cleanUpTemplate(json: string) {\r\n var template = JSON.parse(json);\r\n var children = template['children'][0]['children'];\r\n var newChildren = []\r\n for (var i = 0; i < children.length; i++) {\r\n if ((children[i]['className'] !== 'Line') && (!children[i]['attrs'] || children[i]['attrs']['zLayer'] === undefined)) {\r\n continue;\r\n } else {\r\n newChildren.push(children[i]);\r\n }\r\n }\r\n template['children'][0]['children'] = newChildren;\r\n return template;\r\n }\r\n\r\n safeGet(obj, prop, defaultValue) {\r\n try {\r\n return obj[prop] != null && obj[prop] !== undefined ? obj[prop] : defaultValue;\r\n } catch (e) {\r\n return defaultValue\r\n }\r\n }\r\n\r\n redrawFromJson(template: any, callback?: any): void {\r\n //var template = JSON.parse(json);\r\n this.dup_stage = new Konva.Stage({\r\n container: 'dup-container',\r\n width: this.origWidth,\r\n height: this.origHeight,\r\n drawBorder: template['attrs']['drawBorder'],\r\n //scaleX: 1 / 2,\r\n //scaleY: 1 / 2,\r\n //offsetWidth: .3,\r\n //offsetHeight: .3\r\n });\r\n //this.dup_stage.setAttr(\"drawBorder\", true);\r\n this.dup_layer = new Konva.Layer();\r\n this.dup_stage.add(this.dup_layer);\r\n var images = [];\r\n var imgCount = 0;\r\n var templateChildren = template['children'][0]['children'];\r\n var sortedChildren = templateChildren.sort((a, b) => parseInt(this.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(this.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n var childAddedCount = 0;\r\n var imgCount = 0;\r\n var newZIndex = sortedChildren.length - 1;\r\n\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var t = sortedChildren[i];\r\n if (t['className'] == 'Text') {\r\n const shape = new Konva.Text(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Line') {\r\n const shape = new Konva.Line(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Rect') {\r\n const shape = new Konva.Rect(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Image' && t['attrs']['src']) {\r\n var attrs = t['attrs'];\r\n var src = t['attrs']['src'];\r\n images.push({ src: src, attrs: attrs, zLayer: childAddedCount });\r\n childAddedCount++;\r\n var component = this;\r\n var imageObj = new Image()\r\n const image = this.shapeService.image(imageObj, attrs);\r\n imageObj.onload = function () {\r\n for (var i in images) {\r\n if (images[i].src == decodeURI(image.attrs.src)) {\r\n ++imgCount;\r\n var x = image.attrs.x === undefined ? 0 : parseInt(image.attrs.x);\r\n var y = image.attrs.y === undefined ? 0 : parseInt(image.attrs.y);\r\n\r\n image.setAttrs(images[i].attrs);\r\n image.x(x);\r\n image.y(y);\r\n image.setAttr('zLayer', images[i].zLayer);\r\n image.zIndex(parseInt(images[i].zLayer));\r\n\r\n component.dup_layer.draw();\r\n }\r\n }\r\n\r\n if (images != null && images.length == imgCount) {\r\n component.dup_layer.batchDraw();\r\n callback(component, component.dup_layer);\r\n }\r\n };\r\n imageObj.src = src;\r\n this.dup_layer.add(image);\r\n }\r\n\r\n this.dup_stage.add(this.dup_layer);\r\n this.dup_layer.draw();\r\n }\r\n if (!images || images == null || images.length == 0) {\r\n this.reorderComponents(this, this.dup_layer, callback);\r\n }\r\n }\r\n\r\n reorderComponents(component, layer, callback?: any) {\r\n var sortedChildren = layer.children.sort((a, b) => parseInt(component.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(component.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var shape = sortedChildren[i];\r\n var index = parseInt(sortedChildren[i].getAttr('zLayer'));\r\n shape.zIndex(index);\r\n shape.setZIndex(index);\r\n\r\n }\r\n layer.batchDraw();\r\n if (callback) {\r\n callback(component);\r\n }\r\n }\r\n\r\n preview(template: PIBTemplate): void {\r\n //var cleanTemplate = this.cleanUpTemplate(template.templateBody);\r\n //this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n template.isPostToDevice = false;\r\n this.alertService.startLoadingMessage(\"Generating display...\");\r\n this.pibService.mapTemplate(template)\r\n .subscribe(res => {\r\n if (!res.isSuccess) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n return;\r\n }\r\n //var component = this;\r\n this.redrawFromJson(res.data, function (component) {\r\n\r\n \r\n // clone original layer, and disable all events on it\r\n // we will use \"let\" here, because we can redefine layer later\r\n component.preview_stage = new Konva.Stage({\r\n container: 'preview-container',\r\n width: component.origWidth,\r\n height: component.origHeight,\r\n scaleX: 1,\r\n scaleY: 1,\r\n //offsetWidth: .3,\r\n //offsetHeight: .3\r\n });\r\n\r\n component.preview_layer = component.dup_layer.clone({ hitGraphEnabled: false });\r\n component.preview_stage.add(component.preview_layer);\r\n component.preview_layer.batchDraw();\r\n component.is_preview = true;\r\n component.alertService.stopLoadingMessage();\r\n var curi = component.dup_stage.toCanvas({}).toDataURL();\r\n var dataurl = component.dup_stage.toDataURL();\r\n template.name = 'template.png';\r\n template.imgUrl = dataurl;\r\n component.imgSrc = dataurl;\r\n //var url = \"http://183.90.63.88:3000/epaper\";\r\n //component.pibService.postTemplateToDevice(url, template).subscribe(res => {\r\n // console.log(res);\r\n // //alert('Posted to device');\r\n // component.alertService.stopLoadingMessage();\r\n // if (res.isSuccess) {\r\n // component.alertService.showMessage(\"Success\", \"Successfully updated the device\", MessageSeverity.success);\r\n // }\r\n // else {\r\n // component.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n // }\r\n\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n });\r\n }\r\n , error => function (error) {\r\n this.alertService.stopLoadingMessage();\r\n console.log(error);\r\n });\r\n }\r\n\r\n updatePreview(layer, previewLayer) {\r\n // we just need to update ALL nodes in the preview\r\n layer.children.forEach(shape => {\r\n // find cloned node\r\n const clone = previewLayer.findOne('.' + shape.name());\r\n // update its position from the original\r\n clone.position(shape.position());\r\n });\r\n previewLayer.batchDraw();\r\n }\r\n\r\n ngAfterViewInit() {\r\n //var template = this.dlgData.template;\r\n //this.dup_stage = new Konva.Stage({\r\n // container: 'dup-container',\r\n // width: this.dlgData.origWidth,\r\n // height: this.dlgData.origHeight,\r\n // drawBorder: template['attrs']['drawBorder'],\r\n // //offsetWidth: .3,\r\n // //offsetHeight: .3\r\n //});\r\n ////this.dup_stage.setAttr(\"drawBorder\", true);\r\n //this.dup_layer = new Konva.Layer();\r\n //this.dup_stage.add(this.dup_layer);\r\n //var images = [];\r\n //for (var i = 0; i < template['children'][0]['children'].length; i++) {\r\n // var t = template['children'][0]['children'][i];\r\n // if (t['className'] == 'Text') {\r\n // const shape = new Konva.Text(t['attrs']);\r\n // this.dup_layer.add(shape);\r\n // } else if (t['className'] == 'Line') {\r\n // const shape = new Konva.Line(t['attrs']);\r\n // this.dup_layer.add(shape);\r\n // } else if (t['className'] == 'Rect') {\r\n // const shape = new Konva.Rect(t['attrs']);\r\n // this.dup_layer.add(shape);\r\n // } else if (t['className'] == 'Image' && t['attrs']['src']) {\r\n // var attrs = t['attrs'];\r\n // var src = t['attrs']['src'];\r\n // images.push({ src: src, attrs: attrs });\r\n // var component = this;\r\n // Konva.Image.fromURL(src, function (node) {\r\n // for (var i in images) {\r\n // if (images[i].src == node.attrs.image.src) {\r\n // node.setAttrs(images[i].attrs);\r\n // }\r\n // }\r\n\r\n // component.dup_layer.add(node);\r\n // component.dup_layer.draw();\r\n // });\r\n // }\r\n\r\n // this.dup_stage.add(this.dup_layer);\r\n // this.dup_layer.draw();\r\n //}\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n#template_editor_container {\\r\\n \\r\\n min-height: 300px;\\r\\n height: 300px;\\r\\n display:block;\\r\\n}\\r\\n\\r\\n#stage-parent {\\r\\n border: 1px solid black !important;\\r\\n background-color: white !important;\\r\\n float: left;\\r\\n}\\r\\n\\r\\ncanvas {\\r\\n border: 1px solid black !important;\\r\\n}\\r\\n\\r\\n.close-properties {\\r\\n float: right;\\r\\n padding-right: 10px;\\r\\n font-size: small;\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.properties {\\r\\n width: 25%;\\r\\n position: absolute;\\r\\n border: solid 1px;\\r\\n right: 0;\\r\\n background: #dadada;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n.properties-handle {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n left: 30px;\\r\\n color: #969696;\\r\\n cursor: move;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n}\\r\\n\\r\\n.field_name_label {\\r\\n margin: 3px 8px auto 0;\\r\\n color: rgba(0,0,0,.54);\\r\\n font-weight: 500;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n.field_name_select {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.tools-container button{\\r\\n border-right: 1px solid #000;\\r\\n border-top: 1px solid #000;\\r\\n border-radius: 0px;\\r\\n min-width: 30px;\\r\\n}\\r\\n\\r\\n.tools-container button:first-child {\\r\\n border-left: 1px solid #000;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mcnMtdGVtcGxhdGUtZWRpdG9yL2Zycy1zYXZlLWRpYWxvZy9mcnMtc2F2ZS1kaWFsb2cuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7O0VBRUUsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxrQ0FBa0M7RUFDbEMsa0NBQWtDO0VBQ2xDLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGtDQUFrQztBQUNwQzs7QUFFQTtFQUNFLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLDBCQUEwQjtFQUMxQixlQUFlO0FBQ2pCOztBQUNBO0VBQ0UsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsUUFBUTtFQUNSLG1CQUFtQjtFQUNuQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsY0FBYztFQUNkLFlBQVk7RUFDWixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0Usc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDRCQUE0QjtFQUM1QiwwQkFBMEI7RUFDMUIsa0JBQWtCO0VBQ2xCLGVBQWU7QUFDakI7O0FBRUU7SUFDRSwyQkFBMkI7RUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2Zycy10ZW1wbGF0ZS1lZGl0b3IvZnJzLXNhdmUtZGlhbG9nL2Zycy1zYXZlLWRpYWxvZy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNpZGUtbWVudSB7XHJcbiAgbWluLXdpZHRoOiAxMjBweDtcclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG5baGlkZGVuXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuI3RlbXBsYXRlX2VkaXRvcl9jb250YWluZXIge1xyXG4gIFxyXG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG4gIGhlaWdodDogMzAwcHg7XHJcbiAgZGlzcGxheTpibG9jaztcclxufVxyXG5cclxuI3N0YWdlLXBhcmVudCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2sgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG59XHJcblxyXG5jYW52YXMge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jbG9zZS1wcm9wZXJ0aWVzIHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICBmb250LXNpemU6IHNtYWxsO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4ucHJvcGVydGllcyB7XHJcbiAgd2lkdGg6IDI1JTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm9yZGVyOiBzb2xpZCAxcHg7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZDogI2RhZGFkYTtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG5cclxuLnByb3BlcnRpZXMtaGFuZGxlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIGxlZnQ6IDMwcHg7XHJcbiAgY29sb3I6ICM5Njk2OTY7XHJcbiAgY3Vyc29yOiBtb3ZlO1xyXG4gIHdpZHRoOiAyNHB4O1xyXG4gIGhlaWdodDogMjRweDtcclxufVxyXG5cclxuLmZpZWxkX25hbWVfbGFiZWwge1xyXG4gIG1hcmdpbjogM3B4IDhweCBhdXRvIDA7XHJcbiAgY29sb3I6IHJnYmEoMCwwLDAsLjU0KTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxuLmZpZWxkX25hbWVfc2VsZWN0IHtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbi50b29scy1jb250YWluZXIgYnV0dG9ue1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7XHJcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gIG1pbi13aWR0aDogMzBweDtcclxufVxyXG5cclxuICAudG9vbHMtY29udGFpbmVyIGJ1dHRvbjpmaXJzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDA7XHJcbiAgfVxyXG4iXX0= */\"","module.exports = \"

Save Template

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
Locations
\\r\\n \\r\\n All items\\r\\n {{v.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\"","import { MatDialogRef, MAT_DIALOG_DATA, MatSelect, MatOption } from \"@angular/material\";\r\nimport { Component, Inject, OnInit, AfterViewInit, ViewChild } from \"@angular/core\";\r\nimport { AlertService, MessageSeverity } from \"src/app/services/alert.service\";\r\nimport { EpaperService } from \"src/app/services/epaper.service\";\r\nimport { AppTranslationService } from \"src/app/services/app-translation.service\";\r\nimport { Permission } from \"src/app/models/permission.model\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\nimport { forEach } from \"@angular/router/src/utils/collection\";\r\nimport { locateHostElement } from \"@angular/core/src/render3/instructions\";\r\nimport { Utilities } from \"src/app/services/utilities\";\r\nimport { EpaperTemplate, EpaperTemplateLocation } from \"src/app/models/epaper.model\";\r\nimport { LocationService } from \"src/app/services/location.service\";\r\nimport { Location } from 'src/app/models/location.model';\r\n@Component({\r\n selector: 'frs-template-editor-save-dialog',\r\n templateUrl: './frs-save-dialog.component.html',\r\n styleUrls: ['./frs-save-dialog.component.css'],\r\n})\r\nexport class FRSTemplateSaveDialogPreviewDialog implements OnInit {\r\n isSaving: boolean;\r\n isNewTemplate: boolean;\r\n showValidationErrors: boolean;\r\n editingTemplateName: any;\r\n templateEdit: EpaperTemplate;\r\n formResetToggle: boolean = true;\r\n locations: Location[] = [];\r\n allSelected = false;\r\n @ViewChild('locSelect') locSelect: MatSelect;\r\n\r\n constructor(\r\n private translationService: AppTranslationService,\r\n private alertService: AlertService,\r\n private epaperService: EpaperService,\r\n public dialogRef: MatDialogRef,\r\n private accountService: AccountService,\r\n private locationService: LocationService,\r\n @Inject(MAT_DIALOG_DATA) public dlgData: any) {\r\n this.getLocations();\r\n if (typeof (dlgData.template) != typeof (undefined)) {\r\n //this.locations = dlgData.locations;\r\n if (dlgData.template.id) {\r\n this.editTemplate(dlgData.template);\r\n } else {\r\n this.newTemplate(dlgData.template.templateBody);\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n newTemplate(template_body: string) {\r\n this.isNewTemplate = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingTemplateName = null;\r\n this.templateEdit = new EpaperTemplate();\r\n this.templateEdit.templateBody = template_body;\r\n return this.templateEdit;\r\n }\r\n\r\n editTemplate(template: EpaperTemplate) {\r\n if (template) {\r\n this.isNewTemplate = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingTemplateName = template.name;\r\n this.templateEdit = new EpaperTemplate();\r\n Object.assign(this.templateEdit, template);\r\n\r\n return this.templateEdit;\r\n }\r\n else {\r\n return this.newTemplate(template.templateBody);\r\n }\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.templateEdit.locations = [];\r\n if (this.templateEdit.locationIds) {\r\n this.templateEdit.locationIds.forEach((loc, index, locations) => {\r\n var locs = this.locations.filter(item => item.id === loc);\r\n if (locs != null && locs.length > 0) {\r\n var location: EpaperTemplateLocation = new EpaperTemplateLocation();\r\n location.epaperTemplateId = this.templateEdit.id;\r\n location.locationId = locs[0].id;\r\n this.templateEdit.locations.push(location);\r\n }\r\n });\r\n }\r\n\r\n if (this.isNewTemplate) {\r\n this.epaperService.newTemplate(this.templateEdit).subscribe(Template => this.saveSuccessHelper(Template), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.epaperService.updateTemplate(this.templateEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(Template?: EpaperTemplate) {\r\n if (Template)\r\n Object.assign(this.templateEdit, Template);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewTemplate)\r\n this.alertService.showMessage(\"Success\", `Template \\\"${this.templateEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Template \\\"${this.templateEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.templateEdit = new EpaperTemplate();\r\n\r\n\r\n //if (!this.isNewTemplate && this.accountService.currentUser.facilities.some(r => r == this.editingTemplateName))\r\n // this.refreshLoggedInUser();\r\n\r\n //if (this.changesSavedCallback)\r\n // this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n //this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n //this.templateEdit = new EpaperTemplate();\r\n\r\n //this.showValidationErrors = false;\r\n\r\n //this.alertService.resetStickyMessage();\r\n\r\n ////if (this.changesCancelledCallback)\r\n //// this.changesCancelledCallback();\r\n\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n getLocations() {\r\n this.alertService.startLoadingMessage(\"Loading locations...\");\r\n this.locationService.getLocations(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.locations = results;\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n toggleAllSelection() {\r\n this.allSelected = !this.allSelected; // to control select-unselect\r\n\r\n if (this.allSelected ) {\r\n this.locSelect.options.forEach((item: MatOption) => item.select());\r\n } else {\r\n this.locSelect.options.forEach((item: MatOption) => { item.deselect() });\r\n }\r\n this.locSelect.close();\r\n }\r\n\r\n get canManageTemplates() {\r\n return true; //this.accountService.userHasPermission(Permission.manageEpaperTemplatesPermission)\r\n }\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n#template_editor_container {\\r\\n min-height: 300px;\\r\\n height: 300px;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n#stage-parent {\\r\\n border: 1px solid black !important;\\r\\n background-color: white !important;\\r\\n float: left;\\r\\n}\\r\\n\\r\\ncanvas {\\r\\n border: 1px solid black !important;\\r\\n}\\r\\n\\r\\n.close {\\r\\n float: right;\\r\\n padding-right: 10px;\\r\\n font-size: small;\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.close-properties {\\r\\n float: right;\\r\\n padding-right: 10px;\\r\\n font-size: small;\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.properties {\\r\\n width: 25%;\\r\\n position: absolute;\\r\\n border: solid 1px;\\r\\n right: 0;\\r\\n background: #dadada;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n.properties-handle {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n left: 30px;\\r\\n color: #969696;\\r\\n cursor: move;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n}\\r\\n\\r\\n.field_name_label {\\r\\n margin: 3px 8px auto 0;\\r\\n color: rgba(0,0,0,.54);\\r\\n font-weight: 500;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n.field_name_select {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.tools-container button {\\r\\n border-right: 1px solid #000;\\r\\n border-top: 1px solid #000;\\r\\n border-radius: 0px;\\r\\n min-width: 30px;\\r\\n}\\r\\n\\r\\n.tools-container button:first-child {\\r\\n border-left: 1px solid #000;\\r\\n }\\r\\n\\r\\n.preview-stage-parent {\\r\\n border: 1px dashed #191919;\\r\\n /* margin: 0 auto; */\\r\\n position: absolute;\\r\\n z-index: 99999; \\r\\n top: 300px;\\r\\n left: 35vw;\\r\\n background-color: #fdfdfd;\\r\\n}\\r\\n\\r\\n.preview-stage-parent h4 {\\r\\n text-align: center;\\r\\n /* background-color: #007f7b; */\\r\\n color: #000;\\r\\n border-bottom: 1px dashed;\\r\\n padding-bottom: 10px;\\r\\n }\\r\\n\\r\\n.box {\\r\\n transition: ease-in-out 400ms max-height;\\r\\n}\\r\\n\\r\\n.box.opened {\\r\\n transition: ease-in-out 600ms max-height;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mcnMtdGVtcGxhdGUtZWRpdG9yL2Zycy10ZW1wbGF0ZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsYUFBYTtFQUNiLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxrQ0FBa0M7RUFDbEMsa0NBQWtDO0VBQ2xDLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGtDQUFrQztBQUNwQzs7QUFFQTtFQUNFLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLDBCQUEwQjtFQUMxQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsMEJBQTBCO0VBQzFCLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixRQUFRO0VBQ1IsbUJBQW1CO0VBQ25CLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFVBQVU7RUFDVixjQUFjO0VBQ2QsWUFBWTtFQUNaLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsNEJBQTRCO0VBQzVCLDBCQUEwQjtFQUMxQixrQkFBa0I7RUFDbEIsZUFBZTtBQUNqQjs7QUFFRTtJQUNFLDJCQUEyQjtFQUM3Qjs7QUFFRjtFQUNFLDBCQUEwQjtFQUMxQixvQkFBb0I7RUFDcEIsa0JBQWtCO0dBQ2pCLGNBQWM7RUFDZixVQUFVO0VBQ1YsVUFBVTtFQUNWLHlCQUF5QjtBQUMzQjs7QUFFRTtJQUNFLGtCQUFrQjtJQUNsQiwrQkFBK0I7SUFDL0IsV0FBVztJQUNYLHlCQUF5QjtJQUN6QixvQkFBb0I7RUFDdEI7O0FBRUY7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUU7SUFDRSx3Q0FBd0M7RUFDMUMiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2Zycy10ZW1wbGF0ZS1lZGl0b3IvZnJzLXRlbXBsYXRlLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNpZGUtbWVudSB7XHJcbiAgbWluLXdpZHRoOiAxMjBweDtcclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG5baGlkZGVuXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuI3RlbXBsYXRlX2VkaXRvcl9jb250YWluZXIge1xyXG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG4gIGhlaWdodDogMzAwcHg7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbiNzdGFnZS1wYXJlbnQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxuICBmbG9hdDogbGVmdDtcclxufVxyXG5cclxuY2FudmFzIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCBibGFjayAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2xvc2Uge1xyXG4gIGZsb2F0OiByaWdodDtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gIGZvbnQtc2l6ZTogc21hbGw7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uY2xvc2UtcHJvcGVydGllcyB7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgZm9udC1zaXplOiBzbWFsbDtcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5wcm9wZXJ0aWVzIHtcclxuICB3aWR0aDogMjUlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3JkZXI6IHNvbGlkIDFweDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kOiAjZGFkYWRhO1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcblxyXG4ucHJvcGVydGllcy1oYW5kbGUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDEwcHg7XHJcbiAgbGVmdDogMzBweDtcclxuICBjb2xvcjogIzk2OTY5NjtcclxuICBjdXJzb3I6IG1vdmU7XHJcbiAgd2lkdGg6IDI0cHg7XHJcbiAgaGVpZ2h0OiAyNHB4O1xyXG59XHJcblxyXG4uZmllbGRfbmFtZV9sYWJlbCB7XHJcbiAgbWFyZ2luOiAzcHggOHB4IGF1dG8gMDtcclxuICBjb2xvcjogcmdiYSgwLDAsMCwuNTQpO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcblxyXG4uZmllbGRfbmFtZV9zZWxlY3Qge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLnRvb2xzLWNvbnRhaW5lciBidXR0b24ge1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7XHJcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gIG1pbi13aWR0aDogMzBweDtcclxufVxyXG5cclxuICAudG9vbHMtY29udGFpbmVyIGJ1dHRvbjpmaXJzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDA7XHJcbiAgfVxyXG5cclxuLnByZXZpZXctc3RhZ2UtcGFyZW50IHtcclxuICBib3JkZXI6IDFweCBkYXNoZWQgIzE5MTkxOTtcclxuICAvKiBtYXJnaW46IDAgYXV0bzsgKi9cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgIHotaW5kZXg6IDk5OTk5OyBcclxuICB0b3A6IDMwMHB4O1xyXG4gIGxlZnQ6IDM1dnc7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZmRmZDtcclxufVxyXG5cclxuICAucHJldmlldy1zdGFnZS1wYXJlbnQgaDQge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogIzAwN2Y3YjsgKi9cclxuICAgIGNvbG9yOiAjMDAwO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gIH1cclxuXHJcbi5ib3gge1xyXG4gIHRyYW5zaXRpb246IGVhc2UtaW4tb3V0IDQwMG1zIG1heC1oZWlnaHQ7XHJcbn1cclxuXHJcbiAgLmJveC5vcGVuZWQge1xyXG4gICAgdHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgNjAwbXMgbWF4LWhlaWdodDtcclxuICB9XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Template Editor {{(editedTemplate && editedTemplate.name != '' ? editedTemplate.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\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'templates.management.Edit' | translate}}\\r\\n {{'templates.management.Details' | translate}}\\r\\n \\r\\n {{'templates.management.Delete' | 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 JSON = {{jsonValue}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

Properties

Close\\r\\n

{{selectedShape.label}}

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
Fill Color
\\r\\n \\r\\n {{v}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Color
\\r\\n \\r\\n {{v}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Font Family
\\r\\n \\r\\n {{v}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Font Style
\\r\\n \\r\\n {{v}}\\r\\n \\r\\n
Font Color
\\r\\n \\r\\n {{v}}\\r\\n \\r\\n
Text Wrap
\\r\\n \\r\\n {{v}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
Field Name
\\r\\n \\r\\n {{v.label}}\\r\\n \\r\\n
Field Name
\\r\\n \\r\\n {{v.label}}\\r\\n \\r\\n
Restriction Types
\\r\\n \\r\\n {{v.label}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
Room Info
\\r\\n \\r\\n {{v.label}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Preview
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Preview

Close\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, ChangeDetectorRef, ViewChild, TemplateRef } from '@angular/core';\r\nimport Konva from 'konva';\r\nimport { ShapeService } from 'src/app/services/shape.service';\r\nimport { TextNodeService } from 'src/app/services/text-node.service';\r\nimport { trigger, transition, animate, style, state } from '@angular/animations';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { EpaperService } from 'src/app/services/epaper.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { FRSTemplateSaveDialogPreviewDialog } from './frs-save-dialog/frs-save-dialog.component';\r\nimport { EpaperTemplate } from 'src/app/models/epaper.model';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { Location } from 'src/app/models/location.model';\r\n\r\n@Component({\r\n selector: 'frs-template-editor',\r\n templateUrl: './frs-template-editor.component.html',\r\n styleUrls: ['./frs-template-editor.component.css'],\r\n host: {\r\n '(window:resize)': 'onResize($event)'\r\n },\r\n animations: [\r\n trigger('slideInOut', [\r\n transition(':enter', [\r\n style({ transform: 'translateY(-100%)' }),\r\n animate('200ms ease-in', style({ transform: 'translateX(0%)' }))\r\n ]),\r\n transition(':leave', [\r\n animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))\r\n ])\r\n ]),\r\n trigger('slide', [\r\n state('left', style({ transform: 'translateX(0)' })),\r\n state('right', style({ transform: 'translateX(-100%)' })),\r\n transition('* => *', animate(300))\r\n ])\r\n ]\r\n})\r\nexport class FRSTemplateEditorComponent implements OnInit {\r\n\r\n //#list\r\n columns: any[] = [];\r\n rows: EpaperTemplate[] = [];\r\n rowsCache: EpaperTemplate[] = [];\r\n allPermissions: Permission[] = [];\r\n editedTemplate: EpaperTemplate;\r\n sourceTemplate: EpaperTemplate;\r\n editingTemplateName: { name: string };\r\n loadingIndicator: boolean;\r\n private isSaving: boolean;\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n header: string;\r\n\r\n //#editor\r\n origWidth = 1304;\r\n origHeight = 984;\r\n stageWidth = this.origWidth * 1;\r\n stageHeight = this.origHeight * 1;\r\n selectedShape = { label: '', type: '', is_variable: false, is_font_bold: false, is_icon: false };\r\n jsonValue: any;\r\n is_variable: boolean = false;\r\n is_icon: boolean = false;\r\n is_patient_info: boolean = false;\r\n is_patient_restriction: boolean = false;\r\n is_group_patient_restriction: boolean = false;\r\n is_room_info: boolean = false;\r\n is_selected: boolean = false;\r\n is_preview: boolean = false;\r\n previewImgUri: any;\r\n\r\n shapes: any = [];\r\n stage: Konva.Stage;\r\n layer: Konva.Layer;\r\n currentText: Konva.Text;\r\n currentShape: Konva.Shape;\r\n currentShapeModel: any = {};\r\n\r\n //dups\r\n dup_stage: Konva.Stage;\r\n dup_layer: Konva.Layer;\r\n preview_stage: Konva.Stage;\r\n preview_layer: Konva.Layer;\r\n selectedButton: any = {\r\n 'circle': false,\r\n 'rectangle': false,\r\n 'line': false,\r\n 'undo': false,\r\n 'erase': false,\r\n 'text': false,\r\n 'patient_info': false,\r\n 'patient_restrictions': false\r\n }\r\n erase: boolean = false;\r\n transformers: Konva.Transformer[] = [];\r\n fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n isFileUpload: boolean = false;\r\n font_families = ['Arial', 'Calibri', 'Tahoma', 'Times New Roman'];\r\n font_styles = ['normal', 'bold', 'italic'];\r\n font_colors = ['white', 'black'];\r\n text_overflows = ['wrap', 'resize', 'ellipsis', 'resize and wrap'];\r\n variable_names: any = [\r\n { label: 'AHP Remarks', val: 'ahp_remarks' },\r\n { label: 'Attending Doctor', val: 'attending_doctor' },\r\n { label: 'Attending Nurse', val: 'attending_nurse' },\r\n { label: 'Case No.', val: 'case_number' },\r\n { label: 'Drug Allergy', val: 'drug_allergies_flatten' },\r\n { label: 'Gender', val: 'gender' },\r\n { label: 'Languages', val: 'languages_flatten' },\r\n { label: 'Location Alias', val: 'location_alias' },\r\n { label: 'Location Label', val: 'location_label' },\r\n { label: 'Name', val: 'name' },\r\n { label: 'NRIC', val: 'identifier' },\r\n { label: 'Ongoing Remarks', val: 'ongoing_remarks' },\r\n { label: 'Epaper Location', val: 'epaper_location' },\r\n { label: 'Preferred Name', val: 'preferred_name' }\r\n ];\r\n\r\n locations: any = [];\r\n restriction_variable_names: any = [\r\n //{ label: 'Mode of Feeding', val: 'mode_of_feeding' },\r\n //{ label: 'Food Restrictions', val: 'food_restrictions' },\r\n //{ label: 'Diet Type', val: 'diet_type' },\r\n //{ label: 'Diet Texture & Fluid Consistency', val: 'diet_texture' },\r\n //{ label: 'Fluid Restrictions', val: 'fluid_restrictions' },\r\n //{ label: 'Functional Status', val: 'function_status' },\r\n //{ label: 'Special Instructions', val: 'special_instructions' },\r\n ];\r\n room_variable_names: any = [\r\n { label: 'Capacity', val: 'location_capacity' },\r\n { label: 'Current Event Title', val: 'current_reservation_description' },\r\n { label: 'Current Event Availability', val: 'current_reservation_time_display' },\r\n { label: 'Current Event Organiser', val: 'current_reservation_organiser' },\r\n { label: 'QR Code', val: 'event_id' },\r\n { label: 'Facility', val: 'location_facility' },\r\n { label: 'Location', val: 'location_name' },\r\n { label: 'Next Event Title', val: 'next_reservation_description' },\r\n { label: 'Next Event Availability', val: 'next_reservation_time_display' },\r\n { label: 'Next Event Organiser', val: 'next_reservation_organiser' },\r\n { label: 'Room Status', val: 'current_reservation_status' },\r\n\r\n \r\n ];\r\n showNewTemplate: boolean;\r\n\r\n constructor(\r\n private shapeService: ShapeService,\r\n private textNodeService: TextNodeService,\r\n private fileService: FileService,\r\n private configurationService: ConfigurationService,\r\n private epaperService: EpaperService,\r\n private ref: ChangeDetectorRef,\r\n private alertService: AlertService,\r\n private translationService: AppTranslationService,\r\n private dialog: MatDialog,\r\n private accountService: AccountService,\r\n private domSanitizer: DomSanitizer,\r\n private locationService: LocationService\r\n ) { }\r\n\r\n onResize(event) {\r\n this.fitStageIntoParentContainer();\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n console.log(this.fileUploadResponse.dbPath);\r\n console.log(this.fileUploadResponse.dbPath.replace(/\\\\/g, '/'));\r\n this.addImage(this.fileUploadResponse ? this.configurationService.baseUrl + '/' + this.fileUploadResponse.dbPath.replace(/\\\\/g, '/') : null);\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n ngOnInit() {\r\n //this.variable_names = this.variable_names.pipe(map(arr => arr.sort((a, b) => a > b)));\r\n this.initListTable();\r\n this.initTemplate();\r\n }\r\n\r\n getLocations() {\r\n this.locationService.getLocations(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.locations = results[0];\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n initTemplate() {\r\n //initialised values\r\n this.selectedShape = { label: '', type: '', is_variable: false, is_font_bold: false, is_icon: false };\r\n this.jsonValue = null;\r\n this.is_variable = false;\r\n this.is_icon = false;\r\n this.is_patient_info = false;\r\n this.is_patient_restriction = false;\r\n this.is_group_patient_restriction = false;\r\n this.is_room_info = false;\r\n this.is_selected = false;\r\n this.is_preview = false;\r\n\r\n this.shapes = [];\r\n this.stage = null;\r\n this.layer = null;\r\n this.currentText = null;\r\n this.currentShape = null;\r\n this.currentShapeModel = {};\r\n\r\n //dups\r\n this.dup_stage = null;\r\n this.dup_layer = null;\r\n this.preview_stage = null;\r\n this.preview_layer = null;\r\n this.selectedButton = {\r\n 'circle': false,\r\n 'rectangle': false,\r\n 'line': false,\r\n 'undo': false,\r\n 'erase': false,\r\n 'text': false,\r\n 'patient_info': false,\r\n 'patient_restrictions': false\r\n }\r\n this.erase = false;\r\n this.transformers = [];\r\n this.fileUploadResponse = { dbPath: '', fileId: null, fileName: '' };\r\n this.isFileUpload = false;\r\n this.showNewTemplate = false;\r\n\r\n //var element = document.getElementById('template_editor_container');\r\n //var positionInfo = element.getBoundingClientRect();\r\n //console.log(positionInfo);\r\n //var height = positionInfo.height;\r\n //var width = positionInfo.width;\r\n this.origWidth = 1304;\r\n this.origHeight = 984;\r\n let width = this.origWidth * 0.75;\r\n let height = this.origHeight * 0.75;\r\n\r\n //let width = window.innerWidth * 0.9;\r\n //let height = window.innerHeight;\r\n this.stage = new Konva.Stage({\r\n container: 'container',\r\n width: this.stageWidth,\r\n height: this.stageHeight,\r\n drawBorder: true,\r\n offsetWidth: .3,\r\n offsetHeight: .3\r\n });\r\n this.layer = new Konva.Layer();\r\n\r\n this.stage.add(this.layer);\r\n this.addLineListeners();\r\n\r\n //this.fitStageIntoParentContainer();\r\n window.dispatchEvent(new Event('resize'));\r\n // adapt the stage on any window resize\r\n //window.addEventListener('resize', function () { fitStageIntoParentContainer(this.stage, this.stageWidth, this.stageHeight) });\r\n }\r\n\r\n clearSelection() {\r\n Object.keys(this.selectedButton).forEach(key => {\r\n this.selectedButton[key] = false;\r\n })\r\n }\r\n setSelection(type: string) {\r\n this.selectedButton[type] = true;\r\n }\r\n addShape(type: string) {\r\n this.clearSelection();\r\n this.isFileUpload = false;\r\n this.setSelection(type);\r\n if (type == 'circle') {\r\n this.addCircle();\r\n }\r\n else if (type == 'line') {\r\n this.addLine();\r\n }\r\n else if (type == 'rect') {\r\n this.addRectangle();\r\n }\r\n else if (type == 'text') {\r\n this.addText('type here', false, false, false, false);\r\n }\r\n else if (type == 'patient_info') {\r\n this.addText('Patient Info Here', true, false, false, false);\r\n }\r\n else if (type == 'restrictions') {\r\n this.addText('Restriction Here', false, true, false, false);\r\n }\r\n else if (type == 'group_restrictions') {\r\n this.addText('Restriction Here', false, false, true, false);\r\n }\r\n else if (type == 'room_info') {\r\n this.addText('Room Info Here', false, false, false, true);\r\n }\r\n else if (type == 'image') {\r\n //this.addImage();\r\n this.isFileUpload = true;\r\n }\r\n\r\n this.selectedShape.type = type;\r\n }\r\n addText(txt: string, isPatient: boolean, isRestriction: boolean, isGrpRestriction: boolean, isRoomInfo: boolean) {\r\n this.stage.container().style.cursor = 'text';\r\n const text = this.textNodeService.textNode(this.stage, this.layer, txt);\r\n text.textNode.setAttr('is_patient_info', isPatient);\r\n text.textNode.setAttr('is_patient_restriction', isRestriction);\r\n text.textNode.setAttr('is_group_patient_restriction', isGrpRestriction);\r\n text.textNode.setAttr('is_room_info', isRoomInfo);\r\n text.textNode.setAttr('zLayer', this.layer.children.length);\r\n this.shapes.push(text.textNode);\r\n //this.transformers.push(text.tr);\r\n this.addTransformerListeners(text.textNode);\r\n //text.textNode.fire('click');\r\n }\r\n addCircle() {\r\n const circle = this.shapeService.circle();\r\n this.shapes.push(circle);\r\n this.layer.add(circle);\r\n this.stage.add(this.layer);\r\n this.addTransformerListeners();\r\n\r\n //circle.fire('click');\r\n }\r\n addRectangle() {\r\n const rectangle = this.shapeService.rectangle();\r\n rectangle.setAttr('zLayer', this.layer.children.length);\r\n this.shapes.push(rectangle);\r\n this.layer.add(rectangle);\r\n this.stage.add(this.layer);\r\n this.addTransformerListeners()\r\n }\r\n addLine() {\r\n this.selectedButton['line'] = true;\r\n }\r\n addImage(src) {\r\n //var imageSource = this.configurationService.baseUrl + '/Resources/Images/sunny.bmp';\r\n //var imageSource2 = this.configurationService.baseUrl + '/Resources/Images/darth.png';\r\n\r\n this.selectedButton['image'] = true;\r\n //var img = new Image()\r\n //const image = this.shapeService.image(img);\r\n //this.shapes.push(image);\r\n //this.layer.add(image);\r\n //this.stage.add(this.layer);\r\n //\r\n var component = this;\r\n //var imageObj = new Image();\r\n //\r\n //imageObj.onload = function () {\r\n // image.image(imageObj);\r\n // component.layer.batchDraw();\r\n //};\r\n //imageObj.src = imageSource;\r\n\r\n Konva.Image.fromURL(src, function (node) {\r\n node.setAttrs({\r\n x: 60,\r\n y: 20,\r\n draggable: true,\r\n src: src,\r\n zLayer: component.layer.children.length\r\n });\r\n component.layer.add(node);\r\n component.layer.batchDraw();\r\n });\r\n this.addTransformerListeners();\r\n\r\n }\r\n addLineListeners() {\r\n const component = this;\r\n let lastLine;\r\n let isPaint;\r\n let isHorizontal;\r\n let isVertical;\r\n this.stage.on('mousedown touchstart', function (e) {\r\n if (!component.selectedButton['line'] && !component.erase) {\r\n return;\r\n }\r\n isPaint = true;\r\n let pos = component.stage.getPointerPosition();\r\n const mode = component.erase ? 'erase' : 'brush';\r\n lastLine = component.shapeService.line(pos, mode)\r\n component.shapes.push(lastLine);\r\n component.layer.add(lastLine);\r\n this.container().style.cursor = mode === 'erase' ? 'grab' : 'crosshair';\r\n component.addTransformerListeners();\r\n });\r\n this.stage.on('mouseup touchend', function () {\r\n isPaint = false;\r\n isHorizontal = false;\r\n isVertical = false;\r\n //const pos = component.stage.getPointerPosition();\r\n //var newPoints = lastLine.points().concat([pos.x, pos.y]);\r\n //lastLine.points(newPoints);\r\n //component.layer.batchDraw();\r\n this.container().style.cursor = 'default';\r\n //component.addTransformerListeners();\r\n component.clearSelection();\r\n });\r\n // and core function - drawing\r\n this.stage.on('mousemove touchmove', function () {\r\n if (!isPaint) {\r\n return;\r\n }\r\n var oldPoints = lastLine.getSelfRect();\r\n const pos = component.stage.getPointerPosition();\r\n var newPoints = lastLine.points().concat([pos.x, pos.y]);\r\n if (!isVertical && pos.x > oldPoints.x) {\r\n newPoints = lastLine.points().concat([pos.x, oldPoints.y]);\r\n isHorizontal = true;\r\n } else {\r\n if (!isHorizontal && pos.y > oldPoints.y) {\r\n newPoints = lastLine.points().concat([oldPoints.x, pos.y]);\r\n isVertical = true;\r\n }\r\n }\r\n const mode = component.erase ? 'erase' : 'brush';\r\n this.container().style.cursor = mode === 'erase' ? 'grab' : 'crosshair';\r\n lastLine.points(newPoints);\r\n component.layer.batchDraw();\r\n });\r\n }\r\n undo() {\r\n const removedShape = this.shapes.pop();\r\n this.transformers.forEach(t => {\r\n t.detach();\r\n });\r\n if (removedShape) {\r\n removedShape.remove();\r\n }\r\n this.layer.draw();\r\n this.is_selected = false;\r\n }\r\n delete() {\r\n this.currentShape.remove();\r\n this.transformers.forEach(t => {\r\n t.detach();\r\n });\r\n const removeShape = this.shapes.find(s => s._id == this.currentShape._id);\r\n if (removeShape) {\r\n removeShape.remove();\r\n }\r\n this.layer.draw();\r\n this.is_selected = false;\r\n }\r\n addTransformerListeners(textNode?: any) {\r\n const component = this;\r\n const tr = new Konva.Transformer();\r\n //const tr = !textNode ? new Konva.Transformer() : new Konva.Transformer({\r\n // node: textNode as any,\r\n // enabledAnchors: ['middle-left', 'middle-right'],\r\n // // set minimum width of text\r\n // boundBoxFunc: function (oldBox, newBox) {\r\n // newBox.width = Math.max(30, newBox.width);\r\n // return newBox;\r\n // }\r\n //});\r\n\r\n this.stage.on('click', function (e) {\r\n if (!this.clickStartShape) {\r\n return;\r\n }\r\n if (e.target._id == this.clickStartShape._id) {\r\n //tr.detach();\r\n //component.layer.draw();\r\n component.selectedShape.label = this.clickStartShape.className;\r\n component.currentShape = this.clickStartShape;\r\n if (this.clickStartShape.className === 'Text') {\r\n component.currentText = this.clickStartShape as Konva.Text;\r\n component.setCurrentTextValues(component, component.currentText);\r\n } else {\r\n component.selectedShape.is_variable = false;\r\n component.selectedShape.is_icon = false;\r\n component.selectedShape.type = this.clickStartShape.className.toLowerCase();\r\n if (this.clickStartShape.className === 'Line') {\r\n component.currentShape = this.clickStartShape as Konva.Line;\r\n component.currentShapeModel.stroke = component.currentShape.stroke();\r\n component.currentShapeModel.strokeWidth = component.currentShape.strokeWidth();\r\n //component.currentShapeModel.zIndex = component.currentShape.zIndex();\r\n component.currentShapeModel.zLayer = component.currentShape.getAttr('zLayer') === undefined ? component.currentShape.zIndex() : component.currentShape.getAttr('zLayer');\r\n //component.currentShapeModel.x = component.currentShape.points\r\n //component.currentShapeModel.y = component.currentShape.y();\r\n } else {\r\n component.currentShape = this.clickStartShape;\r\n component.currentShapeModel.x = component.currentShape.x();\r\n component.currentShapeModel.y = component.currentShape.y();\r\n component.currentShapeModel.fill = component.currentShape.fill();\r\n //component.currentShapeModel.zIndex = component.currentShape.zIndex();\r\n component.currentShapeModel.zLayer = component.currentShape.getAttr('zLayer') === undefined ? component.currentShape.zIndex() : component.currentShape.getAttr('zLayer');\r\n //component.currentShapeModel.width = component.currentShape.width();\r\n //component.currentShapeModel.width = component.currentShape.width();\r\n }\r\n component.currentShapeModel.id = component.currentShape.id;\r\n }\r\n component.is_selected = true;\r\n //component.addDeleteListener(e.target);\r\n component.layer.add(tr);\r\n tr.nodes([e.target]);\r\n //tr.attachTo(e.target);\r\n component.transformers.push(tr);\r\n //component.transformers.push(tr);\r\n component.layer.draw();\r\n component.ref.detectChanges();\r\n }\r\n else {\r\n tr.detach();\r\n component.layer.draw();\r\n }\r\n });\r\n this.stage.on('dragend', function (e) {\r\n if (!this.clickStartShape) {\r\n return;\r\n }\r\n if (e.target._id == this.clickStartShape._id) {\r\n if (this.clickStartShape.className === 'Text') {\r\n component.currentText = this.clickStartShape as Konva.Text;\r\n component.setCurrentTextValues(component, component.currentText);\r\n } else {\r\n component.selectedShape.is_variable = false;\r\n component.selectedShape.is_icon = false;\r\n component.selectedShape.type = this.clickStartShape.className.toLowerCase();\r\n if (this.clickStartShape.className === 'Line') {\r\n component.currentShape = this.clickStartShape as Konva.Line;\r\n component.currentShapeModel.stroke = component.currentShape.stroke();\r\n component.currentShapeModel.strokeWidth = component.currentShape.strokeWidth();\r\n //component.currentShapeModel.zIndex = component.currentShape.zIndex();\r\n component.currentShapeModel.zLayer = component.currentShape.getAttr('zLayer') === undefined ? component.currentShape.zIndex() : component.currentShape.getAttr('zLayer');\r\n //component.currentShapeModel.x = component.currentShape.points\r\n //component.currentShapeModel.y = component.currentShape.y();\r\n } else {\r\n component.currentShape = this.clickStartShape;\r\n component.currentShapeModel.x = component.currentShape.x();\r\n component.currentShapeModel.y = component.currentShape.y();\r\n component.currentShapeModel.fill = component.currentShape.fill();\r\n //component.currentShapeModel.zIndex = component.currentShape.zIndex();\r\n component.currentShapeModel.zLayer = component.currentShape.getAttr('zLayer') === undefined ? component.currentShape.zIndex() : component.currentShape.getAttr('zLayer');\r\n //component.currentShapeModel.width = component.currentShape.width();\r\n //component.currentShapeModel.width = component.currentShape.width();\r\n }\r\n component.currentShapeModel.id = component.currentShape.id;\r\n }\r\n\r\n //component.is_selected = true;\r\n }\r\n });\r\n }\r\n\r\n setCurrentTextValues(component: any, txtNode: Konva.Text) {\r\n component.currentShapeModel.fontSize = component.currentText.fontSize();\r\n component.currentShapeModel.fontFamily = component.currentText.fontFamily();\r\n component.currentShapeModel.fontStyle = component.currentText.fontStyle();\r\n //component.currentShapeModel.stroke = component.currentText.stroke();\r\n component.currentShapeModel.fill = component.currentText.fill();\r\n component.currentShapeModel.text = component.currentText.text();\r\n component.currentShapeModel.x = component.currentText.x();\r\n component.currentShapeModel.y = component.currentText.y();\r\n component.currentShapeModel.is_variable = component.currentText.getAttr('is_variable') === undefined ? false : component.currentText.getAttr('is_variable');\r\n component.currentShapeModel.is_icon = component.currentText.getAttr('is_icon') === undefined ? false : component.currentText.getAttr('is_icon');\r\n component.currentShapeModel.is_patient_info = component.currentText.getAttr('is_patient_info') === undefined ? false : component.currentText.getAttr('is_patient_info');\r\n component.currentShapeModel.is_patient_restriction = component.currentText.getAttr('is_patient_restriction') === undefined ? false : component.currentText.getAttr('is_patient_restriction');\r\n component.currentShapeModel.is_group_patient_restriction = component.currentText.getAttr('is_group_patient_restriction') === undefined ? false : component.currentText.getAttr('is_group_patient_restriction');\r\n component.currentShapeModel.is_room_info = component.currentText.getAttr('is_room_info') === undefined ? false : component.currentText.getAttr('is_room_info');\r\n component.currentShapeModel.variable_name = component.currentText.getAttr('variable_name') === undefined ? '' : component.currentText.getAttr('variable_name');\r\n component.currentShapeModel.group_name = component.currentText.getAttr('group_name') === undefined ? '' : component.currentText.getAttr('group_name');\r\n component.currentShapeModel.group_variable_name = component.currentText.getAttr('group_variable_name') === undefined ? '' : component.currentText.getAttr('group_variable_name');\r\n component.currentShapeModel.is_background_image = component.currentText.getAttr('is_background_image');\r\n component.currentShapeModel.zLayer = component.currentText.getAttr('zLayer') === undefined ? component.currentText.zIndex() : component.currentText.getAttr('zLayer');\r\n component.currentShapeModel.id = component.currentText.id;\r\n component.currentShapeModel.text_wrap = component.currentText.getAttr('text_wrap') === undefined ? '' : component.currentText.getAttr('text_wrap');\r\n //component.currentShapeModel.zIndex = component.currentText.zIndex();\r\n\r\n component.selectedShape.is_variable = component.currentShapeModel.is_variable;\r\n component.selectedShape.is_icon = component.currentShapeModel.is_icon;\r\n //component.selectedShape.is_font_bold = component.currentText.fontStyle() == 'bold';\r\n if (component.currentShapeModel.is_patient_info) {\r\n component.selectedShape.label = 'Patient Info';\r\n component.selectedShape.type = 'patient_info';\r\n } else if (component.currentShapeModel.is_patient_restriction) {\r\n component.selectedShape.label = 'Restrictions';\r\n component.selectedShape.type = 'restrictions';\r\n } else if (component.currentShapeModel.is_group_patient_restriction) {\r\n component.selectedShape.label = 'Group Restrictions';\r\n component.selectedShape.type = 'group_restrictions';\r\n } else if (component.currentShapeModel.is_room_info) {\r\n component.selectedShape.label = 'Room Info';\r\n component.selectedShape.type = 'room_info';\r\n } else {\r\n component.selectedShape.label = 'Text';\r\n component.selectedShape.type = 'text';\r\n }\r\n }\r\n addDeleteListener(shape) {\r\n const component = this;\r\n window.addEventListener('keydown', function (e) {\r\n if (e.keyCode === 46) {\r\n shape.remove();\r\n component.transformers.forEach(t => {\r\n t.detach();\r\n });\r\n const selectedShape = component.shapes.find(s => s._id == shape._id);\r\n selectedShape.remove();\r\n e.preventDefault();\r\n }\r\n component.layer.batchDraw();\r\n });\r\n }\r\n generateJson() {\r\n //console.log(this.stage);\r\n //console.log(JSON.stringify(this.stage));\r\n this.jsonValue = this.stage.toJSON();\r\n }\r\n fitStageIntoParentContainer() {\r\n //var container = document.querySelector('#stage-parent');\r\n\r\n //// now we need to fit stage into parent\r\n //var containerWidth = container.offsetWidth;\r\n //var containerHeight = container.offsetHeight;\r\n //// to do this we need to scale the stage\r\n //var scaleW = containerWidth / this.stageWidth;\r\n //var scaleH = containerHeight / this.stageHeight;\r\n\r\n //if (scaleW == 0) scaleW = 1;\r\n //if (scaleH == 0) scaleH = 1;\r\n //this.stage.width(this.stageWidth * scaleW);\r\n //this.stage.height(this.stageHeight * scaleH);\r\n //this.stage.scale({ x: scaleW, y: scaleH });\r\n //this.stage.draw();\r\n }\r\n updateValue(type, val, triggerValue?: any) {\r\n if (this.selectedShape.type != 'text' && this.selectedShape.type != 'patient_info' && this.selectedShape.type != 'restrictions' && this.selectedShape.type != 'group_restrictions'\r\n && this.selectedShape.type != 'room_info' ) {\r\n if (type == 'x') {\r\n this.currentShape.x(val);\r\n }\r\n else if (type == 'y') {\r\n this.currentShape.y(val);\r\n }\r\n else if (type == 'width') {\r\n this.currentShape.size().width = val;\r\n }\r\n else if (type == 'height') {\r\n this.currentShape.size().height = val;\r\n }\r\n else if (type == 'stroke') {\r\n this.currentShape.stroke(val);\r\n }\r\n else if (type == 'strokeWidth') {\r\n this.currentShape.strokeWidth(val);\r\n }\r\n else if (type == 'strokeWidth') {\r\n this.currentShape.strokeWidth(val);\r\n }\r\n else if (type == 'zLayer') {\r\n this.currentShape.zIndex(val);\r\n this.currentShape.setAttr('zLayer', val);\r\n } else if (type == 'fill') {\r\n this.currentShape.fill(val);\r\n //this.currentText.stroke(val);\r\n }\r\n this.layer.draw();\r\n //this.currentText.getStage().batchDraw();\r\n } else {\r\n if (type == 'x') {\r\n this.currentText.x(val);\r\n }\r\n else if (type == 'y') {\r\n this.currentText.y(val);\r\n }\r\n else if (type == 'fontSize') {\r\n this.currentText.fontSize(val);\r\n }\r\n else if (type == 'fontFamily') {\r\n this.currentText.fontFamily(val);\r\n }\r\n else if (type == 'fontStyle') {\r\n this.currentText.fontStyle(val);\r\n }\r\n else if (type == 'zLayer') {\r\n this.currentText.zIndex(val);\r\n this.currentText.setAttr('zLayer', val);\r\n }\r\n else if (type == 'text_wrap') {\r\n this.currentText.setAttr('text_wrap', val);\r\n }\r\n else if (type == 'fill') {\r\n this.currentText.fill(val);\r\n //this.currentText.stroke(val);\r\n }\r\n //else if (type == 'fontStyle') {\r\n // this.selectedShape.is_font_bold = val;\r\n // if (val) {\r\n // this.currentText.fontStyle('bold');\r\n // } else {\r\n // this.currentText.fontStyle('normal');\r\n // }\r\n //}\r\n else if (type == 'group_name') {\r\n this.currentText.setAttr('group_name', val);\r\n }\r\n else if (type == 'group_variable_name') {\r\n this.currentText.setAttr('group_variable_name', val);\r\n var text = '[' + triggerValue + ']';\r\n this.currentText.text(text)\r\n this.currentShapeModel.text = text;\r\n }\r\n else if (type == 'text') {\r\n this.currentText.text(val);\r\n }\r\n else if (type == 'variable_name') {\r\n\r\n if (this.selectedShape.is_variable) {\r\n var text = '';\r\n if (this.is_patient_restriction && this.currentText.getAttr('is_patient_restriction')) {\r\n text = '[' + triggerValue + ']';\r\n this.currentText.setAttr('variable_name', val);\r\n }else if (this.is_group_patient_restriction && this.currentText.getAttr('is_group_patient_restriction')) {\r\n text = '[' + triggerValue + ']';\r\n this.currentText.setAttr('variable_name', val);\r\n } else if (this.is_room_info && this.currentText.getAttr('is_room_info')) {\r\n text = '[' + triggerValue + ']';\r\n this.currentText.setAttr('variable_name', val);\r\n } else {\r\n this.currentText.setAttr('variable_name', val);\r\n text = '[' + val + ']';\r\n }\r\n this.currentText.text(text);\r\n //this.currentText.fontStyle('italic');\r\n this.currentShapeModel.text = text;\r\n } else {\r\n this.currentText.fontStyle('normal');\r\n }\r\n }\r\n else if (type == 'is_variable') {\r\n this.selectedShape.is_variable = val;\r\n this.is_variable = val;\r\n if (!this.selectedShape.is_variable) {\r\n this.currentText.setAttr('variable_name', '');\r\n } else {\r\n this.is_patient_info = this.currentText.getAttr('is_patient_info');\r\n this.is_patient_restriction = this.currentText.getAttr('is_patient_restriction');\r\n this.is_group_patient_restriction = this.currentText.getAttr('is_group_patient_restriction');\r\n this.is_room_info = this.currentText.getAttr('is_room_info');\r\n }\r\n\r\n this.currentText.setAttr('is_variable', val);\r\n }\r\n else if (type == 'is_icon') {\r\n this.selectedShape.is_icon = val;\r\n this.is_icon = val;\r\n this.currentText.setAttr('is_icon', val);\r\n }\r\n this.layer.draw();\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n imgSrc: string = '';\r\n postToDevice() {\r\n this.alertService.resetStickyMessage();\r\n var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n this.editedTemplate.isPostToDevice = true;\r\n //this.editedTemplate.deviceAPIUrl = 'http://183.90.63.88:3000/template'\r\n //this.editedTemplate.deviceAPIUrl = \"http://119.73.206.36:91/api/registration/GetRegistrationsByLocationCode\";\r\n this.alertService.startLoadingMessage(\"Posting template to device...\");\r\n this.epaperService.mapTemplate(this.editedTemplate)\r\n .subscribe(res => {\r\n\r\n this.alertService.stopLoadingMessage();\r\n if (res.isSuccess) {\r\n this.alertService.showMessage(\"Success\", \"Successfully updated the device\", MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n }\r\n //this.redrawFromJson(res.data);\r\n /*this.imgSrc = this.dup_stage.toDataURL();\r\n var curi = this.dup_stage.toCanvas({}).toDataURL();\r\n console.log(curi);\r\n var dataurl = this.dup_stage.toDataURL();\r\n var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n var uri = new Blob([u8arr], { type: mime });\r\n\r\n\r\n console.log(dataurl.replace(\"image/png\", \"image/octet-stream\"));\r\n var link = document.createElement('a');\r\n link.download = \"image.png\";\r\n link.href = dataurl;//.replace(/^data:image\\/[^;]/, 'data:application/octet-stream');\r\n\r\n //link.download = 'template.png';\r\n //link.href = dataurl.replace(\"image/png\", \"image/octet-stream\");\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //delete link;\r\n var template = new EpaperTemplate('', 'template.png', dataurl)\r\n var url = \"http://183.90.63.88:3000/epaper\";\r\n //this.epaperService.postTemplateToDevice2(url, template).subscribe(res => {\r\n // console.log(res);\r\n // alert('Posted to device');\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n\r\n //this.epaperService.postTemplateToDevice(url, template).subscribe(res => {\r\n // console.log(res);\r\n // alert('Posted to device');\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n */\r\n }\r\n , error => function (error) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\", MessageSeverity.error);\r\n console.log(error);\r\n });\r\n //this.epaperService.mapTemplate(template);\r\n }\r\n\r\n postToDeviceAsImage() {\r\n this.alertService.resetStickyMessage();\r\n var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n this.editedTemplate.isPostToDevice = false;\r\n this.alertService.startLoadingMessage(\"Posting template as image to device...\");\r\n var component = this;\r\n this.epaperService.mapTemplate(this.editedTemplate)\r\n .subscribe(res => {\r\n\r\n this.redrawFromJson(res.data, function () {\r\n var curi = component.dup_stage.toCanvas({}).toDataURL();\r\n console.log(curi);\r\n var dataurl = component.dup_stage.toDataURL();\r\n //var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n // bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n //while (n--) {\r\n // u8arr[n] = bstr.charCodeAt(n);\r\n //}\r\n //var uri = new Blob([u8arr], { type: mime });\r\n\r\n var template = new EpaperTemplate('', 'template.png', dataurl)\r\n var url = \"http://183.90.63.88:3000/epaper\";\r\n component.epaperService.postTemplateToDevice(url, template).subscribe(res => {\r\n console.log(res);\r\n //alert('Posted to device');\r\n component.alertService.stopLoadingMessage();\r\n if (res.isSuccess) {\r\n component.alertService.showMessage(\"Success\", \"Successfully updated the device\", MessageSeverity.success);\r\n }\r\n else {\r\n component.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n }\r\n\r\n }, error => function (error) {\r\n console.log(error);\r\n });\r\n\r\n });\r\n\r\n //this.imgSrc = this.dup_stage.toDataURL();\r\n\r\n\r\n\r\n //this.redrawFromJson(res.data);\r\n /*this.imgSrc = this.dup_stage.toDataURL();\r\n var curi = this.dup_stage.toCanvas({}).toDataURL();\r\n console.log(curi);\r\n var dataurl = this.dup_stage.toDataURL();\r\n var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n var uri = new Blob([u8arr], { type: mime });\r\n\r\n\r\n console.log(dataurl.replace(\"image/png\", \"image/octet-stream\"));\r\n var link = document.createElement('a');\r\n link.download = \"image.png\";\r\n link.href = dataurl;//.replace(/^data:image\\/[^;]/, 'data:application/octet-stream');\r\n\r\n //link.download = 'template.png';\r\n //link.href = dataurl.replace(\"image/png\", \"image/octet-stream\");\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //delete link;\r\n var template = new EpaperTemplate('', 'template.png', dataurl)\r\n var url = \"http://183.90.63.88:3000/epaper\";\r\n //this.epaperService.postTemplateToDevice2(url, template).subscribe(res => {\r\n // console.log(res);\r\n // alert('Posted to device');\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n\r\n //this.epaperService.postTemplateToDevice(url, template).subscribe(res => {\r\n // console.log(res);\r\n // alert('Posted to device');\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n */\r\n }\r\n , error => function (error) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\", MessageSeverity.error);\r\n console.log(error);\r\n });\r\n //this.epaperService.mapTemplate(template);\r\n }\r\n\r\n redrawFromJson(template: any, callback?: any): void {\r\n //var template = JSON.parse(json);\r\n this.dup_stage = new Konva.Stage({\r\n container: 'dup-container',\r\n width: this.origWidth,\r\n height: this.origHeight,\r\n drawBorder: template['attrs']['drawBorder'],\r\n //scaleX: 1 / 2,\r\n //scaleY: 1 / 2,\r\n //offsetWidth: .3,\r\n //offsetHeight: .3\r\n });\r\n //this.dup_stage.setAttr(\"drawBorder\", true);\r\n this.dup_layer = new Konva.Layer();\r\n this.dup_stage.add(this.dup_layer);\r\n var images = [];\r\n var imgCount = 0;\r\n var templateChildren = template['children'][0]['children'];\r\n var sortedChildren = templateChildren.sort((a, b) => parseInt(this.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(this.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n var childAddedCount = 0;\r\n var imgCount = 0;\r\n var newZIndex = sortedChildren.length - 1;\r\n\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var t = sortedChildren[i];\r\n if (t['className'] == 'Text') {\r\n //if (t['attrs']['icon'] != null && t['attrs']['icon'] != '') {\r\n // var icons = (t['attrs']['icon']).split(',');\r\n // for (var ic = 0; ic < icons.length; ic++) {\r\n // var attrs = t['attrs'];\r\n // var src = t['attrs']['src'];\r\n // images.push({ src: src, attrs: attrs, zLayer: childAddedCount });\r\n // childAddedCount++;\r\n // var component = this;\r\n // var imageObj = new Image()\r\n // const image = this.shapeService.image(imageObj, attrs);\r\n // imageObj.onload = function () {\r\n // for (var i in images) {\r\n // if (images[i].src == decodeURI(image.attrs.src)) {\r\n // ++imgCount;\r\n // var x = image.attrs.x === undefined ? 0 : parseInt(image.attrs.x);\r\n // var y = image.attrs.y === undefined ? 0 : parseInt(image.attrs.y);\r\n\r\n // image.setAttrs(images[i].attrs);\r\n // image.x(x);\r\n // image.y(y);\r\n // image.setAttr('zLayer', images[i].zLayer);\r\n // image.zIndex(parseInt(images[i].zLayer));\r\n\r\n // component.dup_layer.draw();\r\n // }\r\n // }\r\n\r\n // if (images != null && images.length == imgCount) {\r\n // component.dup_layer.batchDraw();\r\n // callback(component, component.dup_layer);\r\n // }\r\n // };\r\n // imageObj.src = src;\r\n // this.dup_layer.add(image);\r\n // }\r\n //} else {\r\n const shape = new Konva.Text(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n //}\r\n } else if (t['className'] == 'Line') {\r\n const shape = new Konva.Line(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Rect') {\r\n const shape = new Konva.Rect(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Image' && t['attrs']['src']) {\r\n var attrs = t['attrs'];\r\n var src = t['attrs']['src'];\r\n images.push({ src: src, attrs: attrs, zLayer: childAddedCount });\r\n childAddedCount++;\r\n var component = this;\r\n var imageObj = new Image()\r\n const image = this.shapeService.image(imageObj, attrs);\r\n imageObj.onload = function () {\r\n for (var i in images) {\r\n if (images[i].src == decodeURI(image.attrs.src)) {\r\n ++imgCount;\r\n var x = image.attrs.x === undefined ? 0 : parseInt(image.attrs.x);\r\n var y = image.attrs.y === undefined ? 0 : parseInt(image.attrs.y);\r\n\r\n image.setAttrs(images[i].attrs);\r\n image.x(x);\r\n image.y(y);\r\n image.setAttr('zLayer', images[i].zLayer);\r\n image.zIndex(parseInt(images[i].zLayer));\r\n\r\n component.dup_layer.draw();\r\n }\r\n }\r\n\r\n if (images != null && images.length == imgCount) {\r\n component.dup_layer.batchDraw();\r\n callback(component, component.dup_layer);\r\n }\r\n };\r\n imageObj.src = src;\r\n //this.shapes.push(image);\r\n this.dup_layer.add(image);\r\n\r\n //Konva.Image.fromURL(src, function (node) {\r\n // var is_background_image = false;\r\n // for (var i in images) {\r\n // if (images[i].src == decodeURI(node.attrs.image.src)) {\r\n // ++imgCount;\r\n // node.setAttrs(images[i].attrs);\r\n // node.setAttr('zLayer', images[i].zLayer);\r\n // node.zIndex(images[i].zLayer);\r\n // is_background_image = node.attrs.is_background_image;\r\n // component.dup_layer.add(node);\r\n // component.dup_layer.draw();\r\n // if (is_background_image) {\r\n // node.zIndex(0);\r\n // }\r\n // }\r\n // }\r\n\r\n // if (images != null && images.length == imgCount) {\r\n // component.reorderComponents(component, component.dup_layer, callback);\r\n // }\r\n //});\r\n }\r\n\r\n this.dup_stage.add(this.dup_layer);\r\n this.dup_layer.draw();\r\n }\r\n //this.loadImages(images, this.buildImages);\r\n if (!images || images == null || images.length == 0) {\r\n this.reorderComponents(this, this.dup_layer, callback);\r\n }\r\n }\r\n\r\n loadImages(sources, callback) {\r\n var images: Konva.Image[] = [];\r\n var loadedImages = 0;\r\n var numImages = 0;\r\n for (var src in sources) {\r\n numImages++;\r\n }\r\n for (var src in sources) {\r\n images[src] = new Konva.Image(sources[src].attrs);\r\n images[src].onload = function () {\r\n if (++loadedImages >= numImages) {\r\n callback(images);\r\n }\r\n };\r\n images[src].src = sources[src].src;\r\n }\r\n }\r\n\r\n buildImages(images) {\r\n for (var i in images) {\r\n var img = new Konva.Image(images[i].attrs);\r\n this.dup_layer.add(img);\r\n }\r\n\r\n // this.dup_stage.add(this.dup_layer);\r\n this.dup_layer.batchDraw();\r\n }\r\n\r\n saveFile(s: string, filename: string) {\r\n var s = this.stage.toJSON(),\r\n filename = 'template.txt';\r\n\r\n const blob = new Blob([s], { type: 'text/plain' });\r\n saveAs(blob, filename);\r\n }\r\n\r\n public import = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n let fileToUpload = files[0];\r\n var reader = new FileReader();\r\n var component = this;\r\n reader.onload = function (evt) {\r\n //if (evt.target.readyState != 2) return;\r\n //if (evt.target.error) {\r\n // alert('Error while reading file');\r\n // return;\r\n //}\r\n\r\n var filecontent = reader.result as string;\r\n var templateBody = JSON.parse(filecontent);\r\n var template = component.cleanUpTemplate(JSON.stringify(templateBody));\r\n component.redrawFromImport(template, component.reorderComponents);\r\n component.showNewTemplate = !component.showNewTemplate;\r\n };\r\n\r\n reader.readAsText(fileToUpload);\r\n\r\n //let fileToUpload = files[0];\r\n //const formData = new FormData();\r\n //formData.append('file', fileToUpload, fileToUpload.name);\r\n }\r\n\r\n redrawFromImport(template?: any, callback?: any) {\r\n this.initTemplate();\r\n this.shapes = [];\r\n this.transformers = [];\r\n this.stage = new Konva.Stage({\r\n container: 'container',\r\n width: this.origWidth,\r\n height: this.origHeight,\r\n //drawBorder: template['attrs']['drawBorder']\r\n });\r\n\r\n this.layer = new Konva.Layer();\r\n this.stage.add(this.layer);\r\n this.addLineListeners();\r\n var images = [];\r\n if (template) {\r\n var templateChildren = [];\r\n templateChildren = template['children'][0]['children'];\r\n var sortedChildren = templateChildren.sort((a, b) => parseInt(this.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(this.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n var childAddedCount = 0;\r\n var imgCount = 0;\r\n var newZIndex = sortedChildren.length - 1;\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var t = sortedChildren[i];\r\n if (t['className'] == 'Text') {\r\n const shape = new Konva.Text(t['attrs']);\r\n //shape.zIndex(childAddedCount);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n //shape.zIndex(newZIndex);\r\n shape.on('transform', function () {\r\n // reset scale, so only with is changing by transformer\r\n shape.setAttrs({\r\n width: shape.width() * shape.scaleX(),\r\n scaleX: 1\r\n });\r\n });\r\n //let tr = new Konva.Transformer({\r\n // node: shape as any,\r\n // enabledAnchors: ['middle-left', 'middle-right'],\r\n // // set minimum width of text\r\n // boundBoxFunc: function (oldBox, newBox) {\r\n // newBox.width = Math.max(30, newBox.width);\r\n // return newBox;\r\n // }\r\n //});\r\n //this.transformers.push(tr);\r\n this.layer.add(shape);\r\n } else if (t['className'] == 'Line') {\r\n const shape = new Konva.Line(t['attrs']);\r\n //shape.zIndex(childAddedCount);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n //shape.setAttr('zLayer', newZIndex);\r\n //shape.zIndex(newZIndex);\r\n this.layer.add(shape);\r\n } else if (t['className'] == 'Rect') {\r\n const shape = new Konva.Rect(t['attrs']);\r\n //shape.zIndex(childAddedCount);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n //shape.setAttr('zLayer', newZIndex);\r\n //shape.zIndex(newZIndex);\r\n this.layer.add(shape);\r\n } else if (t['className'] == 'Image' && t['attrs']['src']) {\r\n var attrs = t['attrs'];\r\n var src = t['attrs']['src'];\r\n images.push({ src: src, attrs: attrs, zLayer: childAddedCount });\r\n childAddedCount++;\r\n var component = this;\r\n\r\n var imageObj = new Image()\r\n const image = this.shapeService.image(imageObj, attrs);\r\n imageObj.onload = function () {\r\n //image.image(imageObj);\r\n for (var i in images) {\r\n if (images[i].src == decodeURI(image.attrs.src)) {\r\n ++imgCount;\r\n var x = image.attrs.x === undefined ? 0 : parseInt(image.attrs.x);\r\n var y = image.attrs.y === undefined ? 0 : parseInt(image.attrs.y);\r\n\r\n image.setAttrs(images[i].attrs);\r\n image.x(x);\r\n image.y(y);\r\n image.setAttr('zLayer', images[i].zLayer);\r\n image.zIndex(parseInt(images[i].zLayer));\r\n\r\n image.draggable(true);\r\n //is_background_image = node.attrs.is_background_image;\r\n //component.layer.add(node);\r\n //if (is_background_image) {\r\n // node.zIndex(0);\r\n //}\r\n\r\n component.layer.draw();\r\n }\r\n }\r\n\r\n if (images != null && images.length == imgCount) {\r\n component.layer.batchDraw();\r\n callback(component, component.layer);\r\n }\r\n };\r\n imageObj.src = src;\r\n //this.shapes.push(image);\r\n this.layer.add(image);\r\n //Konva.Image.fromURL(src, function (node) {\r\n // var is_background_image = false;\r\n // for (var i in images) {\r\n // if (images[i].src == decodeURI(node.attrs.image.src)) {\r\n // ++imgCount;\r\n // node.setAttrs(images[i].attrs);\r\n // //node.zIndex(parseInt(images[i].zLayer));\r\n // node.setAttr('zLayer', images[i].zLayer);\r\n // node.zIndex(images[i].zLayer);\r\n // //is_background_image = node.attrs.is_background_image;\r\n // component.layer.add(node);\r\n // //if (is_background_image) {\r\n // // node.zIndex(0);\r\n // //}\r\n\r\n // //component.layer.draw();\r\n // }\r\n // }\r\n\r\n // if (images != null && images.length == imgCount) {\r\n // component.layer.batchDraw();\r\n // callback(component, component.layer);\r\n // }\r\n\r\n //});\r\n }\r\n\r\n this.stage.add(this.layer);\r\n //this.layer.draw();\r\n this.addTransformerListeners();\r\n }\r\n\r\n if (!images || images == null || images.length == 0) {\r\n this.layer.batchDraw();\r\n callback(this, this.layer);\r\n }\r\n }\r\n }\r\n\r\n reorderComponents(component, layer, callback?: any) {\r\n var sortedChildren = layer.children.sort((a, b) => parseInt(component.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(component.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var shape = sortedChildren[i];\r\n var index = parseInt(sortedChildren[i].getAttr('zLayer'));\r\n shape.zIndex(index);\r\n shape.setZIndex(index);\r\n\r\n }\r\n layer.batchDraw();\r\n if (callback) {\r\n callback(component);\r\n }\r\n }\r\n\r\n safeGet(obj, prop, defaultValue) {\r\n try {\r\n return obj[prop] != null && obj[prop] !== undefined ? obj[prop] : defaultValue;\r\n } catch (e) {\r\n return defaultValue\r\n }\r\n }\r\n\r\n preview(): void {\r\n var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n this.editedTemplate.isPostToDevice = false;\r\n //this.editedTemplate.deviceAPIUrl = 'http://183.90.63.88:3000/template'\r\n //this.editedTemplate.deviceAPIUrl = \"http://119.73.206.36:91/api/registration/GetRegistrationsByLocationCode\";\r\n this.alertService.startLoadingMessage(\"Generating preview...\");\r\n this.epaperService.mapTemplate(this.editedTemplate)\r\n .subscribe(res => {\r\n this.alertService.stopLoadingMessage();\r\n if (!res.isSuccess) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n return;\r\n }\r\n //var component = this;\r\n this.redrawFromJson(res.data, function (component) {\r\n // clone original layer, and disable all events on it\r\n // we will use \"let\" here, because we can redefine layer later\r\n component.preview_stage = new Konva.Stage({\r\n container: 'preview-container',\r\n width: component.origWidth / 2,\r\n height: component.origHeight / 2,\r\n scaleX: 1 / 2,\r\n scaleY: 1 / 2,\r\n //offsetWidth: .3,\r\n //offsetHeight: .3\r\n });\r\n\r\n component.preview_layer = component.dup_layer.clone({ hitGraphEnabled: false });\r\n component.preview_stage.add(component.preview_layer);\r\n component.preview_layer.batchDraw();\r\n component.is_preview = true;\r\n });\r\n\r\n\r\n\r\n this.imgSrc = this.dup_stage.toDataURL();\r\n //var curi = this.dup_stage.toCanvas({}).toDataURL();\r\n //console.log(curi);\r\n\r\n //const dialogRef = this.dialog.open(TemplateEditorPreviewDialog, {\r\n // width: '100%',\r\n // //minHeight: 'calc(100vh - 90px)',\r\n // height: 'auto',\r\n // //position: { left: '5vw' };\r\n // data: { origHeight: this.origHeight, origWidth: this.origWidth, layer: this.layer, template: res.data, imgSrc: this.imgSrc}\r\n //});\r\n\r\n //dialogRef.afterClosed().subscribe(result => {\r\n //});\r\n }\r\n , error => function (error) {\r\n this.alertService.stopLoadingMessage();\r\n console.log(error);\r\n });\r\n }\r\n\r\n previewFromImage(isPostToDevice: boolean): void {\r\n var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n this.editedTemplate.isPostToDevice = isPostToDevice;\r\n if (!isPostToDevice) {\r\n this.alertService.startLoadingMessage(\"Generating preview...\");\r\n }\r\n else {\r\n this.alertService.startLoadingMessage(\"Posting template to device...\");\r\n }\r\n this.epaperService.previewFromImage(this.editedTemplate)\r\n .subscribe(res => {\r\n this.alertService.stopLoadingMessage();\r\n if (!res.isSuccess) {\r\n if (!isPostToDevice) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting the template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n } else {\r\n this.alertService.showStickyMessage(\"Generation Error\", \"The below errors occured while generating the template:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n }\r\n return;\r\n }\r\n if (!isPostToDevice) {\r\n this.is_preview = !isPostToDevice;\r\n this.previewImgUri = this.domSanitizer.bypassSecurityTrustUrl('data:image/png;base64, ' + res.data);\r\n }\r\n }\r\n , error => function (error) {\r\n this.alertService.stopLoadingMessage();\r\n console.log(error);\r\n });\r\n }\r\n\r\n updatePreview() {\r\n //// we just need to update ALL nodes in the preview\r\n //this.layer.children.forEach(shape => {\r\n // // find cloned node\r\n // const clone = previewLayer.findOne('.' + shape.name());\r\n // // update its position from the original\r\n // clone.position(shape.position());\r\n //});\r\n //this.dup_layer.batchDraw();\r\n }\r\n\r\n\r\n cleanUpTemplate(json: string) {\r\n var template = JSON.parse(json);\r\n var children = template['children'][0]['children'];\r\n var newChildren = []\r\n for (var i = 0; i < children.length; i++) {\r\n if ((children[i]['className'] !== 'Line') && (!children[i]['attrs'] || children[i]['attrs']['zLayer'] === undefined)) {\r\n continue;\r\n } else {\r\n newChildren.push(children[i]);\r\n }\r\n }\r\n template['children'][0]['children'] = newChildren;\r\n return template;\r\n }\r\n\r\n saveTemplate() {\r\n //var template = new EpaperTemplate();\r\n var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n const dialogRef = this.dialog.open(FRSTemplateSaveDialogPreviewDialog, {\r\n width: '500px',\r\n data: { template: this.editedTemplate}\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (!result || !result.isCancel) {\r\n this.showNewTemplate = !this.showNewTemplate;\r\n //this.loadListData();\r\n this.editedTemplate = new EpaperTemplate();\r\n this.ngOnInit();\r\n }\r\n });\r\n }\r\n\r\n\r\n //List\r\n initListTable() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: true },\r\n { prop: 'name', name: gT('templates.management.Name'), width: 200 },\r\n { prop: 'description', name: gT('templates.management.Description'), width: 350 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: true, canAutoResize: true, sortable: false, draggable: false }\r\n ];\r\n\r\n this.loadListData();\r\n }\r\n\r\n loadListData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.epaperService.getTemplates()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let templates = results[0];\r\n\r\n templates.forEach((template, index, institutions) => {\r\n (template).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...templates];\r\n this.rows = templates;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve templates from the server.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n backToList() {\r\n this.showNewTemplate = !this.showNewTemplate;\r\n this.initListTable();\r\n this.editedTemplate = new EpaperTemplate();\r\n }\r\n\r\n newTemplate() {\r\n this.initTemplate();\r\n this.editedTemplate = new EpaperTemplate();\r\n this.showNewTemplate = !this.showNewTemplate;\r\n }\r\n\r\n editTemplate(row: EpaperTemplate) {\r\n\r\n this.editedTemplate = row;\r\n //var template = JSON.parse(row.templateBody);\r\n var template = this.cleanUpTemplate(row.templateBody)\r\n this.redrawFromImport(template, this.reorderComponents);\r\n this.showNewTemplate = !this.showNewTemplate;\r\n }\r\n\r\n deleteTemplate(row: EpaperTemplate) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" template?', DialogType.confirm, () => this.deleteDepartmentHelper(row));\r\n }\r\n\r\n\r\n deleteDepartmentHelper(row: EpaperTemplate) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.epaperService.deleteTemplate(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the template.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n get canManageTemplates() {\r\n return this.accountService.userHasPermission(Permission.manageEpaperTemplatesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.bottom-space {\\r\\n margin-bottom: 40px;\\r\\n}\\r\\n\\r\\n.no-bottom-space {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.statistics-close-btn {\\r\\n}\\r\\n\\r\\n.todo-close-btn {\\r\\n margin: 0 10px -25px 0;\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.banner-close-btn {\\r\\n margin: 0 10px -25px 0;\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ob21lL2hvbWUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7QUFDQTs7QUFFQTtJQUNJLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsVUFBVTtBQUNkOztBQUVBO0lBQ0ksc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQixVQUFVO0FBQ2QiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2hvbWUvaG9tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5ib3R0b20tc3BhY2Uge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxufVxyXG5cclxuLm5vLWJvdHRvbS1zcGFjZSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uc3RhdGlzdGljcy1jbG9zZS1idG4ge1xyXG59XHJcblxyXG4udG9kby1jbG9zZS1idG4ge1xyXG4gICAgbWFyZ2luOiAwIDEwcHggLTI1cHggMDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5iYW5uZXItY2xvc2UtYnRuIHtcclxuICAgIG1hcmdpbjogMCAxMHB4IC0yNXB4IDA7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAxO1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

{{'pageHeader.Dashboard' | 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\"","import { Component } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\n\r\n\r\n@Component({\r\n selector: 'home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class HomeComponent {\r\n constructor(public configurations: ConfigurationService, private accountService: AccountService, private authService: AuthService) {\r\n \r\n }\r\n\r\n get canViewDevices() {\r\n return this.accountService.userHasPermission(Permission.viewDevicesPermission); //Todo: Consider creating separate permission for notifications\r\n }\r\n\r\n get canViewReservations() {\r\n return this.accountService.userHasPermission(Permission.addReservationsPermission);\r\n }\r\n\r\n get canManagePIBDevices() {\r\n return this.accountService.userHasPermission(Permission.managePIBDevicesTemplatesPermission);\r\n }\r\n\r\n get canViewDashboard() {\r\n return this.accountService.userHasPermission(Permission.viewDashboardPermission);\r\n }\r\n\r\n get canViewSignageDashboard() {\r\n return this.accountService.userHasPermission(Permission.viewSignageDashboardPermission);\r\n }\r\n}\r\n","module.exports = \"img {\\r\\n max-height: 200px;\\r\\n max-width: 200px;\\r\\n}\\r\\n\\r\\nvideo {\\r\\n max-height: 200px;\\r\\n max-width: 200px;\\r\\n}\\r\\n\\r\\n.example-list {\\r\\n width: 500px;\\r\\n max-width: 100%;\\r\\n border: solid 1px #ccc;\\r\\n min-height: 60px;\\r\\n display: block;\\r\\n background: white;\\r\\n border-radius: 4px;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.example-box {\\r\\n padding: 20px 10px;\\r\\n border-bottom: solid 1px #ccc;\\r\\n color: rgba(0, 0, 0, 0.87);\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n align-items: center;\\r\\n justify-content: space-between;\\r\\n box-sizing: border-box;\\r\\n cursor: move;\\r\\n background: white;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.cdk-drag-preview {\\r\\n box-sizing: border-box;\\r\\n border-radius: 4px;\\r\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\r\\n}\\r\\n\\r\\n.cdk-drag-placeholder {\\r\\n opacity: 0;\\r\\n}\\r\\n\\r\\n.cdk-drag-animating {\\r\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\r\\n}\\r\\n\\r\\n.example-box:last-child {\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder) {\\r\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9pbWFnZVVwbG9hZC9pbWFnZS1saXN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLDBCQUEwQjtFQUMxQixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIscUhBQXFIO0FBQ3ZIOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0Usc0RBQXNEO0FBQ3hEOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0Usc0RBQXNEO0FBQ3hEIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9pbWFnZVVwbG9hZC9pbWFnZS1saXN0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJpbWcge1xyXG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xyXG4gIG1heC13aWR0aDogMjAwcHg7XHJcbn1cclxuXHJcbnZpZGVvIHtcclxuICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICBtYXgtd2lkdGg6IDIwMHB4O1xyXG59XHJcblxyXG4uZXhhbXBsZS1saXN0IHtcclxuICB3aWR0aDogNTAwcHg7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGJvcmRlcjogc29saWQgMXB4ICNjY2M7XHJcbiAgbWluLWhlaWdodDogNjBweDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmV4YW1wbGUtYm94IHtcclxuICBwYWRkaW5nOiAyMHB4IDEwcHg7XHJcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNjY2M7XHJcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgY3Vyc29yOiBtb3ZlO1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxufVxyXG5cclxuLmNkay1kcmFnLXByZXZpZXcge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxufVxyXG5cclxuLmNkay1kcmFnLXBsYWNlaG9sZGVyIHtcclxuICBvcGFjaXR5OiAwO1xyXG59XHJcblxyXG4uY2RrLWRyYWctYW5pbWF0aW5nIHtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XHJcbn1cclxuXHJcbi5leGFtcGxlLWJveDpsYXN0LWNoaWxkIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbi5leGFtcGxlLWxpc3QuY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyAuZXhhbXBsZS1ib3g6bm90KC5jZGstZHJhZy1wbGFjZWhvbGRlcikge1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Media Gallery
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n\\r\\n\\r\\n
  • \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
  • \\r\\n
  • \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
  • \\r\\n\\r\\n
  • \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
  • \\r\\n\\r\\n
  • \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
  • \\r\\n\\r\\n
  • \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
  • \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n

If no media shown, change the filter value first.

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
{{image.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
To Delete Items
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\\\" cdkDropList class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event)\\\">\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{image.title}}\\r\\n
\\r\\n
\\r\\n close\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, OnInit} from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ImageFileService } from 'src/app/services/image-file.service';\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Image } from '../../models/image.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material';\r\nimport { ImageUploadComponent } from '../common/ImageUploader/imageuploader.component'\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { Utilities } from '../../services/utilities';\r\nimport { PlaylistService } from \"../../services/playlist.service\";\r\nimport { Playlist, imageIndex } from '../../models/playlist.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { UserSelectorComponent } from '../common/user-selector/user-selector.component';\r\nimport { ImageUploadsComponent} from \"./image-upload.component\";\r\nimport { MediaService } from '../../services/media.service';\r\nimport { Media } from '../../models/media.model';\r\nimport { MediaExtensionService } from '../../services/media-extension.service';\r\nimport { MediaExtension } from '../../models/media-extension.model';\r\n\r\n@Component({\r\n selector: 'image-lists',\r\n templateUrl: './image-list.component.html',\r\n styleUrls: ['./image-list.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ImageListsComponent implements OnInit {\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n private filePath: string;\r\n private imageEdit: Image = new Image();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n\r\n loadingIndicator: boolean;\r\n private isNewPlaylist: boolean;\r\n private editingPlaylistName: string;\r\n\r\n private selectedImageList: Image[] = [];\r\n\r\n imagePage: Image[] = [];\r\n imageAll: Image[] = [];\r\n\r\n allMedias: Media[];\r\n allMediaExtensions: MediaExtension[];\r\n\r\n search: string;\r\n mediaGroup: string = '';\r\n sort: string = '';\r\n fileType: string = '';\r\n ext: string = '';\r\n asc: boolean;\r\n\r\n data = [];\r\n page = 0;\r\n size = 24;\r\n\r\n @ViewChild('imgUpload') imgUpload: ImageUploadComponent;\r\n length: number;\r\n\r\n constructor(private fileService: ImageFileService, private alertService: AlertService, private accountService: AccountService, public dialog: MatDialog, public mediaService: MediaService, private mediaExtensionService: MediaExtensionService) {\r\n this.mediaService.getMedias(null, null, null, this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.allMedias = results;\r\n },\r\n error => {\r\n });\r\n\r\n this.mediaExtensionService.getMediaExtensionByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allMediaExtensions = results[0];\r\n },\r\n error => {\r\n \r\n })\r\n }\r\n\r\n ngOnInit() {\r\n this.loadData();\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.fileService.getImages(-1, -1, this.accountService.currentUser.institutionId, '', this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let result_data = results;\r\n\r\n result_data.forEach((image, index, result_data) => {\r\n (image).index = index + 1;\r\n });\r\n\r\n this.imageAll = result_data;\r\n\r\n this.refresh();\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve images from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n refresh() {\r\n this.page = 0;\r\n this.getData();\r\n }\r\n\r\n getData(obj?) {\r\n\r\n if (obj && !isNaN(obj.pageIndex) && !isNaN(obj.pageSize)) {\r\n this.page = obj.pageIndex;\r\n this.size = obj.pageSize;\r\n }\r\n\r\n let startingIndex = this.page * this.size;\r\n let endingIndex = startingIndex + this.size;\r\n\r\n this.imagePage = this.imageAll.slice(0);;\r\n\r\n let filtered = false;\r\n\r\n if (this.search) {\r\n this.imagePage = this.imagePage.filter(i => (i.title + ' ' + i.description + ' ' + i.tags).toLowerCase().includes(this.search.toLowerCase()));\r\n filtered = true;\r\n }\r\n\r\n if (this.mediaGroup) {\r\n this.imagePage = this.imagePage.filter(i => i.mediaId == this.mediaGroup);\r\n filtered = true;\r\n }\r\n\r\n if (this.fileType) {\r\n this.imagePage = this.imagePage.filter(i => this.fileType == '1' ? !i.isVideo : (this.fileType == '2' ? i.isVideo : true));\r\n filtered = true;\r\n }\r\n\r\n if (this.ext) {\r\n this.imagePage = this.imagePage.filter(i => i.imageLocation.endsWith(this.ext));\r\n filtered = true;\r\n }\r\n\r\n if (this.sort)\r\n this.imagePage = this.imagePage.sort((a, b) => {\r\n let result = 0;\r\n\r\n if (this.sort == '1') result = 1;\r\n else if (this.sort == '2') result = b.title.localeCompare(a.title);\r\n else if (this.sort == '3') result = b.description.localeCompare(a.description);\r\n\r\n if (this.asc) result *= -1;\r\n\r\n return result;\r\n });\r\n\r\n this.length = this.imagePage.length;\r\n\r\n this.imagePage = this.imagePage.filter((img, i) => {\r\n return i >= startingIndex && i < endingIndex;\r\n });\r\n\r\n console.log(\"INDEX\", startingIndex, endingIndex);\r\n\r\n if (!filtered) this.imagePage = [];\r\n }\r\n\r\n addImage(image) {\r\n this.selectedImageList.push(image);\r\n }\r\n\r\n delete() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Deleting image...\");\r\n this.selectedImageList.forEach((image, index, result_data) => {\r\n this.deleteDb(image.id, index == (this.selectedImageList.length -1));\r\n //this.removeImage(image);\r\n });\r\n }\r\n\r\n removeImage(image) {\r\n var index = this.selectedImageList.indexOf(image);\r\n this.selectedImageList.splice(index, 1);\r\n }\r\n\r\n private deleteDb(imageId,last: boolean) {\r\n console.log(\"image delete id: \", imageId);\r\n this.fileService.deleteImage(imageId).subscribe(response => this.saveSuccessHelper(last), error => this.saveFailedHelper(error));\r\n }\r\n\r\n private deleteDbConfirm(imageId, last: boolean) {\r\n if (confirm('Are you sure you want to delete?')) {\r\n this.deleteDb(imageId, last);\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(last?: boolean) {\r\n\r\n if (last) {\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n this.alertService.showMessage(\"Success\", `Success Delete`, MessageSeverity.success);\r\n this.selectedImageList = [];\r\n this.loadData();\r\n }\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Delete Error\", \"The below errors occured while deleting image:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n }\r\n\r\n newImage() {\r\n //this.editingDepartmentName = null;\r\n //this.sourceDepartment = null;\r\n //this.editedDepartment = this.departmentEditor.newDepartment();\r\n ////this.editorModal.show();\r\n //this.header = 'New Department';\r\n this.openDialog({});\r\n }\r\n\r\n editImage(image) {\r\n this.openDialog(image);\r\n }\r\n\r\n openDialog(data): void {\r\n const dialogRef = this.dialog.open(ImageUploadsComponent, {\r\n data: data,\r\n width: '80vw',\r\n height: '90vh',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n get canManageMediaLibrarys() {\r\n return this.accountService.userHasPermission(Permission.manageMediaLibraryPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvaW1hZ2VVcGxvYWQvaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Media Gallery

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n Media Group\\r\\n \\r\\n \\r\\n -- Select Media Group --\\r\\n \\r\\n \\r\\n {{m.name}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n Is Video\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\\"icon\\\"\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ImageFileService } from 'src/app/services/image-file.service';\r\n\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Image } from '../../models/image.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ImageUploadComponent } from '../common/ImageUploader/imageuploader.component'\r\nimport { MediaService } from '../../services/media.service';\r\nimport { Media } from '../../models/media.model';\r\n\r\n@Component({\r\n selector: 'image-uploads',\r\n templateUrl: './image-upload.component.html',\r\n styleUrls: ['./image-upload.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ImageUploadsComponent {\r\n\r\n\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n private filePath: string;\r\n public imageEdit: Image = new Image();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n\r\n @ViewChild('imgUpload') imgUpload: ImageUploadComponent;\r\n allMedias: Media[];\r\n\r\n constructor(private fileService: ImageFileService, private alertService: AlertService, private accountService: AccountService, private mediaService: MediaService,\r\n @Inject(MAT_DIALOG_DATA) public data: any, public dialogRef: MatDialogRef) {\r\n if (data) this.imageEdit = data;\r\n\r\n this.mediaService.getMedias(null, null, null, this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.allMedias = results;\r\n },\r\n error => {\r\n });\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n console.log(\"EVENT\", event);\r\n this.fileUploadResponse = event;\r\n this.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n this.imageEdit.imageLocation = this.filePath;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.imageEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.imageEdit.id) this.fileService.updateImage(this.imageEdit).subscribe(image => this.saveSuccessHelper(image), error => this.saveFailedHelper(error));\r\n else this.fileService.newImage(this.imageEdit).subscribe(image => this.saveSuccessHelper(image), error => this.saveFailedHelper(error));\r\n }\r\n\r\n private saveSuccessHelper(image?: Image) {\r\n if (image)\r\n Object.assign(this.imageEdit, image);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n this.alertService.showMessage(\"Success\", `Media \\\"${this.imageEdit.title}\\\" was created successfully`, MessageSeverity.success);\r\n\r\n\r\n this.imageEdit = new Image();\r\n this.filePath = '';\r\n if (this.imgUpload) this.imgUpload.reset();\r\n\r\n this.dialogRef.close();\r\n\r\n //if (!this.isNewDepartment && this.accountService.currentUser.facilities.some(r => r == this.editingDepartmentName))\r\n // this.refreshLoggedInUser();\r\n }\r\n\r\n private cancel() {\r\n this.imageEdit = new Image();\r\n this.filePath = '';\r\n if (this.imgUpload) this.imgUpload.reset();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your media:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9raW9za1NldHRpbmdzL2tpb3NrLXNldHRpbmdzLWVkaXQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLGFBQWE7RUFDYix3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFHQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBR0E7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRTtJQUNFLGlCQUFpQjtFQUNuQjtBQUNGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9raW9za1NldHRpbmdzL2tpb3NrLXNldHRpbmdzLWVkaXQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDAgNXB4O1xyXG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDEwcHggNXB4O1xyXG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlFcnJvck1lc3NhZ2Uge1xyXG4gIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICB9XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{playlist.name}} - {{playlist.description}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{playlist.name}} - {{playlist.description}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{playlist.name}} - {{playlist.description}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{playlist.name}} - {{playlist.description}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{f}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Input, ChangeDetectorRef, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { KioskSettingsService } from '../../services/kiosk-settings.service';\r\nimport { KioskSettings } from '../../models/kiosk-settings.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { Playlist } from '../../models/playlist.model';\r\nimport { PlaylistService } from 'src/app/services/playlist.service';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'kiosk-settings-edit',\r\n templateUrl: './kiosk-settings-edit.component.html',\r\n styleUrls: ['./kiosk-settings-edit.component.css']\r\n})\r\nexport class KioskSettingsEditComponent {\r\n\r\n private isEditMode = false;\r\n private isNewSettings = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingSettingsLabel: string;\r\n private settingsEdit: KioskSettings = new KioskSettings();\r\n private allPlaylists: Playlist[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n fcPlaylist = new FormControl('', [Validators.required]);\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('playlists')\r\n private playlists;\r\n\r\n @ViewChild('playlistsSelector')\r\n private playlistsSelector;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n\r\n\r\n fonts = [\r\n 'American Typewriter',\r\n 'Andalé Mono',\r\n 'Arial Black',\r\n 'Arial',\r\n 'Avenir Next',\r\n 'Bradley Hand',\r\n 'Brush Script MT',\r\n 'Comic Sans MS',\r\n 'Courier',\r\n 'Didot',\r\n 'Franklin Gothic',\r\n 'Georgia',\r\n 'Impact',\r\n 'Lucida Console',\r\n 'Luminari',\r\n 'Monaco',\r\n 'Tahoma',\r\n 'Times New Roman',\r\n 'Trebuchet MS',\r\n 'Verdana',\r\n ];\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private alertService: AlertService, private accountService: AccountService, private kioskSettingsService: KioskSettingsService, private playlistService: PlaylistService,\r\n private authService: AuthService, private fileService: FileService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.settings) != typeof (undefined)) {\r\n this.allPlaylists = data.allPlaylists;\r\n console.log(\"playlist Data: \", data.allPlaylists)\r\n if (data.settings.id) {\r\n this.editKioskSettings(data.settings, data.allPlaylists);\r\n } else {\r\n this.newKioskSettings(data.allPlaylists);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n console.log(\"saving...\")\r\n if (this.form.form.valid) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n //this.settingsEdit.dir_font_type = this.settingsEdit.dirFontType;\r\n\r\n //this.settingsEdit.institutionId = parseInt(this.authService.currentUser.institutionId);\r\n if (this.isNewSettings) {\r\n console.log(\"save new: \", this.settingsEdit)\r\n this.kioskSettingsService.newKioskSettings(this.settingsEdit).subscribe(response => this.saveSuccessHelper(response), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n console.log(\"update setting\")\r\n this.kioskSettingsService.updateKioskSettings(this.settingsEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(settings?: KioskSettings) {\r\n if (settings)\r\n Object.assign(this.settingsEdit, settings);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewSettings)\r\n this.alertService.showMessage(\"Success\", `Facility \\\"${this.settingsEdit.label}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to facility \\\"${this.settingsEdit.label}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.settingsEdit = new KioskSettings();\r\n this.resetForm();\r\n\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.settingsEdit = new KioskSettings();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newKioskSettings(allPlaylists: Playlist[]) {\r\n console.log(\"new kiosk Setting\")\r\n this.isEditMode = true;\r\n this.isNewSettings = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingSettingsLabel = null;\r\n this.allPlaylists = allPlaylists;\r\n console.log(\"allplaylist new: \", allPlaylists)\r\n this.selectedValues = {};\r\n this.settingsEdit = new KioskSettings();\r\n\r\n return this.settingsEdit;\r\n }\r\n\r\n editKioskSettings(settings: KioskSettings, allPlaylists: Playlist[]) {\r\n console.log(\"update kiosk Settings\")\r\n this.isEditMode = true;\r\n if (settings) {\r\n this.isNewSettings = false;\r\n this.showValidationErrors = true;\r\n this.allPlaylists = allPlaylists;\r\n\r\n this.editingSettingsLabel = settings.label;\r\n this.selectedValues = {};\r\n //this.setFacilityTypes(facility, allFacilityTypes);\r\n //this.setInstitutions(facility, allInstitutions);\r\n this.settingsEdit = new KioskSettings();\r\n Object.assign(this.settingsEdit, settings);\r\n\r\n return this.settingsEdit;\r\n }\r\n else {\r\n return this.newKioskSettings(allPlaylists);\r\n }\r\n }\r\n\r\n private setPLaylists(settings: KioskSettings, allPlaylists?: Playlist[]) {\r\n\r\n this.allPlaylists = allPlaylists ? [...allPlaylists] : [];\r\n\r\n if (allPlaylists == null || this.allPlaylists.length != allPlaylists.length)\r\n setTimeout(() => this.playlistsSelector.refresh());\r\n }\r\n\r\n changeKioskSettings(id) {\r\n var x = this.settingsEdit;\r\n var oldPlaylistId = this.settingsEdit.ssPlaylistId;\r\n this.settingsEdit.ssPlaylistId = \"\";\r\n this.playlistService.getPlaylists(id).subscribe(results => {\r\n this.allPlaylists = results;\r\n setTimeout(() => this.playlistsSelector.refresh());\r\n this.cdRef.detectChanges();\r\n this.settingsEdit.ssPlaylistId = oldPlaylistId;\r\n },\r\n error => {\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n setssPlaylistId(id) {\r\n this.settingsEdit.ssPlaylistId = id;\r\n }\r\n\r\n get canManageKioskSettings() {\r\n return true;\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n console.log(\"finish uploading... \", event)\r\n this.fileUploadResponse = event;\r\n this.settingsEdit.dir_font_type = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n public uploadFinishedBalloon = (event) => {\r\n console.log(\"finish uploading... \", event)\r\n this.fileUploadResponse = event;\r\n this.settingsEdit.baloon_image = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n public uploadFinishedArrow = (event) => {\r\n console.log(\"finish uploading... \", event)\r\n this.fileUploadResponse = event;\r\n this.settingsEdit.arrow_image = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n.password-separator-hr {\\r\\n margin: 5px;\\r\\n border-style: none;\\r\\n}\\r\\n\\r\\n.form-group {\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n.hint-sm {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.checkbox.user-enabled {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.unblock-user {\\r\\n margin-left: 34px;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.text-align-right {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n/*.cdk-overlay-container, .cdk-global-overlay-wrapper {\\r\\n z-index: 1051;\\r\\n}*/\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9raW9za1NldHRpbmdzL2tpb3NrLXNldHRpbmdzLWxpc3QuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLGFBQWE7RUFDYix3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7QUFDcEI7O0FBR0E7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUdBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFO0lBQ0UsaUJBQWlCO0VBQ25CO0FBQ0Y7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7O0VBRUUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2tpb3NrU2V0dGluZ3Mva2lvc2stc2V0dGluZ3MtbGlzdC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogMCA1cHg7XHJcbiAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbi5wYXNzd29yZC1zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbjogNXB4O1xyXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcclxufVxyXG5cclxuXHJcbi5mb3JtLWdyb3VwIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uaGludC1zbSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5jaGVja2JveC51c2VyLWVuYWJsZWQge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLnVuYmxvY2stdXNlciB7XHJcbiAgbWFyZ2luLWxlZnQ6IDM0cHg7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gIC51c2VyLWVuYWJsZWQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4udGV4dC1hbGlnbi1yaWdodCB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbi8qLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcclxuICB6LWluZGV4OiAxMDUxO1xyXG59Ki9cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n Edit\\r\\n Details\\r\\n \\r\\n Delete\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { KioskSettingsService } from 'src/app/services/kiosk-settings.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { KioskSettings } from 'src/app/models/kiosk-settings.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { KioskSettingsEditComponent } from './kiosk-settings-edit.component';\r\nimport { Playlist } from '../../models/playlist.model';\r\nimport { PlaylistService } from 'src/app/services/playlist.service';\r\n//import { PlaylistCreatorComponent } from '../playlistCreator/playlist-creator.component';\r\n\r\n\r\n@Component({\r\n selector: 'kiosk-settings-list',\r\n templateUrl: './kiosk-settings-list.component.html',\r\n styleUrls: ['./kiosk-settings-list.component.css']\r\n})\r\nexport class KioskSettingsListComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: KioskSettings[] = [];\r\n rowsCache: KioskSettings[] = [];\r\n allPermissions: Permission[] = [];\r\n editedSettings: KioskSettings;\r\n sourceSettings: KioskSettings;\r\n allPlaylists: Playlist[] = [];\r\n editingSettingsLabel: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('kioskSettingsEdit')\r\n kioskSettingsEdit: KioskSettingsEditComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private kioskSettingsService: KioskSettingsService, public dialog: MatDialog, private playlistService: PlaylistService) {\r\n }\r\n\r\n openDialog(settings: KioskSettings, allPlaylists: Playlist[]): void {\r\n const dialogRef = this.dialog.open(KioskSettingsEditComponent, {\r\n data: { header: this.header, settings: settings, allPlaylists: allPlaylists },\r\n width: '1000px',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'label', name: 'Label' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.kioskSettingsEdit.changesSavedCallback = () => {\r\n this.addNewKioskSettingsToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.kioskSettingsEdit.changesCancelledCallback = () => {\r\n this.editedSettings = null;\r\n this.sourceSettings = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewKioskSettingsToList() {\r\n if (this.sourceSettings) {\r\n Object.assign(this.sourceSettings, this.editedSettings);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceSettings, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceSettings, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedSettings = null;\r\n this.sourceSettings = null;\r\n }\r\n else {\r\n let kioskSettings = new KioskSettings();\r\n Object.assign(kioskSettings, this.editedSettings);\r\n this.editedSettings = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (kioskSettings).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, kioskSettings);\r\n this.rows.splice(0, 0, kioskSettings);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.kioskSettingsService.getKioskSettings(-1, -1, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let kioskSettings = results;\r\n let permissions = results[1];\r\n\r\n kioskSettings.forEach((setting, index, kioskSettings) => {\r\n (setting).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...kioskSettings];\r\n this.rows = kioskSettings;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve kiosk settings from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n\r\n this.subscription.add(this.playlistService.getPlaylists(-1, -1, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let playlists = results;\r\n this.allPlaylists = playlists;\r\n\r\n },\r\n error => {\r\n //this.alertService.stopLoadingMessage();\r\n //this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve kiosk playlists from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingSettingsLabel = null;\r\n //this.playlistEditor.resetForm(true);\r\n }\r\n\r\n\r\n newKioskSettings() {\r\n this.editingSettingsLabel = null;\r\n this.sourceSettings = null;\r\n this.editedSettings = this.kioskSettingsEdit.newKioskSettings(this.allPlaylists);\r\n this.header = 'New Kiosk Settings';\r\n this.openDialog(this.editedSettings, this.allPlaylists);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editKioskSettings(row: KioskSettings) {\r\n this.editingSettingsLabel = { key: row.label };\r\n this.sourceSettings = row;\r\n this.editedSettings = this.kioskSettingsEdit.editKioskSettings(row, this.allPlaylists);\r\n this.header = 'Edit Kiosk Settings';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedSettings, this.allPlaylists);\r\n }\r\n\r\n deleteKioskSettings(row: KioskSettings) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.label + '\\\" kiosk settings?', DialogType.confirm, () => this.deleteKioskSettingsHelper(row));\r\n }\r\n\r\n\r\n deleteKioskSettingsHelper(row: KioskSettings) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.kioskSettingsService.deletekioskSettings(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the kiosk settings.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageKioskSettings() {\r\n return true;//this.accountService.userHasPermission(Permission.managePlaylistPermission);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { UserLogin } from '../../models/user-login.model';\r\nimport { Router } from \"@angular/router\";\r\nimport { FRSHubConnections } from \"src/app/models/user.model\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\nimport * as signalRCore from '@aspnet/signalr';\r\n\r\n@Component({\r\n selector: \"app-external-login\",\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\n\r\nexport class ExternalLoginComponent implements OnInit, OnDestroy {\r\n\r\n userLogin = new UserLogin();\r\n isLoading = false;\r\n formResetToggle = true;\r\n modalClosedCallback: () => void;\r\n loginStatusSubscription: any;\r\n\r\n constructor(private alertService: AlertService, public connections: FRSHubConnections, private authService: AuthService, private configurations: ConfigurationService,\r\n public router: Router, private accountService: AccountService) {\r\n if (this.router.url.indexOf('/externallogin') > -1) {\r\n var queryParams = this.router.url.split('?')[1];\r\n let email = queryParams.split('=')[1];\r\n this.login(email);\r\n }\r\n }\r\n\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n \r\n }\r\n\r\n login(email) {\r\n this.isLoading = true;\r\n this.alertService.startLoadingMessage(\"\", \"Attempting login...\");\r\n\r\n this.authService.loginExternal(email)\r\n .subscribe(\r\n user => {\r\n setTimeout(() => {\r\n this.alertService.stopLoadingMessage();\r\n this.isLoading = false;\r\n this.reset();\r\n this.alertService.showMessage(\"Login\", `Welcome ${user.userName}!`, MessageSeverity.success);\r\n\r\n if (this.connections.userHubConnection == null || this.connections.userHubConnection.state !== signalRCore.HubConnectionState.Connected) {\r\n //this.connections.userHubConnection = this.authService.signalRConnection(`/hub/user?email=${user.email}&status=ONLINE`, true);\r\n //let status = user.status ? user.status : 'ONLINE';\r\n this.connections.userHubConnection = this.authService.signalRConnection(`${this.configurations.baseUrl}/hub/user?email=${user.email}`, true);\r\n\r\n }\r\n\r\n }, 500);\r\n this.authService.gotoPage('/');\r\n },\r\n error => {\r\n\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (Utilities.checkNoNetwork(error)) {\r\n this.alertService.showStickyMessage(Utilities.noNetworkMessageCaption, Utilities.noNetworkMessageDetail, MessageSeverity.error);\r\n }\r\n else {\r\n let errorMessage = Utilities.findHttpResponseMessage(\"error_description\", error);\r\n\r\n if (errorMessage)\r\n this.alertService.showStickyMessage(\"Unable to login\", errorMessage, MessageSeverity.error);\r\n else\r\n this.alertService.showStickyMessage(\"Unable to login\", \"An error occured while logging in, please try again later.\\nError: \" + Utilities.getResponseBody(error), MessageSeverity.error);\r\n }\r\n\r\n setTimeout(() => {\r\n this.isLoading = false;\r\n }, 500);\r\n });\r\n }\r\n\r\n closeModal() {\r\n if (this.modalClosedCallback) {\r\n this.modalClosedCallback();\r\n }\r\n }\r\n\r\n reset() {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n}\r\n","module.exports = \".boxshadow {\\r\\n position: relative;\\r\\n box-shadow: 1px 2px 4px rgba(0, 0, 0, .5);\\r\\n padding: 10px;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n\\r\\n .boxshadow::after {\\r\\n content: '';\\r\\n position: absolute;\\r\\n z-index: -1; /* hide shadow behind image */\\r\\n box-shadow: 0 15px 20px rgba(0, 0, 0, 0.3);\\r\\n width: 70%;\\r\\n left: 15%; /* one half of the remaining 30% */\\r\\n height: 100px;\\r\\n bottom: 0;\\r\\n }\\r\\n\\r\\n\\r\\n .cardshadow {\\r\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\\r\\n}\\r\\n\\r\\n\\r\\n .separator-hr {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n\\r\\n .last-control-group {\\r\\n margin-bottom: -25px;\\r\\n}\\r\\n\\r\\n\\r\\n .login-container .panel-primary > .panel-heading {\\r\\n color: #fff;\\r\\n background-color: #007f7b;\\r\\n border-color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n .login-container .btn-primary {\\r\\n color: #fff;\\r\\n background-color: #007f7b;\\r\\n border-color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n @media (min-width: 768px) {\\r\\n .login-container {\\r\\n width: 700px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n /*@media (min-width: 992px) {\\r\\n .login-container {\\r\\n width: 700px;\\r\\n }\\r\\n}*/\\r\\n\\r\\n\\r\\n @media (min-width: 1200px) {\\r\\n .login-container {\\r\\n width: 730px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksa0JBQWtCO0lBR2xCLHlDQUF5QztJQUN6QyxhQUFhO0lBQ2IsaUJBQWlCO0FBQ3JCOzs7SUFHSTtRQUNJLFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIsV0FBVyxFQUFFLDZCQUE2QjtRQUcxQywwQ0FBMEM7UUFDMUMsVUFBVTtRQUNWLFNBQVMsRUFBRSxrQ0FBa0M7UUFDN0MsYUFBYTtRQUNiLFNBQVM7SUFDYjs7O0lBR0o7SUFDSSw0RUFBNEU7QUFDaEY7OztJQUdBO0lBQ0ksU0FBUztBQUNiOzs7SUFFQTtJQUNJLG9CQUFvQjtBQUN4Qjs7O0lBRUE7RUFDRSxXQUFXO0VBQ1gseUJBQXlCO0VBQ3pCLHFCQUFxQjtBQUN2Qjs7O0lBRUE7RUFDRSxXQUFXO0VBQ1gseUJBQXlCO0VBQ3pCLHFCQUFxQjtBQUN2Qjs7O0lBRUE7RUFDRTtRQUNNLFlBQVk7SUFDaEI7QUFDSjs7O0lBRUE7Ozs7RUFJRTs7O0lBRUY7SUFDSTtRQUNJLFlBQVk7SUFDaEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5ib3hzaGFkb3cge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLW1vei1ib3gtc2hhZG93OiAxcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsMC41KTtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDJweCA0cHggcmdiYSgwLCAwLCAwLCAuNSk7XHJcbiAgICBib3gtc2hhZG93OiAxcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIC41KTtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxufVxyXG5cclxuXHJcbiAgICAuYm94c2hhZG93OjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHotaW5kZXg6IC0xOyAvKiBoaWRlIHNoYWRvdyBiZWhpbmQgaW1hZ2UgKi9cclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgMTVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICAgICAgd2lkdGg6IDcwJTtcclxuICAgICAgICBsZWZ0OiAxNSU7IC8qIG9uZSBoYWxmIG9mIHRoZSByZW1haW5pbmcgMzAlICovXHJcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG5cclxuLmNhcmRzaGFkb3cge1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDZweCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE5KTtcclxufVxyXG5cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubGFzdC1jb250cm9sLWdyb3VwIHtcclxuICAgIG1hcmdpbi1ib3R0b206IC0yNXB4O1xyXG59XHJcblxyXG4ubG9naW4tY29udGFpbmVyIC5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcge1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdmN2I7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcblxyXG4ubG9naW4tY29udGFpbmVyIC5idG4tcHJpbWFyeSB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2Y3YjtcclxuICBib3JkZXItY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gIC5sb2dpbi1jb250YWluZXIge1xyXG4gICAgICAgIHdpZHRoOiA3MDBweDtcclxuICAgIH1cclxufVxyXG5cclxuLypAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC5sb2dpbi1jb250YWluZXIge1xyXG4gICAgICAgIHdpZHRoOiA3MDBweDtcclxuICAgIH1cclxufSovXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAubG9naW4tY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogNzMwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ== */\"","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n {{'app.Login' | translate}}\\r\\n \\r\\n \\r\\n {{'app.Language' | 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 {{'app.EmailRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'app.PasswordRequired' | 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\"","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { UserLogin } from '../../models/user-login.model';\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { FRSHubConnections } from \"src/app/models/user.model\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\nimport * as signalRCore from '@aspnet/signalr';\r\nimport { AppTranslationService } from \"src/app/services/app-translation.service\";\r\n\r\n@Component({\r\n selector: \"app-login\",\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\n\r\nexport class LoginComponent implements OnInit, OnDestroy {\r\n\r\n returnUrl = '/';\r\n userLogin = new UserLogin();\r\n isLoading = false;\r\n formResetToggle = true;\r\n modalClosedCallback: () => void;\r\n loginStatusSubscription: any;\r\n signInGoogleUrl = \"/authorization/SignInWithGoogle\";\r\n registerUrl = \"/register\";\r\n forgotPasswordUrl = \"/forgotpassword\";\r\n @Input()\r\n isModal = false;\r\n\r\n public languageoptions = [\r\n { value: 'en', viewValue: 'EN' },\r\n { value: 'cn', viewValue: 'CN' }\r\n ];\r\n\r\n selectedlanguage: string = 'en';\r\n constructor(private route: ActivatedRoute, private alertService: AlertService, public router: Router, private translationService: AppTranslationService, public connections: FRSHubConnections, private authService: AuthService, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n setLanguage(ev) {\r\n this.translationService.changeLanguage(this.selectedlanguage);\r\n }\r\n\r\n ngOnInit() {\r\n if (this.loginStatusSubscription)\r\n this.loginStatusSubscription.unsubscribe();\r\n\r\n //this.authService.logoutRedirectUrl = this.router.url;\r\n this.userLogin.rememberMe = this.authService.rememberMe;\r\n this.userLogin.institutionCode = '';\r\n this.setInstitutionCode();\r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n //var queryParams: string = '';\r\n //var queryParamSection: string[] = [];\r\n //if (this.router.url.indexOf('?') > -1) {\r\n // queryParams = this.router.url.split('?')[1];\r\n // queryParamSection = queryParams.split('&');\r\n //}\r\n //if (queryParamSection && queryParamSection.length > 0) {\r\n // var queryStrings = Utilities.getQueryParamsFromString(queryParams);\r\n // this.signInGoogleUrl = this.signInGoogleUrl + '?institutioncode=' + queryStrings['institutioncode'];\r\n // this.registerUrl = this.registerUrl + '?institutioncode=' + queryStrings['institutioncode'];\r\n //}\r\n\r\n \r\n if (this.getShouldRedirect()) {\r\n this.authService.redirectLoginUser();\r\n }\r\n else {\r\n this.loginStatusSubscription = this.authService.getLoginStatusEvent().subscribe(isLoggedIn => {\r\n if (this.getShouldRedirect()) {\r\n this.authService.redirectLoginUser();\r\n }\r\n });\r\n }\r\n }\r\n\r\n setInstitutionCode() {\r\n var queryParams: string = '';\r\n var queryParamSection: string[] = [];\r\n if (this.router.url.indexOf('?') > -1) {\r\n queryParams = this.router.url.split('?')[1];\r\n queryParamSection = queryParams.split('&');\r\n }\r\n if (queryParamSection && queryParamSection.length > 0) {\r\n var queryStrings = Utilities.getQueryParamsFromString(queryParams);\r\n let code = queryStrings['institutioncode'] ? queryStrings['institutioncode'] : queryStrings['institutionCode'];\r\n this.signInGoogleUrl = this.signInGoogleUrl + '?institutioncode=' + code;\r\n this.registerUrl = this.registerUrl + '?institutioncode=' + code;\r\n this.forgotPasswordUrl = this.forgotPasswordUrl + '?institutioncode=' + code;\r\n this.userLogin.institutionCode = code;\r\n }\r\n\r\n }\r\n\r\n redirectToForgotPassword() {\r\n window.open(this.forgotPasswordUrl, '_blank');\r\n }\r\n\r\n redirectToSignIn() {\r\n window.open(this.signInGoogleUrl, '_blank');\r\n }\r\n\r\n redirectToRegister() {\r\n window.open(this.registerUrl, '_blank');\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.loginStatusSubscription)\r\n this.loginStatusSubscription.unsubscribe();\r\n }\r\n\r\n redirectRegister() {\r\n this.authService.redirectForRegister();\r\n }\r\n\r\n getShouldRedirect() {\r\n return !this.isModal && this.authService.isLoggedIn && !this.authService.isSessionExpired;\r\n }\r\n\r\n\r\n showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n closeModal() {\r\n if (this.modalClosedCallback) {\r\n this.modalClosedCallback();\r\n }\r\n }\r\n\r\n\r\n login() {\r\n this.setInstitutionCode();\r\n this.alertService.resetStickyMessage();\r\n this.alertService.resetToastMessage();\r\n this.isLoading = true;\r\n this.alertService.startLoadingMessage(\"\", \"Attempting login...\");\r\n\r\n this.authService.login(this.userLogin.email, this.userLogin.password, this.userLogin.institutionCode, this.userLogin.rememberMe, this.userLogin.isAD)\r\n .subscribe(\r\n user => {\r\n setTimeout(() => {\r\n this.alertService.stopLoadingMessage();\r\n this.isLoading = false;\r\n this.reset();\r\n\r\n // login successful so redirect to return url\r\n\r\n if (this.connections.userHubConnection == null || this.connections.userHubConnection.state !== signalRCore.HubConnectionState.Connected) {\r\n //this.connections.userHubConnection = this.authService.signalRConnection(`/hub/user?email=${user.email}&status=ONLINE`, true);\r\n //let status = user.status ? user.status : 'ONLINE';\r\n this.connections.userHubConnection = this.authService.signalRConnection(`${this.configurations.baseUrl}/hub/user?email=${user.email}`, true);\r\n\r\n }\r\n\r\n this.router.navigateByUrl(this.returnUrl);\r\n\r\n if (!this.isModal) {\r\n this.alertService.showMessage(\"Login\", `Welcome ${user.userName}!`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Login\", `Session for ${user.userName} restored!`, MessageSeverity.success);\r\n setTimeout(() => {\r\n this.alertService.showStickyMessage(\"Session Restored\", \"Please try your last operation again\", MessageSeverity.default);\r\n }, 500);\r\n\r\n\r\n \r\n\r\n this.closeModal();\r\n }\r\n }, 500);\r\n },\r\n error => {\r\n\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (Utilities.checkNoNetwork(error)) {\r\n this.alertService.showStickyMessage(Utilities.noNetworkMessageCaption, Utilities.noNetworkMessageDetail, MessageSeverity.error);\r\n //this.offerAlternateHost();\r\n }\r\n else {\r\n let errorMessage = Utilities.findHttpResponseMessage(\"error_description\", error);\r\n\r\n if (errorMessage)\r\n this.alertService.showStickyMessage(\"Unable to login\", errorMessage, MessageSeverity.error);\r\n else\r\n this.alertService.showStickyMessage(\"Unable to login\", \"An error occured while logging in, please try again later.\\nError: \" + Utilities.getResponseBody(error), MessageSeverity.error);\r\n }\r\n\r\n setTimeout(() => {\r\n this.isLoading = false;\r\n }, 500);\r\n });\r\n }\r\n\r\n\r\n offerAlternateHost() {\r\n\r\n //if (Utilities.checkIsLocalHost(location.origin) && Utilities.checkIsLocalHost(this.configurations.baseUrl)) {\r\n // this.alertService.showDialog(\"Dear Developer!\\nIt appears your backend Web API service is not running...\\n\" +\r\n // \"Would you want to temporarily switch to the online Demo API below?(Or specify another)\",\r\n // DialogType.prompt,\r\n // (value: string) => {\r\n // this.configurations.baseUrl = value;\r\n // this.alertService.showStickyMessage(\"API Changed!\", \"The target Web API has been changed to: \" + value, MessageSeverity.warn);\r\n // },\r\n // null,\r\n // null,\r\n // null,\r\n // this.configurations.fallbackBaseUrl);\r\n //}\r\n }\r\n\r\n\r\n reset() {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n}\r\n","module.exports = \".map {\\r\\n width: 100%;\\r\\n height: 500px;\\r\\n border: solid 1px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tYXAvbWFwLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBVztFQUNYLGFBQWE7RUFDYixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21hcC9tYXAtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWFwIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDUwMHB4O1xyXG4gIGJvcmRlcjogc29saWQgMXB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{'maps.editor.CodeRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'maps.editor.LabelRequired' | translate}}\\r\\n \\r\\n\\r\\n \\r\\n Floor\\r\\n \\r\\n \\r\\n {{f.code}} - {{f.label}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Map Picture \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n - To add point use right click.
\\r\\n - To connect points use right click.
\\r\\n - To drag point use left click.
\\r\\n - To delete line use left click.\\r\\n
\\r\\n
\\r\\n Edit Point Info\\r\\n      {{selectedPointObj.id}}\\r\\n Delete Point\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n id {{selectedPointObj.id}}\\r\\n \\r\\n\\r\\n Point Name\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Not Suitable For Wheelchair\\r\\n Not Sheltered\\r\\n
\\r\\n\\r\\n
\\r\\n Is Floor Connector\\r\\n
Floor connector require Point Name not empty.\\r\\n\\r\\n
\\r\\n

Floor Connectors

\\r\\n \\r\\n Select Floor Connectors\\r\\n \\r\\n \\r\\n {{c.label}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Add\\r\\n\\r\\n
\\r\\n {{d.displayLabel}} Remove\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Directories

\\r\\n \\r\\n Select Directories\\r\\n \\r\\n \\r\\n {{d.code}} - {{d.label}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Add\\r\\n\\r\\n
\\r\\n {{d.code}} - {{d.label}} Remove\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Node Availability

\\r\\n
\\r\\n Start Date\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n End Date\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n OK\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { MapModel } from 'src/app/models/map.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MapService } from 'src/app/services/map.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { FloorService } from '../../services/floor.service';\r\nimport { Floor } from '../../models/floor.model';\r\n\r\nimport \"ol/ol.css\";\r\nimport ImageLayer from \"ol/layer/Image\";\r\nimport Map from \"ol/Map\";\r\nimport Projection from \"ol/proj/Projection\";\r\nimport Static from \"ol/source/ImageStatic\";\r\nimport View from \"ol/View\";\r\nimport { getCenter } from \"ol/extent\";\r\n\r\nimport Feature from 'ol/Feature';\r\nimport Point from 'ol/geom/Point';\r\nimport VectorSource from 'ol/source/Vector';\r\nimport { Vector as VectorLayer } from 'ol/layer';\r\nimport { FullScreen, defaults as defaultControls } from 'ol/control';\r\n\r\nimport Modify from 'ol/interaction/Modify';\r\nimport Collection from 'ol/Collection';\r\nimport LineString from 'ol/geom/LineString';\r\nimport Select from 'ol/interaction/Select';\r\nimport { click } from 'ol/events/condition';\r\nimport { Circle, Style } from 'ol/style';\r\nimport Stroke from 'ol/style/Stroke';\r\nimport Fill from 'ol/style/Fill';\r\nimport { PointModel } from '../../models/point.model';\r\nimport { LineModel } from '../../models/line.model';\r\nimport { DirectoryListingService } from '../../services/directory-listing.service';\r\nimport { DirectoryListing } from '../../models/directory-listing.model';\r\nimport Text from 'ol/style/Text';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'map-editor',\r\n templateUrl: './map-editor.component.html',\r\n styleUrls: ['./map-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class MapEditorComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewMap = false;\r\n private originalMap: MapModel = new MapModel();\r\n private mapEdit: MapModel = new MapModel();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false };\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n allFloor: Floor[];\r\n\r\n map: Map;\r\n source: any;\r\n vectorSource: VectorSource;\r\n collection: Collection;\r\n\r\n pointMap = {};\r\n lineMap = {};\r\n pointFeatureMap = {};\r\n lineFeatureMap = {};\r\n\r\n fill = new Fill({\r\n color: 'white'\r\n });\r\n stroke = new Stroke({\r\n color: '#40E0D0',\r\n width: 4\r\n });\r\n pointStyle = new Style({\r\n image: new Circle({\r\n fill: this.fill,\r\n stroke: this.stroke,\r\n radius: 7\r\n }),\r\n fill: this.fill,\r\n stroke: this.stroke\r\n })\r\n\r\n selectedStroke = new Stroke({\r\n color: '#FF7F50',\r\n width: 4\r\n });\r\n\r\n selectedPointStyle = new Style({\r\n image: new Circle({\r\n fill: this.fill,\r\n stroke: this.selectedStroke,\r\n radius: 7\r\n }),\r\n fill: this.fill,\r\n stroke: this.selectedStroke\r\n })\r\n\r\n selectedPoint: Feature;\r\n selectedPointObj: PointModel;\r\n\r\n allDirectory: DirectoryListing[];\r\n showEditInfo: boolean;\r\n allConnector: PointModel[];\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private mapService: MapService,\r\n private floorService: FloorService,\r\n private directoryListingService: DirectoryListingService,\r\n //public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.map) != typeof (undefined)) {\r\n if (data.map.id) {\r\n this.editMap(data.map);\r\n } else {\r\n this.newMap();\r\n }\r\n }\r\n\r\n this.floorService.getFloorByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n\r\n this.allFloor = results[0];\r\n },\r\n error => {\r\n\r\n });\r\n\r\n this.directoryListingService.getDirectoryListingByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n \r\n this.allDirectory = results[0];\r\n\r\n },\r\n error => {\r\n \r\n });\r\n\r\n this.mapService.getFloorConnector(this.mapEdit.id)\r\n .subscribe(results => {\r\n\r\n this.allConnector = results;\r\n },\r\n error => {\r\n\r\n });\r\n }\r\n\r\n add(selected: DirectoryListing, point: PointModel) {\r\n if (!selected) return;\r\n if (!point.directorys) point.directorys = [];\r\n\r\n let a = point.directorys.filter(obj => obj.directoryListingId === selected.id && obj.isActive);\r\n if (a.length > 0) return;\r\n\r\n a = point.directorys.filter(obj => obj.directoryListingId === selected.id);\r\n\r\n let f = a[0] || new DirectoryListing();\r\n Object.assign(f, selected);\r\n f.isActive = true;\r\n\r\n f.directoryListingId = f.id;\r\n f.pointId = point.id;\r\n f.id = \"0\";\r\n if (!a[0]) point.directorys.push(f);\r\n\r\n console.log(\"DIRECTORYS\", point.directorys);\r\n }\r\n\r\n addConnector(point: PointModel, selectedConnector: PointModel) {\r\n if (!selectedConnector) return;\r\n if (!point.connectors) point.connectors = [];\r\n\r\n let a = point.connectors.filter(obj => obj.point1Id === selectedConnector.id && obj.isActive);\r\n if (a.length > 0) return;\r\n\r\n a = point.connectors.filter(obj => obj.point1Id === selectedConnector.id);\r\n\r\n let line = a[0] || new LineModel();\r\n line.code = this.createId();\r\n line.code0 = point.code;\r\n line.point0Id = point.id;\r\n line.code1 = selectedConnector.code;\r\n line.point1Id = selectedConnector.id;\r\n line.isActive = true;\r\n line.isFloorConnector = true;\r\n line.displayLabel = selectedConnector.label;\r\n\r\n if (!a[0]) point.connectors.push(line);\r\n }\r\n\r\n unselectPoint() {\r\n this.selectedPoint.setStyle(this.pointStyle);\r\n this.selectedPoint = null;\r\n this.selectedPointObj = null;\r\n }\r\n\r\n initMap() {\r\n if (!this.mapEdit.map_url) return;\r\n\r\n const img = new Image();\r\n img.onload = () => {\r\n var extent = [0, 0, img.width, img.height];\r\n var projection = new Projection({\r\n code: \"xkcd-image\",\r\n units: \"pixels\",\r\n extent: extent,\r\n });\r\n\r\n\r\n this.source = new Static({\r\n url: this.mapEdit.map_url,\r\n projection: projection,\r\n imageExtent: extent,\r\n });\r\n\r\n if (this.map) {\r\n let l = this.map.getLayers().getArray()[0];\r\n l.setSource(this.source);\r\n } else {\r\n this.vectorSource = new VectorSource();\r\n this.collection = new Collection();\r\n\r\n this.map = new Map({\r\n controls: defaultControls().extend([new FullScreen()]),\r\n layers: [\r\n new ImageLayer({\r\n source: this.source,\r\n }),\r\n new VectorLayer({\r\n source: this.vectorSource,\r\n })\r\n ],\r\n target: \"mapdiv\",\r\n view: new View({\r\n projection: projection,\r\n center: getCenter(extent),\r\n zoom: 2,\r\n maxZoom: 8,\r\n }),\r\n });\r\n\r\n var modify = new Modify({\r\n features: this.collection,\r\n });\r\n this.map.addInteraction(modify);\r\n\r\n this.map.on('click', (evt) => {\r\n var coordinate = evt.coordinate;\r\n\r\n let isFeatureClicked;\r\n this.map.forEachFeatureAtPixel(evt.pixel, (feature, layer) => {\r\n if (feature) isFeatureClicked = true;\r\n\r\n if (feature.getProperties().isLine) {\r\n this.deleteLine(feature);\r\n }\r\n })\r\n if (isFeatureClicked) return;\r\n\r\n if (this.selectedPoint) {\r\n this.unselectPoint()\r\n }\r\n\r\n });\r\n\r\n this.map.getViewport().addEventListener('contextmenu', (evt) => {\r\n evt.preventDefault();\r\n\r\n let coordinate = this.map.getEventCoordinate(evt);\r\n\r\n let isSelectPoint;\r\n let isFeatureClicked;\r\n this.map.forEachFeatureAtPixel(this.map.getPixelFromCoordinate(coordinate), (feature, layer) => {\r\n if (feature) isFeatureClicked = true;\r\n\r\n if (feature.getProperties().isPoint) {\r\n if (!this.selectedPoint) {\r\n this.selectedPoint = feature;\r\n this.selectedPoint.setStyle(this.selectedPointStyle);\r\n isSelectPoint = true;\r\n\r\n this.selectedPointObj = this.pointMap[this.selectedPoint.getId()];\r\n } else {\r\n if (feature.getId() != this.selectedPoint.getId()) {\r\n this.createLine(this.selectedPoint, feature);\r\n }\r\n }\r\n }\r\n })\r\n\r\n if (this.selectedPoint && !isSelectPoint) {\r\n this.unselectPoint();\r\n }\r\n\r\n if (isFeatureClicked) return;\r\n\r\n this.createPoint(coordinate);\r\n });\r\n\r\n this.initPointsLines();\r\n }\r\n }\r\n img.src = this.mapEdit.map_url;\r\n }\r\n\r\n createId() {\r\n return Math.random().toString(36).substring(2) + Math.random().toString(36).substring(2);\r\n }\r\n\r\n createPoint(coordinate, code?: string) {\r\n let point = new Feature({\r\n geometry: new Point(coordinate),\r\n isPoint: true,\r\n });\r\n point.setId(code || this.createId());\r\n point.setStyle(this.pointStyle);\r\n this.vectorSource.addFeature(point);\r\n this.collection.push(point);\r\n\r\n point.on('change', () => {\r\n let pointObj = point.getProperties();\r\n\r\n for (let li of pointObj.line0 || []) {\r\n let line = li.getGeometry();\r\n let coords = line.getCoordinates();\r\n coords[0] = point.getGeometry().getFirstCoordinate();\r\n line.setCoordinates(coords);\r\n }\r\n\r\n for (let li of pointObj.line1 || []) {\r\n let line = li.getGeometry();\r\n let coords = line.getCoordinates();\r\n coords[1] = point.getGeometry().getFirstCoordinate();\r\n line.setCoordinates(coords);\r\n }\r\n }, point);\r\n\r\n this.pointFeatureMap[point.getId()] = point;\r\n\r\n if (!code) {\r\n let pointObj = new PointModel();\r\n pointObj.code = point.getId();\r\n pointObj.isActive = true;\r\n this.pointMap[point.getId()] = pointObj;\r\n }\r\n }\r\n\r\n createLine(feature0: Feature, feature1: Feature, code?: string, text?: string) {\r\n if (!feature0 || !feature1) return;\r\n\r\n let exist;\r\n for (let f of this.vectorSource.getFeatures()) {\r\n let prop = f.getProperties();\r\n if (prop.isLine) {\r\n if ((prop.code0 == feature0.getId() && prop.code1 == feature1.getId())\r\n || (prop.code0 == feature1.getId() && prop.code1 == feature0.getId())) exist = true;\r\n }\r\n }\r\n if (exist) return;\r\n\r\n let coord1 = feature0.getGeometry().getFirstCoordinate();\r\n let coord2 = feature1.getGeometry().getFirstCoordinate();\r\n\r\n var featureLine = new Feature({\r\n geometry: new LineString([coord1, coord2]),\r\n isLine: true,\r\n code0: feature0.getId(),\r\n code1: feature1.getId(),\r\n });\r\n featureLine.setId(code || this.createId());\r\n\r\n let lineStyle = new Style({\r\n stroke: new Stroke({\r\n color: '#6495ED',\r\n width: 3\r\n }),\r\n //text: new Text({\r\n // text: \"ID \" + text,\r\n //font: '18px \"Roboto\", Helvetica Neue, Helvetica, Arial, sans-serif',\r\n //fill: new Fill({ color: 'black' }),\r\n //stroke: new Stroke({ color: 'black', width: 2 })\r\n //})\r\n })\r\n\r\n featureLine.setStyle(lineStyle);\r\n this.vectorSource.addFeature(featureLine);\r\n\r\n let selectedObj = feature0.getProperties();\r\n if (!selectedObj.line0) selectedObj.line0 = [];\r\n selectedObj.line0.push(featureLine);\r\n feature0.setProperties({ line0: selectedObj.line0 }, true);\r\n\r\n let featureObj = feature1.getProperties();\r\n if (!featureObj.line1) featureObj.line1 = [];\r\n featureObj.line1.push(featureLine);\r\n feature1.setProperties({ line1: featureObj.line1 }, true);\r\n\r\n this.lineFeatureMap[featureLine.getId()] = featureLine;\r\n }\r\n\r\n initPointsLines() {\r\n if (this.mapEdit.points) {\r\n this.pointMap = this.mapEdit.points.reduce((o, d) => ({ ...o, [d.code]: d }), {});\r\n\r\n for (let p of this.mapEdit.points) {\r\n this.createPoint([p.x, p.y], p.code);\r\n }\r\n }\r\n\r\n if (this.mapEdit.lines) {\r\n this.lineMap = this.mapEdit.lines.reduce((o, d) => ({ ...o, [d.code]: d }), {});\r\n\r\n for (let l of this.mapEdit.lines) {\r\n let f0 = this.pointFeatureMap[l.code0];\r\n let f1 = this.pointFeatureMap[l.code1];\r\n this.createLine(f0, f1, l.code, l.id);\r\n }\r\n }\r\n }\r\n\r\n deleteLine(line: Feature) {\r\n this.vectorSource.removeFeature(line);\r\n if (this.lineMap[line.getId()]) this.lineMap[line.getId()].isActive = false;\r\n }\r\n\r\n deletePoint(selected: Feature, selectedObj: PointModel) {\r\n if (!confirm(\"Are you sure want to delete point?\")) return;\r\n\r\n\r\n this.vectorSource.removeFeature(selected);\r\n if (this.pointMap[selected.getId()]) this.pointMap[selected.getId()].isActive = false;\r\n\r\n let prop = selected.getProperties();\r\n\r\n for (let li of prop.line0 || []) {\r\n this.deleteLine(li);\r\n }\r\n\r\n for (let li of prop.line1 || []) {\r\n this.deleteLine(li);\r\n }\r\n\r\n this.unselectPoint(); \r\n }\r\n\r\n okClicked() {\r\n this.showEditInfo = false;\r\n this.unselectPoint();\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.mapEdit.map_url = event ? event.dbPath : null;\r\n\r\n if (this.mapEdit.map_url) this.mapEdit.map_url = this.mapEdit.map_url.replace(/\\\\/g, '/');\r\n\r\n this.initMap();\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n for (let f of this.vectorSource.getFeatures()) {\r\n let prop = f.getProperties();\r\n if (!prop.isPoint && !prop.isLine) continue;\r\n\r\n let code = f.getId();\r\n let coordinate = f.getGeometry().getFirstCoordinate();\r\n\r\n if (prop.isPoint) {\r\n let point = this.pointMap[code];\r\n\r\n if (point) {\r\n point.x = Math.round(coordinate[0]);\r\n point.y = Math.round(coordinate[1]);\r\n //} else {\r\n // point = new PointModel();\r\n\r\n // point.code = code;\r\n\r\n // point.x = Math.round(coordinate[0]);\r\n // point.y = Math.round(coordinate[1]);\r\n\r\n // point.isActive = true;\r\n //}\r\n\r\n if (!point.id && point.isActive) {\r\n if (!this.mapEdit.points) this.mapEdit.points = [];\r\n this.mapEdit.points.push(point);\r\n }\r\n }\r\n } else if (prop.isLine) {\r\n if (!this.lineMap[code]) {\r\n let line = new LineModel();\r\n\r\n line.code = code;\r\n\r\n line.code0 = prop.code0;\r\n line.code1 = prop.code1;\r\n\r\n line.isActive = true;\r\n\r\n if (this.pointMap[line.code0].isActive && this.pointMap[line.code1].isActive) {\r\n if (!this.mapEdit.lines) this.mapEdit.lines = [];\r\n this.mapEdit.lines.push(line);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!this.mapEdit.id) {\r\n this.mapService.newMap(this.mapEdit).subscribe(map => this.saveSuccessHelper(map), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.mapService.updateMap(this.mapEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(map?: MapModel) {\r\n if (map)\r\n Object.assign(this.mapEdit, map);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewMap) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.mapEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.mapEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n this.mapEdit = new MapModel();\r\n this.removeMap();\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n \r\n //this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.mapEdit = new MapModel();\r\n this.removeMap();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n //this.dialogRef.close();\r\n }\r\n\r\n removeMap() {\r\n document.getElementById('mapdiv').innerHTML = '';\r\n this.map = null;\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n\r\n //this.map.destroy();\r\n \r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newMap() {\r\n this.showValidationErrors = true;\r\n this.isNewMap = true;\r\n this.mapEdit = new MapModel();\r\n return this.mapEdit;\r\n }\r\n\r\n editMap(map: MapModel) {\r\n if (map) {\r\n this.isNewMap = false;\r\n this.showValidationErrors = true;\r\n this.originalMap = map;\r\n this.mapEdit = new MapModel();\r\n Object.assign(this.mapEdit, map);\r\n\r\n this.initMap();\r\n\r\n return this.mapEdit;\r\n }\r\n else {\r\n return this.newMap();\r\n }\r\n }\r\n\r\n get canManageMaps() {\r\n return true;//this.accountService.userHasPermission(Permission.manageMapPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tYXAvbWFwcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tYXAvbWFwcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Maps

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'maps.management.Edit' | translate}}\\r\\n {{'maps.management.Details' | translate}}\\r\\n \\r\\n {{'maps.management.Delete' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n

{{header}}

\\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { MapService } from 'src/app/services/map.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { MapModel } from 'src/app/models/map.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { MapEditorComponent } from './map-editor.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'maps-management',\r\n templateUrl: './maps-management.component.html',\r\n styleUrls: ['./maps-management.component.css']\r\n})\r\nexport class MapsManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: MapModel[] = [];\r\n rowsCache: MapModel[] = [];\r\n allPermissions: Permission[] = [];\r\n editedMap: MapModel;\r\n sourceMap: MapModel;\r\n editingMapName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('mapEditor')\r\n mapEditor: MapEditorComponent;\r\n header = \"Map Form\";\r\n showEditor: boolean;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private mapService: MapService, public dialog: MatDialog) {\r\n }\r\n\r\n //openDialog(map: Map): void {\r\n // const dialogRef = this.dialog.open(MapEditorComponent, {\r\n // data: { header: this.header, map: map },\r\n // width: '400px',\r\n // disableClose: true\r\n // });\r\n\r\n // this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n // this.loadData();\r\n // }));\r\n //}\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'code', name: gT('maps.management.Code') },\r\n { prop: 'label', name: gT('maps.management.Label') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.mapEditor.changesSavedCallback = () => {\r\n //this.addNewMapToList();\r\n //this.editorModal.hide();\r\n\r\n this.showEditor = false;\r\n this.loadData();\r\n };\r\n\r\n this.mapEditor.changesCancelledCallback = () => {\r\n this.editedMap = null;\r\n this.sourceMap = null;\r\n //this.editorModal.hide();\r\n\r\n this.showEditor = false;\r\n };\r\n }\r\n\r\n\r\n addNewMapToList() {\r\n if (this.sourceMap) {\r\n Object.assign(this.sourceMap, this.editedMap);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceMap, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceMap, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedMap = null;\r\n this.sourceMap = null;\r\n }\r\n else {\r\n let map = new MapModel();\r\n Object.assign(map, this.editedMap);\r\n this.editedMap = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (map).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, map);\r\n this.rows.splice(0, 0, map);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.mapService.getMapByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let maps = results[0];\r\n let permissions = results[1];\r\n\r\n maps.forEach((map, index, maps) => {\r\n (map).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...maps];\r\n this.rows = maps;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingMapName = null;\r\n this.mapEditor.resetForm(true);\r\n }\r\n\r\n\r\n newMap() {\r\n this.editingMapName = null;\r\n this.sourceMap = null;\r\n this.editedMap = this.mapEditor.newMap();\r\n //this.openDialog(this.editedMap);\r\n //this.editorModal.show();\r\n this.showEditor = true;\r\n }\r\n\r\n\r\n editMap(row: MapModel) {\r\n this.editingMapName = { key: row.code };\r\n this.sourceMap = row;\r\n this.editedMap = this.mapEditor.editMap(row);\r\n //this.editorModal.show();\r\n //this.openDialog(this.editedMap);\r\n this.showEditor = true;\r\n }\r\n\r\n deleteMap(row: MapModel) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\"?', DialogType.confirm, () => this.deleteMapHelper(row));\r\n }\r\n\r\n\r\n deleteMapHelper(row: MapModel) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.mapService.deleteMap(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageMaps() {\r\n return true;//this.accountService.userHasPermission(Permission.manageMapPermission);\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9iZW50by1hc3NldC9iZW50by1hc3NldC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2JlbnRvLWFzc2V0L2JlbnRvLWFzc2V0LWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Bento Box Type\\r\\n \\r\\n \\r\\n {{bentoBoxType.code}}\\r\\n \\r\\n \\r\\n Bento Box Type is required\\r\\n \\r\\n\\r\\n \\r\\n Store\\r\\n \\r\\n \\r\\n {{storeInfo.code}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Carton Asset (optional)\\r\\n \\r\\n \\r\\n {{cartonAsset.code}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Dish (optional)\\r\\n \\r\\n \\r\\n {{dish.code}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { BentoAsset } from 'src/app/models/meal-order/bento-asset.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { BentoBoxType } from '../../../models/meal-order/bento-box-type.model';\r\nimport { DishService } from '../../../services/meal-order/dish.service';\r\n\r\n\r\n@Component({\r\n selector: 'bento-asset-editor',\r\n templateUrl: './bento-asset-editor.component.html',\r\n styleUrls: ['./bento-asset-editor.component.css']\r\n})\r\nexport class BentoAssetEditorComponent {\r\n\r\n private isNewBentoAsset = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingBentoAssetCode: string;\r\n private bentoAssetEdit: BentoAsset = new BentoAsset();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n\r\n private bentoBoxTypes: BentoBoxType[] = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n cartonAssets: any;\r\n dishs: any;\r\n storeInfos: any;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private dishService: DishService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.bentoAsset) != typeof (undefined)) {\r\n if (data.bentoAsset.id) {\r\n this.editBentoAsset(data.bentoAsset);\r\n } else {\r\n this.newBentoAsset();\r\n }\r\n }\r\n\r\n this.getBentoBoxTypes();\r\n this.getCartonAssets();\r\n this.getDishs();\r\n this.getStoreInfos();\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.bentoAssetEdit.institutionId = this.accountService.currentUser.institutionId;\r\n console.log(this.periods);\r\n let selectedPeriods = this.periods.filter(f => f.checked);\r\n \r\n\r\n if (this.isNewBentoAsset) {\r\n this.deliveryService.newBentoAsset(this.bentoAssetEdit).subscribe(bentoAsset => this.saveSuccessHelper(bentoAsset), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateBentoAsset(this.bentoAssetEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(bentoAsset?: BentoAsset) {\r\n if (bentoAsset)\r\n Object.assign(this.bentoAssetEdit, bentoAsset);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewBentoAsset)\r\n this.alertService.showMessage(\"Success\", `Bento Asset \\\"${this.bentoAssetEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Bento Asset \\\"${this.bentoAssetEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.bentoAssetEdit = new BentoAsset();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewBentoAsset && this.accountService.currentUser.facilities.some(r => r == this.editingBentoAssetCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.bentoAssetEdit = new BentoAsset();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newBentoAsset() {\r\n this.isNewBentoAsset = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingBentoAssetCode = null;\r\n this.selectedValues = {};\r\n this.bentoAssetEdit = new BentoAsset();\r\n\r\n return this.bentoAssetEdit;\r\n }\r\n\r\n editBentoAsset(bentoAsset: BentoAsset) {\r\n if (bentoAsset) {\r\n this.isNewBentoAsset = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingBentoAssetCode = bentoAsset.code;\r\n this.selectedValues = {};\r\n this.bentoAssetEdit = new BentoAsset();\r\n Object.assign(this.bentoAssetEdit, bentoAsset);\r\n\r\n return this.bentoAssetEdit;\r\n }\r\n else {\r\n return this.newBentoAsset();\r\n }\r\n }\r\n\r\n getStoreInfos() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getStoreInfosByFilter(filter)\r\n .subscribe(results => {\r\n this.storeInfos = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving bento box types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getBentoBoxTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getBentoBoxTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.bentoBoxTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving bento box types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getCartonAssets() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getCartonAssetsByFilter(filter)\r\n .subscribe(results => {\r\n this.cartonAssets = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving carton assets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getDishs() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishs = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishs.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n get canManageBentoAssets() {\r\n return true; //this.accountService.userHasPermission(Permission.manageBentoAssetsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9iZW50by1hc3NldC9iZW50by1hc3NldHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9iZW50by1hc3NldC9iZW50by1hc3NldHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Bento Assets

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { BentoAsset } from 'src/app/models/meal-order/bento-asset.model';\r\nimport { BentoAssetEditorComponent } from './bento-asset-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { BentoBoxType } from '../../../models/meal-order/bento-box-type.model';\r\n\r\n\r\n@Component({\r\n selector: 'bento-assets-management',\r\n templateUrl: './bento-assets-management.component.html',\r\n styleUrls: ['./bento-assets-management.component.css']\r\n})\r\nexport class BentoAssetsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: BentoAsset[] = [];\r\n rowsCache: BentoAsset[] = [];\r\n allPermissions: Permission[] = [];\r\n editedBentoAsset: BentoAsset;\r\n sourceBentoAsset: BentoAsset;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('bentoAssetEditor')\r\n bentoAssetEditor: BentoAssetEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(bentoAsset: BentoAsset): void {\r\n const dialogRef = this.dialog.open(BentoAssetEditorComponent, {\r\n data: { header: this.header, bentoAsset: bentoAsset },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'code', name: 'Tag Id' },\r\n { prop: 'bentoBoxTypeCode', name: 'Bento Box Type' },\r\n { prop: 'storeInfoCode', name: 'Store' },\r\n { prop: 'dishCode', name: 'Dish Code' },\r\n { prop: 'dishLabel', name: 'Dish Label' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Code)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deliveryService.getBentoAssetsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let bentoAssets = results.pagedData;\r\n\r\n bentoAssets.forEach((bentoAsset, index, bentoAssets) => {\r\n (bentoAsset).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...bentoAssets];\r\n this.rows = bentoAssets;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newBentoAsset() {\r\n this.header = 'New Bento Asset';\r\n this.editedBentoAsset = new BentoAsset();\r\n this.openDialog(this.editedBentoAsset);\r\n }\r\n\r\n\r\n editBentoAsset(row: BentoAsset) {\r\n this.editedBentoAsset = row;\r\n this.header = 'Edit Bento Asset';\r\n this.openDialog(this.editedBentoAsset);\r\n }\r\n\r\n deleteBentoAsset(row: BentoAsset) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\" Bento Asset?', DialogType.confirm, () => this.deleteBentoAssetHelper(row));\r\n }\r\n\r\n\r\n deleteBentoAssetHelper(row: BentoAsset) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteBentoAsset(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Bento Assetcaterer.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageBentoAssets() {\r\n return true; //this.accountService.userHasPermission(Permission.manageBentoAssetsPermission)\r\n }\r\n\r\n newMultipleBentoAsset(): void {\r\n const dialogRef = this.dialog.open(NewMultipleBentoAsset, {\r\n width: '40vw',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n setTimeout(() => this.loadData(null), 2000);\r\n });\r\n }\r\n\r\n}\r\n\r\n@Component({\r\n selector: 'new-multiple-bento-asset',\r\n templateUrl: 'new-multiple-bento-asset.html',\r\n})\r\nexport class NewMultipleBentoAsset {\r\n\r\n bentoAssetCode: any;\r\n bentoBoxType: any;\r\n bentoBoxTypes : any;\r\n bentoTimeout: NodeJS.Timer;\r\n map: any = {};\r\n rows: any = [];\r\n\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n\r\n constructor(private alertService: AlertService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any, public deliveryService: DeliveryService) {\r\n\r\n this.getBentoBoxTypes();\r\n }\r\n\r\n bentoChanged() {\r\n clearTimeout(this.bentoTimeout)\r\n this.bentoTimeout = setTimeout(() => {\r\n this.addBento();\r\n }, 500);\r\n }\r\n\r\n addBento() {\r\n if (!this.bentoAssetCode) return;\r\n\r\n if (!this.map[this.bentoAssetCode]) {\r\n let row = {\r\n code: this.bentoAssetCode,\r\n isActive: true\r\n };\r\n this.rows.push(row)\r\n this.map[this.bentoAssetCode] = row;\r\n } else {\r\n this.map[this.bentoAssetCode].code = this.bentoAssetCode;\r\n this.map[this.bentoAssetCode].isActive = true;\r\n }\r\n\r\n this.bentoAssetCode = '';\r\n this.rows = [...this.rows];\r\n }\r\n\r\n save() {\r\n if (!this.bentoBoxType && this.rows.length <= 0) return;\r\n\r\n let type = this.bentoBoxTypes.find(d => d.id == this.bentoBoxType);\r\n\r\n if (!type) return;\r\n\r\n type.bentoAssets = this.rows;\r\n\r\n this.deliveryService.updateBentoBoxType(type).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error)); \r\n }\r\n\r\n private saveSuccessHelper() {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showMessage(\"Success\", `Changes to Bento asset was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n getBentoBoxTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getBentoBoxTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.bentoBoxTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving bento box types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n}\r\n","module.exports = \"

New Multiple

\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n Bento Box Type\\r\\n \\r\\n \\r\\n {{bentoBoxType.code}}\\r\\n \\r\\n \\r\\n Bento Box Type is required\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n Bento Asset TID\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n

Bento Assets

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{row.code}}
\\r\\n
\\r\\n
\\r\\n
Remove
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9iZW50by1ib3gtdHlwZS9iZW50by1ib3gtdHlwZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2JlbnRvLWJveC10eXBlL2JlbnRvLWJveC10eXBlLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Caterer\\r\\n \\r\\n \\r\\n {{catererInfo.name}}\\r\\n \\r\\n \\r\\n Caterer is required\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Picture \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { BentoBoxType } from 'src/app/models/meal-order/bento-box-type.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CatererInfo } from '../../../models/meal-order/caterer-info.model';\r\n\r\n\r\n@Component({\r\n selector: 'bento-box-type-editor',\r\n templateUrl: './bento-box-type-editor.component.html',\r\n styleUrls: ['./bento-box-type-editor.component.css']\r\n})\r\nexport class BentoBoxTypeEditorComponent {\r\n\r\n private isNewBentoBoxType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingBentoBoxTypeCode: string;\r\n private bentoBoxTypeEdit: BentoBoxType = new BentoBoxType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n private catererInfos: CatererInfo[] = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.bentoBoxType) != typeof (undefined)) {\r\n if (data.bentoBoxType.id) {\r\n this.editBentoBoxType(data.bentoBoxType);\r\n } else {\r\n this.newBentoBoxType();\r\n }\r\n }\r\n\r\n this.getCatererInfos();\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.bentoBoxTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n console.log(this.periods);\r\n let selectedPeriods = this.periods.filter(f => f.checked);\r\n \r\n\r\n if (this.isNewBentoBoxType) {\r\n this.deliveryService.newBentoBoxType(this.bentoBoxTypeEdit).subscribe(bentoBoxType => this.saveSuccessHelper(bentoBoxType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateBentoBoxType(this.bentoBoxTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.bentoBoxTypeEdit.picture = event ? event.dbPath : null;\r\n\r\n if (this.bentoBoxTypeEdit.picture) this.bentoBoxTypeEdit.picture = this.bentoBoxTypeEdit.picture.replace(/\\\\/g, '/');\r\n }\r\n\r\n\r\n private saveSuccessHelper(bentoBoxType?: BentoBoxType) {\r\n if (bentoBoxType)\r\n Object.assign(this.bentoBoxTypeEdit, bentoBoxType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewBentoBoxType)\r\n this.alertService.showMessage(\"Success\", `Bento box type \\\"${this.bentoBoxTypeEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Bento box type \\\"${this.bentoBoxTypeEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.bentoBoxTypeEdit = new BentoBoxType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewBentoBoxType && this.accountService.currentUser.facilities.some(r => r == this.editingBentoBoxTypeCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.bentoBoxTypeEdit = new BentoBoxType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newBentoBoxType() {\r\n this.isNewBentoBoxType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingBentoBoxTypeCode = null;\r\n this.selectedValues = {};\r\n this.bentoBoxTypeEdit = new BentoBoxType();\r\n\r\n return this.bentoBoxTypeEdit;\r\n }\r\n\r\n editBentoBoxType(bentoBoxType: BentoBoxType) {\r\n if (bentoBoxType) {\r\n this.isNewBentoBoxType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingBentoBoxTypeCode = bentoBoxType.code;\r\n this.selectedValues = {};\r\n this.bentoBoxTypeEdit = new BentoBoxType();\r\n Object.assign(this.bentoBoxTypeEdit, bentoBoxType);\r\n\r\n return this.bentoBoxTypeEdit;\r\n }\r\n else {\r\n return this.newBentoBoxType();\r\n }\r\n }\r\n\r\n getCatererInfos() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getCatererInfosByFilter(filter)\r\n .subscribe(results => {\r\n this.catererInfos = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving caterers.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n\r\n get canManageBentoBoxTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageBentoBoxTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9iZW50by1ib3gtdHlwZS9iZW50by1ib3gtdHlwZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9iZW50by1ib3gtdHlwZS9iZW50by1ib3gtdHlwZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Bento Box Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { BentoBoxType } from 'src/app/models/meal-order/bento-box-type.model';\r\nimport { BentoBoxTypeEditorComponent } from './bento-box-type-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'bento-box-types-management',\r\n templateUrl: './bento-box-types-management.component.html',\r\n styleUrls: ['./bento-box-types-management.component.css']\r\n})\r\nexport class BentoBoxTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: BentoBoxType[] = [];\r\n rowsCache: BentoBoxType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedBentoBoxType: BentoBoxType;\r\n sourceBentoBoxType: BentoBoxType;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('bentoBoxTypeEditor')\r\n bentoBoxTypeEditor: BentoBoxTypeEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(bentoBoxType: BentoBoxType): void {\r\n const dialogRef = this.dialog.open(BentoBoxTypeEditorComponent, {\r\n data: { header: this.header, bentoBoxType: bentoBoxType },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'catererInfoName', name: 'Caterer' },\r\n { prop: 'code', name: 'Code' },\r\n { prop: 'details', name: 'Details' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Code)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deliveryService.getBentoBoxTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let bentoBoxTypes = results.pagedData;\r\n\r\n bentoBoxTypes.forEach((bentoBoxType, index, bentoBoxTypes) => {\r\n (bentoBoxType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...bentoBoxTypes];\r\n this.rows = bentoBoxTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newBentoBoxType() {\r\n this.header = 'New Bento box type';\r\n this.editedBentoBoxType = new BentoBoxType();\r\n this.openDialog(this.editedBentoBoxType);\r\n }\r\n\r\n\r\n editBentoBoxType(row: BentoBoxType) {\r\n this.editedBentoBoxType = row;\r\n this.header = 'Edit Bento box type';\r\n this.openDialog(this.editedBentoBoxType);\r\n }\r\n\r\n deleteBentoBoxType(row: BentoBoxType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\" Bento box type?', DialogType.confirm, () => this.deleteBentoBoxTypeHelper(row));\r\n }\r\n\r\n\r\n deleteBentoBoxTypeHelper(row: BentoBoxType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteBentoBoxType(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Bento box type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageBentoBoxTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageBentoBoxTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYW5jZWwtb3JkZXItcmVxdWVzdC9jYW5jZWwtb3JkZXItcmVxdWVzdC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2NhbmNlbC1vcmRlci1yZXF1ZXN0L2NhbmNlbC1vcmRlci1yZXF1ZXN0LWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{cancelOrderRequestEdit.fileName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Approve\\r\\n Rejected\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { PaymentService } from '../../../services/meal-order/payment.service';\r\nimport { CancelOrderRequest } from 'src/app/models/meal-order/cancel-order-request.model';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\n\r\n\r\n@Component({\r\n selector: 'cancel-order-request-editor',\r\n templateUrl: './cancel-order-request-editor.component.html',\r\n styleUrls: ['./cancel-order-request-editor.component.css']\r\n})\r\nexport class CancelOrderRequestEditorComponent {\r\n\r\n private isNewCancelOrderRequest = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingCancelOrderRequestCode: string;\r\n private cancelOrderRequestEdit: CancelOrderRequest = new CancelOrderRequest();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n public isDisabled = false;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private paymentService: PaymentService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService, private configurationService: ConfigurationService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.cancelOrderRequest) != typeof (undefined)) {\r\n this.editCancelOrderRequest(data.cancelOrderRequest);\r\n }\r\n\r\n this.isDisabled = data.isDisabled\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n this.paymentService.approveCancelRequest(this.cancelOrderRequestEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n\r\n\r\n private saveSuccessHelper(cancelOrderRequest?: CancelOrderRequest) {\r\n if (cancelOrderRequest)\r\n Object.assign(this.cancelOrderRequestEdit, cancelOrderRequest);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n this.alertService.showMessage(\"Success\", `Changes are saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.cancelOrderRequestEdit = new CancelOrderRequest();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewCancelOrderRequest && this.accountService.currentUser.facilities.some(r => r == this.editingCancelOrderRequestCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.cancelOrderRequestEdit = new CancelOrderRequest();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newCancelOrderRequest() {\r\n this.isNewCancelOrderRequest = true;\r\n this.showValidationErrors = true;\r\n\r\n this.selectedValues = {};\r\n this.cancelOrderRequestEdit = new CancelOrderRequest();\r\n return this.cancelOrderRequestEdit;\r\n }\r\n\r\n editCancelOrderRequest(cancelOrderRequest: CancelOrderRequest) {\r\n if (cancelOrderRequest) {\r\n this.isNewCancelOrderRequest = false;\r\n this.showValidationErrors = true;\r\n\r\n this.selectedValues = {};\r\n this.cancelOrderRequestEdit = new CancelOrderRequest();\r\n Object.assign(this.cancelOrderRequestEdit, cancelOrderRequest);\r\n\r\n return this.cancelOrderRequestEdit;\r\n }\r\n else {\r\n return this.newCancelOrderRequest();\r\n }\r\n }\r\n\r\n\r\n downloadFile(path) {\r\n window.open(this.configurationService.baseUrl + '/Download/FileByPath?filePath=/' + encodeURIComponent(path), '_blank');\r\n }\r\n\r\n get canManageCancelOrderRequests() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMOSOrderMgtCancelOrderRequestsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYW5jZWwtb3JkZXItcmVxdWVzdC9jYW5jZWwtb3JkZXItcmVxdWVzdHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYW5jZWwtb3JkZXItcmVxdWVzdC9jYW5jZWwtb3JkZXItcmVxdWVzdHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Cancel Order Requests

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Filter by Status\\r\\n \\r\\n ALL STATUSES\\r\\n Approved\\r\\n Rejected\\r\\n Submitted\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Approval \\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { CancelOrderRequestEditorComponent } from './cancel-order-request-editor.component';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CancelOrderRequest } from 'src/app/models/meal-order/cancel-order-request.model';\r\nimport { PaymentService } from 'src/app/services/meal-order/payment.service';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\n\r\n\r\n@Component({\r\n selector: 'cancel-order-requests-management',\r\n templateUrl: './cancel-order-requests-management.component.html',\r\n styleUrls: ['./cancel-order-requests-management.component.css']\r\n})\r\nexport class CancelOrderRequestsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: CancelOrderRequest[] = [];\r\n rowsCache: CancelOrderRequest[] = [];\r\n allPermissions: Permission[] = [];\r\n editedCancelOrderRequest: CancelOrderRequest;\r\n sourceCancelOrderRequest: CancelOrderRequest;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n fStatusVal: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: CancelOrderRequestEditorComponent;\r\n\r\n @ViewChild('cancelOrderRequestsTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private paymentService: PaymentService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(cancelOrderRequest: CancelOrderRequest, isDisabled: boolean): void {\r\n const dialogRef = this.dialog.open(CancelOrderRequestEditorComponent, {\r\n data: { header: this.header, cancelOrderRequest: cancelOrderRequest, isDisabled: isDisabled },\r\n width: '600px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'id';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'userName', name: 'Name' },\r\n { prop: 'studentName', name: 'Student' },\r\n { prop: 'cancellationDate', name: 'Order Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'mealSessionName', name: 'Session' },\r\n { prop: 'submissionDate', name: 'Submission Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'reason', name: 'Reason' },\r\n // { prop: 'note', name: 'Note' },\r\n { prop: 'status', name: 'Status' },\r\n { prop: 'response', name: 'Response' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n //if (!this.fStatusVal) this.fStatusVal = '';\r\n this.filter.filters = '(Status)==' + this.fStatusVal+',(IsActive)==true,(userName|studentName)@=' + this.keyword;\r\n \r\n this.paymentService.getCancelOrderRequestsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let cancelOrderRequests = results.pagedData;\r\n\r\n cancelOrderRequests.forEach((cancelOrderRequest, index, cancelOrderRequests) => {\r\n (cancelOrderRequest).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...cancelOrderRequests];\r\n this.rows = cancelOrderRequests;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n\r\n approvalCancelOrderRequest(row: CancelOrderRequest) {\r\n this.editedCancelOrderRequest = row;\r\n this.header = 'Cancel Order Request Approval';\r\n this.openDialog(this.editedCancelOrderRequest, row.status != 'Submitted');\r\n }\r\n\r\n get canManageCancelOrderRequests() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMOSOrderMgtCancelOrderRequestsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYXJ0b24tYXNzZXQvY2FydG9uLWFzc2V0LWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vY2FydG9uLWFzc2V0L2NhcnRvbi1hc3NldC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Carton Type\\r\\n \\r\\n \\r\\n {{cartonType.code}}\\r\\n \\r\\n \\r\\n Carton Type is required\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { CartonAsset } from 'src/app/models/meal-order/carton-asset.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CartonType } from '../../../models/meal-order/carton-type.model';\r\n\r\n\r\n@Component({\r\n selector: 'carton-asset-editor',\r\n templateUrl: './carton-asset-editor.component.html',\r\n styleUrls: ['./carton-asset-editor.component.css']\r\n})\r\nexport class CartonAssetEditorComponent {\r\n\r\n private isNewCartonAsset = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingCartonAssetCode: string;\r\n private cartonAssetEdit: CartonAsset = new CartonAsset();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n\r\n private cartonTypes: CartonType[] = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.cartonAsset) != typeof (undefined)) {\r\n if (data.cartonAsset.id) {\r\n this.editCartonAsset(data.cartonAsset);\r\n } else {\r\n this.newCartonAsset();\r\n }\r\n }\r\n\r\n this.getCartonTypes();\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.cartonAssetEdit.institutionId = this.accountService.currentUser.institutionId;\r\n console.log(this.periods);\r\n let selectedPeriods = this.periods.filter(f => f.checked);\r\n \r\n\r\n if (this.isNewCartonAsset) {\r\n this.deliveryService.newCartonAsset(this.cartonAssetEdit).subscribe(cartonAsset => this.saveSuccessHelper(cartonAsset), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateCartonAsset(this.cartonAssetEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(cartonAsset?: CartonAsset) {\r\n if (cartonAsset)\r\n Object.assign(this.cartonAssetEdit, cartonAsset);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewCartonAsset)\r\n this.alertService.showMessage(\"Success\", `Carton Asset \\\"${this.cartonAssetEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Carton Asset \\\"${this.cartonAssetEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.cartonAssetEdit = new CartonAsset();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewCartonAsset && this.accountService.currentUser.facilities.some(r => r == this.editingCartonAssetCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.cartonAssetEdit = new CartonAsset();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newCartonAsset() {\r\n this.isNewCartonAsset = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingCartonAssetCode = null;\r\n this.selectedValues = {};\r\n this.cartonAssetEdit = new CartonAsset();\r\n\r\n return this.cartonAssetEdit;\r\n }\r\n\r\n editCartonAsset(cartonAsset: CartonAsset) {\r\n if (cartonAsset) {\r\n this.isNewCartonAsset = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingCartonAssetCode = cartonAsset.code;\r\n this.selectedValues = {};\r\n this.cartonAssetEdit = new CartonAsset();\r\n Object.assign(this.cartonAssetEdit, cartonAsset);\r\n\r\n return this.cartonAssetEdit;\r\n }\r\n else {\r\n return this.newCartonAsset();\r\n }\r\n }\r\n\r\n getCartonTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getCartonTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.cartonTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving carton types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n\r\n get canManageCartonAssets() {\r\n return true; //this.accountService.userHasPermission(Permission.manageCartonAssetsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYXJ0b24tYXNzZXQvY2FydG9uLWFzc2V0cy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2NhcnRvbi1hc3NldC9jYXJ0b24tYXNzZXRzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Carton Assets

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { CartonAsset } from 'src/app/models/meal-order/carton-asset.model';\r\nimport { CartonAssetEditorComponent } from './carton-asset-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'carton-assets-management',\r\n templateUrl: './carton-assets-management.component.html',\r\n styleUrls: ['./carton-assets-management.component.css']\r\n})\r\nexport class CartonAssetsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: CartonAsset[] = [];\r\n rowsCache: CartonAsset[] = [];\r\n allPermissions: Permission[] = [];\r\n editedCartonAsset: CartonAsset;\r\n sourceCartonAsset: CartonAsset;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('cartonAssetEditor')\r\n cartonAssetEditor: CartonAssetEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(cartonAsset: CartonAsset): void {\r\n const dialogRef = this.dialog.open(CartonAssetEditorComponent, {\r\n data: { header: this.header, cartonAsset: cartonAsset },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'code', name: 'Tag Id' },\r\n { prop: 'cartonTypeCode', name: 'Carton Type' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Code)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deliveryService.getCartonAssetsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let cartonAssets = results.pagedData;\r\n\r\n cartonAssets.forEach((cartonAsset, index, cartonAssets) => {\r\n (cartonAsset).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...cartonAssets];\r\n this.rows = cartonAssets;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newCartonAsset() {\r\n this.header = 'New Carton Asset';\r\n this.editedCartonAsset = new CartonAsset();\r\n this.openDialog(this.editedCartonAsset);\r\n }\r\n\r\n\r\n editCartonAsset(row: CartonAsset) {\r\n this.editedCartonAsset = row;\r\n this.header = 'Edit Carton Asset';\r\n this.openDialog(this.editedCartonAsset);\r\n }\r\n\r\n deleteCartonAsset(row: CartonAsset) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\" Carton Asset?', DialogType.confirm, () => this.deleteCartonAssetHelper(row));\r\n }\r\n\r\n\r\n deleteCartonAssetHelper(row: CartonAsset) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteCartonAsset(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Carton Assetcaterer.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageCartonAssets() {\r\n return true; //this.accountService.userHasPermission(Permission.manageCartonAssetsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYXJ0b24tdHlwZS9jYXJ0b24tdHlwZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2NhcnRvbi10eXBlL2NhcnRvbi10eXBlLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Caterer\\r\\n \\r\\n \\r\\n {{catererInfo.name}}\\r\\n \\r\\n \\r\\n Caterer is required\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { CartonType } from 'src/app/models/meal-order/carton-type.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CatererInfo } from '../../../models/meal-order/caterer-info.model';\r\n\r\n\r\n@Component({\r\n selector: 'carton-type-editor',\r\n templateUrl: './carton-type-editor.component.html',\r\n styleUrls: ['./carton-type-editor.component.css']\r\n})\r\nexport class CartonTypeEditorComponent {\r\n\r\n private isNewCartonType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingCartonTypeCode: string;\r\n private cartonTypeEdit: CartonType = new CartonType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n private catererInfos: CatererInfo[] = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.cartonType) != typeof (undefined)) {\r\n if (data.cartonType.id) {\r\n this.editCartonType(data.cartonType);\r\n } else {\r\n this.newCartonType();\r\n }\r\n }\r\n\r\n this.getCatererInfos();\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.cartonTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n console.log(this.periods);\r\n let selectedPeriods = this.periods.filter(f => f.checked);\r\n \r\n\r\n if (this.isNewCartonType) {\r\n this.deliveryService.newCartonType(this.cartonTypeEdit).subscribe(cartonType => this.saveSuccessHelper(cartonType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateCartonType(this.cartonTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(cartonType?: CartonType) {\r\n if (cartonType)\r\n Object.assign(this.cartonTypeEdit, cartonType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewCartonType)\r\n this.alertService.showMessage(\"Success\", `Carton type \\\"${this.cartonTypeEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Carton type \\\"${this.cartonTypeEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.cartonTypeEdit = new CartonType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewCartonType && this.accountService.currentUser.facilities.some(r => r == this.editingCartonTypeCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.cartonTypeEdit = new CartonType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newCartonType() {\r\n this.isNewCartonType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingCartonTypeCode = null;\r\n this.selectedValues = {};\r\n this.cartonTypeEdit = new CartonType();\r\n\r\n return this.cartonTypeEdit;\r\n }\r\n\r\n editCartonType(cartonType: CartonType) {\r\n if (cartonType) {\r\n this.isNewCartonType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingCartonTypeCode = cartonType.code;\r\n this.selectedValues = {};\r\n this.cartonTypeEdit = new CartonType();\r\n Object.assign(this.cartonTypeEdit, cartonType);\r\n\r\n return this.cartonTypeEdit;\r\n }\r\n else {\r\n return this.newCartonType();\r\n }\r\n }\r\n\r\n getCatererInfos() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getCatererInfosByFilter(filter)\r\n .subscribe(results => {\r\n this.catererInfos = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving caterers.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n\r\n get canManageCartonTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageCartonTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYXJ0b24tdHlwZS9jYXJ0b24tdHlwZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYXJ0b24tdHlwZS9jYXJ0b24tdHlwZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Carton Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { CartonType } from 'src/app/models/meal-order/carton-type.model';\r\nimport { CartonTypeEditorComponent } from './carton-type-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'carton-types-management',\r\n templateUrl: './carton-types-management.component.html',\r\n styleUrls: ['./carton-types-management.component.css']\r\n})\r\nexport class CartonTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: CartonType[] = [];\r\n rowsCache: CartonType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedCartonType: CartonType;\r\n sourceCartonType: CartonType;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('cartonTypeEditor')\r\n cartonTypeEditor: CartonTypeEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(cartonType: CartonType): void {\r\n const dialogRef = this.dialog.open(CartonTypeEditorComponent, {\r\n data: { header: this.header, cartonType: cartonType },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'catererInfoName', name: 'Caterer' },\r\n { prop: 'code', name: 'Code' },\r\n { prop: 'details', name: 'Details' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Code)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deliveryService.getCartonTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let cartonTypes = results.pagedData;\r\n\r\n cartonTypes.forEach((cartonType, index, cartonTypes) => {\r\n (cartonType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...cartonTypes];\r\n this.rows = cartonTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newCartonType() {\r\n this.header = 'New Carton type';\r\n this.editedCartonType = new CartonType();\r\n this.openDialog(this.editedCartonType);\r\n }\r\n\r\n\r\n editCartonType(row: CartonType) {\r\n this.editedCartonType = row;\r\n this.header = 'Edit Carton type';\r\n this.openDialog(this.editedCartonType);\r\n }\r\n\r\n deleteCartonType(row: CartonType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\" Carton type?', DialogType.confirm, () => this.deleteCartonTypeHelper(row));\r\n }\r\n\r\n\r\n deleteCartonTypeHelper(row: CartonType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteCartonType(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Carton type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageCartonTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageCartonTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".modal {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n.display-block {\\r\\n display:block !important;\\r\\n}\\r\\n\\r\\n.cal-month-view .cal-open-day-events {\\r\\n background-color: #03b1ab !important;\\r\\n box-shadow: none !important;\\r\\n}\\r\\n\\r\\n.cal-month-view .cal-event {\\r\\n background-color: #fff !important;\\r\\n}\\r\\n\\r\\n.cal-event-action {\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.event-block {\\r\\n background: #029f9a;\\r\\n color: white;\\r\\n padding-left: 5px;\\r\\n font-size: 12px;\\r\\n border-top: 1px solid white;\\r\\n}\\r\\n\\r\\n.cal-drag-active{\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.disabled-date {\\r\\n background: #ffc8c8;\\r\\n}\\r\\n\\r\\n.action-menu {\\r\\n padding-left: 5px;\\r\\n padding-right: 5px;\\r\\n}\\r\\n\\r\\n.cal-event-title {\\r\\n padding-right: 20px;\\r\\n width: 350px;\\r\\n display: inline-flex;\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n}\\r\\n\\r\\n.day-free{\\r\\n color:green;\\r\\n}\\r\\n\\r\\n.day-blocked{\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.cal-day-number{\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.cal-day-number:hover{\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYXRlcmVyLWluZm8vY2F0ZXJlci1jYWxlbmRhci9jYXRlcmVyLWNhbGVuZGFyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxvQ0FBb0M7RUFDcEMsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQixnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vY2F0ZXJlci1pbmZvL2NhdGVyZXItY2FsZW5kYXIvY2F0ZXJlci1jYWxlbmRhci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1vZGFsIHtcclxuICB6LWluZGV4OiAxMDAwO1xyXG59XHJcblxyXG4uZGlzcGxheS1ibG9jayB7XHJcbiAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2FsLW1vbnRoLXZpZXcgLmNhbC1vcGVuLWRheS1ldmVudHMge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwM2IxYWIgIWltcG9ydGFudDtcclxuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jYWwtbW9udGgtdmlldyAuY2FsLWV2ZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jYWwtZXZlbnQtYWN0aW9uIHtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZXZlbnQtYmxvY2sge1xyXG4gIGJhY2tncm91bmQ6ICMwMjlmOWE7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7XHJcbn1cclxuXHJcbi5jYWwtZHJhZy1hY3RpdmV7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLmRpc2FibGVkLWRhdGUge1xyXG4gIGJhY2tncm91bmQ6ICNmZmM4Yzg7XHJcbn1cclxuXHJcbi5hY3Rpb24tbWVudSB7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgcGFkZGluZy1yaWdodDogNXB4O1xyXG59XHJcblxyXG4uY2FsLWV2ZW50LXRpdGxlIHtcclxuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG4gIHdpZHRoOiAzNTBweDtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5kYXktZnJlZXtcclxuICBjb2xvcjpncmVlbjtcclxufVxyXG5cclxuLmRheS1ibG9ja2Vke1xyXG4gIGNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5jYWwtZGF5LW51bWJlcntcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxufVxyXG5cclxuLmNhbC1kYXktbnVtYmVyOmhvdmVye1xyXG4gIGN1cnNvcjpwb2ludGVyO1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Menu Cycle Calendar

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Previous\\r\\n
\\r\\n
\\r\\n Today\\r\\n
\\r\\n
\\r\\n Next\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ viewDate | calendarDate: ((view === 'list' ? 'day' : view) + 'ViewTitle'):locale }}

\\r\\n
\\r\\n
\\r\\n \\r\\n Outlet Profiles\\r\\n \\r\\n ALL\\r\\n \\r\\n {{op.label}}\\r\\n \\r\\n \\r\\n Dish Type is required\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ day.date | calendarDate:'monthViewDayNumber':locale }}\\r\\n
\\r\\n
\\r\\n
{{ev.title | slice:0:20}}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, NgZone, ViewEncapsulation } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { CalendarView, CalendarEvent, CalendarEventAction, CalendarMonthViewBeforeRenderEvent, CalendarWeekViewBeforeRenderEvent, CalendarDayViewBeforeRenderEvent } from 'angular-calendar';\r\nimport { ViewPeriod } from 'calendar-utils';\r\nimport RRule from 'rrule';\r\nimport * as moment from 'moment';\r\nimport { fadeInOut } from 'src/app/services/animations';\r\nimport { AlertService, DialogType, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { BlockUnblockDateModel, MenuCycle, MenuCycleBlockedDate } from 'src/app/models/meal-order/menu-cycle.model';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport {\r\n isSameMonth,\r\n isSameDay\r\n} from 'date-fns';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ViewMenuCycleMenuComponent } from '../../menu-cycle/view-menu/view-menu.component';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'menu-cycle-calendar',\r\n templateUrl: './caterer-calendar.component.html',\r\n styleUrls: ['./caterer-calendar.component.css'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MenuCycleCalendarComponent implements OnInit, AfterViewInit {\r\n schedules: MenuCycle[] = [];\r\n editedMenuCycle: MenuCycle;\r\n sourceMenuCycle: MenuCycle;\r\n editingMenuCycleName: { shortDescription: string };\r\n loadingIndicator: boolean;\r\n activeDayIsOpen: boolean = false;\r\n public catererId: string;\r\n outletProfileId: any;\r\n @Input()\r\n\r\n view: CalendarView = CalendarView.Month;\r\n viewDate: Date = new Date();\r\n @Output() viewChange: EventEmitter = new EventEmitter();\r\n\r\n @Output() viewDateChange: EventEmitter = new EventEmitter();\r\n\r\n actions: CalendarEventAction[] = [\r\n //{\r\n // label: ' Edit Menu Cycle ',\r\n // //a11yLabel: 'Edit',\r\n // onClick: ({ event }: { event: CalendarEvent }): void => {\r\n // //this.editMenuCycle(event.meta);\r\n // },\r\n //},\r\n {\r\n label: ' Add/Remove Menu ',\r\n //a11yLabel: 'Delete',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n let startD = moment(new Date(event.meta.startDate).setHours(0));\r\n let endD = moment(event.start);\r\n let totalDays = endD.diff(startD, \"days\");\r\n let totalSchedules = event.meta.schedules ? event.meta.schedules.length : 0;\r\n\r\n let day = (totalDays % totalSchedules) + 1; //event.start.getDay();\r\n this.openViewMenuDialog(event.meta, day);\r\n console.log(event);\r\n },\r\n },\r\n ];\r\n\r\n private outletProfiles = [];\r\n\r\n calendarEvents: CalendarEvent[];\r\n\r\n viewPeriod: ViewPeriod;\r\n\r\n //refresh: Subject = new Subject();\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n //@ViewChild('menuCycleEditor')\r\n //menuCycleEditor: MenuCycleEditorComponent;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private menuService: MenuService, private cdr: ChangeDetectorRef, private deliveryService: DeliveryService, public zone: NgZone, public dialog: MatDialog,\r\n private route: ActivatedRoute) {\r\n this.route.params.subscribe(queryParams => {\r\n this.catererId = queryParams[\"catererId\"];\r\n });\r\n\r\n this.getOutletProfiles();\r\n }\r\n\r\n handleEvent(action: string, event: CalendarEvent): void {\r\n\r\n }\r\n\r\n eventUpdateEvent() {\r\n this.activeDayIsOpen = false;\r\n this.calendarEvents.length = 0;\r\n this.calendarEvents = [];\r\n this.schedules.forEach((event) => {\r\n if (!event.rrule || !event.rrule.byweekday || event.rrule.byweekday.length == 0) return;\r\n\r\n const rule: RRule = new RRule({\r\n ...event.rrule,\r\n dtstart: moment(this.viewPeriod.start).startOf('day').toDate(),\r\n until: moment(this.viewPeriod.end).endOf('day').toDate(),\r\n });\r\n const { label, color } = event;\r\n\r\n let events = [];\r\n\r\n rule.all().forEach((date) => {\r\n date.setDate(date.getDate() - 1);\r\n if (date >= new Date(new Date(event.startDate).setHours(0)) && date <= new Date(new Date(event.endDate).setHours(0))) {\r\n let start = new Date(date);\r\n let end = new Date(date);\r\n start.setHours(0);\r\n start.setMinutes(0);\r\n start.setMilliseconds(0);\r\n\r\n end.setHours(0);\r\n end.setMinutes(0);\r\n end.setMilliseconds(0);\r\n\r\n let blockedDates = event.blockedDates.filter(e => date.getTime() == new Date(e.effectiveDate).getTime());\r\n events.push({\r\n title: label,\r\n color,\r\n start: start,\r\n end: end,\r\n actions: this.actions,\r\n meta: event,\r\n isBlocked: blockedDates && blockedDates.length > 0\r\n });\r\n }\r\n });\r\n\r\n this.calendarEvents = this.calendarEvents.concat(Array.from(events));\r\n });\r\n //this.refresh.next();\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n updateCalendarEvents(\r\n viewRender:\r\n | CalendarMonthViewBeforeRenderEvent\r\n | CalendarWeekViewBeforeRenderEvent\r\n | CalendarDayViewBeforeRenderEvent\r\n ): void {\r\n if (!this.viewPeriod ||\r\n !moment(this.viewPeriod.start).isSame(viewRender.period.start) ||\r\n !moment(this.viewPeriod.end).isSame(viewRender.period.end)\r\n ) {\r\n this.viewPeriod = viewRender.period;\r\n this.calendarEvents = [];\r\n\r\n this.eventUpdateEvent();\r\n }\r\n }\r\n\r\n dayClicked(\r\n date,\r\n event\r\n ): void {\r\n if (isSameMonth(date, this.viewDate)) {\r\n this.viewDate = date;\r\n }\r\n\r\n let startD = moment(new Date(event.meta.startDate).setHours(0));\r\n let endD = moment(event.start);\r\n let totalDays = endD.diff(startD, \"days\");\r\n let totalSchedules = event.meta.schedules ? event.meta.schedules.length : 0;\r\n\r\n let day = (totalDays % totalSchedules) + 1; //event.start.getDay();\r\n this.openViewMenuDialog(event.meta, day);\r\n console.log(event);\r\n }\r\n\r\n eventClicked(event: CalendarEvent<{ menuCycle: MenuCycle }>): void {\r\n //window.open(\r\n // `https://www.themoviedb.org/movie/${event.meta.film.id}`,\r\n // '_blank'\r\n //);\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n //this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n //this.menuCycleEditor.changesSavedCallback = () => {\r\n // this.loadData();\r\n // this.editorModal.hide();\r\n //};\r\n\r\n //this.menuCycleEditor.changesCancelledCallback = () => {\r\n // this.editedMenuCycle = null;\r\n // this.sourceMenuCycle = null;\r\n // this.editorModal.hide();\r\n //};\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n loadData(id?: string) {\r\n //this.alertService.startLoadingMessage();\r\n //this.loadingIndicator = true;\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n f += '(IsActive) == true';\r\n if (id) {\r\n f += ',(OutletProfileId)==' + id;\r\n }\r\n \r\n let filter = new Filter();\r\n filter.filters = f;\r\n this.menuService.getMenuCyclesByFilter(filter)\r\n .subscribe(results => {\r\n let menuCycles = results.pagedData;\r\n\r\n menuCycles.forEach((menuCycle, index, menuCycles) => {\r\n try {\r\n (menuCycle).index = index + 1;\r\n\r\n let weekday = [];\r\n\r\n //if (menuCycle.schedules) {\r\n // let dayRules = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU];\r\n // menuCycle.schedules.forEach((schedule, i, s) => {\r\n // weekday.push(dayRules[(schedule.day % 7) - 1]);\r\n // });\r\n //}\r\n\r\n menuCycle.rrule = {\r\n freq: RRule.WEEKLY,\r\n byweekday: [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU],\r\n }\r\n } catch (ex) { }\r\n });\r\n\r\n\r\n this.schedules = menuCycles;\r\n\r\n this.eventUpdateEvent();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getOutletProfiles() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n\r\n this.deliveryService.getOutletProfilesByFilter(filter)\r\n .subscribe(results => {\r\n this.outletProfiles = results.pagedData;\r\n this.loadData();\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlet profiles.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n onOutletProfileChange(outletProfileId: string) {\r\n this.loadData(outletProfileId);\r\n }\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingMenuCycleName = null;\r\n //this.menuCycleEditor.resetForm(true);\r\n }\r\n\r\n blockDate(ev, day) {\r\n this.activeDayIsOpen = false;\r\n \r\n if (day && day.events && day.events.length > 0) {\r\n let isBlocked = this.isBlocked(day, day.events);\r\n this.alertService.showDialog(`Are you sure you want to \"${(isBlocked ? \"unblock\": \"block\")}\" this date?`, DialogType.confirm, () => this.blockMenuCycleHelper(day, isBlocked));\r\n }\r\n }\r\n\r\n\r\n blockMenuCycleHelper(day: any, isUnblock) {\r\n let m = new Date(day.date);\r\n let date = new Date(m.getFullYear(), m.getMonth(), m.getDate());\r\n let blockedDates = day.events.map(function (e) {\r\n let blockedDate = new MenuCycleBlockedDate();\r\n blockedDate.effectiveDate = date.toLocaleDateString();\r\n blockedDate.label = e.meta.label;\r\n blockedDate.menuCycleId = e.meta.id;\r\n return blockedDate;\r\n });\r\n this.alertService.startLoadingMessage(\"Processing...\");\r\n this.loadingIndicator = true;\r\n\r\n let model = new BlockUnblockDateModel();\r\n model.isUnblock = isUnblock;\r\n model.blockedDates = blockedDates;\r\n this.menuService.blockunblockdate(model)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData(this.outletProfileId);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while processing the record.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n isBlocked(day, events) {\r\n return events && events.length > 0 && events[0].isBlocked;\r\n }\r\n\r\n openViewMenuDialog(menuCycle: MenuCycle, day): void {\r\n const dialogRef = this.dialog.open(ViewMenuCycleMenuComponent, {\r\n data: { header: 'Menu List', menuCycle: menuCycle, day, catererId: this.catererId },\r\n width: '600px'\r\n });\r\n }\r\n\r\n\r\n //newMenuCycle() {\r\n // this.editingMenuCycleName = null;\r\n // this.sourceMenuCycle = null;\r\n // //this.editedMenuCycle = this.menuCycleEditor.newMenuCycle();\r\n // this.editorModal.show();\r\n //}\r\n\r\n\r\n //editMenuCycle(row: MenuCycle) {\r\n // this.editingMenuCycleName = { shortDescription: row.label };\r\n // this.sourceMenuCycle = row;\r\n // //this.editedMenuCycle = this.menuCycleEditor.editMenuCycle(row);\r\n // this.editorModal.show();\r\n //}\r\n\r\n //deleteMenuCycle(row: MenuCycle) {\r\n // this.alertService.showDialog('Are you sure you want to delete \\\"' + row.label + '\\\"?', DialogType.confirm, () => this.deleteMenuCycleHelper(row));\r\n //}\r\n\r\n\r\n //deleteMenuCycleHelper(row: MenuCycle) {\r\n\r\n // this.alertService.startLoadingMessage(\"Deleting...\");\r\n // this.loadingIndicator = true;\r\n\r\n // this.menuService.deleteMenuCycle(row)\r\n // .subscribe(results => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // this.loadData();\r\n // },\r\n // error => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the record.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // MessageSeverity.error);\r\n // });\r\n //}\r\n\r\n\r\n get canManageMenuCycles() {\r\n return true;// || this.accountService.userHasPermission(Permission.manageMenuCyclesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".modal {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n.display-block {\\r\\n display:block !important;\\r\\n}\\r\\n\\r\\n.cal-month-view .cal-open-day-events {\\r\\n background-color: #03b1ab !important;\\r\\n box-shadow: none !important;\\r\\n}\\r\\n\\r\\n.cal-month-view .cal-event {\\r\\n background-color: #fff !important;\\r\\n}\\r\\n\\r\\n.cal-event-action {\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.event-block {\\r\\n background: #029f9a;\\r\\n color: white;\\r\\n padding-left: 5px;\\r\\n font-size: 12px;\\r\\n border-top: 1px solid white;\\r\\n}\\r\\n\\r\\n.cal-drag-active{\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.disabled-date {\\r\\n background: #ffc8c8;\\r\\n}\\r\\n\\r\\n.action-menu {\\r\\n padding-left: 5px;\\r\\n padding-right: 5px;\\r\\n}\\r\\n\\r\\n.cal-event-title {\\r\\n padding-right: 20px;\\r\\n width: 350px;\\r\\n display: inline-flex;\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n}\\r\\n\\r\\n.day-free{\\r\\n color:green;\\r\\n}\\r\\n\\r\\n.day-blocked{\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.cal-day-number{\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.cal-day-number:hover{\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYXRlcmVyLWluZm8vY2F0ZXJlci1kaXNoLWNhbGVuZGFyL2NhdGVyZXItZGlzaC1jYWxlbmRhci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZiwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2NhdGVyZXItaW5mby9jYXRlcmVyLWRpc2gtY2FsZW5kYXIvY2F0ZXJlci1kaXNoLWNhbGVuZGFyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubW9kYWwge1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcbi5kaXNwbGF5LWJsb2NrIHtcclxuICBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jYWwtbW9udGgtdmlldyAuY2FsLW9wZW4tZGF5LWV2ZW50cyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzYjFhYiAhaW1wb3J0YW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNhbC1tb250aC12aWV3IC5jYWwtZXZlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNhbC1ldmVudC1hY3Rpb24ge1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5ldmVudC1ibG9jayB7XHJcbiAgYmFja2dyb3VuZDogIzAyOWY5YTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB3aGl0ZTtcclxufVxyXG5cclxuLmNhbC1kcmFnLWFjdGl2ZXtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uZGlzYWJsZWQtZGF0ZSB7XHJcbiAgYmFja2dyb3VuZDogI2ZmYzhjODtcclxufVxyXG5cclxuLmFjdGlvbi1tZW51IHtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbn1cclxuXHJcbi5jYWwtZXZlbnQtdGl0bGUge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgd2lkdGg6IDM1MHB4O1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDVweDtcclxufVxyXG5cclxuLmRheS1mcmVle1xyXG4gIGNvbG9yOmdyZWVuO1xyXG59XHJcblxyXG4uZGF5LWJsb2NrZWR7XHJcbiAgY29sb3I6IHJlZDtcclxufVxyXG5cclxuLmNhbC1kYXktbnVtYmVye1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG4uY2FsLWRheS1udW1iZXI6aG92ZXJ7XHJcbiAgY3Vyc29yOnBvaW50ZXI7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Dish Cycle Calendar

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Previous\\r\\n
\\r\\n
\\r\\n Today\\r\\n
\\r\\n
\\r\\n Next\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ viewDate | calendarDate: ((view === 'list' ? 'day' : view) + 'ViewTitle'):locale }}

\\r\\n
\\r\\n
\\r\\n \\r\\n Outlet Profiles\\r\\n \\r\\n ALL\\r\\n \\r\\n {{op.label}}\\r\\n \\r\\n \\r\\n Dish Type is required\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ day.date | calendarDate:'monthViewDayNumber':locale }}\\r\\n
\\r\\n
\\r\\n
{{ev.title | slice:0:20}}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, NgZone, ViewEncapsulation } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { CalendarView, CalendarEvent, CalendarEventAction, CalendarMonthViewBeforeRenderEvent, CalendarWeekViewBeforeRenderEvent, CalendarDayViewBeforeRenderEvent } from 'angular-calendar';\r\nimport { ViewPeriod } from 'calendar-utils';\r\nimport RRule from 'rrule';\r\nimport * as moment from 'moment';\r\nimport { fadeInOut } from 'src/app/services/animations';\r\nimport { AlertService, DialogType, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport {\r\n isSameMonth,\r\n isSameDay\r\n} from 'date-fns';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DishBlockUnblockDateModel, DishCycle, DishCycleBlockedDate } from 'src/app/models/meal-order/dish-cycle';\r\nimport { ViewDishCycleMenuComponent } from '../../dish-cycle/view-menu/view-menu.component';\r\n\r\n@Component({\r\n selector: 'dish-cycle-calendar',\r\n templateUrl: './caterer-dish-calendar.component.html',\r\n styleUrls: ['./caterer-dish-calendar.component.css'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DishCycleCalendarComponent implements OnInit, AfterViewInit {\r\n schedules: DishCycle[] = [];\r\n editedDishCycle: DishCycle;\r\n sourceDishCycle: DishCycle;\r\n editingDishCycleName: { shortDescription: string };\r\n loadingIndicator: boolean;\r\n activeDayIsOpen: boolean = false;\r\n public catererId: string;\r\n outletProfileId: any;\r\n @Input()\r\n\r\n view: CalendarView = CalendarView.Month;\r\n viewDate: Date = new Date();\r\n @Output() viewChange: EventEmitter = new EventEmitter();\r\n\r\n @Output() viewDateChange: EventEmitter = new EventEmitter();\r\n\r\n actions: CalendarEventAction[] = [\r\n //{\r\n // label: ' Edit Dish Cycle ',\r\n // //a11yLabel: 'Edit',\r\n // onClick: ({ event }: { event: CalendarEvent }): void => {\r\n // //this.editDishCycle(event.meta);\r\n // },\r\n //},\r\n {\r\n label: ' Add/Remove Dish ',\r\n //a11yLabel: 'Delete',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n let startD = moment(new Date(event.meta.startDate).setHours(0));\r\n let endD = moment(event.start);\r\n let totalDays = endD.diff(startD, \"days\");\r\n let totalSchedules = event.meta.schedules ? event.meta.schedules.length : 0;\r\n\r\n let day = (totalDays % totalSchedules) + 1; //event.start.getDay();\r\n this.openViewDishDialog(event.meta, day);\r\n console.log(event);\r\n },\r\n },\r\n ];\r\n\r\n private outletProfiles = [];\r\n\r\n calendarEvents: CalendarEvent[];\r\n\r\n viewPeriod: ViewPeriod;\r\n\r\n //refresh: Subject = new Subject();\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n //@ViewChild('dishCycleEditor')\r\n //dishCycleEditor: DishCycleEditorComponent;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private dishService: DishService, private cdr: ChangeDetectorRef, private deliveryService: DeliveryService, public zone: NgZone, public dialog: MatDialog,\r\n private route: ActivatedRoute) {\r\n this.route.params.subscribe(queryParams => {\r\n this.catererId = queryParams[\"catererId\"];\r\n });\r\n\r\n this.getOutletProfiles();\r\n }\r\n\r\n handleEvent(action: string, event: CalendarEvent): void {\r\n\r\n }\r\n\r\n eventUpdateEvent() {\r\n this.activeDayIsOpen = false;\r\n this.calendarEvents.length = 0;\r\n this.calendarEvents = [];\r\n this.schedules.forEach((event) => {\r\n if (!event.rrule || !event.rrule.byweekday || event.rrule.byweekday.length == 0) return;\r\n\r\n const rule: RRule = new RRule({\r\n ...event.rrule,\r\n dtstart: moment(this.viewPeriod.start).startOf('day').toDate(),\r\n until: moment(this.viewPeriod.end).endOf('day').toDate(),\r\n });\r\n const { label, color } = event;\r\n\r\n let events = [];\r\n\r\n rule.all().forEach((date) => {\r\n date.setDate(date.getDate() - 1);\r\n if (date >= new Date(new Date(event.startDate).setHours(0)) && date <= new Date(new Date(event.endDate).setHours(0))) {\r\n let start = new Date(date);\r\n let end = new Date(date);\r\n start.setHours(0);\r\n start.setMinutes(0);\r\n start.setMilliseconds(0);\r\n\r\n end.setHours(0);\r\n end.setMinutes(0);\r\n end.setMilliseconds(0);\r\n\r\n let blockedDates = event.blockedDates ? event.blockedDates.filter(e => date.getTime() == new Date(e.effectiveDate).getTime()) : [];\r\n events.push({\r\n title: label,\r\n color,\r\n start: start,\r\n end: end,\r\n actions: this.actions,\r\n meta: event,\r\n isBlocked: blockedDates && blockedDates.length > 0\r\n });\r\n }\r\n });\r\n\r\n this.calendarEvents = this.calendarEvents.concat(Array.from(events));\r\n });\r\n //this.refresh.next();\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n updateCalendarEvents(\r\n viewRender:\r\n | CalendarMonthViewBeforeRenderEvent\r\n | CalendarWeekViewBeforeRenderEvent\r\n | CalendarDayViewBeforeRenderEvent\r\n ): void {\r\n if (!this.viewPeriod ||\r\n !moment(this.viewPeriod.start).isSame(viewRender.period.start) ||\r\n !moment(this.viewPeriod.end).isSame(viewRender.period.end)\r\n ) {\r\n this.viewPeriod = viewRender.period;\r\n this.calendarEvents = [];\r\n\r\n this.eventUpdateEvent();\r\n }\r\n }\r\n\r\n dayClicked(\r\n date,\r\n event\r\n ): void {\r\n if (isSameMonth(date, this.viewDate)) {\r\n this.viewDate = date;\r\n }\r\n\r\n let startD = moment(new Date(event.meta.startDate).setHours(0));\r\n let endD = moment(event.start);\r\n let totalDays = endD.diff(startD, \"days\");\r\n let totalSchedules = event.meta.schedules ? event.meta.schedules.length : 0;\r\n\r\n let day = (totalDays % totalSchedules) + 1; //event.start.getDay();\r\n this.openViewDishDialog(event.meta, day);\r\n console.log(event);\r\n }\r\n\r\n eventClicked(event: CalendarEvent<{ dishCycle: DishCycle }>): void {\r\n //window.open(\r\n // `https://www.themoviedb.org/movie/${event.meta.film.id}`,\r\n // '_blank'\r\n //);\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n //this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n //this.dishCycleEditor.changesSavedCallback = () => {\r\n // this.loadData();\r\n // this.editorModal.hide();\r\n //};\r\n\r\n //this.dishCycleEditor.changesCancelledCallback = () => {\r\n // this.editedDishCycle = null;\r\n // this.sourceDishCycle = null;\r\n // this.editorModal.hide();\r\n //};\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n loadData(id?: string) {\r\n //this.alertService.startLoadingMessage();\r\n //this.loadingIndicator = true;\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n f += '(IsActive) == true';\r\n if (id) {\r\n f += ',(OutletProfileId)==' + id;\r\n }\r\n \r\n let filter = new Filter();\r\n filter.filters = f;\r\n this.dishService.getDishCyclesByFilter(filter)\r\n .subscribe(results => {\r\n let dishCycles = results.pagedData;\r\n\r\n dishCycles.forEach((dishCycle, index, dishCycles) => {\r\n try {\r\n (dishCycle).index = index + 1;\r\n\r\n let weekday = [];\r\n\r\n //if (dishCycle.schedules) {\r\n // let dayRules = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU];\r\n // dishCycle.schedules.forEach((schedule, i, s) => {\r\n // weekday.push(dayRules[(schedule.day % 7) - 1]);\r\n // });\r\n //}\r\n\r\n dishCycle.rrule = {\r\n freq: RRule.WEEKLY,\r\n byweekday: [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU],\r\n }\r\n } catch (ex) { }\r\n });\r\n\r\n\r\n this.schedules = dishCycles;\r\n\r\n this.eventUpdateEvent();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getOutletProfiles() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n\r\n this.deliveryService.getOutletProfilesByFilter(filter)\r\n .subscribe(results => {\r\n this.outletProfiles = results.pagedData;\r\n this.loadData();\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlet profiles.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n onOutletProfileChange(outletProfileId: string) {\r\n this.loadData(outletProfileId);\r\n }\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingDishCycleName = null;\r\n //this.dishCycleEditor.resetForm(true);\r\n }\r\n\r\n blockDate(ev, day) {\r\n this.activeDayIsOpen = false;\r\n \r\n if (day && day.events && day.events.length > 0) {\r\n let isBlocked = this.isBlocked(day, day.events);\r\n this.alertService.showDialog(`Are you sure you want to \"${(isBlocked ? \"unblock\": \"block\")}\" this date?`, DialogType.confirm, () => this.blockDishCycleHelper(day, isBlocked));\r\n }\r\n }\r\n\r\n\r\n blockDishCycleHelper(day: any, isUnblock) {\r\n let m = new Date(day.date);\r\n let date = new Date(m.getFullYear(), m.getMonth(), m.getDate());\r\n let blockedDates = day.events.map(function (e) {\r\n let blockedDate = new DishCycleBlockedDate();\r\n blockedDate.effectiveDate = date.toLocaleDateString();\r\n blockedDate.label = e.meta.label;\r\n blockedDate.dishCycleId = e.meta.id;\r\n return blockedDate;\r\n });\r\n this.alertService.startLoadingMessage(\"Processing...\");\r\n this.loadingIndicator = true;\r\n\r\n let model = new DishBlockUnblockDateModel();\r\n model.isUnblock = isUnblock;\r\n model.blockedDates = blockedDates;\r\n this.dishService.blockunblockdate(model)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData(this.outletProfileId);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while processing the record.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n isBlocked(day, events) {\r\n return events && events.length > 0 && events[0].isBlocked;\r\n }\r\n\r\n openViewDishDialog(dishCycle: DishCycle, day): void {\r\n const dialogRef = this.dialog.open(ViewDishCycleMenuComponent, {\r\n data: { header: 'Dish List', dishCycle: dishCycle, day, catererId: this.catererId },\r\n width: '600px'\r\n });\r\n }\r\n\r\n\r\n get canManageDishCycles() {\r\n return true;// || this.accountService.userHasPermission(Permission.manageDishCyclesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYXRlcmVyLWluZm8vY2F0ZXJlci1pbmZvLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vY2F0ZXJlci1pbmZvL2NhdGVyZXItaW5mby1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { CatererInfo } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'caterer-info-editor',\r\n templateUrl: './caterer-info-editor.component.html',\r\n styleUrls: ['./caterer-info-editor.component.css']\r\n})\r\nexport class CatererInfoEditorComponent {\r\n\r\n private isNewCatererInfo = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingCatererInfoCode: string;\r\n private catererInfoEdit: CatererInfo = new CatererInfo();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.catererInfo) != typeof (undefined)) {\r\n if (data.catererInfo.id) {\r\n this.editCatererInfo(data.catererInfo);\r\n } else {\r\n this.newCatererInfo();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.catererInfoEdit.institutionId = this.accountService.currentUser.institutionId;\r\n console.log(this.periods);\r\n let selectedPeriods = this.periods.filter(f => f.checked);\r\n \r\n\r\n if (this.isNewCatererInfo) {\r\n this.deliveryService.newCatererInfo(this.catererInfoEdit).subscribe(catererInfo => this.saveSuccessHelper(catererInfo), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateCatererInfo(this.catererInfoEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(catererInfo?: CatererInfo) {\r\n if (catererInfo)\r\n Object.assign(this.catererInfoEdit, catererInfo);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewCatererInfo)\r\n this.alertService.showMessage(\"Success\", `Caterer \\\"${this.catererInfoEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to caterer \\\"${this.catererInfoEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.catererInfoEdit = new CatererInfo();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewCatererInfo && this.accountService.currentUser.facilities.some(r => r == this.editingCatererInfoCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.catererInfoEdit = new CatererInfo();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newCatererInfo() {\r\n this.isNewCatererInfo = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingCatererInfoCode = null;\r\n this.selectedValues = {};\r\n this.catererInfoEdit = new CatererInfo();\r\n\r\n return this.catererInfoEdit;\r\n }\r\n\r\n editCatererInfo(catererInfo: CatererInfo) {\r\n if (catererInfo) {\r\n this.isNewCatererInfo = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingCatererInfoCode = catererInfo.name;\r\n this.selectedValues = {};\r\n this.catererInfoEdit = new CatererInfo();\r\n Object.assign(this.catererInfoEdit, catererInfo);\r\n\r\n return this.catererInfoEdit;\r\n }\r\n else {\r\n return this.newCatererInfo();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageCatererInfos() {\r\n return true; //this.accountService.userHasPermission(Permission.manageCatererInfosPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYXRlcmVyLWluZm8vY2F0ZXJlci1pbmZvcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2NhdGVyZXItaW5mby9jYXRlcmVyLWluZm9zLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Caterers

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

{{row.name}} Details

\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n Details\\r\\n Calendar\\r\\n Dish Calendar\\r\\n Outlets\\r\\n\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { CatererInfo } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { CatererInfoEditorComponent } from './caterer-info-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CatererApprovalComponent } from './caterer-selector/caterer-selector.component';\r\nimport { OutletProfilesManagementComponent } from '../outlet-profile/outlet-profiles-management.component';\r\n\r\n\r\n@Component({\r\n selector: 'caterer-infos-management',\r\n templateUrl: './caterer-infos-management.component.html',\r\n styleUrls: ['./caterer-infos-management.component.css']\r\n})\r\nexport class CatererInfosManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: CatererInfo[] = [];\r\n rowsCache: CatererInfo[] = [];\r\n allPermissions: Permission[] = [];\r\n editedCatererInfo: CatererInfo;\r\n sourceCatererInfo: CatererInfo;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('catererInfoEditor')\r\n catererInfoEditor: CatererInfoEditorComponent;\r\n header: string;\r\n\r\n @ViewChild('infotable') table: any;\r\n @ViewChild('outletProfileTab') private outletProfileComponent: OutletProfilesManagementComponent;\r\n expanded: any = {};\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog, private cdr: ChangeDetectorRef) {\r\n }\r\n\r\n openDialog(catererInfo: CatererInfo): void {\r\n const dialogRef = this.dialog.open(CatererInfoEditorComponent, {\r\n data: { header: this.header, catererInfo: catererInfo },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Name' },\r\n { prop: 'code', name: 'Code' },\r\n { name: '', width: 350, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deliveryService.getCatererInfosByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let catererInfos = results.pagedData;\r\n\r\n catererInfos.forEach((catererInfo, index, catererInfos) => {\r\n (catererInfo).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...catererInfos];\r\n this.rows = catererInfos;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n approveOutlet(row) {\r\n const dialogRef = this.dialog.open(CatererApprovalComponent, {\r\n data: { header: \"Approve Outlet\", caterer: row },\r\n width: '700px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newCatererInfo() {\r\n this.header = 'New Caterer';\r\n this.editedCatererInfo = new CatererInfo();\r\n this.openDialog(this.editedCatererInfo);\r\n }\r\n\r\n\r\n editCatererInfo(row: CatererInfo) {\r\n this.editedCatererInfo = row;\r\n this.header = 'Edit Caterer';\r\n this.openDialog(this.editedCatererInfo);\r\n }\r\n\r\n deleteCatererInfo(row: CatererInfo) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" caterer?', DialogType.confirm, () => this.deleteCatererInfoHelper(row));\r\n }\r\n\r\n\r\n deleteCatererInfoHelper(row: CatererInfo) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteCatererInfo(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the caterer.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n toggleExpandRow(row) {\r\n console.log('Toggled Expand Row!', row);\r\n this.table.rowDetail.toggleExpandRow(row);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onDetailToggle(event) {\r\n console.log('Detail Toggled', event);\r\n }\r\n\r\n openCalendar(row) {\r\n window.open('/menucyclecalendars/' + row.id, '_blank');\r\n }\r\n\r\n openDishCalendar(row) {\r\n window.open('/dishcyclecalendars/' + row.id, '_blank');\r\n }\r\n\r\n get canManageCatererInfos() {\r\n return true; //this.accountService.userHasPermission(Permission.manageCatererInfosPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jYXRlcmVyLWluZm8vY2F0ZXJlci1zZWxlY3Rvci9jYXRlcmVyLXNlbGVjdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2NhdGVyZXItaW5mby9jYXRlcmVyLXNlbGVjdG9yL2NhdGVyZXItc2VsZWN0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGxvYWQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMjhhNzQ1O1xyXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameOutlet ProfileRRP = RSPStatus
\\r\\n Approve\\r\\n Reject\\r\\n \\r\\n {{row.outlet.name}}\\r\\n 0\\\" id=\\\"outletProfile\\\" name=\\\"outletProfile\\\" [(ngModel)]=\\\"row.outletProfileId\\\" #outletProfile=\\\"ngModel\\\" required style=\\\"border: 1px solid #000;\\\">\\r\\n \\r\\n {{outletProfile.label}}\\r\\n \\r\\n \\r\\n Outlet Profile is required\\r\\n {{row.status}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Outlet, OutletProfile } from 'src/app/models/meal-order/outlet.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\n\r\n@Component({\r\n selector: 'caterer-selector',\r\n templateUrl: './caterer-selector.component.html',\r\n styleUrls: ['./caterer-selector.component.css']\r\n})\r\nexport class CatererApprovalComponent implements OnInit {\r\n outlets: Outlet[];\r\n //out: CatererInfo[];\r\n editCaterer: Outlet;\r\n selectedOutlets: CatererOutlet[];\r\n private outletProfiles: OutletProfile[] = [];\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n\r\n this.getOutletProfiles();\r\n if (typeof (data.caterer) != typeof (undefined)) {\r\n this.editCaterer = data.caterer;\r\n if (!data.caterer.catererOutlets) {\r\n this.editCaterer.catererOutlets = [];\r\n }\r\n this.selectedOutlets = this.editCaterer.catererOutlets;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n\r\n //this.deliveryService.getCatererInfosByFilter(filter).subscribe(results => {\r\n // this.outlets = results.pagedData;\r\n \r\n // this.outlets.map(cg => {\r\n // if (this.editCaterer.catererOutlets && typeof (this.editCaterer.catererOutlets) != typeof (undefined)) {\r\n // let catererOutlet = this.editCaterer.catererOutlets.find(item => item.outletId == cg.id);\r\n // if (catererOutlet) {\r\n // cg.status = catererOutlet.status;\r\n // }\r\n // }\r\n // });\r\n \r\n\r\n // this.caterersCache = this.caterers;\r\n\r\n //}, error => { });\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n getOutletProfiles() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n\r\n this.deliveryService.getOutletProfilesByFilter(filter)\r\n .subscribe(results => {\r\n this.outletProfiles = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlet profiles.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n approve(row) {\r\n if (row && row.outletProfileId) {\r\n this.deliveryService.requestCaterer(row.catererInfoId, row.outletId, 'APPROVED', row.isRsp, row.outletProfileId).subscribe(results => {\r\n if (results.isSuccess) {\r\n row.status = 'APPROVED';\r\n }\r\n }, error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Request Error\", `An error occured while requesting the caterer.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n } else {\r\n row.showValidationErrors = true;\r\n }\r\n }\r\n\r\n reject(row) {\r\n row.showValidationErrors = false;\r\n this.deliveryService.requestCaterer(row.catererInfoId, row.outletId, 'REJECTED', row.isRsp, null).subscribe(results => {\r\n if (results.isSuccess) {\r\n row.status = 'REJECTED';\r\n }\r\n }, error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Request Error\", `An error occured while requesting the caterer.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n }\r\n\r\n outletProfileByCaterer(row) {\r\n return this.outletProfiles ? this.outletProfiles.filter(e => e.catererId == row.catererInfoId) : [];\r\n }\r\n\r\n //onSearchChanged(value: string) {\r\n // this.outlets = this.caterersCache.filter(r => Utilities.searchArray(value, false, r.name));\r\n //}\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jbGFzcy1iYXRjaC9jbGFzcy1iYXRjaC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jbGFzcy1iYXRjaC9jbGFzcy1iYXRjaC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ClassBatch } from 'src/app/models/meal-order/class-batch.model';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\n\r\n\r\n@Component({\r\n selector: 'class-batch-editor',\r\n templateUrl: './class-batch-editor.component.html',\r\n styleUrls: ['./class-batch-editor.component.css']\r\n})\r\nexport class ClassBatchEditorComponent {\r\n\r\n private isNewClassBatch = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingClassBatchName: string;\r\n private classBatchEdit: ClassBatch = new ClassBatch();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private classService: ClassService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.classBatch) != typeof (undefined)) {\r\n if (data.classBatch.id) {\r\n this.editClassBatch(data.classBatch);\r\n } else {\r\n this.newClassBatch();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.classBatchEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewClassBatch) {\r\n this.classService.newClassBatch(this.classBatchEdit).subscribe(classBatch => this.saveSuccessHelper(classBatch), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.classService.updateClassBatch(this.classBatchEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(classBatch?: ClassBatch) {\r\n if (classBatch)\r\n Object.assign(this.classBatchEdit, classBatch);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewClassBatch)\r\n this.alertService.showMessage(\"Success\", `Class Batch \\\"${this.classBatchEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to class Batch \\\"${this.classBatchEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.classBatchEdit = new ClassBatch();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewClassBatch && this.accountService.currentUser.facilities.some(r => r == this.editingClassBatchName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.classBatchEdit = new ClassBatch();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newClassBatch() {\r\n this.isNewClassBatch = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingClassBatchName = null;\r\n this.selectedValues = {};\r\n this.classBatchEdit = new ClassBatch();\r\n\r\n return this.classBatchEdit;\r\n }\r\n\r\n editClassBatch(classBatch: ClassBatch) {\r\n if (classBatch) {\r\n this.isNewClassBatch = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingClassBatchName = classBatch.name;\r\n this.selectedValues = {};\r\n this.classBatchEdit = new ClassBatch();\r\n Object.assign(this.classBatchEdit, classBatch);\r\n\r\n return this.classBatchEdit;\r\n }\r\n else {\r\n return this.newClassBatch();\r\n }\r\n }\r\n\r\n get canManageClassBatches() {\r\n return true; //this.accountService.userHasPermission(Permission.manageClassBatchesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jbGFzcy1iYXRjaC9jbGFzcy1iYXRjaGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2NsYXNzLWJhdGNoL2NsYXNzLWJhdGNoZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Class Batches

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ClassBatch } from 'src/app/models/meal-order/class-batch.model';\r\nimport { ClassBatchEditorComponent } from './class-batch-editor.component';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\n\r\n\r\n@Component({\r\n selector: 'class-batches-management',\r\n templateUrl: './class-batches-management.component.html',\r\n styleUrls: ['./class-batches-management.component.css']\r\n})\r\nexport class ClassBatchesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: ClassBatch[] = [];\r\n rowsCache: ClassBatch[] = [];\r\n allPermissions: Permission[] = [];\r\n editedClassBatch: ClassBatch;\r\n sourceClassBatch: ClassBatch;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() outletId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('classBatchEditor')\r\n classBatchEditor: ClassBatchEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private classService: ClassService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(classBatch: ClassBatch): void {\r\n const dialogRef = this.dialog.open(ClassBatchEditorComponent, {\r\n data: { header: this.header, classBatch: classBatch },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: gT('common.Name'), width: 200 },\r\n { prop: 'year', name: 'Year', width: 200 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.classService.getClassBatchesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let classBatches = results.pagedData;\r\n\r\n classBatches.forEach((classBatch, index, classBatches) => {\r\n (classBatch).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...classBatches];\r\n this.rows = classBatches;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newClassBatch() {\r\n this.header = 'New Class Batch';\r\n this.editedClassBatch = new ClassBatch();\r\n this.openDialog(this.editedClassBatch);\r\n }\r\n\r\n\r\n editClassBatch(row: ClassBatch) {\r\n this.editedClassBatch = row;\r\n this.header = 'Edit Class Batch';\r\n this.openDialog(this.editedClassBatch);\r\n }\r\n\r\n deleteClassBatch(row: ClassBatch) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" class batch?', DialogType.confirm, () => this.deleteClassBatchHelper(row));\r\n }\r\n\r\n\r\n deleteClassBatchHelper(row: ClassBatch) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.classService.deleteClassBatch(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the class batch.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageClassBatches() {\r\n return true; //this.accountService.userHasPermission(Permission.manageClassBatchesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jbGFzcy1sZXZlbC9jbGFzcy1sZXZlbC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jbGFzcy1sZXZlbC9jbGFzcy1sZXZlbC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Outlet\\r\\n \\r\\n \\r\\n {{outlet.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
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ClassLevel } from 'src/app/models/meal-order/class-level.model';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\n\r\n\r\n@Component({\r\n selector: 'class-level-editor',\r\n templateUrl: './class-level-editor.component.html',\r\n styleUrls: ['./class-level-editor.component.css']\r\n})\r\nexport class ClassLevelEditorComponent {\r\n\r\n private isNewClassLevel = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingClassLevelName: string;\r\n private classLevelEdit: ClassLevel = new ClassLevel();\r\n private allPermissions: Permission[] = [];\r\n outlets = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private classService: ClassService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private deliveryService: DeliveryService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.classLevel) != typeof (undefined)) {\r\n if (data.classLevel.id) {\r\n this.editClassLevel(data.classLevel);\r\n } else {\r\n this.newClassLevel();\r\n }\r\n }\r\n\r\n this.getOutlets();\r\n }\r\n\r\n getOutlets() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getOutletsByFilter(filter)\r\n .subscribe(results => {\r\n this.outlets = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.classLevelEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewClassLevel) {\r\n this.classService.newClassLevel(this.classLevelEdit).subscribe(classLevel => this.saveSuccessHelper(classLevel), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.classService.updateClassLevel(this.classLevelEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(classLevel?: ClassLevel) {\r\n if (classLevel)\r\n Object.assign(this.classLevelEdit, classLevel);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewClassLevel)\r\n this.alertService.showMessage(\"Success\", `Class Level \\\"${this.classLevelEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to class Level \\\"${this.classLevelEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.classLevelEdit = new ClassLevel();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewClassLevel && this.accountService.currentUser.facilities.some(r => r == this.editingClassLevelName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.classLevelEdit = new ClassLevel();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newClassLevel() {\r\n this.isNewClassLevel = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingClassLevelName = null;\r\n this.selectedValues = {};\r\n this.classLevelEdit = new ClassLevel();\r\n\r\n return this.classLevelEdit;\r\n }\r\n\r\n editClassLevel(classLevel: ClassLevel) {\r\n if (classLevel) {\r\n this.isNewClassLevel = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingClassLevelName = classLevel.name;\r\n this.selectedValues = {};\r\n this.classLevelEdit = new ClassLevel();\r\n Object.assign(this.classLevelEdit, classLevel);\r\n\r\n return this.classLevelEdit;\r\n }\r\n else {\r\n return this.newClassLevel();\r\n }\r\n }\r\n\r\n get canManageClassLevels() {\r\n return true; //this.accountService.userHasPermission(Permission.manageClassLevelsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jbGFzcy1sZXZlbC9jbGFzcy1sZXZlbHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vY2xhc3MtbGV2ZWwvY2xhc3MtbGV2ZWxzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Class Levels

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ClassLevel } from 'src/app/models/meal-order/class-level.model';\r\nimport { ClassLevelEditorComponent } from './class-level-editor.component';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\n\r\n\r\n@Component({\r\n selector: 'class-levels-management',\r\n templateUrl: './class-levels-management.component.html',\r\n styleUrls: ['./class-levels-management.component.css']\r\n})\r\nexport class ClassLevelsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: ClassLevel[] = [];\r\n rowsCache: ClassLevel[] = [];\r\n allPermissions: Permission[] = [];\r\n editedClassLevel: ClassLevel;\r\n sourceClassLevel: ClassLevel;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() outletId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('classLevelEditor')\r\n classLevelEditor: ClassLevelEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private classService: ClassService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(classLevel: ClassLevel): void {\r\n const dialogRef = this.dialog.open(ClassLevelEditorComponent, {\r\n data: { header: this.header, classLevel: classLevel },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: gT('common.Name'), width: 200 },\r\n { prop: 'outletName', name: 'Outlet', width: 200 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.outletId ? '(OutletId)==' + this.outletId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.classService.getClassLevelsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let classLevels = results.pagedData;\r\n\r\n classLevels.forEach((classLevel, index, classLevels) => {\r\n (classLevel).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...classLevels];\r\n this.rows = classLevels;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newClassLevel() {\r\n this.header = 'New Class Level';\r\n this.editedClassLevel = new ClassLevel();\r\n this.openDialog(this.editedClassLevel);\r\n }\r\n\r\n\r\n editClassLevel(row: ClassLevel) {\r\n this.editedClassLevel = row;\r\n this.header = 'Edit Class Level';\r\n this.openDialog(this.editedClassLevel);\r\n }\r\n\r\n deleteClassLevel(row: ClassLevel) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" class level?', DialogType.confirm, () => this.deleteClassLevelHelper(row));\r\n }\r\n\r\n\r\n deleteClassLevelHelper(row: ClassLevel) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.classService.deleteClassLevel(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the class level.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageClassLevels() {\r\n return true; //this.accountService.userHasPermission(Permission.manageClassLevelsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jbGFzcy9jbGFzcy1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jbGFzcy9jbGFzcy1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Class Level\\r\\n \\r\\n \\r\\n {{classLevel.name}}\\r\\n \\r\\n \\r\\n Class Level is required\\r\\n \\r\\n \\r\\n \\r\\n Name is required\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Class } from 'src/app/models/meal-order/class.model';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'class-editor',\r\n templateUrl: './class-editor.component.html',\r\n styleUrls: ['./class-editor.component.css']\r\n})\r\nexport class ClassEditorComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n private isNewClass = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingClassName: string;\r\n private classEdit: Class = new Class();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public classLevels = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private classService: ClassService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.classModel) != typeof (undefined) && data.classModel.id) {\r\n this.editClass(data.classModel);\r\n } else {\r\n this.newClass();\r\n }\r\n\r\n this.getClassLevels();\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n getClassLevels() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.subscription.add(this.classService.getClassLevelsByFilter(filter)\r\n .subscribe(results => {\r\n this.classLevels = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving class levels.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n if (this.isNewClass) {\r\n this.classService.newClass(this.classEdit).subscribe(classModel => this.saveSuccessHelper(classModel), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.classService.updateClass(this.classEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private invalidate() {\r\n return false;\r\n }\r\n\r\n private saveSuccessHelper(classModel?: Class) {\r\n if (classModel)\r\n Object.assign(this.classEdit, classModel);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewClass)\r\n this.alertService.showMessage(\"Success\", `Class \\\"${this.classEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to class \\\"${this.classEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.classEdit = new Class();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewClass && this.accountService.currentUser.facilities.some(r => r == this.editingClassName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.classEdit = new Class();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newClass() {\r\n this.isNewClass = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingClassName = null;\r\n this.selectedValues = {};\r\n this.classEdit = new Class();\r\n\r\n return this.classEdit;\r\n }\r\n\r\n editClass(classModel: Class) {\r\n if (classModel) {\r\n this.isNewClass = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingClassName = classModel.name;\r\n this.selectedValues = {};\r\n this.classEdit = new Class();\r\n Object.assign(this.classEdit, classModel);\r\n\r\n return this.classEdit;\r\n }\r\n else {\r\n return this.newClass();\r\n }\r\n }\r\n\r\n get canManageClasses() {\r\n return true; //this.accountService.userHasPermission(Permission.manageClassesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jbGFzcy9jbGFzc2VzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2NsYXNzL2NsYXNzZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Classes

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Class } from 'src/app/models/meal-order/class.model';\r\nimport { ClassEditorComponent } from './class-editor.component';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\n\r\n\r\n@Component({\r\n selector: 'classes-management',\r\n templateUrl: './classes-management.component.html',\r\n styleUrls: ['./classes-management.component.css']\r\n})\r\nexport class ClassesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Class[] = [];\r\n rowsCache: Class[] = [];\r\n allPermissions: Permission[] = [];\r\n editedClass: Class;\r\n sourceClass: Class;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() outletId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('classModelEditor')\r\n classModelEditor: ClassEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private classService: ClassService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(classModel: Class): void {\r\n const dialogRef = this.dialog.open(ClassEditorComponent, {\r\n data: { header: this.header, classModel: classModel },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: gT('common.Name'), width: 200 },\r\n { prop: 'classLevelName', name: 'Class Level', width: 200 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.outletId ? '(classOutletId)==' + this.outletId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.classService.getClassesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let classModels = results.pagedData;\r\n\r\n classModels.forEach((classModel, index, classModels) => {\r\n (classModel).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...classModels];\r\n this.rows = classModels;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newClass() {\r\n this.header = 'New Class Level';\r\n this.editedClass = new Class();\r\n this.openDialog(this.editedClass);\r\n }\r\n\r\n\r\n editClass(row: Class) {\r\n this.editedClass = row;\r\n this.header = 'Edit Class Level';\r\n this.openDialog(this.editedClass);\r\n }\r\n\r\n deleteClass(row: Class) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" class level?', DialogType.confirm, () => this.deleteClassHelper(row));\r\n }\r\n\r\n\r\n deleteClassHelper(row: Class) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.classService.deleteClass(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the class level.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageClasses() {\r\n return true; //this.accountService.userHasPermission(Permission.manageClassesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jb250YWN0LXVzLWRldGFpbC9jb250YWN0LXVzLWRldGFpbC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2NvbnRhY3QtdXMtZGV0YWlsL2NvbnRhY3QtdXMtZGV0YWlsLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Subject\\r\\n \\r\\n \\r\\n {{contactUsSubject.name}}\\r\\n \\r\\n \\r\\n Subject is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { ContactUsDetail } from 'src/app/models/meal-order/contact-us-subject.model';\r\nimport { EmailService } from 'src/app/services/meal-order/email.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'contact-us-detail-editor',\r\n templateUrl: './contact-us-detail-editor.component.html',\r\n styleUrls: ['./contact-us-detail-editor.component.css']\r\n})\r\nexport class ContactUsDetailEditorComponent {\r\n private subscription: Subscription = new Subscription();\r\n private isNewContactUsDetail = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingContactUsDetailCode: string;\r\n private contactUsDetailEdit: ContactUsDetail = new ContactUsDetail();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public contactUsSubjects = [];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private emailService: EmailService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.contactUsDetail) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.contactUsDetail.id) {\r\n this.editContactUsDetail(data.contactUsDetail);\r\n } else {\r\n this.newContactUsDetail();\r\n }\r\n }\r\n\r\n this.getContactUsSubjects();\r\n }\r\n\r\n getContactUsSubjects() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.subscription.add(this.emailService.getContactUsSubjectsByFilter(filter)\r\n .subscribe(results => {\r\n this.contactUsSubjects = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n\r\n if (this.isNewContactUsDetail) {\r\n this.emailService.newContactUsDetail(this.contactUsDetailEdit).subscribe(contactUsDetail => this.saveSuccessHelper(contactUsDetail), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.emailService.updateContactUsDetail(this.contactUsDetailEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(contactUsDetail?: ContactUsDetail) {\r\n if (contactUsDetail)\r\n Object.assign(this.contactUsDetailEdit, contactUsDetail);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewContactUsDetail)\r\n this.alertService.showMessage(\"Success\", `\\\"${this.contactUsDetailEdit.label}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.contactUsDetailEdit.label}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.contactUsDetailEdit = new ContactUsDetail();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewContactUsDetail && this.accountService.currentUser.facilities.some(r => r == this.editingContactUsDetailCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.contactUsDetailEdit = new ContactUsDetail();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newContactUsDetail() {\r\n this.isNewContactUsDetail = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingContactUsDetailCode = null;\r\n this.selectedValues = {};\r\n this.contactUsDetailEdit = new ContactUsDetail();\r\n return this.contactUsDetailEdit;\r\n }\r\n\r\n editContactUsDetail(contactUsDetail: ContactUsDetail) {\r\n if (contactUsDetail) {\r\n this.isNewContactUsDetail = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingContactUsDetailCode = contactUsDetail.label;\r\n this.selectedValues = {};\r\n this.contactUsDetailEdit = new ContactUsDetail();\r\n Object.assign(this.contactUsDetailEdit, contactUsDetail);\r\n\r\n return this.contactUsDetailEdit;\r\n }\r\n else {\r\n return this.newContactUsDetail();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageContactUsDetails() {\r\n return true; //this.accountService.userHasPermission(Permission.manageContactUsDetailsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jb250YWN0LXVzLWRldGFpbC9jb250YWN0LXVzLWRldGFpbHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jb250YWN0LXVzLWRldGFpbC9jb250YWN0LXVzLWRldGFpbHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Contact Us Details

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
{{row.isFixed ? \\\"% of the Total\\\": \\\"Fixed\\\" }}
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ContactUsDetailEditorComponent } from './contact-us-detail-editor.component';\r\nimport { EmailService } from 'src/app/services/meal-order/email.service';\r\nimport { ContactUsDetail } from 'src/app/models/meal-order/contact-us-subject.model';\r\n\r\n\r\n@Component({\r\n selector: 'contact-us-details-management',\r\n templateUrl: './contact-us-details-management.component.html',\r\n styleUrls: ['./contact-us-details-management.component.css']\r\n})\r\nexport class ContactUsDetailsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: ContactUsDetail[] = [];\r\n rowsCache: ContactUsDetail[] = [];\r\n allPermissions: Permission[] = [];\r\n editedContactUsDetail: ContactUsDetail;\r\n sourceContactUsDetail: ContactUsDetail;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('chargeByTemplate')\r\n chargeByTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: ContactUsDetailEditorComponent;\r\n\r\n @ViewChild('contactUsDetailsTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private emailService: EmailService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(contactUsDetail: ContactUsDetail): void {\r\n const dialogRef = this.dialog.open(ContactUsDetailEditorComponent, {\r\n data: { header: this.header, contactUsDetail: contactUsDetail },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'label';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'contactUsSubjectName', name: 'Subject' },\r\n { prop: 'contactUsSubjectDescription', name: 'Subject Desc' },\r\n { prop: 'label', name: 'Label' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Label)@=' + this.keyword;\r\n \r\n this.emailService.getContactUsDetailsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let contactUsDetails = results.pagedData;\r\n\r\n contactUsDetails.forEach((contactUsDetail, index, contactUsDetails) => {\r\n (contactUsDetail).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...contactUsDetails];\r\n this.rows = contactUsDetails;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newContactUsDetail() {\r\n this.header = 'New Contact Us Detail';\r\n this.editedContactUsDetail = new ContactUsDetail();\r\n this.openDialog(this.editedContactUsDetail);\r\n }\r\n\r\n\r\n editContactUsDetail(row: ContactUsDetail) {\r\n this.editedContactUsDetail = row;\r\n this.header = 'Edit Contact Us Detail';\r\n this.openDialog(this.editedContactUsDetail);\r\n }\r\n\r\n deleteContactUsDetail(row: ContactUsDetail) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.label + '\\\" ?', DialogType.confirm, () => this.deleteContactUsDetailHelper(row));\r\n }\r\n\r\n\r\n deleteContactUsDetailHelper(row: ContactUsDetail) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.emailService.deleteContactUsDetail(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageContactUsDetails() {\r\n return true;//this.accountService.userHasPermission(Permission.manageMOSOrderMgtContactUsDetailsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jb250YWN0LXVzLXN1YmplY3QvY29udGFjdC11cy1zdWJqZWN0LWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vY29udGFjdC11cy1zdWJqZWN0L2NvbnRhY3QtdXMtc3ViamVjdC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { EmailService } from '../../../services/meal-order/email.service';\r\nimport { ContactUsSubject } from 'src/app/models/meal-order/contact-us-subject.model';\r\n\r\n\r\n@Component({\r\n selector: 'contact-us-subject-editor',\r\n templateUrl: './contact-us-subject-editor.component.html',\r\n styleUrls: ['./contact-us-subject-editor.component.css']\r\n})\r\nexport class ContactUsSubjectEditorComponent {\r\n\r\n private isNewContactUsSubject = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingContactUsSubjectCode: string;\r\n private contactUsSubjectEdit: ContactUsSubject = new ContactUsSubject();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private emailService: EmailService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.contactUsSubject) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.contactUsSubject.id) {\r\n this.editContactUsSubject(data.contactUsSubject);\r\n } else {\r\n this.newContactUsSubject();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n\r\n if (this.isNewContactUsSubject) {\r\n this.emailService.newContactUsSubject(this.contactUsSubjectEdit).subscribe(contactUsSubject => this.saveSuccessHelper(contactUsSubject), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.emailService.updateContactUsSubject(this.contactUsSubjectEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(contactUsSubject?: ContactUsSubject) {\r\n if (contactUsSubject)\r\n Object.assign(this.contactUsSubjectEdit, contactUsSubject);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewContactUsSubject)\r\n this.alertService.showMessage(\"Success\", `\\\"${this.contactUsSubjectEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.contactUsSubjectEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.contactUsSubjectEdit = new ContactUsSubject();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewContactUsSubject && this.accountService.currentUser.facilities.some(r => r == this.editingContactUsSubjectCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.contactUsSubjectEdit = new ContactUsSubject();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newContactUsSubject() {\r\n this.isNewContactUsSubject = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingContactUsSubjectCode = null;\r\n this.selectedValues = {};\r\n this.contactUsSubjectEdit = new ContactUsSubject();\r\n return this.contactUsSubjectEdit;\r\n }\r\n\r\n editContactUsSubject(contactUsSubject: ContactUsSubject) {\r\n if (contactUsSubject) {\r\n this.isNewContactUsSubject = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingContactUsSubjectCode = contactUsSubject.name;\r\n this.selectedValues = {};\r\n this.contactUsSubjectEdit = new ContactUsSubject();\r\n Object.assign(this.contactUsSubjectEdit, contactUsSubject);\r\n\r\n return this.contactUsSubjectEdit;\r\n }\r\n else {\r\n return this.newContactUsSubject();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageContactUsSubjects() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMOSOrderMgtContactUsSubjectsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jb250YWN0LXVzLXN1YmplY3QvY29udGFjdC11cy1zdWJqZWN0cy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2NvbnRhY3QtdXMtc3ViamVjdC9jb250YWN0LXVzLXN1YmplY3RzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Contact Us Subjects

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ContactUsSubjectEditorComponent } from './contact-us-subject-editor.component';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { ContactUsSubject } from 'src/app/models/meal-order/contact-us-subject.model';\r\nimport { EmailService } from 'src/app/services/meal-order/email.service';\r\n\r\n\r\n@Component({\r\n selector: 'contact-us-subjects-management',\r\n templateUrl: './contact-us-subjects-management.component.html',\r\n styleUrls: ['./contact-us-subjects-management.component.css']\r\n})\r\nexport class ContactUsSubjectsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: ContactUsSubject[] = [];\r\n rowsCache: ContactUsSubject[] = [];\r\n allPermissions: Permission[] = [];\r\n editedContactUsSubject: ContactUsSubject;\r\n sourceContactUsSubject: ContactUsSubject;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: ContactUsSubjectEditorComponent;\r\n\r\n @ViewChild('contactUsSubjectsTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private emailService: EmailService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(contactUsSubject: ContactUsSubject): void {\r\n const dialogRef = this.dialog.open(ContactUsSubjectEditorComponent, {\r\n data: { header: this.header, contactUsSubject: contactUsSubject },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Name' },\r\n { prop: 'description', name: 'Description' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.emailService.getContactUsSubjectsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let contactUsSubjects = results.pagedData;\r\n\r\n contactUsSubjects.forEach((contactUsSubject, index, contactUsSubjects) => {\r\n (contactUsSubject).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...contactUsSubjects];\r\n this.rows = contactUsSubjects;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newContactUsSubject() {\r\n this.header = 'New Subject';\r\n this.editedContactUsSubject = new ContactUsSubject();\r\n this.openDialog(this.editedContactUsSubject);\r\n }\r\n\r\n\r\n editContactUsSubject(row: ContactUsSubject) {\r\n this.editedContactUsSubject = row;\r\n this.header = 'Edit Subject';\r\n this.openDialog(this.editedContactUsSubject);\r\n }\r\n\r\n deleteContactUsSubject(row: ContactUsSubject) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" subject?', DialogType.confirm, () => this.deleteContactUsSubjectHelper(row));\r\n }\r\n\r\n\r\n deleteContactUsSubjectHelper(row: ContactUsSubject) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.emailService.deleteContactUsSubject(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the subject.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageContactUsSubjects() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMOSOrderMgtContactUsSubjectsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jdWlzaW5lL2N1aXNpbmUtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVksRUFBRSx3Q0FBd0M7RUFDdEQsV0FBVyxFQUFFLHdDQUF3QztFQUNyRCxzQkFBc0IsRUFBRSw2Q0FBNkM7RUFDckUscUJBQXFCLEVBQUUsNkNBQTZDO0FBQ3RFIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jdWlzaW5lL2N1aXNpbmUtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJhZGlvLXJpcHBsZSB7XHJcbiAgaGVpZ2h0OiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHdpZHRoOiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Cuisine } from 'src/app/models/meal-order/cuisine.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { DishService } from '../../../services/meal-order/dish.service';\r\n\r\n\r\n@Component({\r\n selector: 'cuisine-editor',\r\n templateUrl: './cuisine-editor.component.html',\r\n styleUrls: ['./cuisine-editor.component.css']\r\n})\r\nexport class CuisineEditorComponent {\r\n\r\n private isNewCuisine = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingCuisineCode: string;\r\n private cuisineEdit: Cuisine = new Cuisine();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private dishService: DishService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.cuisine) != typeof (undefined)) {\r\n if (data.cuisine.id) {\r\n this.editCuisine(data.cuisine);\r\n } else {\r\n this.newCuisine();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n\r\n if (this.isNewCuisine) {\r\n this.dishService.newCuisine(this.cuisineEdit).subscribe(cuisine => this.saveSuccessHelper(cuisine), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.dishService.updateCuisine(this.cuisineEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(cuisine?: Cuisine) {\r\n if (cuisine)\r\n Object.assign(this.cuisineEdit, cuisine);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewCuisine)\r\n this.alertService.showMessage(\"Success\", `\\\"${this.cuisineEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.cuisineEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.cuisineEdit = new Cuisine();\r\n this.resetForm();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.cuisineEdit = new Cuisine();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newCuisine() {\r\n this.isNewCuisine = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingCuisineCode = null;\r\n this.selectedValues = {};\r\n this.cuisineEdit = new Cuisine();\r\n\r\n return this.cuisineEdit;\r\n }\r\n\r\n editCuisine(cuisine: Cuisine) {\r\n if (cuisine) {\r\n this.isNewCuisine = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingCuisineCode = cuisine.name;\r\n this.selectedValues = {};\r\n this.cuisineEdit = new Cuisine();\r\n Object.assign(this.cuisineEdit, cuisine);\r\n\r\n return this.cuisineEdit;\r\n }\r\n else {\r\n return this.newCuisine();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageCuisines() {\r\n return true; //this.accountService.userHasPermission(Permission.manageCuisinesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9jdWlzaW5lL2N1aXNpbmVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vY3Vpc2luZS9jdWlzaW5lcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbi5hY3RpdmUge1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Cuisines

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Cuisine } from 'src/app/models/meal-order/cuisine.model';\r\nimport { CuisineEditorComponent } from './cuisine-editor.component';\r\nimport { DishService } from '../../../services/meal-order/dish.service';\r\n\r\n\r\n@Component({\r\n selector: 'cuisines-management',\r\n templateUrl: './cuisines-management.component.html',\r\n styleUrls: ['./cuisines-management.component.css']\r\n})\r\nexport class CuisinesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Cuisine[] = [];\r\n rowsCache: Cuisine[] = [];\r\n allPermissions: Permission[] = [];\r\n editedCuisine: Cuisine;\r\n sourceCuisine: Cuisine;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('cuisineEditor')\r\n cuisineEditor: CuisineEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private dishService: DishService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(cuisine: Cuisine): void {\r\n const dialogRef = this.dialog.open(CuisineEditorComponent, {\r\n data: { header: this.header, cuisine: cuisine },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Name' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.dishService.getCuisinesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let cuisines = results.pagedData;\r\n\r\n cuisines.forEach((cuisine, index, cuisines) => {\r\n (cuisine).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...cuisines];\r\n this.rows = cuisines;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newCuisine() {\r\n this.header = 'New Cuisine';\r\n this.editedCuisine = new Cuisine();\r\n this.openDialog(this.editedCuisine);\r\n }\r\n\r\n\r\n editCuisine(row: Cuisine) {\r\n this.editedCuisine = row;\r\n this.header = 'Edit Cuisine';\r\n this.openDialog(this.editedCuisine);\r\n }\r\n\r\n deleteCuisine(row: Cuisine) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\"?', DialogType.confirm, () => this.deleteCuisineHelper(row));\r\n }\r\n\r\n\r\n deleteCuisineHelper(row: Cuisine) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.dishService.deleteCuisine(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the cuisine.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageCuisines() {\r\n return true; //this.accountService.userHasPermission(Permission.manageCuisinesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kZWxpdmVyeS1vcmRlci9kZWxpdmVyeS1vcmRlci1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2RlbGl2ZXJ5LW9yZGVyL2RlbGl2ZXJ5LW9yZGVyLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n From: \\r\\n \\r\\n \\r\\n {{storeFrom.name}}\\r\\n \\r\\n \\r\\n Store from is required\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n To: \\r\\n \\r\\n \\r\\n {{storeTo.name}}\\r\\n \\r\\n \\r\\n Store to is required\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n

Details

\\r\\n\\r\\n
\\r\\n \\r\\n Scan Carton Asset TID\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Carton Asset {{i + 1}}\\r\\n \\r\\n \\r\\n {{cartonAsset.code}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Status\\r\\n \\r\\n \\r\\n {{status.status}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Remove\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Bento Asset {{j + 1}}\\r\\n \\r\\n \\r\\n {{bentoAsset.code}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Dish\\r\\n \\r\\n \\r\\n {{dish.code}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Remove\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n Add Bento\\r\\n
\\r\\n
\\r\\n\\r\\n Add Detail\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { DeliveryOrder } from 'src/app/models/meal-order/delivery-order.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CatererInfo } from '../../../models/meal-order/caterer-info.model';\r\nimport { DishService } from '../../../services/meal-order/dish.service';\r\nimport { StoreInfo } from '../../../models/meal-order/store-info.model';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n selector: 'delivery-order-editor',\r\n templateUrl: './delivery-order-editor.component.html',\r\n styleUrls: ['./delivery-order-editor.component.css']\r\n})\r\nexport class DeliveryOrderEditorComponent {\r\n\r\n private isNewDeliveryOrder = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingDeliveryOrderCode: string;\r\n private deliveryOrderEdit: DeliveryOrder = new DeliveryOrder();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n private catererInfos: CatererInfo[] = [];\r\n private storeFroms: StoreInfo[] = [];\r\n private storeTos: StoreInfo[] = [];\r\n private storeCode = \"\";\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n cartonAssets: any;\r\n trackingStatuss: any;\r\n bentoAssets: any;\r\n dishs: any;\r\n\r\n\r\n cartonTimeout: NodeJS.Timer;\r\n cartonAssetCode: string;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private dishService: DishService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.deliveryOrder) != typeof (undefined)) {\r\n if (data.deliveryOrder.id) {\r\n this.editDeliveryOrder(data.deliveryOrder);\r\n } else {\r\n this.newDeliveryOrder();\r\n }\r\n }\r\n\r\n this.getCatererInfos();\r\n this.getCartonAssets();\r\n this.getTrackingStatuss();\r\n this.getBentoAssets();\r\n this.getDishs();\r\n this.getStoreFroms();\r\n this.getStoreTos();\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.deliveryOrderEdit.institutionId = this.accountService.currentUser.institutionId;\r\n var fromStoreCode = \"\";\r\n this.storeFroms.forEach(sf => {\r\n if (sf.id == this.deliveryOrderEdit.fromStoreId) {\r\n fromStoreCode = sf.code;\r\n }\r\n });\r\n if (!this.deliveryOrderEdit.doNumber || this.deliveryOrderEdit.doNumber == '') {\r\n this.deliveryOrderEdit.doNumber = fromStoreCode + moment().format('YYMMDDHHmm')\r\n }\r\n console.log(this.deliveryOrderEdit);\r\n let selectedPeriods = this.periods.filter(f => f.checked);\r\n \r\n\r\n if (this.isNewDeliveryOrder) {\r\n this.deliveryService.newDeliveryOrder(this.deliveryOrderEdit).subscribe(deliveryOrder => this.saveSuccessHelper(deliveryOrder), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateDeliveryOrder(this.deliveryOrderEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(deliveryOrder?: DeliveryOrder) {\r\n if (deliveryOrder)\r\n Object.assign(this.deliveryOrderEdit, deliveryOrder);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewDeliveryOrder)\r\n this.alertService.showMessage(\"Success\", `Delivery order \\\"${this.deliveryOrderEdit.doNumber}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Delivery order \\\"${this.deliveryOrderEdit.doNumber}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.deliveryOrderEdit = new DeliveryOrder();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewDeliveryOrder && this.accountService.currentUser.facilities.some(r => r == this.editingDeliveryOrderCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.deliveryOrderEdit = new DeliveryOrder();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newDeliveryOrder() {\r\n this.isNewDeliveryOrder = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDeliveryOrderCode = null;\r\n this.selectedValues = {};\r\n this.deliveryOrderEdit = new DeliveryOrder();\r\n\r\n return this.deliveryOrderEdit;\r\n }\r\n\r\n editDeliveryOrder(deliveryOrder: DeliveryOrder) {\r\n if (deliveryOrder) {\r\n this.isNewDeliveryOrder = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDeliveryOrderCode = deliveryOrder.doNumber;\r\n this.selectedValues = {};\r\n this.deliveryOrderEdit = new DeliveryOrder();\r\n Object.assign(this.deliveryOrderEdit, deliveryOrder);\r\n\r\n return this.deliveryOrderEdit;\r\n }\r\n else {\r\n return this.newDeliveryOrder();\r\n }\r\n }\r\n\r\n cartonChanged() {\r\n clearTimeout(this.cartonTimeout)\r\n this.cartonTimeout = setTimeout(() => {\r\n this.addCarton();\r\n this.cartonAssetCode = '';\r\n }, 500);\r\n }\r\n\r\n addCarton() {\r\n let carton = this.cartonAssets.find(x => x.code === this.cartonAssetCode);\r\n\r\n if (!carton) {\r\n alert(\"No match carton asset TID\");\r\n return;\r\n }\r\n\r\n if (!this.deliveryOrderEdit.deliveryDetails) this.deliveryOrderEdit.deliveryDetails = [];\r\n\r\n let cartondetail = this.deliveryOrderEdit.deliveryDetails.find(x => x.cartonAssetId === carton.id);\r\n if (!cartondetail) {\r\n cartondetail = {\r\n isActive: 1,\r\n cartonAssetId: carton.id\r\n };\r\n\r\n this.deliveryOrderEdit.deliveryDetails.push(cartondetail);\r\n }\r\n\r\n for (let bento of carton.bentoAssets) {\r\n if (!cartondetail.deliveryBentos) cartondetail.deliveryBentos = [];\r\n\r\n let bentodetail = cartondetail.deliveryBentos.find(x => x.bentoAssetId === bento.id);\r\n if (!bentodetail) {\r\n bentodetail = {\r\n isActive: 1,\r\n bentoAssetId: bento.id\r\n }\r\n\r\n cartondetail.deliveryBentos.push(bentodetail);\r\n }\r\n\r\n bentodetail.dishId = bento.dishId;\r\n }\r\n }\r\n\r\n getCatererInfos() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getCatererInfosByFilter(filter)\r\n .subscribe(results => {\r\n this.catererInfos = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving caterers.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getStoreFroms() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(storeType)@=Kitchen';\r\n this.deliveryService.getStoreInfosByFilter(filter)\r\n .subscribe(results => {\r\n this.storeFroms = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving store info.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getStoreTos() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(storeType)@=Inventory';\r\n this.deliveryService.getStoreInfosByFilter(filter)\r\n .subscribe(results => {\r\n this.storeTos = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving store info types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getCartonAssets() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getCartonAssetsByFilter(filter)\r\n .subscribe(results => {\r\n this.cartonAssets = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving carton assets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getTrackingStatuss() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getTrackingStatussByFilter(filter)\r\n .subscribe(results => {\r\n this.trackingStatuss = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving tracking status.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getBentoAssets() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getBentoAssetsByFilter(filter)\r\n .subscribe(results => {\r\n this.bentoAssets = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving bento assets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getDishs() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishs = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishs.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n addDetail(order) {\r\n if (!order.deliveryDetails) order.deliveryDetails = [];\r\n\r\n order.deliveryDetails.push({ isActive: 1 });\r\n }\r\n\r\n addBento(detail) {\r\n if (!detail.deliveryBentos) detail.deliveryBentos = [];\r\n\r\n detail.deliveryBentos.push({ isActive: 1 });\r\n }\r\n\r\n\r\n\r\n get canManageDeliveryOrders() {\r\n return true; //this.accountService.userHasPermission(Permission.manageDeliveryOrdersPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kZWxpdmVyeS1vcmRlci9kZWxpdmVyeS1vcmRlcnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kZWxpdmVyeS1vcmRlci9kZWxpdmVyeS1vcmRlcnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Delivery Orders

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{(row.completed ? 'Closed' : 'Open')}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { DeliveryOrder } from 'src/app/models/meal-order/delivery-order.model';\r\nimport { DeliveryOrderEditorComponent } from './delivery-order-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'delivery-orders-management',\r\n templateUrl: './delivery-orders-management.component.html',\r\n styleUrls: ['./delivery-orders-management.component.css']\r\n})\r\nexport class DeliveryOrdersManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: DeliveryOrder[] = [];\r\n rowsCache: DeliveryOrder[] = [];\r\n allPermissions: Permission[] = [];\r\n editedDeliveryOrder: DeliveryOrder;\r\n sourceDeliveryOrder: DeliveryOrder;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('fasTemplate')\r\n fasTemplate: TemplateRef;\r\n\r\n @ViewChild('deliveryOrderEditor')\r\n deliveryOrderEditor: DeliveryOrderEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(deliveryOrder: DeliveryOrder): void {\r\n const dialogRef = this.dialog.open(DeliveryOrderEditorComponent, {\r\n data: { header: this.header, deliveryOrder: deliveryOrder },\r\n width: '90vw',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'doNumber';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'doNumber', name: 'DO Number' },\r\n { prop: 'fromStoreName', name: 'From' },\r\n { prop: 'toStoreName', name: 'To' },\r\n { name: 'Status', cellTemplate: this.fasTemplate },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(DONumber)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deliveryService.getDeliveryOrdersByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let deliveryOrders = results.pagedData;\r\n\r\n deliveryOrders.forEach((deliveryOrder, index, deliveryOrders) => {\r\n (deliveryOrder).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...deliveryOrders];\r\n this.rows = deliveryOrders;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newDeliveryOrder() {\r\n this.header = 'New Delivery order';\r\n this.editedDeliveryOrder = new DeliveryOrder();\r\n this.openDialog(this.editedDeliveryOrder);\r\n }\r\n\r\n\r\n editDeliveryOrder(row: DeliveryOrder) {\r\n this.editedDeliveryOrder = row;\r\n this.header = 'Edit Delivery order';\r\n this.openDialog(this.editedDeliveryOrder);\r\n }\r\n\r\n deleteDeliveryOrder(row: DeliveryOrder) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.doNumber + '\\\" Delivery order?', DialogType.confirm, () => this.deleteDeliveryOrderHelper(row));\r\n }\r\n\r\n\r\n deleteDeliveryOrderHelper(row: DeliveryOrder) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteDeliveryOrder(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Delivery order.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageDeliveryOrders() {\r\n return true; //this.accountService.userHasPermission(Permission.manageDeliveryOrdersPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.list {\\r\\n padding: 0\\r\\n}\\r\\n\\r\\n.list .mat-nav-list .mat-list-item {\\r\\n padding: 0 !important;\\r\\n height: 28px !important;\\r\\n }\\r\\n\\r\\n:host ::ng-deep .mat-list-item-content {\\r\\n padding: 0 !important;\\r\\n height: 28px !important;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-list-base .mat-list-item .mat-list-item-content, .mat-list-base .mat-list-option .mat-list-item-content {\\r\\n height: 28px !important;\\r\\n padding: 0 !important;\\r\\n}\\r\\n\\r\\n.mat-list-base .mat-list-item{\\r\\n font-size:12px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoLWN5Y2xlL2Rpc2gtY3ljbGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVksRUFBRSx3Q0FBd0M7RUFDdEQsV0FBVyxFQUFFLHdDQUF3QztFQUNyRCxzQkFBc0IsRUFBRSw2Q0FBNkM7RUFDckUscUJBQXFCLEVBQUUsNkNBQTZDO0FBQ3RFOztBQUVBO0VBQ0U7QUFDRjs7QUFFRTtJQUNFLHFCQUFxQjtJQUNyQix1QkFBdUI7RUFDekI7O0FBRUY7RUFDRSxxQkFBcUI7RUFDckIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2Rpc2gtY3ljbGUvZGlzaC1jeWNsZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcblxyXG4ubGlzdCB7XHJcbiAgcGFkZGluZzogMFxyXG59XHJcblxyXG4gIC5saXN0IC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xyXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICBoZWlnaHQ6IDI4cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQsIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XHJcbiAgaGVpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbXtcclxuICBmb250LXNpemU6MTJweDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
General Information
\\r\\n \\r\\n Outlet Profile\\r\\n 0\\\" id=\\\"outletProfileId\\\" name=\\\"outletProfileId\\\" [(ngModel)]=\\\"dishCycleEdit.outletProfileId\\\" #outletProfileId=\\\"ngModel\\\" required (selectionChange)=\\\"onOutletChange($event.value)\\\">\\r\\n \\r\\n {{outletProfile.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Type\\r\\n \\r\\n \\r\\n {{cycleType}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Dish Type\\r\\n \\r\\n \\r\\n {{dishType.name}}\\r\\n \\r\\n \\r\\n Dish Type is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Meal Type\\r\\n \\r\\n \\r\\n {{mealType.name}} - ${{mealType.price}}\\r\\n \\r\\n \\r\\n \\r\\n
Meal Periods
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Schedules
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
{{set.label}}
\\r\\n \\r\\n \\r\\n \\r\\n {{dishCycle.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{sequence.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Price\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Day {{schedule.day}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{dish.label}} - {{dish.code}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{dish.dishCycleLabel}}\\r\\n {{dish.dishLabel}} - {{dish.dishCode}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{dish.dishLabel}} - {{dish.dishCode}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ViewEncapsulation, LOCALE_ID } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { DateAdapter, MatDatepickerInputEvent, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport * as moment from 'moment';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { DishCycle, DishCyclePeriod, DishCycleSchedule, DishCycleScheduleDetail, DishCycleScheduleDetailMenu, DishCycleScheduleSet } from 'src/app/models/meal-order/dish-cycle';\r\nimport { Dish } from 'src/app/models/meal-order/dish.model';\r\nimport { DishType } from 'src/app/models/meal-order/dish-type.model';\r\nimport { MealType } from 'src/app/models/meal-order/meal-type.model';\r\nimport { FormControl } from '@angular/forms';\r\n\r\nexport const CUSTOM_DATE_FORMAT = {\r\n parse: {\r\n dateInput: 'DD/MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'DD/MM/YYYY',\r\n monthYearLabel: 'MMMM YYYY',\r\n dateA11yLabel: 'DD/MM/YYYY',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n\r\n@Component({\r\n selector: 'dish-cycle-editor',\r\n templateUrl: './dish-cycle-editor.component.html',\r\n styleUrls: ['./dish-cycle-editor.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n \r\n { provide: MAT_DATE_FORMATS, useValue: CUSTOM_DATE_FORMAT },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\nexport class DishCycleEditorComponent {\r\n\r\n private isNewDishCycle = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingDishCycleCode: string;\r\n private dishCycleEdit: DishCycle = new DishCycle();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n private outletProfiles = [];\r\n private dishes: Dish[] = [];\r\n private dishTypes: DishType[] = [];\r\n private cycleTypes = ['Ala Carte', 'Meal Credit', 'Snacks', 'Light Meal', 'Full Meal', 'Premium Full Meal'];\r\n private mealCycleTypes = ['Snacks', 'Light Meal', 'Full Meal', 'Premium Full Meal'];\r\n private dishCycles: DishCycle[] = [];\r\n private mealTypes: MealType[] = [];\r\n public searchForm: FormControl = new FormControl();\r\n start = new Date();\r\n end = new Date();\r\n\r\n private sets = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public catererId: string;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private dishService: DishService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService, private deliveryService: DeliveryService,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dateAdapter: DateAdapter ) {\r\n this.dateAdapter.setLocale('en-SG');\r\n if (typeof (data.dishCycle) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.dishCycle.id) {\r\n this.editDishCycle(data.dishCycle);\r\n this.generateScheduleDetails();\r\n } else {\r\n this.newDishCycle();\r\n }\r\n }\r\n this.getDishTypes();\r\n //this.getPeriods();\r\n this.getDishCyles();\r\n this.getMealTypes();\r\n this.getOutletProfiles();\r\n //this.getMealPeriods();\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n this.dishCycleEdit.startDate = new Date(event.value);\r\n }\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n this.dishCycleEdit.endDate = new Date(event.value);\r\n }\r\n }\r\n\r\n addSchedule() {\r\n //if (!this.dishCycleEdit.schedules) { this.dishCycleEdit.schedules = []; }\r\n //let d = this.dishCycleEdit.schedules.length + 1;\r\n //let de: DishCycleScheduleDetail[] = [];\r\n //this.periods.forEach((p, index, ps) => {\r\n // let pd = new DishCycleSchedulePeriod();\r\n // pd.mealPeriodId = p.id;\r\n // pd.dishes = [];\r\n // dayPeriods.push(pd);\r\n //});\r\n\r\n //let schedule = new DishCycleSchedule();\r\n //schedule.day = d;\r\n //schedule.dishCycleId = this.dishCycleEdit.id;\r\n //schedule.periods = dayPeriods;\r\n //this.dishCycleEdit.schedules.push(schedule);\r\n }\r\n\r\n deleteSchedule(day) {\r\n let indx = this.dishCycleEdit.schedules.findIndex(e => e.day == day);\r\n if (indx > -1) {\r\n this.dishCycleEdit.schedules.splice(indx, 1);\r\n //rearrange schedules\r\n this.dishCycleEdit.schedules.forEach((schedule, index, ps) => {\r\n schedule.day = index + 1;\r\n });\r\n }\r\n }\r\n\r\n addDish(detail: DishCycleScheduleDetail, m: any, schedule: DishCycleSchedule, cycle: DishCycle, isMeal: boolean) {\r\n let dish = new DishCycleScheduleDetailMenu();\r\n if (isMeal) {\r\n dish.dishCycleScheduleDetailId = detail.id;\r\n dish.dishId = m.dishId;\r\n dish.dishLabel = m.dishLabel;\r\n dish.dishCode = m.dishCode;\r\n if (cycle) {\r\n dish.dishCycleId = cycle.id;\r\n dish.dishCycleLabel = cycle.label;\r\n }\r\n \r\n } else {\r\n dish.dishCycleScheduleDetailId = detail.id;\r\n dish.dishId = m.id;\r\n dish.dishLabel = m.label;\r\n dish.dishCode = m.code;\r\n }\r\n\r\n if (!detail.menus) detail.menus = [];\r\n detail.menus.push(dish);\r\n\r\n detail.selectedDish = null;\r\n detail.selectedCycle = null;\r\n }\r\n\r\n removeDish(detail: DishCycleScheduleDetail, id: string, isMeal: boolean) {\r\n let indx = isMeal ? detail.menus.findIndex(f => f.dishCycleId == id) : detail.menus.findIndex(f => f.dishId == id);\r\n if (indx > -1) {\r\n detail.menus.splice(indx, 1);\r\n }\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.renameSetLabels();\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n let selectedMealPeriods = this.periods.filter(f => f.checked);\r\n this.dishCycleEdit.dishCyclePeriods = [];\r\n this.periods.forEach((p, index, ps) => {\r\n if (p.checked) {\r\n let period = new DishCyclePeriod();\r\n period.dishCycleId = this.dishCycleEdit.id;\r\n period.mealPeriodId = p.id;\r\n this.dishCycleEdit.dishCyclePeriods.push(period);\r\n }\r\n\r\n });\r\n\r\n\r\n console.log(this.dishCycleEdit.schedules);\r\n if (this.isNewDishCycle) {\r\n this.dishService.newDishCycle(this.dishCycleEdit).subscribe(dishCycle => this.saveSuccessHelper(this.dishCycleEdit), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.dishService.updateDishCycle(this.dishCycleEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(dishCycle?: DishCycle) {\r\n if (dishCycle)\r\n Object.assign(this.dishCycleEdit, dishCycle);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewDishCycle)\r\n this.alertService.showMessage(\"Success\", `DishCycle \\\"${this.dishCycleEdit.label}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to dishCycle \\\"${this.dishCycleEdit.label}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.dishCycleEdit = new DishCycle();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewDishCycle && this.accountService.currentUser.facilities.some(r => r == this.editingDishCycleCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.dishCycleEdit = new DishCycle();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newDishCycle() {\r\n this.isNewDishCycle = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDishCycleCode = null;\r\n this.selectedValues = {};\r\n this.dishCycleEdit = new DishCycle();\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.dishCycleEdit.startDate = this.start;\r\n this.dishCycleEdit.endDate = this.end;\r\n this.dishCycleEdit.catererId = this.catererId;\r\n return this.dishCycleEdit;\r\n }\r\n\r\n editDishCycle(dishCycle: DishCycle) {\r\n if (dishCycle) {\r\n this.isNewDishCycle = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDishCycleCode = dishCycle.label;\r\n this.selectedValues = {};\r\n this.dishCycleEdit = new DishCycle();\r\n Object.assign(this.dishCycleEdit, dishCycle);\r\n this.start = this.dishCycleEdit.startDate;\r\n this.end = this.dishCycleEdit.endDate;\r\n return this.dishCycleEdit;\r\n }\r\n else {\r\n return this.newDishCycle();\r\n }\r\n\r\n \r\n }\r\n\r\n getDishTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.dishService.getDishTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishTypes = results.pagedData;\r\n this.getDishes();\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving records.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n });\r\n }\r\n\r\n getDishes() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n f = f + (this.dishCycleEdit.dishTypeId ? '(DishTypeId)==' + this.dishCycleEdit.dishTypeId + ',' : '');\r\n filter.filters = f + '(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishes = results.pagedData;\r\n //this.dishes.forEach((p, index, ps) => {\r\n // (p).checked = this.dishCycleEdit.schedules != null && this.dishCycleEdit.schedules.findIndex(f=> f.dishId == p.id) > -1;\r\n //});\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getPeriods(isClearValue: boolean, outletProfileId?: string) {\r\n if (outletProfileId) {\r\n //if (isClearValue) this.dishCycleEdit.outletProfileId = '';\r\n let filter = new Filter();\r\n filter.sorts = 'sequence';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true,(OutletProfileId)==' + outletProfileId;\r\n\r\n this.mealService.getMealPeriodsByFilter(filter)\r\n .subscribe(results => {\r\n this.periods = results.pagedData;\r\n this.periods.forEach((p, index, ps) => {\r\n (p).checked = this.dishCycleEdit.dishCyclePeriods != null && this.dishCycleEdit.dishCyclePeriods.findIndex(f => f.mealPeriodId == p.id) > -1;\r\n });\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving periods.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n })\r\n } else {\r\n\r\n }\r\n }\r\n\r\n getOutletProfiles() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.deliveryService.getOutletProfilesByFilter(filter)\r\n .subscribe(results => {\r\n this.outletProfiles = results.pagedData;\r\n this.getPeriods(false, this.dishCycleEdit.outletProfileId);\r\n //this.dishes.forEach((p, index, ps) => {\r\n // (p).checked = this.dishCycleEdit.schedules != null && this.dishCycleEdit.schedules.findIndex(f=> f.dishId == p.id) > -1;\r\n //});\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n //getMealPeriods() {\r\n // let filter = new Filter();\r\n // filter.filters = '(IsActive)==true';\r\n // this.mealService.getMealPeriodsByFilter(filter)\r\n // .subscribe(results => {\r\n // this.periods = results.pagedData;\r\n // this.periods.forEach((p, index, ps) => {\r\n // (p).checked = this.dishCycleEdit.dishCyclePeriods != null && this.dishCycleEdit.dishCyclePeriods.findIndex(f => f.mealPeriodId == p.id) > -1;\r\n // });\r\n // },\r\n // error => {\r\n // //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving cperiods.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n // })\r\n //}\r\n\r\n getDishCyles() {\r\n let filter = new Filter();\r\n filter.sorts = 'label';\r\n filter.filters = '(IsActive)==true,(OutletProfileId)==' + this.dishCycleEdit.outletProfileId;\r\n\r\n this.dishService.getDishCyclesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishCycles = results.pagedData;\r\n this.initiliaseSet();\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving periods.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n })\r\n }\r\n\r\n getMealTypes() {\r\n let filter = new Filter();\r\n filter.sorts = 'name';\r\n //let f = this.menuCycle.catererId ? '(CatererId)==' + this.menuCycle.catererId + ',' : '';\r\n filter.filters = '(MealTypeByOutletProfileId)==' + this.dishCycleEdit.outletProfileId + ',(IsActive)==true';\r\n //filter.filters = f + '(IsActive)==true';\r\n this.mealService.getMealTypesByFilter(filter).subscribe(results => {\r\n this.mealTypes = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getMealTypesByType(type) {\r\n return this.mealTypes ? this.mealTypes : [];\r\n }\r\n\r\n dishTypeChange(dishTypeId) {\r\n this.dishes = [];\r\n if (dishTypeId) {\r\n this.getDishes();\r\n this.generateSchedule(true);\r\n }\r\n }\r\n\r\n renameSetLabels() {\r\n if (this.dishCycleEdit.sets && this.dishCycleEdit.sets.length > 0 && !this.isMeal()) {\r\n this.dishCycleEdit.sets.forEach((set: DishCycleScheduleSet, i, arr) => {\r\n set.label = this.dishCycleEdit.label;\r\n });\r\n }\r\n }\r\n\r\n initiliaseSet() {\r\n if (!this.dishCycleEdit.sets || (this.dishCycleEdit.sets.length != this.dishCycleEdit.numOfSets)) {\r\n let sets = [];\r\n if (!this.dishCycleEdit.sets) this.dishCycleEdit.sets = [];\r\n for (var i = 1; i <= this.dishCycleEdit.numOfSets; i++) {\r\n var s = this.dishCycleEdit.sets.filter(e => e.sequence == i);\r\n if (s && s.length > 0) {\r\n sets.push(s[0]);\r\n } else {\r\n sets.push(new DishCycleScheduleSet(this.dishCycleEdit.id, i, this.dishCycleEdit.label));\r\n }\r\n }\r\n\r\n this.dishCycleEdit.sets = sets;\r\n } else {\r\n for (var x = 0; x <= this.dishCycleEdit.sets.length; x++) {\r\n if (this.dishCycleEdit.sets[x]) {\r\n this.getAlaCarteCols(this.dishCycleEdit.sets[x].cycleTypeId, this.dishCycleEdit.sets[x]);\r\n //if (this.dishCycleEdit.cycleType == 'Meal Credit') {\r\n this.getDishesByCycle(this.dishCycleEdit.sets[x].cycleTypeId, this.dishCycleEdit.sets[x].cycleTypeSequence, this.dishCycleEdit.sets[x].sequence, false);\r\n //} else {\r\n // this.getAlaCarteDishes(this.dishCycleEdit.sets[x].cycleTypeId, this.dishCycleEdit.sets[x].cycleTypeSequence, this.dishCycleEdit.sets[x].sequence, false);\r\n //}\r\n \r\n }\r\n }\r\n }\r\n }\r\n\r\n generateSchedule(clearMenu? : boolean) {\r\n if (this.dishCycleEdit.id) {\r\n this.alertService.showDialog('Changing this field may affect existing data. Do you wish to proceed?', DialogType.confirm, () => this.generateScheduleDetails(clearMenu));\r\n } else {\r\n this.generateScheduleDetails(clearMenu);\r\n }\r\n }\r\n\r\n generateScheduleDetails(clearMenu?: boolean) {\r\n this.getDishCyles();\r\n if (this.dishCycleEdit.numOfDays > 0 && this.dishCycleEdit.numOfSets > 0) {\r\n if (!this.dishCycleEdit.sets || this.dishCycleEdit.sets.length == 0 || this.dishCycleEdit.sets.length != this.dishCycleEdit.numOfSets) {\r\n let sets = [];\r\n for (var i = 1; i <= this.dishCycleEdit.numOfSets; i++) {\r\n var s = this.dishCycleEdit.sets.filter(e => e.sequence == i);\r\n if (s && s.length > 0) {\r\n sets.push(s[0]);\r\n } else {\r\n sets.push(new DishCycleScheduleSet(this.dishCycleEdit.id, i, this.dishCycleEdit.label));\r\n }\r\n }\r\n\r\n this.dishCycleEdit.sets = sets;\r\n }\r\n \r\n\r\n let schedules = [];\r\n for (var i = 1; i <= this.dishCycleEdit.numOfDays; i++) {\r\n let schedule = new DishCycleSchedule();\r\n \r\n let sched = this.dishCycleEdit.schedules.filter(e => e.day == i);\r\n if (sched && sched.length > 0) {\r\n Object.assign(schedule, sched[0]);\r\n } else {\r\n schedule.day = i;\r\n schedule.dishCycleId = this.dishCycleEdit.id;\r\n }\r\n\r\n\r\n schedule.details = [];\r\n\r\n for (var x = 1; x <= this.dishCycleEdit.sets.length; x++) {\r\n let detail = new DishCycleScheduleDetail();\r\n detail.sequence = x;\r\n detail.dishCycleScheduleId = schedule.id;\r\n if (sched && sched.length > 0) {\r\n let dets = sched[0].details.filter(e => e.sequence == x);\r\n if (dets && dets.length > 0) {\r\n detail = dets[0];\r\n }\r\n }\r\n\r\n if (clearMenu) {\r\n detail.menus = [];\r\n }\r\n\r\n schedule.details.push(detail);\r\n }\r\n\r\n schedules.push(schedule);\r\n }\r\n\r\n this.dishCycleEdit.schedules = schedules;\r\n\r\n }\r\n }\r\n\r\n onOutletChange(outletProfileId?: string) {\r\n if (this.dishCycleEdit.id) {\r\n this.alertService.showDialog('Changing the profile will remove all the schedules. Do you wish to proceed?', DialogType.confirm, () => this.changeOutletProfile(outletProfileId));\r\n } else {\r\n this.changeOutletProfile(outletProfileId);\r\n }\r\n \r\n }\r\n\r\n changeOutletProfile(outletProfileId?: string) {\r\n this.dishCycleEdit.schedules = [];\r\n this.getMealTypes();185\r\n this.generateSchedule();\r\n //this.getPeriods(true, outletProfileId);\r\n }\r\n\r\n onCycleTypeChange() {\r\n if (this.dishCycleEdit.id) {\r\n this.alertService.showDialog('Changing the type will remove all the schedules. Do you wish to proceed?', DialogType.confirm, () => this.changeOutletProfile());\r\n } else {\r\n this.changeOutletProfile();\r\n }\r\n }\r\n\r\n isMeal() {\r\n return this.dishCycleEdit.cycleType == 'Ala Carte' || this.dishCycleEdit.cycleType == 'Meal Credit';\r\n }\r\n\r\n onSetTypeChange(val, i) {\r\n if (this.dishCycleEdit.sets && this.dishCycleEdit.sets[i]) {\r\n this.dishCycleEdit.sets[i].cycleTypeId = val;\r\n this.dishCycleEdit.sets[i].dishCycleId = this.dishCycleEdit.id;\r\n this.dishCycleEdit.sets[i].options = this.dishCycles.filter(e => e.id == val);\r\n }\r\n }\r\n\r\n getSetOptions(i, day) {\r\n let menus = [];\r\n if (this.dishCycleEdit.sets && this.dishCycleEdit.sets.length > 0) {\r\n const set = this.dishCycleEdit.sets[i];\r\n let cycles = this.dishCycles.filter(e => e.id == set.cycleTypeId);\r\n if (cycles && cycles.length > 0) {\r\n let schedules = cycles[0].schedules;\r\n if (schedules && schedules.length > 0 && i < cycles[0].numOfSets) {\r\n let mod = day % cycles[0].numOfDays;\r\n let d = mod == 0 ? cycles[0].numOfDays : mod;\r\n let schedDays = cycles[0].schedules.filter(e => e.day == d);\r\n if (schedDays && schedDays.length > 0) {\r\n let dets = schedDays[0].details.filter(e => e.sequence == set.cycleTypeSequence);\r\n if (dets && dets.length > 0) {\r\n menus = dets[0].menus;\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n return menus;\r\n }\r\n\r\n onMealCreditColChange(cycleTypeId, cycleSeq, seq) {\r\n if (this.dishCycleEdit.id) {\r\n this.alertService.showDialog('Changing the type will remove all the menus. Do you wish to proceed?', DialogType.confirm, () => this.getDishesByCycle(cycleTypeId, cycleSeq, seq));\r\n } else {\r\n this.getDishesByCycle(cycleTypeId, cycleSeq, seq);\r\n }\r\n }\r\n\r\n getDishesByCycle(cycleTypeId, cycleSeq, seq, clearMenu: boolean = true) {\r\n if (!this.dishCycleEdit.schedules) this.dishCycleEdit.schedules = [];\r\n if (clearMenu) {\r\n this.dishCycleEdit.schedules.forEach((sched) => {\r\n if (sched.details && sched.details.length > 0 && seq < sched.details.length) {\r\n let dets = sched.details.filter(e => e.sequence == seq);\r\n if (dets && dets[0] && dets[0].menus) {\r\n dets[0].menus = [];\r\n }\r\n }\r\n });\r\n }\r\n\r\n let cycles = this.dishCycles.filter(e => e.id == cycleTypeId);\r\n if (cycles && cycles.length > 0) {\r\n let schedules = cycles[0].schedules;\r\n if (schedules && schedules.length > 0 && cycleSeq <= cycles[0].numOfSets) {\r\n if (!this.dishCycleEdit.schedules) this.dishCycleEdit.schedules = [];\r\n this.dishCycleEdit.schedules.forEach((dcSched) => {\r\n let mod = dcSched.day % cycles[0].numOfDays;\r\n let day = mod == 0 ? cycles[0].numOfDays : mod;\r\n let sScheds = schedules.filter(e => e.day == day);\r\n if (sScheds && sScheds.length > 0) {\r\n //set menus for that day/s\r\n if (!dcSched.details) dcSched.details = [];\r\n let sDets = sScheds[0].details.filter(e => e.sequence == cycleSeq);\r\n let dets = dcSched.details.filter(e => e.sequence == seq);\r\n if (dets && dets.length > 0) {\r\n if (sDets && sDets.length > 0 && seq <= dcSched.details.length) {\r\n dets[0].displayMenus = sDets[0].menus;\r\n } else {\r\n dets[0].displayMenus = [];\r\n }\r\n \r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n getAlaCarteCols(val, set) {\r\n let col = [];\r\n let cycles = this.dishCycles.filter(e => e.id == val);\r\n if (cycles && cycles.length > 0) {\r\n let numOfSets = cycles[0].numOfSets;\r\n let arr = [];\r\n for (var i = 1; i <= numOfSets; i++) {\r\n arr.push({ label: cycles[0].sets[i-1].label, sequence: i });\r\n }\r\n set.cycleSequences = arr;\r\n }\r\n }\r\n\r\n onAlaCarteColChange(cycleTypeId, i, seq) {\r\n if (this.dishCycleEdit.id) {\r\n this.alertService.showDialog('Changing the type will remove all the selected menus. Do you wish to proceed?', DialogType.confirm, () => this.getAlaCarteDishes(cycleTypeId, i, seq));\r\n } else {\r\n this.getAlaCarteDishes(cycleTypeId, i, seq);\r\n }\r\n }\r\n\r\n getAlaCarteDishes(cycleTypeId, cycleSeq, seq, clearMenu: boolean = true) {\r\n if (!this.dishCycleEdit.schedules) this.dishCycleEdit.schedules = [];\r\n if (clearMenu) {\r\n this.dishCycleEdit.schedules.forEach((sched) => {\r\n if (sched.details && sched.details.length > 0 && seq <= sched.details.length) {\r\n let dets = sched.details.filter(e => e.sequence == seq);\r\n if (dets && dets[0] && dets[0].menus) {\r\n dets[0].menus = [];\r\n }\r\n }\r\n });\r\n }\r\n \r\n\r\n let menus = [];\r\n //let cycles = this.dishCycles.filter(e => e.id == cycleTypeId);\r\n //if (cycles && cycles.length > 0) {\r\n // let schedules = cycles[0].schedules;\r\n // if (schedules && schedules.length > 0 && cycleSeq <= cycles[0].numOfSets) {\r\n // schedules.forEach((sched) => {\r\n // if (sched.details && sched.details.length > 0 && cycleSeq <= sched.details.length) {\r\n // let dets = sched.details.filter(e => e.sequence == cycleSeq);\r\n // if (dets && dets[0] && dets[0].menus && dets[0].menus.length > 0) {\r\n // menus = [...menus, ...dets[0].menus];\r\n // }\r\n // }\r\n // });\r\n // }\r\n //}\r\n\r\n //if (this.dishCycleEdit.sets && this.dishCycleEdit.sets[seq - 1]) {\r\n // this.dishCycleEdit.sets[seq - 1].options = [];\r\n // this.dishCycleEdit.sets[seq - 1].options = menus;\r\n //}\r\n\r\n let cycles = this.dishCycles.filter(e => e.id == cycleTypeId);\r\n if (cycles && cycles.length > 0) {\r\n let schedules = cycles[0].schedules;\r\n if (schedules && schedules.length > 0 && cycleSeq <= cycles[0].numOfSets) {\r\n if (!this.dishCycleEdit.schedules) this.dishCycleEdit.schedules = [];\r\n this.dishCycleEdit.schedules.forEach((dcSched) => {\r\n let mod = dcSched.day % cycles[0].numOfDays;\r\n let day = mod == 0 ? cycles[0].numOfDays : mod;\r\n let sScheds = schedules.filter(e => e.day == day);\r\n if (sScheds && sScheds.length > 0) {\r\n //set menus for that day/s\r\n if (!dcSched.details) dcSched.details = [];\r\n let sDets = sScheds[0].details.filter(e => e.sequence == cycleSeq);\r\n let dets = dcSched.details.filter(e => e.sequence == seq);\r\n if (dets && dets.length > 0) {\r\n if (sDets && sDets.length > 0 && seq <= dcSched.details.length) {\r\n //menus = [...menus, ...dets[0].menus];\r\n this.dishCycleEdit.sets[seq - 1].options = sDets[0].menus;\r\n } \r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n //if (this.dishCycleEdit.sets && this.dishCycleEdit.sets[seq - 1]) {\r\n // this.dishCycleEdit.sets[seq - 1].options = [];\r\n // this.dishCycleEdit.sets[seq - 1].options = menus;\r\n //}\r\n }\r\n\r\n get canManageDishCycles() {\r\n return true; //this.accountService.userHasPermission(Permission.manageDishCyclesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoLWN5Y2xlL2Rpc2gtY3ljbGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vZGlzaC1jeWNsZS9kaXNoLWN5Y2xlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbi5hY3RpdmUge1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Dish Cycle

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { DishCycleEditorComponent } from './dish-cycle-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { DishCycle } from 'src/app/models/meal-order/dish-cycle';\r\n\r\n\r\n@Component({\r\n selector: 'dish-cycles-management',\r\n templateUrl: './dish-cycles-management.component.html',\r\n styleUrls: ['./dish-cycles-management.component.css']\r\n})\r\nexport class DishCyclesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: DishCycle[] = [];\r\n rowsCache: DishCycle[] = [];\r\n allPermissions: Permission[] = [];\r\n editedDishCycle: DishCycle;\r\n sourceDishCycle: DishCycle;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('dishCycleEditor')\r\n dishCycleEditor: DishCycleEditorComponent;\r\n\r\n @ViewChild('dishCyclesTable') table: any;\r\n\r\n header: string;\r\n @Input() catererId: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private dishService: DishService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(dishCycle: DishCycle): void {\r\n const dialogRef = this.dialog.open(DishCycleEditorComponent, {\r\n data: { header: this.header, dishCycle: dishCycle, catererId: this.catererId },\r\n width: '900px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'label';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'outletProfileName', name: 'Outlet Profile' },\r\n { prop: 'label', name: 'Label', width: 200 },\r\n { prop: 'startDate', name: 'Start Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'endDate', name: 'End Date', pipe: new DateOnlyPipe('en-SG') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Label)@=' + this.keyword;\r\n \r\n this.dishService.getDishCyclesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let dishCycles = results.pagedData;\r\n\r\n dishCycles.forEach((dishCycle, index, dishCycles) => {\r\n (dishCycle).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...dishCycles];\r\n this.rows = dishCycles;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newDishCycle() {\r\n this.header = 'New Dish Cycle';\r\n this.editedDishCycle = new DishCycle();\r\n this.openDialog(this.editedDishCycle);\r\n }\r\n\r\n\r\n editDishCycle(row: DishCycle) {\r\n this.editedDishCycle = row;\r\n this.header = 'Edit Dish Cycle';\r\n this.editedDishCycle.catererId = this.catererId;\r\n this.openDialog(this.editedDishCycle);\r\n }\r\n\r\n deleteDishCycle(row: DishCycle) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.label + '\\\" cycle?', DialogType.confirm, () => this.deleteDishCycleHelper(row));\r\n }\r\n\r\n\r\n deleteDishCycleHelper(row: DishCycle) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.dishService.deleteDishCycle(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the dish cycle.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageDishCycles() {\r\n return true; //this.accountService.userHasPermission(Permission.manageDishCyclesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.menu-select {\\r\\n padding-left: 0;\\r\\n padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoLWN5Y2xlL3ZpZXctbWVudS92aWV3LW1lbnUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEU7O0FBRUE7RUFDRSxlQUFlO0VBQ2Ysb0JBQW9CO0FBQ3RCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoLWN5Y2xlL3ZpZXctbWVudS92aWV3LW1lbnUuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcblxyXG4ubWVudS1zZWxlY3Qge1xyXG4gIHBhZGRpbmctbGVmdDogMDtcclxuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}} for {{dishCycle.label}} {{day > 0 ? '(Day ' + day + ')' : ''}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Meal Periods
\\r\\n \\r\\n \\r\\n {{period.mealPeriodName}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{(set.cycleTypeLabel ? set.cycleTypeLabel : set.label)}}
\\r\\n {{menu.dishLabel}}\\r\\n \\r\\n {{menu.dishCode}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Cuisine } from 'src/app/models/meal-order/cuisine.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { Menu } from 'src/app/models/meal-order/menu.model';\r\nimport { FormControl } from '@angular/forms';\r\nimport { DishCycle, DishCycleScheduleSet } from 'src/app/models/meal-order/dish-cycle';\r\n\r\n\r\n@Component({\r\n selector: 'view-dish-menu',\r\n templateUrl: './view-menu.component.html',\r\n styleUrls: ['./view-menu.component.css']\r\n})\r\nexport class ViewDishCycleMenuComponent {\r\n public dishCycle: DishCycle;\r\n public day: number;\r\n public sets: DishCycleScheduleSet[] = [];\r\n private isSaving: boolean;\r\n public formResetToggle = true;\r\n private menus: Menu[] = [];\r\n public catererId: string;\r\n public searchForm: FormControl = new FormControl();\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private menuService: MenuService, private accountService: AccountService, private dishService: DishService,\r\n public dialogRef: MatDialogRef, \r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.dishCycle) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n this.dishCycle = data.dishCycle;\r\n this.day = data.day;\r\n\r\n this.getDishCycleMenu();\r\n //this.getMenus();\r\n }\r\n }\r\n\r\n //getMenus() {\r\n // let filter = new Filter();\r\n // let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n // filter.filters = f + '(IsActive)==true';\r\n // this.menuService.getMenusByFilter(filter)\r\n // .subscribe(results => {\r\n // this.menus = results.pagedData;\r\n // },\r\n // error => {\r\n // this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving menus.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n // })\r\n //}\r\n\r\n getDishCycleMenu() {\r\n this.dishService.getDishCycleScheduleSetDetails(this.dishCycle.id, this.day)\r\n .subscribe(results => {\r\n this.sets = results;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n //this.alertService.startLoadingMessage(\"Saving changes...\");\r\n //this.menuService.createPeriodMenus(this.periods).subscribe(response => this.saveSuccessHelper(response), error => this.saveFailedHelper(error));\r\n }\r\n\r\n\r\n private saveSuccessHelper(response: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (response.isSuccess)\r\n this.alertService.showMessage(\"Success\", `Successfully saved.`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Error\", response.message, MessageSeverity.error);\r\n\r\n\r\n this.resetForm();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n }\r\n\r\n //addMenu(period: any, m: Menu) {\r\n // if (!m || !period) return;\r\n // let menu = new DishCycleScheduleMenu();\r\n // menu.mealPeriodId = period.mealPeriodId;\r\n // menu.menuId = m.id;\r\n // menu.label = m.label;\r\n // menu.code = m.code;\r\n // if (!period.menus) period.menus = [];\r\n // period.menus.push(menu);\r\n\r\n // m = null;\r\n // period.selectedMenu = null;\r\n //}\r\n\r\n //removeMenu(period: DishCycleSchedulePeriod, id: string) {\r\n // let indx = period.menus.findIndex(f => f.menuId == id);\r\n // if (indx > -1) {\r\n // period.menus.splice(indx, 1);\r\n // }\r\n //}\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoLXR5cGUvZGlzaC10eXBlLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vZGlzaC10eXBlL2Rpc2gtdHlwZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
General Information
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { DishType, DishTypePeriod } from 'src/app/models/meal-order/dish-type.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\n\r\n\r\n@Component({\r\n selector: 'dish-type-editor',\r\n templateUrl: './dish-type-editor.component.html',\r\n styleUrls: ['./dish-type-editor.component.css']\r\n})\r\nexport class DishTypeEditorComponent {\r\n\r\n private isNewDishType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingDishTypeCode: string;\r\n private dishTypeEdit: DishType = new DishType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private dishService: DishService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.dishType) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.dishType.id) {\r\n this.editDishType(data.dishType);\r\n } else {\r\n this.newDishType();\r\n }\r\n }\r\n\r\n this.getMealPeriods();\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.dishTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n console.log(this.periods);\r\n let selectedPeriods = this.periods.filter(f => f.checked);\r\n this.dishTypeEdit.dishTypePeriods = [];\r\n this.periods.forEach((p, index, ps) => {\r\n if (p.checked) {\r\n let dtPeriod = new DishTypePeriod();\r\n dtPeriod.dishTypeId = this.dishTypeEdit.id;\r\n dtPeriod.periodId = p.id;\r\n this.dishTypeEdit.dishTypePeriods.push(dtPeriod);\r\n }\r\n \r\n });\r\n\r\n console.log(this.dishTypeEdit.dishTypePeriods);\r\n if (this.isNewDishType) {\r\n this.dishService.newDishType(this.dishTypeEdit).subscribe(dishType => this.saveSuccessHelper(dishType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.dishService.updateDishType(this.dishTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(dishType?: DishType) {\r\n if (dishType)\r\n Object.assign(this.dishTypeEdit, dishType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewDishType)\r\n this.alertService.showMessage(\"Success\", `Dish Type \\\"${this.dishTypeEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to dish type \\\"${this.dishTypeEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.dishTypeEdit = new DishType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewDishType && this.accountService.currentUser.facilities.some(r => r == this.editingDishTypeCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.dishTypeEdit = new DishType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newDishType() {\r\n this.isNewDishType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDishTypeCode = null;\r\n this.selectedValues = {};\r\n this.dishTypeEdit = new DishType();\r\n this.dishTypeEdit.catererId = this.catererId;\r\n return this.dishTypeEdit;\r\n }\r\n\r\n editDishType(dishType: DishType) {\r\n if (dishType) {\r\n this.isNewDishType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDishTypeCode = dishType.name;\r\n this.selectedValues = {};\r\n this.dishTypeEdit = new DishType();\r\n Object.assign(this.dishTypeEdit, dishType);\r\n\r\n return this.dishTypeEdit;\r\n }\r\n else {\r\n return this.newDishType();\r\n }\r\n }\r\n\r\n getMealPeriods() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.mealService.getMealPeriodsByFilter(filter)\r\n .subscribe(results => {\r\n this.periods = results.pagedData;\r\n this.periods.forEach((p, index, ps) => {\r\n (p).checked = this.dishTypeEdit.dishTypePeriods != null && this.dishTypeEdit.dishTypePeriods.findIndex(f=> f.periodId == p.id) > -1;\r\n });\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving cperiods.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n get canManageDishTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageDishTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoLXR5cGUvZGlzaC10eXBlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2Rpc2gtdHlwZS9kaXNoLXR5cGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Dish Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { DishType } from 'src/app/models/meal-order/dish-type.model';\r\nimport { DishTypeEditorComponent } from './dish-type-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\n\r\n\r\n@Component({\r\n selector: 'dish-types-management',\r\n templateUrl: './dish-types-management.component.html',\r\n styleUrls: ['./dish-types-management.component.css']\r\n})\r\nexport class DishTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: DishType[] = [];\r\n rowsCache: DishType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedDishType: DishType;\r\n sourceDishType: DishType;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n @Input() catererId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('dishTypeEditor')\r\n dishTypeEditor: DishTypeEditorComponent;\r\n\r\n @ViewChild('dishTypesTable') table: any;\r\n\r\n header: string;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private dishService: DishService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(dishType: DishType): void {\r\n const dialogRef = this.dialog.open(DishTypeEditorComponent, {\r\n data: { header: this.header, dishType: dishType, catererId: this.catererId },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Name' },\r\n //{ prop: 'dishTypePeriodNames', name: 'Periods', sortable: false },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.dishService.getDishTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let dishTypes = results.pagedData;\r\n\r\n dishTypes.forEach((dishType, index, dishTypes) => {\r\n (dishType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...dishTypes];\r\n this.rows = dishTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newDishType() {\r\n this.header = 'New Dish Type';\r\n this.editedDishType = new DishType();\r\n this.openDialog(this.editedDishType);\r\n }\r\n\r\n\r\n editDishType(row: DishType) {\r\n this.editedDishType = row;\r\n this.header = 'Edit Dish Type';\r\n this.editedDishType.catererId = this.catererId;\r\n this.openDialog(this.editedDishType);\r\n }\r\n\r\n deleteDishType(row: DishType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" dish type?', DialogType.confirm, () => this.deleteDishTypeHelper(row));\r\n }\r\n\r\n\r\n deleteDishTypeHelper(row: DishType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.dishService.deleteDishType(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the dish type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageDishTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageDishTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoZXMvZGlzaC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2Rpc2hlcy9kaXNoLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
General Information
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Dish Type\\r\\n \\r\\n \\r\\n {{dishType.name}}\\r\\n \\r\\n \\r\\n Dish Type is required\\r\\n \\r\\n \\r\\n Bento Box Type\\r\\n \\r\\n \\r\\n {{bentoBoxType.code}}\\r\\n \\r\\n \\r\\n Bento Box Type is required\\r\\n \\r\\n\\r\\n \\r\\n Cuisine\\r\\n \\r\\n \\r\\n {{cuisine.name}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Kitchen\\r\\n \\r\\n \\r\\n {{storeInfo.code}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
Icon
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n Remove\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Extra Notes
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
Production Picture
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n Remove\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
Restrictions
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Sub Dishes
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
CodeLabel
{{row.code}}{{row.label}}\\r\\n {{'common.RowAction.Delete' | 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\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Dish, DishDetail, DishPeriod, DishRestriction } from 'src/app/models/meal-order/dish.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { DishType } from 'src/app/models/meal-order/dish-type.model';\r\nimport { RestrictionService } from 'src/app/services/meal-order/restriction.service';\r\nimport { Restriction } from 'src/app/models/meal-order/restriction.model';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { DishSelectorComponent } from './dish-selector/dish-selector.component';\r\n\r\n\r\n@Component({\r\n selector: 'dish-editor',\r\n templateUrl: './dish-editor.component.html',\r\n styleUrls: ['./dish-editor.component.css']\r\n})\r\nexport class DishEditorComponent {\r\n\r\n private isNewDish = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingDishCode: string;\r\n private dishEdit: Dish = new Dish();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n private restrictions = [];\r\n private dishTypes: DishType[] = [];\r\n private bentoBoxTypes = [];\r\n private storeInfos = [];\r\n private cuisines = [];\r\n private subdishes: Dish[] = [];\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n \r\n\r\n constructor(private alertService: AlertService, private dishService: DishService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private fileService: FileService, private mealService: MealService, private restrictionService: RestrictionService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.dish) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.dish.id) {\r\n this.editDish(data.dish);\r\n } else {\r\n this.newDish();\r\n }\r\n }\r\n\r\n this.getMealPeriods();\r\n this.getDishTypes();\r\n this.getRestrictions();\r\n this.getBentoBoxTypes();\r\n this.getCuisines();\r\n this.getStoreInfos();\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n console.log(this.periods);\r\n let selectedPeriods = this.periods.filter(f => f.checked);\r\n this.dishEdit.dishPeriods = [];\r\n this.periods.forEach((p, index, ps) => {\r\n if (p.checked) {\r\n let dtPeriod = new DishPeriod();\r\n dtPeriod.dishId = this.dishEdit.id;\r\n dtPeriod.periodId = p.id;\r\n this.dishEdit.dishPeriods.push(dtPeriod);\r\n }\r\n \r\n });\r\n\r\n console.log(this.dishEdit.dishPeriods);\r\n\r\n let selectedRestrictions = this.restrictions.filter(f => f.checked);\r\n this.dishEdit.restrictions = [];\r\n this.restrictions.forEach((p, index, ps) => {\r\n if (p.checked) {\r\n let sr = new DishRestriction();\r\n sr.dishId = this.dishEdit.id;\r\n sr.restrictionId = p.id;\r\n this.dishEdit.restrictions.push(sr);\r\n }\r\n\r\n });\r\n\r\n if (this.isNewDish) {\r\n this.dishService.newDish(this.dishEdit).subscribe(dish => this.saveSuccessHelper(dish), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.dishService.updateDish(this.dishEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(dish?: Dish) {\r\n if (dish)\r\n Object.assign(this.dishEdit, dish);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewDish)\r\n this.alertService.showMessage(\"Success\", `Dish \\\"${this.dishEdit.label}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to dish \\\"${this.dishEdit.label}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.dishEdit = new Dish();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewDish && this.accountService.currentUser.facilities.some(r => r == this.editingDishCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.dishEdit = new Dish();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newDish() {\r\n this.isNewDish = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDishCode = null;\r\n this.selectedValues = {};\r\n this.dishEdit = new Dish();\r\n this.dishEdit.isEnabled = true;\r\n this.dishEdit.catererId = this.catererId;\r\n\r\n if (!this.dishEdit.code) {\r\n this.getDishCode();\r\n }\r\n return this.dishEdit;\r\n }\r\n\r\n editDish(dish: Dish) {\r\n if (dish) {\r\n this.isNewDish = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDishCode = dish.label;\r\n this.selectedValues = {};\r\n this.dishEdit = new Dish();\r\n Object.assign(this.dishEdit, dish);\r\n\r\n\r\n if (!this.dishEdit.code) {\r\n this.getDishCode();\r\n }\r\n\r\n return this.dishEdit;\r\n }\r\n else {\r\n return this.newDish();\r\n }\r\n }\r\n\r\n getDishCode() {\r\n this.dishService.generateDishCode(this.catererId)\r\n .subscribe(results => {\r\n console.log(results);\r\n this.dishEdit.code = results.code;\r\n },\r\n error => {\r\n })\r\n }\r\n\r\n getMealPeriods() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.mealService.getMealPeriodsByFilter(filter)\r\n .subscribe(results => {\r\n this.periods = results.pagedData;\r\n this.periods.forEach((p, index, ps) => {\r\n (p).checked = this.dishEdit.dishPeriods != null && this.dishEdit.dishPeriods.findIndex(f=> f.periodId == p.id) > -1;\r\n });\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving cperiods.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getRestrictions() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.restrictionService.getRestrictionsByFilter(filter)\r\n .subscribe(results => {\r\n this.restrictions = results.pagedData;\r\n this.restrictions.forEach((p, index, ps) => {\r\n (p).checked = this.dishEdit.restrictions != null && this.dishEdit.restrictions.findIndex(f => f.restrictionId == p.id) > -1;\r\n });\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving restrictions.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getDishTypes() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.dishService.getDishTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dish types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getBentoBoxTypes() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererInfoId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.deliveryService.getBentoBoxTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.bentoBoxTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving bento box types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getStoreInfos() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(storeType)@=Kitchen';\r\n this.deliveryService.getStoreInfosByFilter(filter)\r\n .subscribe(results => {\r\n this.storeInfos = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving bento box types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getCuisines() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.dishService.getCuisinesByFilter(filter)\r\n .subscribe(results => {\r\n this.cuisines = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving cuisines.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.dishEdit.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n public productionPictureUploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.dishEdit.productionPicturePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n removePhoto() {\r\n this.dishEdit.filePath = null;\r\n this.dishEdit.fileId = null;\r\n this.dishEdit.fileName = null;\r\n }\r\n\r\n removeProductionPhoto() {\r\n this.dishEdit.productionPicturePath = null;\r\n this.dishEdit.productionPictureId = null;\r\n this.dishEdit.productionPictureName = null;\r\n }\r\n\r\n addSubdish() {\r\n const dialogRef = this.dialog.open(DishSelectorComponent, {\r\n data: { header: \"Sub Dishes\", dishes: this.dishEdit.subDishes, catererId: this.catererId },\r\n width: '500px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (!result.isCancel) {\r\n this.dishEdit.subDishes = [];\r\n result.selectedDishes.forEach((p, index, ps) => {\r\n if (p.checked) {\r\n let dt = new DishDetail();\r\n dt.parentDishId = this.dishEdit.id;\r\n dt.dishId = p.id;\r\n dt.code = p.code;\r\n dt.label = p.label;\r\n dt.cookedWeight = p.cookedWeight;\r\n this.dishEdit.subDishes.push(dt);\r\n }\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n removeSubdish(dish) {\r\n if (dish.dishId) {\r\n this.dishEdit.subDishes = this.dishEdit.subDishes.filter(item => item.dishId !== dish.dishId);\r\n }\r\n }\r\n\r\n get canManageDishes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageDishesPermission)\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n.box-type {\\r\\n height: 100px;\\r\\n width: 100px;\\r\\n background-color: #04AA6D !important;\\r\\n border-radius: 50%;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.box-code {\\r\\n text-align: center;\\r\\n line-height: 100px;\\r\\n font-weight:500;\\r\\n}\\r\\n\\r\\n.capitalise{\\r\\n text-transform:uppercase\\r\\n}\\r\\n\\r\\n.font-color-danger {\\r\\n color: #d9534f !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoZXMvZGlzaC1wcmV2aWV3L2Rpc2gtcHJldmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7RUFDWixvQ0FBb0M7RUFDcEMsa0JBQWtCO0VBQ2xCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFO0FBQ0Y7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2Rpc2hlcy9kaXNoLXByZXZpZXcvZGlzaC1wcmV2aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBsb2FkIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBjb2xvcjogIzI4YTc0NTtcclxuICBtYXJnaW4tbGVmdDogMTVweDtcclxuICBsaW5lLWhlaWdodDogMzZweDtcclxufVxyXG5cclxuLmJveC10eXBlIHtcclxuICBoZWlnaHQ6IDEwMHB4O1xyXG4gIHdpZHRoOiAxMDBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDRBQTZEICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmJveC1jb2RlIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbGluZS1oZWlnaHQ6IDEwMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OjUwMDtcclxufVxyXG5cclxuLmNhcGl0YWxpc2V7XHJcbiAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlXHJcbn1cclxuXHJcbi5mb250LWNvbG9yLWRhbmdlciB7XHJcbiAgY29sb3I6ICNkOTUzNGYgIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

{{dish.label}}

\\r\\n

{{dish.code}}

\\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Dish NameCooked Weight
{{totalWeight}}g
{{i+1}}{{row.dish.dishTypeName}}{{row.dish.label}}{{row.dish.code}}{{row.dish.cookedWeight}}g
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Extra Notes:

\\r\\n

\\r\\n {{dish.extraNotes}}\\r\\n

\\r\\n
\\r\\n
\\r\\n {{dish.bentoBoxTypeCode}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Dish, DishDetail } from 'src/app/models/meal-order/dish.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n@Component({\r\n selector: 'dish-preview',\r\n templateUrl: './dish-preview.component.html',\r\n styleUrls: ['./dish-preview.component.css']\r\n})\r\nexport class DishPreviewComponent implements OnInit {\r\n id: string;\r\n dish: Dish;\r\n totalWeight: number;\r\n\r\n constructor(private http: HttpClient, private dishService: DishService,\r\n private fileService: FileService, private route: ActivatedRoute) {\r\n this.route.params.subscribe(queryParams => {\r\n this.id = queryParams[\"id\"];\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (this.id) {\r\n this.dishService.getDishById(this.id).subscribe(results => {\r\n this.dish = results;\r\n if (this.dish && this.dish.subDishes) {\r\n this.totalWeight = this.dish.subDishes.filter(item => item.dish.cookedWeight)\r\n .reduce((sum, current) => sum + current.dish.cookedWeight, 0);\r\n }\r\n \r\n }, error => { });\r\n }\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoZXMvZGlzaC1zZWxlY3Rvci9kaXNoLXNlbGVjdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2Rpc2hlcy9kaXNoLXNlbGVjdG9yL2Rpc2gtc2VsZWN0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGxvYWQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMjhhNzQ1O1xyXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject, TemplateRef, ViewChild } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Dish, DishDetail } from 'src/app/models/meal-order/dish.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\n\r\n@Component({\r\n selector: 'dish-selector',\r\n templateUrl: './dish-selector.component.html',\r\n styleUrls: ['./dish-selector.component.css']\r\n})\r\nexport class DishSelectorComponent implements OnInit {\r\n public dishIds: number[];\r\n dishes: Dish[];\r\n dishesCache: Dish[];\r\n selectedDishes: DishDetail[];\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n columns: any[] = [];\r\n rows: Dish[] = [];\r\n rowsCache: Dish[] = [];\r\n catererId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n constructor(private http: HttpClient, private dishService: DishService,\r\n private alertService: AlertService, public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.catererId = data.catererId;\r\n if (typeof (data.dishes) != typeof (undefined)) {\r\n this.selectedDishes = data.dishes;\r\n }\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(-1, -10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = -1;\r\n\r\n\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n\r\n this.columns = [\r\n { prop: 'code', name: 'Dish Code' },\r\n { prop: 'label', name: 'Label' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.filter.pageSize = -1;\r\n\r\n if (ev) {\r\n //this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Code|Label)@=' + this.keyword;\r\n\r\n this.dishService.getDishesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n let dishes = results.pagedData;\r\n\r\n dishes.forEach((dish, index, dishes) => {\r\n (dish).index = index + 1;\r\n });\r\n\r\n dishes.map(cg => {\r\n const index = this.selectedDishes.findIndex(item => item.dishId == cg.id)\r\n if (index >= 0) {\r\n cg.checked = true;\r\n }\r\n \r\n });\r\n \r\n\r\n this.rowsCache = [...dishes];\r\n this.rows = dishes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n //onSearchChanged(value: string) {\r\n // this.keyword = value;\r\n // this.loadData(null);\r\n //}\r\n\r\n addRemoveDish(row) {\r\n //const index = this.selectedDishes.findIndex(item => item.dishId == row.id)\r\n //if (row.checked) {\r\n // if (index < 0) {\r\n // let dt = new DishDetail();\r\n // dt.dishId = row.id;\r\n // dt.code = row.code;\r\n // dt.label = row.label;\r\n // dt.cookedWeight = row.cookedWeight;\r\n\r\n // this.selectedDishes.push(dt);\r\n // }\r\n //} else {\r\n // if (index >= 0) {\r\n // this.selectedDishes.splice(index, 1);\r\n // }\r\n //}\r\n \r\n }\r\n\r\n //ngOnInit() {\r\n // let filter = new Filter();\r\n // filter.filters = '(IsActive)==true';\r\n\r\n // this.dishService.getDishesByFilter(filter).subscribe(results => {\r\n // this.dishes = results.pagedData;\r\n // if (typeof (this.selectedDishes) != typeof (undefined)) {\r\n // this.dishes.map(cg => {\r\n // const index = this.selectedDishes.findIndex(item => item.dishId == cg.id)\r\n // if (index >= 0) {\r\n // cg.checked = true;\r\n // }\r\n // });\r\n // }\r\n\r\n // this.dishesCache = this.dishes;\r\n\r\n // }, error => { });\r\n //}\r\n\r\n public save = () => {\r\n let dishes = this.rowsCache.filter((cg) => cg.checked);\r\n //let selected = [];\r\n //this.rows.forEach((dish, i, dishes) => {\r\n // const index = this.selectedDishes.findIndex(item => item.dishId == dish.id)\r\n // if (index >= 0) {\r\n // selected.push(dish);\r\n // }\r\n //});\r\n\r\n this.dialogRef.close({ isCancel: false, selectedDishes: dishes });\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.code, r.label));\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoZXMvZGlzaGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vZGlzaGVzL2Rpc2hlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbi5hY3RpdmUge1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Dishes

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Preview\\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Dish } from 'src/app/models/meal-order/dish.model';\r\nimport { DishEditorComponent } from './dish-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\n\r\n\r\n@Component({\r\n selector: 'dishes-management',\r\n templateUrl: './dishes-management.component.html',\r\n styleUrls: ['./dishes-management.component.css']\r\n})\r\nexport class DishesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Dish[] = [];\r\n rowsCache: Dish[] = [];\r\n allPermissions: Permission[] = [];\r\n editedDish: Dish;\r\n sourceDish: Dish;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n @Input() catererId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('dishEditor')\r\n dishEditor: DishEditorComponent;\r\n\r\n @ViewChild('dishesTable') table: any;\r\n\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private dishService: DishService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(dish: Dish): void {\r\n const dialogRef = this.dialog.open(DishEditorComponent, {\r\n data: { header: this.header, dish: dish, catererId: this.catererId },\r\n width: '800px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'code', name: 'Code' },\r\n { prop: 'label', name: 'Label' },\r\n { prop: 'dishTypeName', name: 'Type' },\r\n { prop: 'cuisineName', name: 'Cuisine' },\r\n { prop: 'bentoBoxTypeCode', name: 'Bento Box' },\r\n// { prop: 'dishPeriodNames', name: 'Periods', sortable: false },\r\n { prop: 'rrPrice', name: 'RRP' },\r\n { prop: 'cost', name: 'Cost' },\r\n { prop: 'isEnabled', name: 'Is Enabled', cellTemplate: this.flagTemplate },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Code|Label)@=' + this.keyword;\r\n \r\n this.dishService.getDishesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let dishes = results.pagedData;\r\n\r\n dishes.forEach((dish, index, dishes) => {\r\n (dish).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...dishes];\r\n this.rows = dishes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newDish() {\r\n this.header = 'New Dish';\r\n this.editedDish = new Dish();\r\n this.openDialog(this.editedDish);\r\n }\r\n\r\n\r\n editDish(row: Dish) {\r\n this.editedDish = row;\r\n this.header = 'Edit Dish';\r\n this.editedDish.catererId = this.catererId;\r\n this.openDialog(this.editedDish);\r\n }\r\n\r\n deleteDish(row: Dish) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.label + '\\\" dish?', DialogType.confirm, () => this.deleteDishHelper(row));\r\n }\r\n\r\n\r\n deleteDishHelper(row: Dish) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.dishService.deleteDish(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the dish.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageDishes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageDishesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kaXNoaW5nLXByb2Nlc3MvZGlzaGluZy1wcm9jZXNzcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2Rpc2hpbmctcHJvY2Vzcy9kaXNoaW5nLXByb2Nlc3NzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Dishing Process

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Dish Code\\r\\n \\r\\n \\r\\n
0\\\" style=\\\"border: solid 1px;padding: 0;max-height: 385px;overflow: auto;\\\" class=\\\"col-sm-12\\\">\\r\\n
\\r\\n
\\r\\n
{{row.code}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Bento Asset TID\\r\\n \\r\\n \\r\\n
0\\\" style=\\\"border: solid 1px;padding: 0;max-height: 385px;overflow: auto;\\\" class=\\\"col-sm-12\\\">\\r\\n
\\r\\n
\\r\\n
{{row.code}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Auto add when bento inputted\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n Success\\r\\n
\\r\\n {{row.message}}\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ChangeDetectorRef, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { BentoAsset } from 'src/app/models/meal-order/bento-asset.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CartonAsset } from '../../../models/meal-order/carton-asset.model';\r\nimport { Dish } from '../../../models/meal-order/dish.model';\r\n\r\n\r\n@Component({\r\n selector: 'dishing-processs-management',\r\n templateUrl: './dishing-processs-management.component.html',\r\n styleUrls: ['./dishing-processs-management.component.css']\r\n})\r\nexport class DishingProcesssManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: any[] = [];\r\n map: any = {};\r\n allPermissions: Permission[] = [];\r\n editedDishingProcess: BentoAsset;\r\n sourceDishingProcess: BentoAsset;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n //@ViewChild('cartonInput')\r\n //cartonInput: ElementRef;\r\n\r\n @ViewChild('dishInput')\r\n dishInput: ElementRef;\r\n\r\n @ViewChild('bentoInput')\r\n bentoInput: ElementRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n header: string;\r\n\r\n //cartonAssets: CartonAsset[];\r\n bentoAssets: BentoAsset[];\r\n dishs: Dish[];\r\n\r\n //cartonAssetCode: any;\r\n dishCode: any;\r\n bentoAssetCode: any;\r\n bentoTimeout: NodeJS.Timer;\r\n autoAdd: any = true;\r\n //cartonTimeout: NodeJS.Timer;\r\n dishTimeout: NodeJS.Timer;\r\n dishSearchs: Dish[];\r\n bentoSearchs: BentoAsset[];\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private dishService: DishService, private ref: ChangeDetectorRef,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n\r\n //this.getCartonAssets();\r\n this.getBentoAssets();\r\n this.getDishs();\r\n }\r\n\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: 'cartonAssetCode', name: 'Carton Asset TID' },\r\n { prop: 'dishCode', name: 'Dish Code' },\r\n { prop: 'bentoAssetCode', name: 'Bento Asset TID' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n //if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n // this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n //}\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n }\r\n\r\n \r\n\r\n get canManageDishingProcesss() {\r\n return true; //this.accountService.userHasPermission(Permission.manageDishingProcesssPermission)\r\n }\r\n\r\n //cartonChanged() {\r\n // clearTimeout(this.cartonTimeout)\r\n // this.cartonTimeout = setTimeout(() => {\r\n // if (this.autoAdd) this.addBento();\r\n // this.dishInput.nativeElement.focus();\r\n // }, 500);\r\n //}\r\n\r\n dishChanged() {\r\n clearTimeout(this.dishTimeout)\r\n this.dishTimeout = setTimeout(() => {\r\n this.dishSearchs = this.dishs.filter(x => x.code && this.dishCode && x.code.toLowerCase().includes(this.dishCode.toLowerCase()));\r\n\r\n if (this.autoAdd && this.dishSearchs.length == 1) {\r\n this.addBento();\r\n this.bentoInput.nativeElement.focus();\r\n }\r\n }, 500);\r\n }\r\n\r\n bentoChanged() {\r\n clearTimeout(this.bentoTimeout)\r\n this.bentoTimeout = setTimeout(() => {\r\n this.bentoSearchs = this.bentoAssets.filter(x => x.code && this.bentoAssetCode && x.code.toLowerCase().includes(this.bentoAssetCode.toLowerCase()));\r\n\r\n if (this.autoAdd && this.bentoSearchs.length == 1) {\r\n this.addBento();\r\n this.dishInput.nativeElement.focus();\r\n }\r\n }, 500);\r\n }\r\n\r\n addBento() {\r\n if (!this.dishCode || !this.bentoAssetCode) return; \r\n\r\n if (!this.map[this.bentoAssetCode]) {\r\n let row = {\r\n //cartonAssetCode: this.cartonAssetCode,\r\n dishCode: this.dishCode,\r\n bentoAssetCode: this.bentoAssetCode\r\n };\r\n this.rows.push(row)\r\n this.map[this.bentoAssetCode] = row; \r\n } else {\r\n //this.map[this.bentoAssetCode].cartonAssetCode = this.cartonAssetCode;\r\n this.map[this.bentoAssetCode].dishCode = this.dishCode;\r\n this.map[this.bentoAssetCode].isActive = true;\r\n }\r\n\r\n //let tempcarton = this.cartonAssetCode;\r\n let tempdish = this.dishCode;\r\n let tempbento = this.bentoAssetCode;\r\n\r\n //this.cartonAssetCode = '';\r\n this.dishCode = '';\r\n this.dishSearchs = [];\r\n this.bentoAssetCode = '';\r\n this.bentoSearchs = [];\r\n\r\n this.rows = [...this.rows];\r\n\r\n let bento = this.bentoAssets.find(x => x.code === tempbento);\r\n\r\n if (!bento) {\r\n this.getBentoAssets();\r\n }\r\n\r\n let dish = this.dishs.find(x => x.code === tempdish);\r\n\r\n if (!dish) {\r\n this.getDishs();\r\n }\r\n\r\n //let carton = this.cartonAssets.find(x => x.code === tempcarton);\r\n\r\n //if (!carton) {\r\n // this.getCartonAssets();\r\n //}\r\n }\r\n\r\n removeBento(row) {\r\n this.rows = this.rows.filter((r) => r.bentoAssetCode != row.bentoAssetCode);\r\n this.map[this.bentoAssetCode] = null;\r\n }\r\n\r\n\r\n\r\n submit() {\r\n for (let row of this.rows) {\r\n row.message = '';\r\n row.isSuccess = false;\r\n\r\n let bento = this.bentoAssets.find(x => x.code === row.bentoAssetCode);\r\n\r\n if (!bento) {\r\n row.message = \"No match bento asset TID\";\r\n continue;\r\n }\r\n\r\n let dish = this.dishs.find(x => x.code === row.dishCode);\r\n\r\n if (!dish) {\r\n row.message = \"No match dish code\";\r\n continue;\r\n }\r\n\r\n bento.dishId = dish.id;\r\n\r\n //if (row.cartonAssetCode) {\r\n //let carton = this.cartonAssets.find(x => x.code === row.cartonAssetCode);\r\n\r\n //if (!carton) {\r\n // row.message = \"No match carton asset TID\";\r\n // continue;\r\n //}\r\n\r\n //bento.cartonAssetId = carton.id;\r\n //}\r\n\r\n this.deliveryService.updateBentoAsset(bento).subscribe(response => row.isSuccess = true, error => row.message = error);\r\n }\r\n }\r\n\r\n //getCartonAssets() {\r\n // let filter = new Filter();\r\n // filter.filters = '(IsActive)==true';\r\n // this.deliveryService.getCartonAssetsByFilter(filter)\r\n // .subscribe(results => {\r\n // this.cartonAssets = results.pagedData;\r\n // },\r\n // error => {\r\n // //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving carton assets.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n // })\r\n //}\r\n\r\n getBentoAssets() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getBentoAssetsByFilter(filter)\r\n .subscribe(results => {\r\n this.bentoAssets = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving bento assets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getDishs() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishs = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishs.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kby1wcm9jZXNzL2RvLXByb2Nlc3NzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vZG8tcHJvY2Vzcy9kby1wcm9jZXNzcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbi5hY3RpdmUge1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Carton To DO

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n DO Number\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Carton Asset TID\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Auto add when carton inputted\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n Success\\r\\n
\\r\\n {{row.message}}\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ChangeDetectorRef, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { BentoAsset } from 'src/app/models/meal-order/bento-asset.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CartonAsset } from '../../../models/meal-order/carton-asset.model';\r\nimport { Dish } from '../../../models/meal-order/dish.model';\r\nimport { DeliveryOrder } from '../../../models/meal-order/delivery-order.model';\r\n\r\n\r\n@Component({\r\n selector: 'do-processs-management',\r\n templateUrl: './do-processs-management.component.html',\r\n styleUrls: ['./do-processs-management.component.css']\r\n})\r\nexport class DoProcesssManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: any[] = [];\r\n map: any = {};\r\n allPermissions: Permission[] = [];\r\n editedDoProcess: BentoAsset;\r\n sourceDoProcess: BentoAsset;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('cartonInput')\r\n cartonInput: ElementRef;\r\n\r\n @ViewChild('doInput')\r\n doInput: ElementRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n header: string;\r\n\r\n cartonAssets: CartonAsset[];\r\n deliveryOrders: DeliveryOrder[];\r\n\r\n cartonAssetCode: any;\r\n doNumber: any;\r\n\r\n autoAdd: any = true;\r\n cartonTimeout: NodeJS.Timer;\r\n doTimeout: NodeJS.Timer;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private dishService: DishService, private ref: ChangeDetectorRef,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n\r\n this.getCartonAssets();\r\n this.getDeliveryOrders();\r\n }\r\n\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'doNumber', name: 'DO Number' },\r\n { prop: 'cartonAssetCode', name: 'Carton Asset TID' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n //if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n // this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n //}\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n }\r\n\r\n\r\n\r\n get canManageDoProcesss() {\r\n return true; //this.accountService.userHasPermission(Permission.manageDoProcesssPermission)\r\n }\r\n\r\n doChanged() {\r\n clearTimeout(this.doTimeout)\r\n this.doTimeout = setTimeout(() => {\r\n if (this.autoAdd) this.add();\r\n this.cartonInput.nativeElement.focus();\r\n }, 500);\r\n }\r\n\r\n cartonChanged() {\r\n clearTimeout(this.cartonTimeout)\r\n this.cartonTimeout = setTimeout(() => {\r\n if (this.autoAdd) this.add();\r\n this.doInput.nativeElement.focus();\r\n }, 500);\r\n }\r\n\r\n add() {\r\n if (!this.cartonAssetCode || !this.doNumber) return;\r\n\r\n if (!this.map[this.cartonAssetCode]) {\r\n let row = {\r\n cartonAssetCode: this.cartonAssetCode,\r\n doNumber: this.doNumber\r\n };\r\n this.rows.push(row)\r\n this.map[this.cartonAssetCode] = row;\r\n } else {\r\n this.map[this.cartonAssetCode].cartonAssetCode = this.cartonAssetCode;\r\n this.map[this.cartonAssetCode].doNumber = this.doNumber;\r\n }\r\n\r\n let tempdo = this.doNumber;\r\n let tempcarton = this.cartonAssetCode;\r\n\r\n this.cartonAssetCode = '';\r\n this.doNumber = '';\r\n this.rows = [...this.rows];\r\n\r\n let deliveryOrder = this.deliveryOrders.find(x => x.doNumber === tempdo);\r\n\r\n if (!deliveryOrder) {\r\n this.getDeliveryOrders();\r\n }\r\n\r\n let carton = this.cartonAssets.find(x => x.code === tempcarton);\r\n\r\n if (!carton) {\r\n this.getCartonAssets();\r\n }\r\n }\r\n\r\n remove(row) {\r\n this.rows = this.rows.filter((r) => r.cartonAssetCode != row.cartonAssetCode);\r\n this.map[this.cartonAssetCode] = null;\r\n }\r\n\r\n\r\n\r\n submit() {\r\n let map: any = {};\r\n\r\n for (let row of this.rows) {\r\n row.message = '';\r\n row.isSuccess = false;\r\n\r\n let deliveryOrder = this.deliveryOrders.find(x => x.doNumber === row.doNumber);\r\n\r\n if (!deliveryOrder) {\r\n row.message = \"No match DO Number\";\r\n continue;\r\n }\r\n\r\n let carton = this.cartonAssets.find(x => x.code === row.cartonAssetCode);\r\n\r\n if (!carton) {\r\n row.message = \"No match carton asset TID\";\r\n continue;\r\n }\r\n\r\n map[deliveryOrder.id] = deliveryOrder;\r\n\r\n if (!deliveryOrder.deliveryDetails) deliveryOrder.deliveryDetails = [];\r\n\r\n let cartondetail = deliveryOrder.deliveryDetails.find(x => x.cartonAssetId === carton.id);\r\n if (!cartondetail) {\r\n cartondetail = {\r\n isActive: 1,\r\n cartonAssetId: carton.id\r\n };\r\n\r\n deliveryOrder.deliveryDetails.push(cartondetail);\r\n }\r\n\r\n for (let bento of carton.bentoAssets) {\r\n if (!cartondetail.deliveryBentos) cartondetail.deliveryBentos = [];\r\n\r\n let bentodetail = cartondetail.deliveryBentos.find(x => x.bentoAssetId === bento.id);\r\n if (!bentodetail) {\r\n bentodetail = {\r\n isActive: 1,\r\n bentoAssetId: bento.id\r\n }\r\n\r\n cartondetail.deliveryBentos.push(bentodetail);\r\n }\r\n\r\n bentodetail.dishId = bento.dishId;\r\n }\r\n }\r\n\r\n for (let deliveryOrder of Object.values(map)) {\r\n this.deliveryService.updateDeliveryOrder(deliveryOrder).subscribe(response => {\r\n for (let row of this.rows.filter(x => x.doNumber === deliveryOrder.doNumber)) {\r\n row.isSuccess = true\r\n }\r\n }, error => {\r\n for (let row of this.rows.filter(x => x.doNumber === deliveryOrder.doNumber)) {\r\n row.message = error\r\n }\r\n });\r\n }\r\n }\r\n\r\n getCartonAssets() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getCartonAssetsByFilter(filter)\r\n .subscribe(results => {\r\n this.cartonAssets = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving carton assets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getDeliveryOrders() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getDeliveryOrdersByFilter(filter)\r\n .subscribe(results => {\r\n this.deliveryOrders = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving carton assets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kcml2ZXIvZHJpdmVyLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vZHJpdmVyL2RyaXZlci1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Driver } from 'src/app/models/meal-order/driver.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'driver-editor',\r\n templateUrl: './driver-editor.component.html',\r\n styleUrls: ['./driver-editor.component.css']\r\n})\r\nexport class DriverEditorComponent {\r\n\r\n private isNewDriver = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingDriverName: string;\r\n private driverEdit: Driver = new Driver();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.driver) != typeof (undefined)) {\r\n if (data.driver.id) {\r\n this.editDriver(data.driver);\r\n } else {\r\n this.newDriver();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.driverEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewDriver) {\r\n this.deliveryService.newDriver(this.driverEdit).subscribe(driver => this.saveSuccessHelper(driver), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateDriver(this.driverEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(driver?: Driver) {\r\n if (driver)\r\n Object.assign(this.driverEdit, driver);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewDriver)\r\n this.alertService.showMessage(\"Success\", `Driver \\\"${this.driverEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to driver type \\\"${this.driverEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.driverEdit = new Driver();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewMealType && this.accountService.currentUser.facilities.some(r => r == this.editingMealTypeCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.driverEdit = new Driver();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newDriver() {\r\n this.isNewDriver = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDriverName = null;\r\n this.selectedValues = {};\r\n this.driverEdit = new Driver();\r\n\r\n return this.driverEdit;\r\n }\r\n\r\n editDriver(driver: Driver) {\r\n if (driver) {\r\n this.isNewDriver = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingDriverName = driver.name;\r\n this.selectedValues = {};\r\n this.driverEdit = new Driver();\r\n Object.assign(this.driverEdit, driver);\r\n\r\n return this.driverEdit;\r\n }\r\n else {\r\n return this.newDriver();\r\n }\r\n }\r\n\r\n get canManageDrivers() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMealTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9kcml2ZXIvZHJpdmVycy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2RyaXZlci9kcml2ZXJzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Drivers

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Driver } from 'src/app/models/meal-order/driver.model';\r\nimport { DriverEditorComponent } from './driver-editor.component';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'drivers-management',\r\n templateUrl: './drivers-management.component.html',\r\n styleUrls: ['./drivers-management.component.css']\r\n})\r\nexport class DriversManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Driver[] = [];\r\n rowsCache: Driver[] = [];\r\n allPermissions: Permission[] = [];\r\n editedDriver: Driver;\r\n sourceDriver: Driver;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('driverEditor')\r\n driverEditor: DriverEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(driver: Driver): void {\r\n const dialogRef = this.dialog.open(DriverEditorComponent, {\r\n data: { header: this.header, driver: driver },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Name' },\r\n { prop: 'contact', name: 'Contact Number' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deliveryService.getDriversByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let drivers = results.pagedData;\r\n\r\n drivers.forEach((driver, index, drivers) => {\r\n (driver).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...drivers];\r\n this.rows = drivers;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newDriver() {\r\n this.header = 'New Driver';\r\n this.editedDriver = new Driver();\r\n this.openDialog(this.editedDriver);\r\n }\r\n\r\n\r\n editDriver(row: Driver) {\r\n this.editedDriver = row;\r\n this.header = 'Edit Driver';\r\n this.openDialog(this.editedDriver);\r\n }\r\n\r\n deleteDriver(row: Driver) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" driver?', DialogType.confirm, () => this.deleteDriverHelper(row));\r\n }\r\n\r\n\r\n deleteDriverHelper(row: Driver) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteDriver(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the driver type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageDrivers() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMealTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9lbWFpbC10ZW1wbGF0ZS9lbWFpbC10ZW1wbGF0ZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2VtYWlsLXRlbXBsYXRlL2VtYWlsLXRlbXBsYXRlLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { EmailService } from '../../../services/meal-order/email.service';\r\nimport { EmailTemplate } from 'src/app/models/meal-order/email-template';\r\n\r\n\r\n@Component({\r\n selector: 'email-template-editor',\r\n templateUrl: './email-template-editor.component.html',\r\n styleUrls: ['./email-template-editor.component.css']\r\n})\r\nexport class EmailTemplateEditorComponent {\r\n\r\n private isNewEmailTemplate = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingEmailTemplateCode: string;\r\n private emailTemplateEdit: EmailTemplate = new EmailTemplate();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public outletId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private emailService: EmailService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.emailTemplate) != typeof (undefined)) {\r\n this.outletId = data.outletId;\r\n if (data.emailTemplate.id) {\r\n this.editEmailTemplate(data.emailTemplate);\r\n } else {\r\n this.newEmailTemplate();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n\r\n if (this.isNewEmailTemplate) {\r\n this.emailService.newEmailTemplate(this.emailTemplateEdit).subscribe(emailTemplate => this.saveSuccessHelper(emailTemplate), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.emailService.updateEmailTemplate(this.emailTemplateEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(emailTemplate?: EmailTemplate) {\r\n if (emailTemplate)\r\n Object.assign(this.emailTemplateEdit, emailTemplate);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewEmailTemplate)\r\n this.alertService.showMessage(\"Success\", `\\\"${this.emailTemplateEdit.subject}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.emailTemplateEdit.subject}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.emailTemplateEdit = new EmailTemplate();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewEmailTemplate && this.accountService.currentUser.facilities.some(r => r == this.editingEmailTemplateCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.emailTemplateEdit = new EmailTemplate();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newEmailTemplate() {\r\n this.isNewEmailTemplate = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingEmailTemplateCode = null;\r\n this.selectedValues = {};\r\n this.emailTemplateEdit = new EmailTemplate();\r\n this.emailTemplateEdit.outletId = this.outletId;\r\n this.emailTemplateEdit.fromName = 'FRS Team';\r\n this.emailTemplateEdit.fromEmail = 'donotreply@smv360.com';\r\n return this.emailTemplateEdit;\r\n }\r\n\r\n editEmailTemplate(emailTemplate: EmailTemplate) {\r\n if (emailTemplate) {\r\n this.isNewEmailTemplate = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingEmailTemplateCode = emailTemplate.subject;\r\n this.selectedValues = {};\r\n this.emailTemplateEdit = new EmailTemplate();\r\n Object.assign(this.emailTemplateEdit, emailTemplate);\r\n\r\n return this.emailTemplateEdit;\r\n }\r\n else {\r\n return this.newEmailTemplate();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageEmailTemplates() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMOSOrderMgtEmailTemplatesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9lbWFpbC10ZW1wbGF0ZS9lbWFpbC10ZW1wbGF0ZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9lbWFpbC10ZW1wbGF0ZS9lbWFpbC10ZW1wbGF0ZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Email Templates

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n Send Test Email\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { EmailTemplateEditorComponent } from './email-template-editor.component';\r\nimport { EmailService } from 'src/app/services/meal-order/email.service';\r\nimport { EmailTemplate } from 'src/app/models/meal-order/email-template';\r\n\r\n\r\n@Component({\r\n selector: 'email-templates-management',\r\n templateUrl: './email-templates-management.component.html',\r\n styleUrls: ['./email-templates-management.component.css']\r\n})\r\nexport class EmailTemplatesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: EmailTemplate[] = [];\r\n rowsCache: EmailTemplate[] = [];\r\n allPermissions: Permission[] = [];\r\n editedEmailTemplate: EmailTemplate;\r\n sourceEmailTemplate: EmailTemplate;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: EmailTemplateEditorComponent;\r\n\r\n @ViewChild('emailTemplatesTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n @Input() outletId: string;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private emailService: EmailService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(emailTemplate: EmailTemplate): void {\r\n const dialogRef = this.dialog.open(EmailTemplateEditorComponent, {\r\n data: { header: this.header, emailTemplate: emailTemplate, outletId: this.outletId },\r\n width: '700px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'subject';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'subject', name: 'Subject' },\r\n { prop: 'body', name: 'Body' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Subject)@=' + this.keyword + ',(OutletId)==' + (this.outletId ? this.outletId : '');\r\n \r\n this.emailService.getEmailTemplatesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let emailTemplates = results.pagedData;\r\n\r\n emailTemplates.forEach((emailTemplate, index, emailTemplates) => {\r\n (emailTemplate).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...emailTemplates];\r\n this.rows = emailTemplates;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newEmailTemplate() {\r\n this.header = 'New Template';\r\n this.editedEmailTemplate = new EmailTemplate();\r\n this.editedEmailTemplate.outletId = this.outletId;\r\n this.openDialog(this.editedEmailTemplate);\r\n }\r\n\r\n\r\n editEmailTemplate(row: EmailTemplate) {\r\n this.editedEmailTemplate = row;\r\n this.header = 'Edit Template';\r\n this.openDialog(this.editedEmailTemplate);\r\n }\r\n\r\n deleteEmailTemplate(row: EmailTemplate) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.subject + '\\\" template?', DialogType.confirm, () => this.deleteEmailTemplateHelper(row));\r\n }\r\n\r\n\r\n deleteEmailTemplateHelper(row: EmailTemplate) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.emailService.deleteEmailTemplate(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the template.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n sentTestEmail(row: EmailTemplate) {\r\n this.alertService.showDialog('Enter email:', DialogType.prompt, (val) => {\r\n if (!val) return;\r\n this.emailService.sendTestEmail(row.id, val)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Success\", `Emails sent!`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Sending Error\", `An error occured while sending emails.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }, () => {\r\n });\r\n }\r\n\r\n get canManageEmailTemplates() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMOSOrderMgtEmailTemplatesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9pbnRlcmVzdC1ncm91cC9pbnRlcmVzdC1ncm91cC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL2ludGVyZXN0LWdyb3VwL2ludGVyZXN0LWdyb3VwLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { InterestGroup } from 'src/app/models/meal-order/interest-group.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\n\r\n\r\n@Component({\r\n selector: 'interest-group-editor',\r\n templateUrl: './interest-group-editor.component.html',\r\n styleUrls: ['./interest-group-editor.component.css']\r\n})\r\nexport class InterestGroupEditorComponent {\r\n\r\n private isNewInterestGroup = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingInterestGroupCode: string;\r\n private interestGroupEdit: InterestGroup = new InterestGroup();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private studentService: StudentService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.interestGroup) != typeof (undefined)) {\r\n if (data.interestGroup.id) {\r\n this.editInterestGroup(data.interestGroup);\r\n } else {\r\n this.newInterestGroup();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.interestGroupEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewInterestGroup) {\r\n this.studentService.newInterestGroup(this.interestGroupEdit).subscribe(interestGroup => this.saveSuccessHelper(interestGroup), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.studentService.updateInterestGroup(this.interestGroupEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(interestGroup?: InterestGroup) {\r\n if (interestGroup)\r\n Object.assign(this.interestGroupEdit, interestGroup);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewInterestGroup)\r\n this.alertService.showMessage(\"Success\", `Interest Group \\\"${this.interestGroupEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Interest Group \\\"${this.interestGroupEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.interestGroupEdit = new InterestGroup();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewInterestGroup && this.accountService.currentUser.facilities.some(r => r == this.editingInterestGroupCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.interestGroupEdit = new InterestGroup();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newInterestGroup() {\r\n this.isNewInterestGroup = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingInterestGroupCode = null;\r\n this.selectedValues = {};\r\n this.interestGroupEdit = new InterestGroup();\r\n\r\n return this.interestGroupEdit;\r\n }\r\n\r\n editInterestGroup(interestGroup: InterestGroup) {\r\n if (interestGroup) {\r\n this.isNewInterestGroup = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingInterestGroupCode = interestGroup.name;\r\n this.selectedValues = {};\r\n this.interestGroupEdit = new InterestGroup();\r\n Object.assign(this.interestGroupEdit, interestGroup);\r\n\r\n return this.interestGroupEdit;\r\n }\r\n else {\r\n return this.newInterestGroup();\r\n }\r\n }\r\n\r\n get canManageInterestGroups() {\r\n return true; //this.accountService.userHasPermission(Permission.manageInterestGroupsPermission)\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9pbnRlcmVzdC1ncm91cC9pbnRlcmVzdC1ncm91cC1lbWFpbC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vaW50ZXJlc3QtZ3JvdXAvaW50ZXJlc3QtZ3JvdXAtZW1haWwuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Email Template\\r\\n \\r\\n \\r\\n {{emailTemplate.subject}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { InterestGroup } from 'src/app/models/meal-order/interest-group.model';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { EmailService } from 'src/app/services/meal-order/email.service';\r\n\r\n\r\n@Component({\r\n selector: 'interest-group-email',\r\n templateUrl: './interest-group-email.component.html',\r\n styleUrls: ['./interest-group-email.component.css']\r\n})\r\nexport class InterestGroupEmailComponent {\r\n\r\n public id: string;\r\n public templateId: string;\r\n emailTemplates: any[] = [];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private studentService: StudentService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private emailService: EmailService, \r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.id) != typeof (undefined)) {\r\n this.id = data.id;\r\n }\r\n\r\n if (typeof (data.templateId) != typeof (undefined)) {\r\n this.templateId = data.templateId;\r\n }\r\n\r\n if (typeof (data.outletId) != typeof (undefined)) {\r\n this.getEmailTemplates(data.outletId);\r\n }\r\n }\r\n\r\n getEmailTemplates(outletId) {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(OutletId)==' + (outletId ? outletId: '');\r\n\r\n this.emailService.getEmailTemplatesByFilter(filter)\r\n .subscribe(results => {\r\n this.emailTemplates = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.alertService.startLoadingMessage(\"Sending email...\");\r\n this.studentService.sendEmailToStudents(this.templateId, this.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Success\", `Emails sent!`, MessageSeverity.success);\r\n this.dialogRef.close();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Sending Error\", `An error occured while sending emails.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n private cancel() {\r\n this.alertService.resetStickyMessage();\r\n this.dialogRef.close();\r\n }\r\n\r\n get canManageInterestGroups() {\r\n return true; //this.accountService.userHasPermission(Permission.manageInterestGroupsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9pbnRlcmVzdC1ncm91cC9pbnRlcmVzdC1ncm91cHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9pbnRlcmVzdC1ncm91cC9pbnRlcmVzdC1ncm91cHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Interest Groups

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Send Email\\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { InterestGroup } from 'src/app/models/meal-order/interest-group.model';\r\nimport { InterestGroupEditorComponent } from './interest-group-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { InterestGroupEmailComponent } from './interest-group-email.component';\r\n\r\n\r\n@Component({\r\n selector: 'interest-groups-management',\r\n templateUrl: './interest-groups-management.component.html',\r\n styleUrls: ['./interest-groups-management.component.css']\r\n})\r\nexport class InterestGroupsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: InterestGroup[] = [];\r\n rowsCache: InterestGroup[] = [];\r\n allPermissions: Permission[] = [];\r\n editedInterestGroup: InterestGroup;\r\n sourceInterestGroup: InterestGroup;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() outletId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('interestGroupEditor')\r\n interestGroupEditor: InterestGroupEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private studentService: StudentService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(interestGroup: InterestGroup): void {\r\n const dialogRef = this.dialog.open(InterestGroupEditorComponent, {\r\n data: { header: this.header, interestGroup: interestGroup },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Name' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.studentService.getInterestGroupsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let interestGroups = results.pagedData;\r\n\r\n interestGroups.forEach((interestGroup, index, interestGroups) => {\r\n (interestGroup).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...interestGroups];\r\n this.rows = interestGroups;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newInterestGroup() {\r\n this.header = 'New Interest Group';\r\n this.editedInterestGroup = new InterestGroup();\r\n this.openDialog(this.editedInterestGroup);\r\n }\r\n\r\n\r\n editInterestGroup(row: InterestGroup) {\r\n this.editedInterestGroup = row;\r\n this.header = 'Edit Interest Group';\r\n this.openDialog(this.editedInterestGroup);\r\n }\r\n\r\n deleteInterestGroup(row: InterestGroup) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.name + '\\\"?', DialogType.confirm, () => this.deleteInterestGroupHelper(row));\r\n }\r\n\r\n\r\n deleteInterestGroupHelper(row: InterestGroup) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.studentService.deleteInterestGroup(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Interest Group.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n sendEmail(row: InterestGroup) {\r\n const dialogRef = this.dialog.open(InterestGroupEmailComponent, {\r\n data: { header: \"Send Email\", id: row.id, outletId: this.outletId },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n\r\n get canManageInterestGroups() {\r\n return true; //this.accountService.userHasPermission(Permission.manageInterestGroupsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZWFsLWFsbG9jYXRpb24vbWVhbC1hbGxvY2F0aW9ucy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZWFsLWFsbG9jYXRpb24vbWVhbC1hbGxvY2F0aW9ucy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Meal Allocations

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{(row.isFAS ? 'YES' : 'NO')}}\\r\\n \\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { StudentGroup } from 'src/app/models/meal-order/student-group.model';\r\nimport { PrintAllocationComponent } from './print-allocation.component';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { TokenOrdersBulkManagementComponent } from './../token-order-bulk/token-orders-bulk-management.component';\r\nimport { TokenLabel, TokenDishLabel, MealAllocation } from 'src/app/models/meal-order/token-order.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\n\r\n\r\n@Component({\r\n selector: 'meal-allocations-management',\r\n templateUrl: './meal-allocations-management.component.html',\r\n styleUrls: ['./meal-allocations-management.component.css']\r\n})\r\nexport class MealAllocationssManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: MealAllocation[] = [];\r\n rowsCache: MealAllocation[] = [];\r\n allPermissions: Permission[] = [];\r\n editedAllocation: MealAllocation;\r\n sourceAllocation: MealAllocation;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() outletId: string;\r\n\r\n @ViewChild('fileImport')\r\n fileImport: ElementRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('fasTemplate')\r\n fasTemplate: TemplateRef;\r\n\r\n @ViewChild('printAllocationComponent')\r\n printAllocationComponent: PrintAllocationComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private studentService: StudentService, public dialog: MatDialog, private menuService: MenuService) {\r\n }\r\n\r\n openDialog(allocation: MealAllocation): void {\r\n const dialogRef = this.dialog.open(PrintAllocationComponent, {\r\n data: { header: this.header, allocation: allocation, outletId: this.outletId },\r\n width: '1000px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'deliveryDate';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'deliveryDate', name: 'Delivery Date' },\r\n //{ prop: 'name', name: 'Name' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.outletId ? '(OutletId)==' + this.outletId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true';\r\n\r\n this.menuService.getMealAllocationsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let allocations = results.pagedData;\r\n\r\n allocations.forEach((allocation, index, students) => {\r\n (allocation).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...allocations];\r\n this.rows = allocations;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newAllocation() {\r\n this.header = 'New Meal Allocations';\r\n this.editedAllocation = new MealAllocation();\r\n this.openDialog(this.editedAllocation);\r\n }\r\n\r\n\r\n editAllocation(row: MealAllocation) {\r\n this.editedAllocation = row;\r\n this.header = 'Edit Meal Allocation';\r\n this.openDialog(this.editedAllocation);\r\n }\r\n\r\n deleteAllocation(row: MealAllocation) {\r\n this.alertService.showDialog('Are you sure you want to delete Meal Allocation?', DialogType.confirm, () => this.deleteAllocationHelper(row));\r\n }\r\n\r\n\r\n deleteAllocationHelper(row: MealAllocation) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.menuService.deleteMealAllocation(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Meal Allocation.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageStudents() {\r\n return true;\r\n }\r\n\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZWFsLWFsbG9jYXRpb24vcHJpbnQtYWxsb2NhdGlvbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZWFsLWFsbG9jYXRpb24vcHJpbnQtYWxsb2NhdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMyOGE3NDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Session\\r\\n \\r\\n \\r\\n {{session.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Period\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Token OrdersToken BookedDish BookedProposed AllocationOverwrite AllocationTotal
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { TokenOrder, TokenLabel, TokenDishLabel, MealAllocation } from 'src/app/models/meal-order/token-order.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport * as moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\nimport { MenuService } from '../../../services/meal-order/menu.service';\r\nimport { Dish } from '../../../models/meal-order/dish.model';\r\nimport { MealType } from '../../../models/meal-order/meal-type.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { MealSessionDetail, MealSession } from 'src/app/models/meal-order/meal-session.model';\r\n\r\n\r\n@Component({\r\n selector: 'print-allocation',\r\n templateUrl: './print-allocation.component.html',\r\n styleUrls: ['./print-allocation.component.css']\r\n})\r\nexport class PrintAllocationComponent implements OnInit {\r\n stores: StoreInfo[];\r\n storesCache: StoreInfo[];\r\n selectedStores: StoreInfo[] = [];\r\n editOutlet: Outlet;\r\n outletId: string;\r\n sessions: MealSessionDetail[] = [];\r\n allSessions: MealSession[] = [];\r\n selectedCaterers: CatererOutlet[];\r\n orderDate = new Date();\r\n orders: TokenOrder[];\r\n token_count: TokenLabel[] = [];\r\n dishes: Dish[];\r\n tokens: MealType[];\r\n allocation: MealAllocation;\r\n isSaving = false;\r\n isNewAllocation = false;\r\n selectedPeriodName = \"\";\r\n\r\n //dish_count: TokenDishLabel[] = [];\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef, private menuService: MenuService, private mealService: MealService, private dishService: DishService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outletId) != typeof (undefined)) {\r\n this.outletId = data.outletId;\r\n }\r\n if (typeof (data.allocation) != typeof (undefined)) {\r\n if (data.allocation.id) {\r\n this.editAllocation(data.allocation);\r\n } else {\r\n this.newAllocation();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.getMenuDishes();\r\n this.getMealTypes();\r\n this.getSessions();\r\n this.getAllSessions();\r\n //this.getTokenOrder();\r\n }\r\n\r\n loadData() {\r\n let filterCaterer = \"\";\r\n this.selectedCaterers.forEach((caterer, i) => {\r\n if (caterer.status == \"APPROVED\") {\r\n if (filterCaterer != \"\") {\r\n filterCaterer += '|'\r\n }\r\n filterCaterer += caterer.catererInfoId\r\n }\r\n });\r\n console.log(\"caterer filter = \", filterCaterer)\r\n\r\n //this.getStore(filterCaterer);\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n console.log(\"event value: \", moment(event.value))\r\n this.orderDate = new Date(event.value);\r\n this.allocation.deliveryDate = this.orderDate;\r\n this.getSessions();\r\n }\r\n\r\n onChangeSessions() {\r\n if (this.allocation.mealSessionId) {\r\n let sessionDetailSelected = this.sessions.find(x => x.id === this.allocation.mealSessionId);\r\n let sessionSelected = this.allSessions.find(x => x.id === sessionDetailSelected.mealSessionId);\r\n\r\n this.allocation.outletId = sessionSelected.mealPeriodId;\r\n this.selectedPeriodName = sessionSelected.mealPeriodName;\r\n }\r\n }\r\n\r\n getAllSessions() {\r\n let filter = new Filter();\r\n //let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = '(IsActive)==true';\r\n this.mealService.getMealSessionsByFilter(filter)\r\n .subscribe(results => {\r\n this.allSessions = results.pagedData;\r\n this.onChangeSessions()\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal type.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.stores = this.storesCache.filter(r => Utilities.searchArray(value, false, r.name));\r\n }\r\n\r\n getOrderData() {\r\n console.log(\"clicked\")\r\n this.getTokenOrder();\r\n }\r\n\r\n getMealTypes() {\r\n let filter = new Filter();\r\n filter.sorts = 'name';\r\n //let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters ='(IsActive)==true';\r\n this.mealService.getMealTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.tokens = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal type.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getMenuDishes() {\r\n let filter = new Filter();\r\n //let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters ='(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishes = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getSessions() {\r\n if (this.orderDate) {\r\n var date = new Date(this.orderDate.getTime() - (this.orderDate.getTimezoneOffset() * 60000)).toJSON().split('T')\r\n console.log(\"order date: \", date[0])\r\n this.menuService.getOutletSessionsByFilter(this.outletId, date[0])\r\n .subscribe(results => {\r\n this.sessions = results;\r\n console.log(\"sessions: \", this.sessions)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal sessions.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n }\r\n\r\n getTokenName(id) {\r\n let token = this.tokens.find(x => x.id === id);\r\n if (token) {\r\n return token.name\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n getDishName(id) {\r\n let dish = this.dishes.find(x => x.id === id);\r\n if (dish) {\r\n return dish.label\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n getDishCode(id) {\r\n let dish = this.dishes.find(x => x.id === id);\r\n if (dish) {\r\n return dish.code\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n \r\n\r\n onChangeQty(event, detail?: TokenDishLabel, token?: TokenLabel) {\r\n if (detail.a_qty > 0) {\r\n detail.t_qty = detail.o_qty + detail.a_qty;\r\n } else {\r\n detail.t_qty = detail.o_qty + detail.p_qty;\r\n }\r\n\r\n token.qty_tdishes = 0;\r\n\r\n token.dishes.forEach(d => {\r\n token.qty_tdishes += d.t_qty;\r\n\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n\r\n getTokenOrder() {\r\n var insideFilter = new Filter();\r\n\r\n this.token_count = [];\r\n\r\n var strDate = moment(this.orderDate).format().split('T');\r\n let f = this.allocation.mealSessionId ? '(MealSessionDetailId)==' + this.allocation.mealSessionId + ',' : '';\r\n insideFilter.filters = f + '(IsActive)==true,(outletId)==' + this.outletId + ',(DeliveryDate)==' + strDate[0];\r\n console.log(\"filters: \", insideFilter.filters)\r\n\r\n this.menuService.getTokenOrdersByFilter(insideFilter).subscribe(results => {\r\n this.orders = results.pagedData;\r\n\r\n console.log(\"order : \",this.orders)\r\n\r\n //Order Loop\r\n this.orders.forEach(o => {\r\n\r\n //Token Loop\r\n o.tokens.forEach(t => {\r\n\r\n if (t.qty == 0) t.qty = 1;\r\n\r\n var tokenIndex = this.token_count.findIndex(x => x.token_id === t.tokenId)\r\n if (tokenIndex < 0) {\r\n var token = new TokenLabel;\r\n token.token_id = t.tokenId;\r\n token.meal_allocation_id = this.allocation.id;\r\n token.token_name = this.getTokenName(t.tokenId);\r\n console.log(\"combined dish: \", t.selectedCombinedDishes.length)\r\n if (t.selectedCombinedDishes.length > 0) {\r\n console.log(\"menuqty: \", t.selectedCombinedDishes[0].menuQty)\r\n token.qty = t.qty * t.selectedCombinedDishes[0].menuQty;\r\n } else {\r\n token.qty = t.qty;\r\n }\r\n token.qty_menus = t.qty;\r\n token.qty_dishes = 0;\r\n token.qty_pdishes = 0;\r\n token.qty_tdishes = 0;\r\n token.deliveryDate = strDate[0];\r\n token.dishes = [];\r\n this.token_count.push(token);\r\n tokenIndex = this.token_count.findIndex(x => x.token_id === t.tokenId)\r\n } else {\r\n if (t.selectedCombinedDishes.length > 0) {\r\n this.token_count[tokenIndex].qty += (t.qty * t.selectedCombinedDishes[0].menuQty);\r\n } else {\r\n this.token_count[tokenIndex].qty += t.qty;\r\n }\r\n this.token_count[tokenIndex].qty_menus += t.qty;\r\n }\r\n\r\n // Selected dishes loop\r\n t.selectedDishes.forEach(d => {\r\n var dishIndex = this.token_count[tokenIndex].dishes.findIndex(y => y.dish_id === d.dishId)\r\n if (dishIndex < 0) {\r\n var dish = new TokenDishLabel;\r\n //dish.token_lable_id = t.id;\r\n dish.token_id = t.tokenId;\r\n dish.token_name = this.getTokenName(t.tokenId);\r\n dish.dish_id = d.dishId;\r\n dish.dish_name = this.getDishName(d.dishId);\r\n dish.dish_code = this.getDishCode(d.dishId);\r\n dish.o_qty = d.qty;\r\n this.token_count[tokenIndex].dishes.push(dish);\r\n } else {\r\n this.token_count[tokenIndex].dishes[dishIndex].o_qty += d.qty;\r\n }\r\n this.token_count[tokenIndex].qty_dishes += d.qty;\r\n\r\n })\r\n\r\n })\r\n\r\n })\r\n\r\n //count proposed allocation\r\n this.token_count.forEach(t => {\r\n t.qty_pdishes = 0;\r\n t.qty_tdishes = 0;\r\n t.dishes.forEach(d => {\r\n console.log(\"hasil awal: \", d.o_qty / t.qty_dishes * (t.qty - t.qty_dishes))\r\n var p_allocation = Math.ceil(d.o_qty / t.qty_dishes * (t.qty - t.qty_dishes))\r\n console.log(\"ceiling: \", p_allocation)\r\n d.p_qty = p_allocation;\r\n d.t_qty = d.o_qty + d.p_qty;\r\n t.qty_pdishes += p_allocation;\r\n t.qty_tdishes += d.t_qty;\r\n\r\n })\r\n\r\n })\r\n\r\n\r\n console.log(\"token count: \", this.token_count);\r\n\r\n }, error => { });\r\n }\r\n\r\n save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.allocation.outletId = this.outletId;\r\n this.allocation.tokens = this.token_count;\r\n this.allocation.deliveryDate = (new Date(this.orderDate.getTime() - (this.orderDate.getTimezoneOffset() * 60000)));\r\n console.log(\"saving: \", this.allocation)\r\n\r\n if (this.isNewAllocation) {\r\n this.menuService.newMealAllocation(this.allocation).subscribe(allocation => this.saveSuccessHelper(allocation), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.menuService.updateMealAllocation(this.allocation).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n\r\n }\r\n\r\n\r\n private saveSuccessHelper(allocation?: MealAllocation) {\r\n if (allocation)\r\n Object.assign(this.allocation, allocation);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (this.isNewAllocation)\r\n this.alertService.showMessage(\"Success\", `Meal Allocation was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Meal Allocations was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.allocation = new MealAllocation();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n newAllocation() {\r\n this.isNewAllocation = true;\r\n\r\n this.allocation = new MealAllocation();\r\n this.orderDate = moment().toDate();\r\n this.orderDate.setHours(0, 0, 0, 0);\r\n this.allocation.deliveryDate = this.orderDate;\r\n\r\n return this.allocation;\r\n }\r\n\r\n editAllocation(allocation: MealAllocation) {\r\n if (allocation) {\r\n this.isNewAllocation = false;\r\n\r\n console.log(\"allocation inside: \", allocation)\r\n\r\n this.allocation = new MealAllocation();\r\n Object.assign(this.allocation, allocation);\r\n this.orderDate = new Date(this.allocation.deliveryDate);\r\n this.token_count = this.allocation.tokens;\r\n\r\n return this.allocation;\r\n }\r\n else {\r\n return this.allocation;\r\n }\r\n }\r\n\r\n print() {\r\n console.log(\"download Label\");\r\n this.downloadLabel();\r\n }\r\n\r\n downloadLabel() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_OrderLabel.pdf';\r\n\r\n console.log(\"token sent: \", this.token_count)\r\n\r\n this.menuService.downloadOrderLabel(this.token_count).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZWFsLXBlcmlvZC9tZWFsLXBlcmlvZC1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL21lYWwtcGVyaW9kL21lYWwtcGVyaW9kLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Outlet Profile\\r\\n 0\\\" id=\\\"outletProfile\\\" name=\\\"outletProfile\\\" [(ngModel)]=\\\"mealPeriodEdit.outletProfileId\\\" #outletProfile=\\\"ngModel\\\" required>\\r\\n \\r\\n {{outletProfile.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialogRef, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\n\r\n\r\n@Component({\r\n selector: 'meal-period-editor',\r\n templateUrl: './meal-period-editor.component.html',\r\n styleUrls: ['./meal-period-editor.component.css'],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\nexport class MealPeriodEditorComponent {\r\n\r\n private isNewMealPeriod = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingMealPeriodCode: string;\r\n private mealPeriodEdit: MealPeriod = new MealPeriod();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n start = new Date();\r\n end = new Date();\r\n outletProfiles = [];\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public catererId: string;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private mealService: MealService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,private deliveryService: DeliveryService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.mealPeriod) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.mealPeriod.id) {\r\n this.editMealPeriod(data.mealPeriod);\r\n } else {\r\n this.newMealPeriod();\r\n }\r\n }\r\n\r\n this.getOutletProfiles();\r\n }\r\n\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n this.mealPeriodEdit.startDate = new Date(event.value);\r\n }\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n this.mealPeriodEdit.endDate = new Date(event.value);\r\n }\r\n }\r\n\r\n getOutletProfiles() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.deliveryService.getOutletProfilesByFilter(filter)\r\n .subscribe(results => {\r\n this.outletProfiles = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.mealPeriodEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewMealPeriod) {\r\n this.mealService.newMealPeriod(this.mealPeriodEdit).subscribe(mealPeriod => this.saveSuccessHelper(mealPeriod), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.mealService.updateMealPeriod(this.mealPeriodEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(mealPeriod?: MealPeriod) {\r\n if (mealPeriod)\r\n Object.assign(this.mealPeriodEdit, mealPeriod);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewMealPeriod)\r\n this.alertService.showMessage(\"Success\", `Restriction Type \\\"${this.mealPeriodEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.mealPeriodEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.mealPeriodEdit = new MealPeriod();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewMealPeriod && this.accountService.currentUser.facilities.some(r => r == this.editingMealPeriodCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.mealPeriodEdit = new MealPeriod();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newMealPeriod() {\r\n this.isNewMealPeriod = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingMealPeriodCode = null;\r\n this.selectedValues = {};\r\n this.mealPeriodEdit = new MealPeriod();\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.mealPeriodEdit.startDate = this.start;\r\n this.mealPeriodEdit.endDate = this.end;\r\n this.mealPeriodEdit.catererId = this.catererId;\r\n return this.mealPeriodEdit;\r\n }\r\n\r\n editMealPeriod(mealPeriod: MealPeriod) {\r\n if (mealPeriod) {\r\n this.isNewMealPeriod = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingMealPeriodCode = mealPeriod.name;\r\n this.selectedValues = {};\r\n this.mealPeriodEdit = new MealPeriod();\r\n Object.assign(this.mealPeriodEdit, mealPeriod);\r\n this.start = this.mealPeriodEdit.startDate;\r\n this.end = this.mealPeriodEdit.endDate;\r\n return this.mealPeriodEdit;\r\n }\r\n else {\r\n return this.newMealPeriod();\r\n }\r\n }\r\n\r\n get canManageMealPeriods() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMealPeriodsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZWFsLXBlcmlvZC9tZWFsLXBlcmlvZHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZWFsLXBlcmlvZC9tZWFsLXBlcmlvZHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Meal Periods

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value | date:'h:mm a'}}\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { MealPeriodEditorComponent } from './meal-period-editor.component';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'meal-periods-management',\r\n templateUrl: './meal-periods-management.component.html',\r\n styleUrls: ['./meal-periods-management.component.css']\r\n})\r\nexport class MealPeriodsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: MealPeriod[] = [];\r\n rowsCache: MealPeriod[] = [];\r\n allPermissions: Permission[] = [];\r\n editedMealPeriod: MealPeriod;\r\n sourceMealPeriod: MealPeriod;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n @Input() catererId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('timeTemplate')\r\n timeTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('mealPeriodEditor')\r\n mealPeriodEditor: MealPeriodEditorComponent;\r\n\r\n @ViewChild('mealPeriodsTable') table: any;\r\n\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private mealService: MealService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(mealPeriod: MealPeriod): void {\r\n const dialogRef = this.dialog.open(MealPeriodEditorComponent, {\r\n data: { header: this.header, mealPeriod: mealPeriod, catererId: this.catererId },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'sequence';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'outletProfileName', name: 'Outlet Profile' },\r\n { prop: 'name', name: 'Name' },\r\n { prop: 'sequence', name: 'Sequence' },\r\n { prop: 'startDate', name: 'Start Time', cellTemplate: this.timeTemplate },\r\n { prop: 'endDate', name: 'End Time', cellTemplate: this.timeTemplate },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.mealService.getMealPeriodsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let mealPeriods = results.pagedData;\r\n\r\n mealPeriods.forEach((mealPeriod, index, mealPeriods) => {\r\n (mealPeriod).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...mealPeriods];\r\n this.rows = mealPeriods;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newMealPeriod() {\r\n this.header = 'New Meal Period';\r\n this.editedMealPeriod = new MealPeriod();\r\n this.openDialog(this.editedMealPeriod);\r\n }\r\n\r\n\r\n editMealPeriod(row: MealPeriod) {\r\n this.editedMealPeriod = row;\r\n this.header = 'Edit Meal Period';\r\n this.editedMealPeriod.catererId = this.catererId;\r\n this.openDialog(this.editedMealPeriod);\r\n }\r\n\r\n deleteMealPeriod(row: MealPeriod) {\r\n this.alertService.showDialog('Are you sure you want to delete \\\"' + row.name + '\\\"?', DialogType.confirm, () => this.deleteMealPeriodHelper(row));\r\n }\r\n\r\n\r\n deleteMealPeriodHelper(row: MealPeriod) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.mealService.deleteMealPeriod(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the meal period\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageMealPeriods() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMealPeriodsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZWFsLXR5cGUvbWVhbC10eXBlLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vbWVhbC10eXBlL21lYWwtdHlwZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n SKU \\r\\n Meal Type \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealType, MealTypeDish } from 'src/app/models/meal-order/meal-type.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Dish } from 'src/app/models/meal-order/dish.model';\r\nimport { Cuisine } from 'src/app/models/meal-order/cuisine.model';\r\n\r\n\r\n@Component({\r\n selector: 'meal-type-editor',\r\n templateUrl: './meal-type-editor.component.html',\r\n styleUrls: ['./meal-type-editor.component.css']\r\n})\r\nexport class MealTypeEditorComponent {\r\n\r\n private isNewMealType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingMealTypeCode: string;\r\n private mealTypeEdit: MealType = new MealType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private dishes: Dish[] = [];\r\n private cuisines: Cuisine[] = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public catererId: string;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private mealService: MealService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private dishService: DishService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.mealType) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.mealType.id) {\r\n this.editMealType(data.mealType);\r\n } else {\r\n this.newMealType();\r\n }\r\n }\r\n\r\n this.getDishes();\r\n this.getCuisines();\r\n }\r\n\r\n getCuisines() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.dishService.getCuisinesByFilter(filter)\r\n .subscribe(results => {\r\n this.cuisines = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving cuisines.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getDishes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishes = results.pagedData;\r\n this.dishes.forEach((p, index, ps) => {\r\n (p).checked = this.mealTypeEdit.dishes != null && this.mealTypeEdit.dishes.findIndex(f => f.dishId == p.id) > -1;\r\n });\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.mealTypeEdit.dishes = [];\r\n this.dishes.forEach((p, index, ps) => {\r\n if (p.checked) {\r\n let dtDish = new MealTypeDish();\r\n dtDish.mealTypeId = this.mealTypeEdit.id;\r\n dtDish.dishId = p.id;\r\n this.mealTypeEdit.dishes.push(dtDish);\r\n }\r\n\r\n });\r\n\r\n this.mealTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewMealType) {\r\n this.mealService.newMealType(this.mealTypeEdit).subscribe(mealType => this.saveSuccessHelper(mealType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.mealService.updateMealType(this.mealTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(mealType?: MealType) {\r\n if (mealType)\r\n Object.assign(this.mealTypeEdit, mealType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewMealType)\r\n this.alertService.showMessage(\"Success\", `Meal Type \\\"${this.mealTypeEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to meal type \\\"${this.mealTypeEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.mealTypeEdit = new MealType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewMealType && this.accountService.currentUser.facilities.some(r => r == this.editingMealTypeCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.mealTypeEdit = new MealType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newMealType() {\r\n this.isNewMealType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingMealTypeCode = null;\r\n this.selectedValues = {};\r\n this.mealTypeEdit = new MealType();\r\n this.mealTypeEdit.catererId = this.catererId;\r\n return this.mealTypeEdit;\r\n }\r\n\r\n editMealType(mealType: MealType) {\r\n if (mealType) {\r\n this.isNewMealType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingMealTypeCode = mealType.name;\r\n this.selectedValues = {};\r\n this.mealTypeEdit = new MealType();\r\n Object.assign(this.mealTypeEdit, mealType);\r\n\r\n return this.mealTypeEdit;\r\n }\r\n else {\r\n return this.newMealType();\r\n }\r\n }\r\n\r\n get canManageMealTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMealTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZWFsLXR5cGUvbWVhbC10eXBlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL21lYWwtdHlwZS9tZWFsLXR5cGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Meal Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
{{(row.chargeType == 'sku' ? 'SKU' : (row.chargeType == 'mealtype' ? 'Meal Type' : ''))}}
\\r\\n
\\r\\n\\r\\n \\r\\n
{{(row.isSubMenu ? 'Yes' : 'No')}}
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { MealType } from 'src/app/models/meal-order/meal-type.model';\r\nimport { MealTypeEditorComponent } from './meal-type-editor.component';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\n\r\n\r\n@Component({\r\n selector: 'meal-types-management',\r\n templateUrl: './meal-types-management.component.html',\r\n styleUrls: ['./meal-types-management.component.css']\r\n})\r\nexport class MealTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: MealType[] = [];\r\n rowsCache: MealType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedMealType: MealType;\r\n sourceMealType: MealType;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('chargeByTemplate')\r\n chargeByTemplate: TemplateRef;\r\n\r\n @ViewChild('submenuTemplate')\r\n submenuTemplate: TemplateRef;\r\n\r\n @ViewChild('mealTypeEditor')\r\n mealTypeEditor: MealTypeEditorComponent;\r\n\r\n @ViewChild('mealTypesTable') table: any;\r\n header: string;\r\n @Input() catererId: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private mealService: MealService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(mealType: MealType): void {\r\n const dialogRef = this.dialog.open(MealTypeEditorComponent, {\r\n data: { header: this.header, mealType: mealType, catererId: this.catererId },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Name' },\r\n { prop: 'price', name: 'Price', width: 100 },\r\n { name: 'Charge By', cellTemplate: this.chargeByTemplate },\r\n { name: 'Sub Menus', cellTemplate: this.submenuTemplate },\r\n //{ prop: 'cuisineName', name: 'Cuisine' },\r\n //{ prop: 'dishNames', name: 'Dishes', sortable: false },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.mealService.getMealTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let mealTypes = results.pagedData;\r\n\r\n mealTypes.forEach((mealType, index, mealTypes) => {\r\n (mealType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...mealTypes];\r\n this.rows = mealTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newMealType() {\r\n this.header = 'New Meal Type';\r\n this.editedMealType = new MealType();\r\n this.openDialog(this.editedMealType);\r\n }\r\n\r\n\r\n editMealType(row: MealType) {\r\n this.editedMealType = row;\r\n this.header = 'Edit Meal Type';\r\n this.editedMealType.catererId = this.catererId;\r\n this.openDialog(this.editedMealType);\r\n }\r\n\r\n deleteMealType(row: MealType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" meal type?', DialogType.confirm, () => this.deleteMealTypeHelper(row));\r\n }\r\n\r\n\r\n deleteMealTypeHelper(row: MealType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.mealService.deleteMealType(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the meal type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageMealTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMealTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.list {\\r\\n padding: 0\\r\\n}\\r\\n\\r\\n.list .mat-nav-list .mat-list-item {\\r\\n padding: 0 !important;\\r\\n height: 28px !important;\\r\\n }\\r\\n\\r\\n:host ::ng-deep .mat-list-item-content {\\r\\n padding: 0 !important;\\r\\n height: 28px !important;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-list-base .mat-list-item .mat-list-item-content, .mat-list-base .mat-list-option .mat-list-item-content {\\r\\n height: 28px !important;\\r\\n padding: 0 !important;\\r\\n}\\r\\n\\r\\n.mat-list-base .mat-list-item{\\r\\n font-size:12px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZW51LWN5Y2xlL21lbnUtY3ljbGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVksRUFBRSx3Q0FBd0M7RUFDdEQsV0FBVyxFQUFFLHdDQUF3QztFQUNyRCxzQkFBc0IsRUFBRSw2Q0FBNkM7RUFDckUscUJBQXFCLEVBQUUsNkNBQTZDO0FBQ3RFOztBQUVBO0VBQ0U7QUFDRjs7QUFFRTtJQUNFLHFCQUFxQjtJQUNyQix1QkFBdUI7RUFDekI7O0FBRUY7RUFDRSxxQkFBcUI7RUFDckIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL21lbnUtY3ljbGUvbWVudS1jeWNsZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcblxyXG4ubGlzdCB7XHJcbiAgcGFkZGluZzogMFxyXG59XHJcblxyXG4gIC5saXN0IC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQge1xyXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICBoZWlnaHQ6IDI4cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC1pdGVtLWNvbnRlbnQsIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saXN0LWl0ZW0tY29udGVudCB7XHJcbiAgaGVpZ2h0OiAyOHB4ICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbXtcclxuICBmb250LXNpemU6MTJweDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
General Information
\\r\\n \\r\\n Outlet Profile\\r\\n 0\\\" id=\\\"outletProfileId\\\" name=\\\"outletProfileId\\\" [(ngModel)]=\\\"menuCycleEdit.outletProfileId\\\" #outletProfileId=\\\"ngModel\\\" required (selectionChange)=\\\"onOutletChange($event.value)\\\">\\r\\n \\r\\n {{outletProfile.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Schedules
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{period.name}}
\\r\\n Day {{schedule.day}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{menu.label}} - {{menu.code}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
{{menu.label}} - {{menu.code}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { DateAdapter, MatDatepickerInputEvent, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MenuCycle, MenuCycleSchedule, MenuCycleScheduleMenu, MenuCycleSchedulePeriod } from 'src/app/models/meal-order/menu-cycle.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Dish } from 'src/app/models/meal-order/dish.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport * as moment from 'moment';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Menu } from 'src/app/models/menu.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\n\r\n@Component({\r\n selector: 'menu-cycle-editor',\r\n templateUrl: './menu-cycle-editor.component.html',\r\n styleUrls: ['./menu-cycle-editor.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\nexport class MenuCycleEditorComponent {\r\n\r\n private isNewMenuCycle = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingMenuCycleCode: string;\r\n private menuCycleEdit: MenuCycle = new MenuCycle();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n private outletProfiles = [];\r\n private menus: Menu[] = [];\r\n start = new Date();\r\n end = new Date();\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public catererId: string;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private menuService: MenuService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService, private deliveryService: DeliveryService,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dateAdapter: DateAdapter ) {\r\n this.dateAdapter.setLocale('en-SG');\r\n if (typeof (data.menuCycle) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.menuCycle.id) {\r\n this.editMenuCycle(data.menuCycle);\r\n } else {\r\n this.newMenuCycle();\r\n }\r\n }\r\n\r\n this.getMenus();\r\n //this.getPeriods();\r\n this.getOutletProfiles();\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n this.menuCycleEdit.startDate = new Date(event.value);\r\n }\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n this.menuCycleEdit.endDate = new Date(event.value);\r\n }\r\n }\r\n\r\n addSchedule() {\r\n if (!this.menuCycleEdit.schedules) { this.menuCycleEdit.schedules = []; }\r\n let d = this.menuCycleEdit.schedules.length + 1;\r\n let dayPeriods: MenuCycleSchedulePeriod[] = [];\r\n this.periods.forEach((p, index, ps) => {\r\n let pd = new MenuCycleSchedulePeriod();\r\n pd.mealPeriodId = p.id;\r\n pd.menus = [];\r\n dayPeriods.push(pd);\r\n });\r\n\r\n let schedule = new MenuCycleSchedule();\r\n schedule.day = d;\r\n schedule.menuCycleId = this.menuCycleEdit.id;\r\n schedule.periods = dayPeriods;\r\n this.menuCycleEdit.schedules.push(schedule);\r\n }\r\n\r\n deleteSchedule(day) {\r\n let indx = this.menuCycleEdit.schedules.findIndex(e => e.day == day);\r\n if (indx > -1) {\r\n this.menuCycleEdit.schedules.splice(indx, 1);\r\n //rearrange schedules\r\n this.menuCycleEdit.schedules.forEach((schedule, index, ps) => {\r\n schedule.day = index + 1;\r\n });\r\n }\r\n }\r\n\r\n addMenu(period: MenuCycleSchedulePeriod, m: Menu) {\r\n let menu = new MenuCycleScheduleMenu();\r\n menu.mealPeriodId = period.mealPeriodId;\r\n menu.menuId = m.id;\r\n menu.label = m.label;\r\n if (!period.menus) period.menus = [];\r\n period.menus.push(menu);\r\n }\r\n\r\n removeMenu(period: MenuCycleSchedulePeriod, id: string) {\r\n let indx = period.menus.findIndex(f => f.menuId == id);\r\n if (indx > -1) {\r\n period.menus.splice(indx, 1);\r\n }\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n //let selectedDishes = this.dishes.filter(f => f.checked);\r\n //this.menuCycleEdit.schedules = [];\r\n //this.dishes.forEach((p, index, ps) => {\r\n // if (p.checked) {\r\n // let dtDish = new MenuCycleSchedule();\r\n // dtDish.menuCycleId = this.menuCycleEdit.id;\r\n // dtDish.dishId = p.id;\r\n // this.menuCycleEdit.schedules.push(dtDish);\r\n // }\r\n \r\n //});\r\n\r\n console.log(this.menuCycleEdit.schedules);\r\n if (this.isNewMenuCycle) {\r\n this.menuService.newMenuCycle(this.menuCycleEdit).subscribe(menuCycle => this.saveSuccessHelper(this.menuCycleEdit), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.menuService.updateMenuCycle(this.menuCycleEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(menuCycle?: MenuCycle) {\r\n if (menuCycle)\r\n Object.assign(this.menuCycleEdit, menuCycle);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewMenuCycle)\r\n this.alertService.showMessage(\"Success\", `MenuCycle \\\"${this.menuCycleEdit.label}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to menuCycle \\\"${this.menuCycleEdit.label}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.menuCycleEdit = new MenuCycle();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewMenuCycle && this.accountService.currentUser.facilities.some(r => r == this.editingMenuCycleCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.menuCycleEdit = new MenuCycle();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newMenuCycle() {\r\n this.isNewMenuCycle = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingMenuCycleCode = null;\r\n this.selectedValues = {};\r\n this.menuCycleEdit = new MenuCycle();\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.menuCycleEdit.startDate = this.start;\r\n this.menuCycleEdit.endDate = this.end;\r\n this.menuCycleEdit.catererId = this.catererId;\r\n return this.menuCycleEdit;\r\n }\r\n\r\n editMenuCycle(menuCycle: MenuCycle) {\r\n if (menuCycle) {\r\n this.isNewMenuCycle = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingMenuCycleCode = menuCycle.label;\r\n this.selectedValues = {};\r\n this.menuCycleEdit = new MenuCycle();\r\n Object.assign(this.menuCycleEdit, menuCycle);\r\n this.start = this.menuCycleEdit.startDate;\r\n this.end = this.menuCycleEdit.endDate;\r\n return this.menuCycleEdit;\r\n }\r\n else {\r\n return this.newMenuCycle();\r\n }\r\n }\r\n\r\n getMenus() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.menuService.getMenusByFilter(filter)\r\n .subscribe(results => {\r\n this.menus = results.pagedData;\r\n //this.dishes.forEach((p, index, ps) => {\r\n // (p).checked = this.menuCycleEdit.schedules != null && this.menuCycleEdit.schedules.findIndex(f=> f.dishId == p.id) > -1;\r\n //});\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving menus.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getPeriods(isClearValue: boolean, outletProfileId?: string) {\r\n if (outletProfileId) {\r\n //if (isClearValue) this.menuCycleEdit.outletProfileId = '';\r\n let filter = new Filter();\r\n filter.sorts = 'sequence';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true,(OutletProfileId)==' + outletProfileId;\r\n\r\n this.mealService.getMealPeriodsByFilter(filter)\r\n .subscribe(results => {\r\n this.periods = results.pagedData;\r\n //this.dishes.forEach((p, index, ps) => {\r\n // (p).checked = this.menuCycleEdit.schedules != null && this.menuCycleEdit.schedules.findIndex(f=> f.dishId == p.id) > -1;\r\n //});\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving periods.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n }\r\n\r\n getOutletProfiles() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.deliveryService.getOutletProfilesByFilter(filter)\r\n .subscribe(results => {\r\n this.outletProfiles = results.pagedData;\r\n this.getPeriods(false, this.menuCycleEdit.outletProfileId);\r\n //this.dishes.forEach((p, index, ps) => {\r\n // (p).checked = this.menuCycleEdit.schedules != null && this.menuCycleEdit.schedules.findIndex(f=> f.dishId == p.id) > -1;\r\n //});\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n onOutletChange(outletProfileId?: string) {\r\n this.alertService.showDialog('Changing the profile will remove all the schedules. Do you wish to proceed?', DialogType.confirm, () => this.changeOutletProfile(outletProfileId));\r\n }\r\n\r\n changeOutletProfile(outletProfileId) {\r\n this.menuCycleEdit.schedules = [];\r\n this.getPeriods(true, outletProfileId);\r\n }\r\n\r\n get canManageMenuCycles() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMenuCyclesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZW51LWN5Y2xlL21lbnUtY3ljbGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vbWVudS1jeWNsZS9tZW51LWN5Y2xlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbi5hY3RpdmUge1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Menu Cycle

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { MenuCycle } from 'src/app/models/meal-order/menu-cycle.model';\r\nimport { MenuCycleEditorComponent } from './menu-cycle-editor.component';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\n\r\n\r\n@Component({\r\n selector: 'menu-cycles-management',\r\n templateUrl: './menu-cycles-management.component.html',\r\n styleUrls: ['./menu-cycles-management.component.css']\r\n})\r\nexport class MenuCyclesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: MenuCycle[] = [];\r\n rowsCache: MenuCycle[] = [];\r\n allPermissions: Permission[] = [];\r\n editedMenuCycle: MenuCycle;\r\n sourceMenuCycle: MenuCycle;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('menuCycleEditor')\r\n menuCycleEditor: MenuCycleEditorComponent;\r\n\r\n @ViewChild('menuCyclesTable') table: any;\r\n\r\n header: string;\r\n @Input() catererId: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private menuService: MenuService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(menuCycle: MenuCycle): void {\r\n const dialogRef = this.dialog.open(MenuCycleEditorComponent, {\r\n data: { header: this.header, menuCycle: menuCycle, catererId: this.catererId },\r\n width: '900px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'label';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'outletProfileName', name: 'Outlet Profile' },\r\n { prop: 'label', name: 'Label', width: 200 },\r\n { prop: 'startDate', name: 'Start Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'endDate', name: 'End Date', pipe: new DateOnlyPipe('en-SG') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Label)@=' + this.keyword;\r\n \r\n this.menuService.getMenuCyclesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let menuCycles = results.pagedData;\r\n\r\n menuCycles.forEach((menuCycle, index, menuCycles) => {\r\n (menuCycle).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...menuCycles];\r\n this.rows = menuCycles;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newMenuCycle() {\r\n this.header = 'New Menu Cycle';\r\n this.editedMenuCycle = new MenuCycle();\r\n this.openDialog(this.editedMenuCycle);\r\n }\r\n\r\n\r\n editMenuCycle(row: MenuCycle) {\r\n this.editedMenuCycle = row;\r\n this.header = 'Edit Menu Cycle';\r\n this.editedMenuCycle.catererId = this.catererId;\r\n this.openDialog(this.editedMenuCycle);\r\n }\r\n\r\n deleteMenuCycle(row: MenuCycle) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.label + '\\\" cycle?', DialogType.confirm, () => this.deleteMenuCycleHelper(row));\r\n }\r\n\r\n\r\n deleteMenuCycleHelper(row: MenuCycle) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.menuService.deleteMenuCycle(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the menu cycle.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageMenuCycles() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMenuCyclesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.menu-select {\\r\\n padding-left: 0;\\r\\n padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZW51LWN5Y2xlL3ZpZXctbWVudS92aWV3LW1lbnUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEU7O0FBRUE7RUFDRSxlQUFlO0VBQ2Ysb0JBQW9CO0FBQ3RCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZW51LWN5Y2xlL3ZpZXctbWVudS92aWV3LW1lbnUuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcblxyXG4ubWVudS1zZWxlY3Qge1xyXG4gIHBhZGRpbmctbGVmdDogMDtcclxuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}} for {{menuCycle.label}} {{day > 0 ? '(Day ' + day + ')' : ''}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{menu.label}}-{{menu.code}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{period.mealPeriodName}}
\\r\\n {{menu.label}}\\r\\n \\r\\n {{menu.code}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Cuisine } from 'src/app/models/meal-order/cuisine.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { MenuCycle, MenuCycleScheduleMenu, MenuCycleSchedulePeriod } from 'src/app/models/meal-order/menu-cycle.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { Menu } from 'src/app/models/meal-order/menu.model';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'view-menu',\r\n templateUrl: './view-menu.component.html',\r\n styleUrls: ['./view-menu.component.css']\r\n})\r\nexport class ViewMenuCycleMenuComponent {\r\n public menuCycle: MenuCycle;\r\n public day: number;\r\n public periods: MenuCycleSchedulePeriod[] = [];\r\n private isSaving: boolean;\r\n public formResetToggle = true;\r\n private menus: Menu[] = [];\r\n public catererId: string;\r\n public searchForm: FormControl = new FormControl();\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private menuService: MenuService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, \r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.menuCycle) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n this.menuCycle = data.menuCycle;\r\n this.day = data.day;\r\n\r\n this.getMenuCycleMenu();\r\n this.getMenus();\r\n }\r\n }\r\n\r\n getMenus() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.menuService.getMenusByFilter(filter)\r\n .subscribe(results => {\r\n this.menus = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving menus.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getMenuCycleMenu() {\r\n this.menuService.getMenuCycleSchedulePeriods(this.menuCycle.id, this.day)\r\n .subscribe(results => {\r\n this.periods = results;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n //this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.menuService.createPeriodMenus(this.periods).subscribe(response => this.saveSuccessHelper(response), error => this.saveFailedHelper(error));\r\n }\r\n\r\n\r\n private saveSuccessHelper(response: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (response.isSuccess)\r\n this.alertService.showMessage(\"Success\", `Successfully saved.`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Error\", response.message, MessageSeverity.error);\r\n\r\n\r\n this.resetForm();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n }\r\n\r\n addMenu(period: any, m: Menu) {\r\n if (!m || !period) return;\r\n let menu = new MenuCycleScheduleMenu();\r\n menu.mealPeriodId = period.mealPeriodId;\r\n menu.menuId = m.id;\r\n menu.label = m.label;\r\n menu.code = m.code;\r\n if (!period.menus) period.menus = [];\r\n period.menus.push(menu);\r\n\r\n m = null;\r\n period.selectedMenu = null;\r\n }\r\n\r\n removeMenu(period: MenuCycleSchedulePeriod, id: string) {\r\n let indx = period.menus.findIndex(f => f.menuId == id);\r\n if (indx > -1) {\r\n period.menus.splice(indx, 1);\r\n }\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.mat-tab-body-content{\\r\\n padding:20px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZW51cy9kaXNoLXNlbGVjdG9yL2Rpc2gtc2VsZWN0b3ItZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVksRUFBRSx3Q0FBd0M7RUFDdEQsV0FBVyxFQUFFLHdDQUF3QztFQUNyRCxzQkFBc0IsRUFBRSw2Q0FBNkM7RUFDckUscUJBQXFCLEVBQUUsNkNBQTZDO0FBQ3RFOztBQUVBO0VBQ0UsWUFBWTtBQUNkIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZW51cy9kaXNoLXNlbGVjdG9yL2Rpc2gtc2VsZWN0b3ItZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJhZGlvLXJpcHBsZSB7XHJcbiAgaGVpZ2h0OiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHdpZHRoOiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxufVxyXG5cclxuLm1hdC10YWItYm9keS1jb250ZW50e1xyXG4gIHBhZGRpbmc6MjBweDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealTypeMenuDish, Menu, MenuDish } from 'src/app/models/meal-order/menu.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Dish } from 'src/app/models/meal-order/dish.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport * as moment from 'moment';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { MealType, MealTypeDish } from 'src/app/models/meal-order/meal-type.model';\r\nimport { Cuisine } from 'src/app/models/meal-order/cuisine.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\n\r\n@Component({\r\n selector: 'menu-dish-editor',\r\n templateUrl: './dish-selector-editor.component.html',\r\n styleUrls: ['./dish-selector-editor.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\nexport class MenuDishSelectorEditorComponent implements AfterViewInit{\r\n\r\n private isNewMenu = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingMenuCode: string;\r\n private menuEdit: Menu = new Menu();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private dishes: Dish[] = [];\r\n private cuisines: Cuisine[] = [];\r\n start = new Date();\r\n end = new Date();\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public catererId: string;\r\n\r\n public page: string;\r\n public totalCount: number;\r\n public dishMealTypes: any;\r\n public rows: any[] = [];\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('ngxDatatable') ngxDatatable: DatatableComponent;\r\n\r\n constructor(private alertService: AlertService, private menuService: MenuService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private dishService: DishService, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any, public dialog: MatDialog, private cdr: ChangeDetectorRef,\r\n private dateAdapter: DateAdapter) {\r\n this.dateAdapter.setLocale('en-SG');\r\n if (typeof (data) != typeof (undefined)) {\r\n this.dishMealTypes = data.dishMealTypes;\r\n this.rows = data.rows;\r\n this.totalCount = data.totalCount;\r\n setTimeout(() => {\r\n this.rows == [...this.rows];\r\n }, 500);\r\n this.rows == [...this.rows];\r\n\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n let r = this.rows;\r\n this.rows = [];\r\n setTimeout(() => {\r\n this.rows = r;\r\n this.rows == [...this.rows];\r\n this.ngxDatatable.element.click();\r\n this.cdr.detectChanges();\r\n }, 500);\r\n this.rows == [...this.rows];\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.dialogRef.close({ isCancel: false, rows: this.rows });\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n get canManageMenus() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMenusPermission)\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.mat-tab-body-content{\\r\\n padding:20px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZW51cy9tZW51LWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RTs7QUFFQTtFQUNFLFlBQVk7QUFDZCIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vbWVudXMvbWVudS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcblxyXG4ubWF0LXRhYi1ib2R5LWNvbnRlbnR7XHJcbiAgcGFkZGluZzoyMHB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
General Information
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Cuisine\\r\\n \\r\\n \\r\\n {{cuisine.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
Dishes
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{mealTypeMenuDish.mealTypeName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Dish Name
{{menuDish.dishName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealTypeMenuDish, Menu, MenuDish } from 'src/app/models/meal-order/menu.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Dish } from 'src/app/models/meal-order/dish.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport * as moment from 'moment';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { MealType, MealTypeDish } from 'src/app/models/meal-order/meal-type.model';\r\nimport { Cuisine } from 'src/app/models/meal-order/cuisine.model';\r\nimport { DishSelectorComponent } from '../dishes/dish-selector/dish-selector.component';\r\nimport { MenuDishSelectorEditorComponent } from './dish-selector/dish-selector-editor.component';\r\n\r\n@Component({\r\n selector: 'menu-editor',\r\n templateUrl: './menu-editor.component.html',\r\n styleUrls: ['./menu-editor.component.css'],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\nexport class MenuEditorComponent {\r\n\r\n private isNewMenu = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingMenuCode: string;\r\n private menuEdit: Menu = new Menu();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private dishes: Dish[] = [];\r\n private cuisines: Cuisine[] = [];\r\n start = new Date();\r\n end = new Date();\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public catererId: string;\r\n\r\n public page: string;\r\n public totalCount: number;\r\n public dishMealTypes: any;\r\n public rows: any[];\r\n public mealTypes: any;\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private menuService: MenuService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private dishService: DishService, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any, public dialog: MatDialog, \r\n private dateAdapter: DateAdapter) {\r\n this.dateAdapter.setLocale('en-SG');\r\n if (typeof (data.menu) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.menu.id) {\r\n this.editMenu(data.menu);\r\n } else {\r\n this.newMenu();\r\n }\r\n }\r\n\r\n this.getMealTypes();\r\n this.getCuisines();\r\n this.getMenuMealTypeDishes();\r\n }\r\n\r\n getMenuMealTypeDishes(ev?) {\r\n let menuId = this.menuEdit.id;\r\n let page = -1;//get everything //!ev ? 1 : ev.offset + 1;\r\n let pageSize = -1;\r\n this.menuService.getMenuMealTypesById(menuId, page ? page : 1, pageSize)\r\n .subscribe(results => {\r\n this.dishMealTypes = results;\r\n this.rows = results.rows;\r\n this.totalCount = results.totalCount;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getCuisines() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.dishService.getCuisinesByFilter(filter)\r\n .subscribe(results => {\r\n this.cuisines = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving cuisines.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n this.menuEdit.startDate = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n this.menuEdit.endDate = new Date(event.value);\r\n }\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.rows\r\n //let selectedDishes = this.menuEdit.mealTypeMenuDishes.filter(f => f.checked);\r\n //console.log(selectedDishes);\r\n this.menuEdit.menuDishes = [];\r\n this.rows.forEach((p, index, ps) => {\r\n p.cells.forEach((d, i, ds) => {\r\n if (d.checked) {\r\n let dtDish = new MenuDish();\r\n dtDish.menuId = this.menuEdit.id;\r\n dtDish.dishId = d.dishId;\r\n dtDish.mealTypeId = d.mealTypeId;\r\n this.menuEdit.menuDishes.push(dtDish);\r\n }\r\n });\r\n \r\n });\r\n\r\n console.log(this.menuEdit.menuDishes);\r\n if (this.isNewMenu) {\r\n this.menuService.newMenu(this.menuEdit).subscribe(menu => this.saveSuccessHelper(menu), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.menuService.updateMenu(this.menuEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(menu?: Menu) {\r\n if (menu)\r\n Object.assign(this.menuEdit, menu);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewMenu)\r\n this.alertService.showMessage(\"Success\", `Menu \\\"${this.menuEdit.label}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to menu \\\"${this.menuEdit.label}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.menuEdit = new Menu();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewMenu && this.accountService.currentUser.facilities.some(r => r == this.editingMenuCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.menuEdit = new Menu();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newMenu() {\r\n this.isNewMenu = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingMenuCode = null;\r\n this.selectedValues = {};\r\n this.menuEdit = new Menu();\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.menuEdit.startDate = this.start;\r\n this.menuEdit.endDate = this.end;\r\n this.menuEdit.catererId = this.catererId;\r\n return this.menuEdit;\r\n }\r\n\r\n editMenu(menu: Menu) {\r\n if (menu) {\r\n this.isNewMenu = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingMenuCode = menu.label;\r\n this.selectedValues = {};\r\n this.menuEdit = new Menu();\r\n Object.assign(this.menuEdit, menu);\r\n this.start = this.menuEdit.startDate;\r\n this.end = this.menuEdit.endDate;\r\n return this.menuEdit;\r\n }\r\n else {\r\n return this.newMenu();\r\n }\r\n }\r\n\r\n getMealTypes() {\r\n let filter = new Filter();\r\n filter.sorts = 'name';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.mealService.getMealTypesByFilter(filter)\r\n .subscribe(results => {\r\n let mealTypes = results.pagedData;\r\n this.mealTypes = mealTypes;\r\n if (!this.menuEdit.mealTypeMenuDishes) {\r\n this.menuEdit.mealTypeMenuDishes = [];\r\n }\r\n\r\n let dishFilter = new Filter();\r\n dishFilter.sorts = 'label';\r\n dishFilter.filters = f + '(IsActive)==true';\r\n this.dishService.getDishesByFilter(dishFilter)\r\n .subscribe(res => {\r\n let dishes = res.pagedData;\r\n \r\n mealTypes.forEach((mp: MealType, index, m) => {\r\n let mealTypeDish = new MealTypeMenuDish();\r\n mealTypeDish.menuDishes = [];\r\n mealTypeDish.mealTypeId = mp.id;\r\n mealTypeDish.mealTypeName = mp.name;\r\n dishes.forEach((d: Dish, index, dish) => {\r\n if (!this.menuEdit.menuDishes) this.menuEdit.menuDishes = [];\r\n let existingDishes = this.menuEdit.menuDishes.filter(e => e.mealTypeId == mp.id && e.dishId == d.id);\r\n if (existingDishes && existingDishes.length > 0) {\r\n let existingDish = existingDishes[0];\r\n existingDish.checked = true;\r\n mealTypeDish.menuDishes.push(existingDishes[0]);\r\n } else {\r\n let newMenuDish = new MenuDish();\r\n newMenuDish.dishId = d.id;\r\n newMenuDish.menuId = this.menuEdit.id;\r\n newMenuDish.mealTypeId = mp.id;\r\n newMenuDish.dishName = d.label;\r\n mealTypeDish.menuDishes.push(newMenuDish);\r\n }\r\n });\r\n\r\n this.menuEdit.mealTypeMenuDishes.push(mealTypeDish);\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n });\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving sessions.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getMenuDishes() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishes = results.pagedData;\r\n this.dishes.forEach((p, index, ps) => {\r\n (p).checked = this.menuEdit.menuDishes != null && this.menuEdit.menuDishes.findIndex(f => f.dishId == p.id) > -1;\r\n });\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n addDish(mealTypeId, mealTypeName: string) {\r\n let mealType = this.menuEdit.mealTypeMenuDishes.filter(e => e.mealTypeId == mealTypeId);\r\n let selectedDishes: MenuDish[] = [];\r\n if (mealType && mealType.length > 0) {\r\n selectedDishes = mealType[0].menuDishes.filter(e => e.checked);\r\n }\r\n \r\n const dialogRef = this.dialog.open(DishSelectorComponent, {\r\n data: { header: \"Dishes\", dishes: selectedDishes, catererId: this.catererId },\r\n width: '800px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result && !result.isCancel) {\r\n let menuDishes: MenuDish[] = [];\r\n result.selectedDishes.forEach((d, index, ps) => {\r\n if (d.checked) {\r\n let dtDish = new MenuDish();\r\n dtDish.menuId = this.menuEdit.id;\r\n dtDish.dishId = d.id;\r\n dtDish.mealTypeId = mealTypeId;\r\n dtDish.checked = true;\r\n dtDish.dishName = d.label;\r\n menuDishes.push(dtDish);\r\n }\r\n });\r\n\r\n let mealTypeDishes = this.menuEdit.mealTypeMenuDishes.filter((cg) => cg.mealTypeId == mealTypeId);\r\n if (mealTypeDishes && mealTypeDishes.length > 0) {\r\n mealTypeDishes[0].menuDishes = menuDishes;\r\n }\r\n }\r\n });\r\n }\r\n\r\n addDishBySelection() {\r\n const dialogRef = this.dialog.open(MenuDishSelectorEditorComponent, {\r\n data: { header: \"Dishes\", dishMealTypes: this.dishMealTypes, rows: this.rows, totalCount: this.totalCount },\r\n width: '800px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result && !result.isCancel) {\r\n this.menuEdit.mealTypeMenuDishes = [];\r\n this.mealTypes.forEach((mp: MealType, index, m) => {\r\n let mealTypeDish = new MealTypeMenuDish();\r\n mealTypeDish.menuDishes = [];\r\n mealTypeDish.mealTypeId = mp.id;\r\n mealTypeDish.mealTypeName = mp.name;\r\n let cells = [];\r\n result.rows.map(function (cls) {\r\n for (let c of cls.cells) {\r\n let dish = c;\r\n c.label = cls.dishLabel;\r\n cells.push(c);\r\n }\r\n });\r\n let dishes = cells.filter(e => e.mealTypeId == mp.id);\r\n dishes.forEach((d: any, index, dish) => {\r\n if (!this.menuEdit.menuDishes) this.menuEdit.menuDishes = [];\r\n if (d.checked) {\r\n let newMenuDish = new MenuDish();\r\n newMenuDish.dishId = d.dishId;\r\n newMenuDish.menuId = this.menuEdit.id;\r\n newMenuDish.mealTypeId = mp.id;\r\n newMenuDish.dishName = d.label;\r\n newMenuDish.checked = true;\r\n mealTypeDish.menuDishes.push(newMenuDish);\r\n }\r\n \r\n });\r\n\r\n this.menuEdit.mealTypeMenuDishes.push(mealTypeDish);\r\n },\r\n error => {\r\n });\r\n } \r\n });\r\n }\r\n\r\n get canManageMenus() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMenusPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9tZW51cy9tZW51cy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL21lbnVzL21lbnVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Menu

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Menu } from 'src/app/models/meal-order/menu.model';\r\nimport { MenuEditorComponent } from './menu-editor.component';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\n\r\n\r\n@Component({\r\n selector: 'menus-management',\r\n templateUrl: './menus-management.component.html',\r\n styleUrls: ['./menus-management.component.css']\r\n})\r\nexport class MenusManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Menu[] = [];\r\n rowsCache: Menu[] = [];\r\n allPermissions: Permission[] = [];\r\n editedMenu: Menu;\r\n sourceMenu: Menu;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n @Input() catererId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('menuEditor')\r\n menuEditor: MenuEditorComponent;\r\n\r\n @ViewChild('menusTable') table: any;\r\n\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private menuService: MenuService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(menu: Menu): void {\r\n const dialogRef = this.dialog.open(MenuEditorComponent, {\r\n data: { header: this.header, menu: menu, catererId: this.catererId },\r\n width: '900px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'code', name: 'Code' },\r\n { prop: 'label', name: 'Label' },\r\n { prop: 'menuDishNames', name: 'Dishes', sortable: false },\r\n { prop: 'cuisineName', name: 'Cuisine' },\r\n { prop: 'startDate', name: 'Start Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'endDate', name: 'End Date', pipe: new DateOnlyPipe('en-SG') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Code|Label)@=' + this.keyword;\r\n \r\n this.menuService.getMenusByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let menus = results.pagedData;\r\n\r\n menus.forEach((menu, index, menus) => {\r\n (menu).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...menus];\r\n this.rows = menus;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newMenu() {\r\n this.header = 'New Menu';\r\n this.editedMenu = new Menu();\r\n this.openDialog(this.editedMenu);\r\n }\r\n\r\n\r\n editMenu(row: Menu) {\r\n this.editedMenu = row;\r\n this.header = 'Edit Menu';\r\n this.editedMenu.catererId = this.catererId;\r\n this.openDialog(this.editedMenu);\r\n }\r\n\r\n deleteMenu(row: Menu) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.label + '\\\" menu?', DialogType.confirm, () => this.deleteMenuHelper(row));\r\n }\r\n\r\n\r\n deleteMenuHelper(row: Menu) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.menuService.deleteMenu(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the menu.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageMenus() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMenusPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9ub3RpZmljYXRpb24tZXZlbnQvbm90aWZpY2F0aW9uLWV2ZW50LWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vbm90aWZpY2F0aW9uLWV2ZW50L25vdGlmaWNhdGlvbi1ldmVudC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Type\\r\\n \\r\\n \\r\\n {{eventType}}\\r\\n \\r\\n \\r\\n Type is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { NotificationEvent } from 'src/app/models/meal-order/notification-event.model';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\n\r\n\r\n@Component({\r\n selector: 'notification-event-editor',\r\n templateUrl: './notification-event-editor.component.html',\r\n styleUrls: ['./notification-event-editor.component.css']\r\n})\r\nexport class NotificationEventEditorComponent {\r\n\r\n private isNewNotificationEvent = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingNotificationEventCode: string;\r\n private notificationEventEdit: NotificationEvent = new NotificationEvent();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n private eventTypes = ['Order', 'User', 'Admin'];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private notificationService: NotificationService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.notificationEvent) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.notificationEvent.id) {\r\n this.editNotificationEvent(data.notificationEvent);\r\n } else {\r\n this.newNotificationEvent();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n\r\n if (this.isNewNotificationEvent) {\r\n this.notificationService.newNotificationEvent(this.notificationEventEdit).subscribe(notificationEvent => this.saveSuccessHelper(notificationEvent), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.notificationService.updateNotificationEvent(this.notificationEventEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(notificationEvent?: NotificationEvent) {\r\n if (notificationEvent)\r\n Object.assign(this.notificationEventEdit, notificationEvent);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewNotificationEvent)\r\n this.alertService.showMessage(\"Success\", `\\\"${this.notificationEventEdit.title}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.notificationEventEdit.title}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.notificationEventEdit = new NotificationEvent();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewNotificationEvent && this.accountService.currentUser.facilities.some(r => r == this.editingNotificationEventCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.notificationEventEdit = new NotificationEvent();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newNotificationEvent() {\r\n this.isNewNotificationEvent = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingNotificationEventCode = null;\r\n this.selectedValues = {};\r\n this.notificationEventEdit = new NotificationEvent();\r\n return this.notificationEventEdit;\r\n }\r\n\r\n editNotificationEvent(notificationEvent: NotificationEvent) {\r\n if (notificationEvent) {\r\n this.isNewNotificationEvent = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingNotificationEventCode = notificationEvent.title;\r\n this.selectedValues = {};\r\n this.notificationEventEdit = new NotificationEvent();\r\n Object.assign(this.notificationEventEdit, notificationEvent);\r\n\r\n return this.notificationEventEdit;\r\n }\r\n else {\r\n return this.newNotificationEvent();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageNotificationEvents() {\r\n return true;//this.accountService.userHasPermission(Permission.manageMOSOrderMgtNotificationEventsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9ub3RpZmljYXRpb24tZXZlbnQvbm90aWZpY2F0aW9uLWV2ZW50cy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL25vdGlmaWNhdGlvbi1ldmVudC9ub3RpZmljYXRpb24tZXZlbnRzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Notification Events

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { NotificationEventEditorComponent } from './notification-event-editor.component';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { NotificationEvent } from 'src/app/models/meal-order/notification-event.model';\r\nimport { PaymentService } from 'src/app/services/meal-order/payment.service';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\n\r\n\r\n@Component({\r\n selector: 'notification-events-management',\r\n templateUrl: './notification-events-management.component.html',\r\n styleUrls: ['./notification-events-management.component.css']\r\n})\r\nexport class NotificationEventsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: NotificationEvent[] = [];\r\n rowsCache: NotificationEvent[] = [];\r\n allPermissions: Permission[] = [];\r\n editedNotificationEvent: NotificationEvent;\r\n sourceNotificationEvent: NotificationEvent;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: NotificationEventEditorComponent;\r\n\r\n @ViewChild('notificationEventsTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private notificationService: NotificationService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(notificationEvent: NotificationEvent): void {\r\n const dialogRef = this.dialog.open(NotificationEventEditorComponent, {\r\n data: { header: this.header, notificationEvent: notificationEvent },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'title';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'type', name: 'Type' },\r\n { prop: 'title', name: 'Title' },\r\n { prop: 'template', name: 'Template' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Title)@=' + this.keyword;\r\n \r\n this.notificationService.getNotificationEventsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let notificationEvents = results.pagedData;\r\n\r\n notificationEvents.forEach((notificationEvent, index, notificationEvents) => {\r\n (notificationEvent).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...notificationEvents];\r\n this.rows = notificationEvents;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newNotificationEvent() {\r\n this.header = 'New Notification Event';\r\n this.editedNotificationEvent = new NotificationEvent();\r\n this.openDialog(this.editedNotificationEvent);\r\n }\r\n\r\n\r\n editNotificationEvent(row: NotificationEvent) {\r\n this.editedNotificationEvent = row;\r\n this.header = 'Edit Notification Event';\r\n this.openDialog(this.editedNotificationEvent);\r\n }\r\n\r\n deleteNotificationEvent(row: NotificationEvent) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.title + '\\\" notification event?', DialogType.confirm, () => this.deleteNotificationEventHelper(row));\r\n }\r\n\r\n\r\n deleteNotificationEventHelper(row: NotificationEvent) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.notificationService.deleteNotificationEvent(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the notification event.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageNotificationEvents() {\r\n return true;//this.accountService.userHasPermission(Permission.manageMOSOrderMgtNotificationEventsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQtcHJvZmlsZS9vdXRsZXQtcHJvZmlsZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL291dGxldC1wcm9maWxlL291dGxldC1wcm9maWxlLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { OutletProfile } from 'src/app/models/meal-order/outlet.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'outlet-profile-editor',\r\n templateUrl: './outlet-profile-editor.component.html',\r\n styleUrls: ['./outlet-profile-editor.component.css']\r\n})\r\nexport class OutletProfileEditorComponent {\r\n\r\n private isNewOutletProfile = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingOutletProfileCode: string;\r\n private outletProfileEdit: OutletProfile = new OutletProfile();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outletProfile) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.outletProfile.id) {\r\n this.editOutletProfile(data.outletProfile);\r\n } else {\r\n this.newOutletProfile();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n\r\n if (this.isNewOutletProfile) {\r\n this.deliveryService.newOutletProfile(this.outletProfileEdit).subscribe(outletProfile => this.saveSuccessHelper(outletProfile), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateOutletProfile(this.outletProfileEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(outletProfile?: OutletProfile) {\r\n if (outletProfile)\r\n Object.assign(this.outletProfileEdit, outletProfile);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewOutletProfile)\r\n this.alertService.showMessage(\"Success\", `Outlet \\\"${this.outletProfileEdit.label}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.outletProfileEdit.label}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.outletProfileEdit = new OutletProfile();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewOutletProfile && this.accountService.currentUser.facilities.some(r => r == this.editingOutletProfileCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.outletProfileEdit = new OutletProfile();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newOutletProfile() {\r\n this.isNewOutletProfile = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingOutletProfileCode = null;\r\n this.selectedValues = {};\r\n this.outletProfileEdit = new OutletProfile();\r\n this.outletProfileEdit.catererId = this.catererId;\r\n return this.outletProfileEdit;\r\n }\r\n\r\n editOutletProfile(outletProfile: OutletProfile) {\r\n if (outletProfile) {\r\n this.isNewOutletProfile = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingOutletProfileCode = outletProfile.label;\r\n this.selectedValues = {};\r\n this.outletProfileEdit = new OutletProfile();\r\n Object.assign(this.outletProfileEdit, outletProfile);\r\n\r\n return this.outletProfileEdit;\r\n }\r\n else {\r\n return this.newOutletProfile();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageOutletProfiles() {\r\n return true; //this.accountService.userHasPermission(Permission.manageOutletProfilesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQtcHJvZmlsZS9vdXRsZXQtcHJvZmlsZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQtcHJvZmlsZS9vdXRsZXQtcHJvZmlsZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Outlet Profiles

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { OutletProfile } from 'src/app/models/meal-order/outlet.model';\r\nimport { OutletProfileEditorComponent } from './outlet-profile-editor.component';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'outlet-profiles-management',\r\n templateUrl: './outlet-profiles-management.component.html',\r\n styleUrls: ['./outlet-profiles-management.component.css']\r\n})\r\nexport class OutletProfilesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: OutletProfile[] = [];\r\n rowsCache: OutletProfile[] = [];\r\n allPermissions: Permission[] = [];\r\n editedOutletProfile: OutletProfile;\r\n sourceOutletProfile: OutletProfile;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: OutletProfileEditorComponent;\r\n\r\n @ViewChild('outletProfilesTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() catererId: string;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(outletProfile: OutletProfile): void {\r\n const dialogRef = this.dialog.open(OutletProfileEditorComponent, {\r\n data: { header: this.header, outletProfile: outletProfile, catererId: this.catererId },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'label';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'label', name: 'Label' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Label)@=' + this.keyword;\r\n \r\n this.deliveryService.getOutletProfilesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let outletProfiles = results.pagedData;\r\n\r\n outletProfiles.forEach((outletProfile, index, outletProfiles) => {\r\n (outletProfile).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...outletProfiles];\r\n this.rows = outletProfiles;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newOutletProfile() {\r\n this.header = 'New Outlet Profile';\r\n this.editedOutletProfile = new OutletProfile();\r\n this.editedOutletProfile.catererId = this.catererId;\r\n this.openDialog(this.editedOutletProfile);\r\n }\r\n\r\n\r\n editOutletProfile(row: OutletProfile) {\r\n this.editedOutletProfile = row;\r\n this.header = 'Edit Outlet Profile';\r\n this.openDialog(this.editedOutletProfile);\r\n }\r\n\r\n deleteOutletProfile(row: OutletProfile) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.label + '\\\" outletProfile?', DialogType.confirm, () => this.deleteOutletProfileHelper(row));\r\n }\r\n\r\n\r\n deleteOutletProfileHelper(row: OutletProfile) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteOutletProfile(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the outletProfile.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageOutletProfiles() {\r\n return true; //this.accountService.userHasPermission(Permission.manageOutletProfilesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvY2F0ZXJlci1zZWxlY3Rvci9jYXRlcmVyLXNlbGVjdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL291dGxldC9jYXRlcmVyLXNlbGVjdG9yL2NhdGVyZXItc2VsZWN0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGxvYWQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMjhhNzQ1O1xyXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameStatusCalendarDish Cycle CalendarSessions
\\r\\n Request\\r\\n \\r\\n {{row.name}}{{row.status}}\\r\\n {{row.status == 'APPROVED' ? 'Calendar' : ''}}\\r\\n \\r\\n {{row.status == 'APPROVED' ? 'Calendar' : ''}}\\r\\n \\r\\n Sessions\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { MealSessionEditorComponent } from '../meal-session/meal-session-editor.component';\r\n\r\n@Component({\r\n selector: 'caterer-selector',\r\n templateUrl: './caterer-selector.component.html',\r\n styleUrls: ['./caterer-selector.component.css']\r\n})\r\nexport class CatererSelectorComponent implements OnInit {\r\n caterers: CatererInfo[];\r\n caterersCache: CatererInfo[];\r\n editOutlet: Outlet;\r\n selectedCaterers: CatererOutlet[];\r\n catererId: string;\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService,\r\n public dialogRef: MatDialogRef, public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outlet) != typeof (undefined)) {\r\n this.editOutlet = data.outlet;\r\n //this.catererId = data.catererId;\r\n if (data.catererOutlets) {\r\n this.editOutlet.catererOutlets = [];\r\n }\r\n this.selectedCaterers = data.outlet.catererOutlets;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n let filter = new Filter();\r\n //let f = this.catererId ? '(Id)==' + this.catererId + ',' : '';\r\n filter.filters = '(IsActive)==true';\r\n\r\n this.deliveryService.getCatererInfosByFilter(filter).subscribe(results => {\r\n this.caterers = results.pagedData;\r\n \r\n this.caterers.map(cg => {\r\n if (this.editOutlet.catererOutlets && typeof (this.editOutlet.catererOutlets) != typeof (undefined)) {\r\n let catererOutlet = this.editOutlet.catererOutlets.find(item => item.catererInfoId == cg.id && item.outletId == this.editOutlet.id);\r\n if (catererOutlet) {\r\n cg.status = catererOutlet.status;\r\n }\r\n }\r\n });\r\n \r\n\r\n this.caterersCache = this.caterers;\r\n\r\n }, error => { });\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n requestCaterer(row: CatererInfo) {\r\n this.deliveryService.requestCaterer(row.id, this.editOutlet.id, 'REQUESTED', false, '').subscribe(results => {\r\n if (results.isSuccess) {\r\n row.status = 'REQUESTED';\r\n }\r\n }, error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Request Error\", `An error occured while requesting the caterer.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.caterers = this.caterersCache.filter(r => Utilities.searchArray(value, false, r.name));\r\n }\r\n\r\n openOutletCalendar(caterer) {\r\n window.open('/outletcalendars/' + this.editOutlet.id + '/' + caterer.id, '_blank');\r\n }\r\n\r\n openOutletDishCycleCalendar(caterer) {\r\n window.open('/outletdishcalendars/' + this.editOutlet.id + '/' + caterer.id, '_blank');\r\n }\r\n\r\n openMealSession(row) {\r\n let outletProfileId = '';\r\n let catererId = '';\r\n let catererOutlet: CatererOutlet;\r\n if (row.catererOutlets && typeof (row.catererOutlets) != typeof (undefined)) {\r\n catererOutlet = row.catererOutlets.find(item => item.catererInfoId == row.id && item.outletId == this.editOutlet.id);\r\n if (catererOutlet) {\r\n outletProfileId = catererOutlet.outletProfileId;\r\n catererId = catererOutlet.catererInfoId;\r\n }\r\n }\r\n\r\n catererOutlet.outlet.mealSessions = catererOutlet.outlet.mealSessions.filter(e => e.catererId == catererId);\r\n const dialogRef = this.dialog.open(MealSessionEditorComponent, {\r\n data: { header: \"Meal Sessions\", outlet: catererOutlet.outlet, outletProfileId: outletProfileId, catererId: catererId, outletId: this.editOutlet.id },\r\n width: '1200px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n });\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvY2xhc3Mtcm9zdGVyL2NsYXNzLXJvc3Rlci1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL291dGxldC9jbGFzcy1yb3N0ZXIvY2xhc3Mtcm9zdGVyLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Schedules
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{period.name}}
\\r\\n Day {{schedule.day}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{class.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
{{class.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
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialogRef, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { OutletClassRoster, OutletClassRosterSchedule, OutletClassRosterScheduleClass, OutletClassRosterSchedulePeriod } from 'src/app/models/meal-order/outlet-class-roster.model';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\nimport { MealSession } from 'src/app/models/meal-order/meal-session.model';\r\nimport { Class } from 'src/app/models/meal-order/class.model';\r\n\r\n\r\n@Component({\r\n selector: 'class-roster-editor',\r\n templateUrl: './class-roster-editor.component.html',\r\n styleUrls: ['./class-roster-editor.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\nexport class OutletClassRosterEditorComponent {\r\n\r\n private isNewOutletClassRoster = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingOutletClassRosterCode: string;\r\n private outletClassRosterEdit: OutletClassRoster = new OutletClassRoster();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n start = new Date();\r\n end = new Date();\r\n\r\n outletId: any;\r\n catererId: any;\r\n outletProfileId: any;\r\n private classes: Class[] = [];\r\n private periods: MealSession[] = [];\r\n private mealSession: MealSession;\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private classService: ClassService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dateAdapter: DateAdapter ) {\r\n this.dateAdapter.setLocale('en-SG');\r\n\r\n if (typeof (data.mealSession) != typeof (undefined)) {\r\n this.outletId = data.mealSession.outletId;\r\n this.catererId = data.mealSession.catererId;\r\n this.outletProfileId = data.outletProfileId;\r\n this.mealSession = data.mealSession;\r\n \r\n }\r\n\r\n if (data.outletClassRoster.id) {\r\n this.editOutletClassRoster(data.outletClassRoster);\r\n } else {\r\n this.newOutletClassRoster();\r\n }\r\n\r\n this.getClasses();\r\n this.getPeriods()\r\n .subscribe(results => {\r\n this.periods = results.pagedData;\r\n //this.getOutletClassRoster(this.outletClassRosterEdit.id);\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving periods.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getOutletClassRoster(id) {\r\n //let filter = new Filter();\r\n //let f = this.outletProfileId ? '(OutletProfileId)==' + this.outletProfileId + ',' : '';\r\n //f = mealSessionId ? '(MealSessionId)==' + mealSessionId + ',' : '';\r\n //filter.filters = f + '(IsActive)==true';\r\n this.classService.getClassRosterById(id)\r\n .subscribe(results => {\r\n //let rosters = results.pagedData;\r\n this.outletClassRosterEdit = results;\r\n if (!this.outletClassRosterEdit) {\r\n this.outletClassRosterEdit = new OutletClassRoster();\r\n this.outletClassRosterEdit.mealSessionId = this.mealSession.id;\r\n this.outletClassRosterEdit.outletProfileId = this.outletProfileId;\r\n this.isNewOutletClassRoster = true;\r\n \r\n this.outletClassRosterEdit.startDate = this.start;\r\n this.outletClassRosterEdit.endDate = this.end;\r\n this.outletClassRosterEdit.startDate = new Date();\r\n this.outletClassRosterEdit.endDate = new Date();\r\n }\r\n\r\n this.start = this.outletClassRosterEdit.startDate;\r\n this.end = this.outletClassRosterEdit.endDate;\r\n\r\n let schedules = [];\r\n this.outletClassRosterEdit.schedules.forEach((s) => {\r\n let schedule = new OutletClassRosterSchedule();\r\n let periods = [];\r\n this.mealSession.details.forEach((p) => {\r\n let period = {};\r\n\r\n //let details = p.details.map((e) => { return e.id });\r\n const filteredPeriods = s.periods.filter(value => p.id == value.mealSessionDetailId);\r\n\r\n if (filteredPeriods && filteredPeriods.length > 0) {\r\n periods.push(filteredPeriods[0]);\r\n }\r\n });\r\n if (periods && periods.length > 0) {\r\n schedule.periods = periods;\r\n schedule.outletClassRosterId = this.outletClassRosterEdit.id;\r\n schedule.id = s.id;\r\n schedule.day = s.day;\r\n schedules.push(schedule);\r\n }\r\n \r\n });\r\n\r\n this.outletClassRosterEdit.schedules = schedules;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving roster.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getClasses() {\r\n let filter = new Filter();\r\n let f = this.outletId ? '(classOutletId)==' + this.outletId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.classService.getClassesByFilter(filter)\r\n .subscribe(results => {\r\n this.classes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving classes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getPeriods() {\r\n let filter = new Filter();\r\n filter.sorts = 'sequence';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n f = this.outletId ? '(OutletId)==' + this.outletId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n\r\n return this.mealService.getMealSessionsByFilter(filter);\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n this.outletClassRosterEdit.startDate = new Date(event.value);\r\n }\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n this.outletClassRosterEdit.endDate = new Date(event.value);\r\n }\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.isNewOutletClassRoster) {\r\n this.classService.newClassRoster(this.outletClassRosterEdit).subscribe(outletClassRoster => this.saveSuccessHelper(outletClassRoster), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.classService.updateClassRoster(this.outletClassRosterEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n\r\n this.alertService.stopLoadingMessage();\r\n }\r\n\r\n\r\n private saveSuccessHelper(outletClassRoster?: OutletClassRoster) {\r\n if (outletClassRoster)\r\n Object.assign(this.outletClassRosterEdit, outletClassRoster);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewOutletClassRoster)\r\n this.alertService.showMessage(\"Success\", `Class Roster was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to roster was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.outletClassRosterEdit = new OutletClassRoster();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewOutletClassRoster && this.accountService.currentUser.facilities.some(r => r == this.editingOutletClassRosterCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.outletClassRosterEdit = new OutletClassRoster();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newOutletClassRoster() {\r\n this.isNewOutletClassRoster = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingOutletClassRosterCode = null;\r\n this.selectedValues = {};\r\n this.outletClassRosterEdit = new OutletClassRoster();\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.outletClassRosterEdit.startDate = this.start;\r\n this.outletClassRosterEdit.endDate = this.end;\r\n this.outletClassRosterEdit.catererId = this.catererId;\r\n this.outletClassRosterEdit.outletId = this.outletId;\r\n this.outletClassRosterEdit.mealSessionId = this.mealSession.id;\r\n this.outletClassRosterEdit.outletProfileId = this.outletProfileId;\r\n //this.setSchedules();\r\n return this.outletClassRosterEdit;\r\n }\r\n\r\n editOutletClassRoster(outletClassRoster: OutletClassRoster) {\r\n if (outletClassRoster) {\r\n this.isNewOutletClassRoster = false;\r\n this.showValidationErrors = true;\r\n\r\n //this.editingOutletClassRosterCode = outletClassRoster.name;\r\n this.selectedValues = {};\r\n this.outletClassRosterEdit = new OutletClassRoster();\r\n Object.assign(this.outletClassRosterEdit, outletClassRoster);\r\n this.start = this.outletClassRosterEdit.startDate;\r\n this.end = this.outletClassRosterEdit.endDate;\r\n //this.setSchedules();\r\n return this.outletClassRosterEdit;\r\n }\r\n else {\r\n return this.newOutletClassRoster();\r\n }\r\n }\r\n\r\n setSchedules() {\r\n this.start = this.outletClassRosterEdit.startDate;\r\n this.end = this.outletClassRosterEdit.endDate;\r\n\r\n let schedules = [];\r\n this.outletClassRosterEdit.schedules.forEach((s) => {\r\n let schedule = new OutletClassRosterSchedule();\r\n let periods = [];\r\n this.mealSession.details.forEach((p) => {\r\n let period = {};\r\n\r\n //let details = p.details.map((e) => { return e.id });\r\n const filteredPeriods = s.periods.filter(value => p.id == value.mealSessionDetailId);\r\n\r\n if (filteredPeriods && filteredPeriods.length > 0) {\r\n periods.push(filteredPeriods[0]);\r\n }\r\n });\r\n if (periods && periods.length > 0) {\r\n schedule.periods = periods;\r\n schedule.outletClassRosterId = this.outletClassRosterEdit.id;\r\n schedule.id = s.id;\r\n schedule.day = s.day;\r\n schedules.push(schedule);\r\n }\r\n\r\n });\r\n\r\n this.outletClassRosterEdit.schedules = schedules;\r\n }\r\n\r\n addSchedule() {\r\n if (!this.outletClassRosterEdit.schedules) { this.outletClassRosterEdit.schedules = []; }\r\n let d = this.outletClassRosterEdit.schedules.length + 1;\r\n let dayPeriods: OutletClassRosterSchedulePeriod[] = [];\r\n this.mealSession.details.forEach((p, index, ps) => {\r\n let pd = new OutletClassRosterSchedulePeriod();\r\n pd.mealSessionDetailId = p.id;\r\n pd.classes = [];\r\n dayPeriods.push(pd);\r\n });\r\n\r\n let schedule = new OutletClassRosterSchedule();\r\n schedule.day = d;\r\n schedule.outletClassRosterId = this.outletClassRosterEdit.id;\r\n schedule.periods = dayPeriods;\r\n this.outletClassRosterEdit.schedules.push(schedule);\r\n }\r\n\r\n deleteSchedule(day) {\r\n let indx = this.outletClassRosterEdit.schedules.findIndex(e => e.day == day);\r\n if (indx > -1) {\r\n this.outletClassRosterEdit.schedules.splice(indx, 1);\r\n //rearrange schedules\r\n this.outletClassRosterEdit.schedules.forEach((schedule, index, ps) => {\r\n schedule.day = index + 1;\r\n });\r\n }\r\n }\r\n\r\n addClass(period: OutletClassRosterSchedulePeriod, m: Class) {\r\n let c = new OutletClassRosterScheduleClass();\r\n c.mealSessionDetailId = period.mealSessionDetailId;\r\n c.classId = m.id;\r\n c.name = m.name;\r\n c.outletClassRosterSchedulePeriodId = period.id;\r\n if (!period.classes) period.classes = [];\r\n\r\n let indx = period.classes.findIndex(e => e.outletClassRosterSchedulePeriodId == period.id && e.classId == m.id);\r\n if (indx < 0) {\r\n period.classes.push(c);\r\n }\r\n }\r\n\r\n removeClass(period: OutletClassRosterSchedulePeriod, id: string) {\r\n let indx = period.classes.findIndex(f => f.classId == id);\r\n if (indx > -1) {\r\n period.classes.splice(indx, 1);\r\n }\r\n }\r\n\r\n get canManageOutletClassRosters() {\r\n return true; //this.accountService.userHasPermission(Permission.manageOutletClassRostersPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvY2xhc3Mtcm9zdGVyL2NsYXNzLXJvc3RlcnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvY2xhc3Mtcm9zdGVyL2NsYXNzLXJvc3RlcnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

{{header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { OutletClassRoster } from 'src/app/models/meal-order/outlet-class-roster.model';\r\nimport { OutletClassRosterEditorComponent } from './class-roster-editor.component';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { ClassRosterFilter, Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, DialogType, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\nimport { MealSession } from 'src/app/models/meal-order/meal-session.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\n\r\n\r\n@Component({\r\n selector: 'class-rosters-management',\r\n templateUrl: './class-rosters-management.component.html',\r\n styleUrls: ['./class-rosters-management.component.css']\r\n})\r\nexport class OutletClassRostersManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: OutletClassRoster[] = [];\r\n rowsCache: OutletClassRoster[] = [];\r\n allPermissions: Permission[] = [];\r\n editedOutletClassRoster: OutletClassRoster;\r\n sourceOutletClassRoster: OutletClassRoster;\r\n loadingIndicator: boolean;\r\n filter: ClassRosterFilter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('outletClassRosterEditor')\r\n outletClassRosterEditor: OutletClassRosterEditorComponent;\r\n header: string;\r\n\r\n dialogHeader: string;\r\n outletId: any;\r\n catererId: any;\r\n outletProfileId: any;\r\n private mealSession: MealSession;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private classService: ClassService, public dialog: MatDialog, public dialogRef: MatDialogRef, \r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.header = data ? data.header : 'Class Detailing';\r\n if (typeof (data.mealSession) != typeof (undefined)) {\r\n this.outletId = data.mealSession.outletId;\r\n this.catererId = data.mealSession.catererId;\r\n this.outletProfileId = data.outletProfileId;\r\n this.mealSession = data.mealSession;\r\n }\r\n }\r\n\r\n openDialog(outletClassRoster: OutletClassRoster): void {\r\n const dialogRef = this.dialog.open(OutletClassRosterEditorComponent, {\r\n data: { header: this.dialogHeader, outletClassRoster: outletClassRoster, catererId: this.catererId, mealSession: this.mealSession, outletProfileId: this.outletProfileId },\r\n width: '900px',\r\n disableClose: false\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new ClassRosterFilter(1, 10);\r\n this.filter.sorts = 'startDate';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'label', name: 'Label' },\r\n { prop: 'startDate', name: 'Start', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'endDate', name: 'End', pipe: new DateOnlyPipe('en-SG') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Label)@=' + this.keyword + ',(MealSessionId)==' + this.mealSession.id;\r\n this.filter.catererId = this.catererId;\r\n this.filter.outletId = this.outletId;\r\n this.classService.getClassRostersByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let outletClassRosters = results.pagedData;\r\n\r\n outletClassRosters.forEach((outletClassRoster, index, outletClassRosters) => {\r\n (outletClassRoster).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...outletClassRosters];\r\n this.rows = outletClassRosters;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newOutletClassRoster() {\r\n this.dialogHeader = 'New Class Roster';\r\n this.editedOutletClassRoster = new OutletClassRoster();\r\n this.openDialog(this.editedOutletClassRoster);\r\n }\r\n\r\n\r\n editOutletClassRoster(row: OutletClassRoster) {\r\n this.editedOutletClassRoster = row;\r\n this.dialogHeader = 'Edit Class Roster';\r\n this.editedOutletClassRoster.catererId = this.catererId;\r\n this.openDialog(this.editedOutletClassRoster);\r\n }\r\n\r\n deleteOutletClassRoster(row: OutletClassRoster) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.label + '\\\" roster?', DialogType.confirm, () => this.deleteOutletClassRosterHelper(row));\r\n }\r\n\r\n\r\n deleteOutletClassRosterHelper(row: OutletClassRoster) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.classService.deleteClassRoster(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the class roster.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n private cancel() {\r\n this.alertService.resetStickyMessage();\r\n this.dialogRef.close();\r\n }\r\n\r\n get canManageOutletClassRosters() {\r\n return true; //this.accountService.userHasPermission(Permission.manageOutletClassRostersPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".modal {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n.display-block {\\r\\n display:block !important;\\r\\n}\\r\\n\\r\\n.cal-month-view .cal-open-day-events {\\r\\n background-color: #03b1ab !important;\\r\\n box-shadow: none !important;\\r\\n}\\r\\n\\r\\n.cal-month-view .cal-event {\\r\\n background-color: #fff !important;\\r\\n}\\r\\n\\r\\n.cal-event-action {\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.event-block {\\r\\n background: #029f9a;\\r\\n color: white;\\r\\n padding-left: 5px;\\r\\n font-size: 12px;\\r\\n border-top: 1px solid white;\\r\\n}\\r\\n\\r\\n.cal-drag-active{\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.disabled-date {\\r\\n background: #ffc8c8;\\r\\n}\\r\\n\\r\\n.outlet-disabled-date {\\r\\n background: #f96262;\\r\\n}\\r\\n\\r\\n.action-menu {\\r\\n padding-left: 5px;\\r\\n padding-right: 5px;\\r\\n}\\r\\n\\r\\n.cal-event-title {\\r\\n padding-right: 20px;\\r\\n width: 350px;\\r\\n display: inline-flex;\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n}\\r\\n\\r\\n.day-free{\\r\\n color:green;\\r\\n}\\r\\n\\r\\n.day-blocked{\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.cal-day-number{\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.cal-day-number:hover{\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvZGlzaC1jYWxlbmRhci9kaXNoLWNhbGVuZGFyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxvQ0FBb0M7RUFDcEMsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQixnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vb3V0bGV0L2Rpc2gtY2FsZW5kYXIvZGlzaC1jYWxlbmRhci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1vZGFsIHtcclxuICB6LWluZGV4OiAxMDAwO1xyXG59XHJcblxyXG4uZGlzcGxheS1ibG9jayB7XHJcbiAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2FsLW1vbnRoLXZpZXcgLmNhbC1vcGVuLWRheS1ldmVudHMge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwM2IxYWIgIWltcG9ydGFudDtcclxuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jYWwtbW9udGgtdmlldyAuY2FsLWV2ZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jYWwtZXZlbnQtYWN0aW9uIHtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZXZlbnQtYmxvY2sge1xyXG4gIGJhY2tncm91bmQ6ICMwMjlmOWE7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7XHJcbn1cclxuXHJcbi5jYWwtZHJhZy1hY3RpdmV7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLmRpc2FibGVkLWRhdGUge1xyXG4gIGJhY2tncm91bmQ6ICNmZmM4Yzg7XHJcbn1cclxuXHJcbi5vdXRsZXQtZGlzYWJsZWQtZGF0ZSB7XHJcbiAgYmFja2dyb3VuZDogI2Y5NjI2MjtcclxufVxyXG5cclxuLmFjdGlvbi1tZW51IHtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbn1cclxuXHJcbi5jYWwtZXZlbnQtdGl0bGUge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgd2lkdGg6IDM1MHB4O1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDVweDtcclxufVxyXG5cclxuLmRheS1mcmVle1xyXG4gIGNvbG9yOmdyZWVuO1xyXG59XHJcblxyXG4uZGF5LWJsb2NrZWR7XHJcbiAgY29sb3I6IHJlZDtcclxufVxyXG5cclxuLmNhbC1kYXktbnVtYmVye1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG4uY2FsLWRheS1udW1iZXI6aG92ZXJ7XHJcbiAgY3Vyc29yOnBvaW50ZXI7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

{{outlet? outlet.name : ''}} Calendar

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Previous\\r\\n
\\r\\n
\\r\\n Today\\r\\n
\\r\\n
\\r\\n Next\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ viewDate | calendarDate: ((view === 'list' ? 'day' : view) + 'ViewTitle'):locale }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ day.date | calendarDate:'monthViewDayNumber':locale }}\\r\\n
\\r\\n
\\r\\n
{{ev.title | slice:0:20}}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, NgZone, ViewEncapsulation } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { CalendarView, CalendarEvent, CalendarEventAction, CalendarMonthViewBeforeRenderEvent, CalendarWeekViewBeforeRenderEvent, CalendarDayViewBeforeRenderEvent } from 'angular-calendar';\r\nimport { ViewPeriod } from 'calendar-utils';\r\nimport RRule from 'rrule';\r\nimport * as moment from 'moment';\r\nimport { fadeInOut } from 'src/app/services/animations';\r\nimport { AlertService, DialogType, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport {\r\n isSameMonth,\r\n isSameDay\r\n} from 'date-fns';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { CatererInfo } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { BlockUnblockOutletDishDateModel, DishCycle, OutletDishBlockedDate } from 'src/app/models/meal-order/dish-cycle';\r\nimport { OutletViewDishCycleMenuComponent } from '../view-dish/view-dish.component';\r\n//import { ViewDishCycleDishComponent } from '../../menu-cycle/view-menu/view-menu.component';\r\n\r\n@Component({\r\n selector: 'dish-calendar',\r\n templateUrl: './dish-calendar.component.html',\r\n styleUrls: ['./dish-calendar.component.css'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class OutletDishCycleCalendarComponent implements OnInit, AfterViewInit {\r\n schedules: DishCycle[] = [];\r\n editedDishCycle: DishCycle;\r\n sourceDishCycle: DishCycle;\r\n editingDishCycleName: { shortDescription: string };\r\n loadingIndicator: boolean;\r\n activeDayIsOpen: boolean = false;\r\n outletId: any;\r\n @Input()\r\n\r\n view: CalendarView = CalendarView.Month;\r\n viewDate: Date = new Date();\r\n @Output() viewChange: EventEmitter = new EventEmitter();\r\n\r\n @Output() viewDateChange: EventEmitter = new EventEmitter();\r\n\r\n actions: CalendarEventAction[] = [\r\n //{\r\n // label: ' Edit Dish Cycle ',\r\n // //a11yLabel: 'Edit',\r\n // onClick: ({ event }: { event: CalendarEvent }): void => {\r\n // //this.editDishCycle(event.meta);\r\n // },\r\n //},\r\n {\r\n label: ' Enable/Disable Dish ',\r\n //a11yLabel: 'Delete',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n //let startD = moment(new Date(event.meta.startDate).setHours(0));\r\n //let endD = moment(event.start);\r\n //let totalDays = endD.diff(startD, \"days\");\r\n //let totalSchedules = event.meta.schedules ? event.meta.schedules.length : 0;\r\n\r\n //let day = (totalDays % totalSchedules) + 1; //event.start.getDay();\r\n //this.openViewDishDialog(event.meta, day);\r\n //console.log(event);\r\n },\r\n },\r\n ];\r\n\r\n private outletProfiles = [];\r\n private outlet: Outlet;\r\n private catererId: string;\r\n calendarEvents: CalendarEvent[];\r\n\r\n viewPeriod: ViewPeriod;\r\n\r\n //refresh: Subject = new Subject();\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n //@ViewChild('dishCycleEditor')\r\n //dishCycleEditor: DishCycleEditorComponent;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private dishService: DishService, private cdr: ChangeDetectorRef, private deliveryService: DeliveryService, public zone: NgZone, public dialog: MatDialog,\r\n private route: ActivatedRoute) {\r\n this.route.params.subscribe(queryParams => {\r\n this.outletId = queryParams[\"id\"];\r\n this.catererId = queryParams[\"catererId\"];\r\n this.loadData(this.outletId);\r\n });\r\n\r\n }\r\n\r\n handleEvent(action: string, event: CalendarEvent): void {\r\n\r\n }\r\n\r\n eventUpdateEvent() {\r\n this.activeDayIsOpen = false;\r\n this.calendarEvents = [];\r\n this.calendarEvents.length = 0;\r\n \r\n this.schedules.forEach((event) => {\r\n if (!event.rrule || !event.rrule.byweekday || event.rrule.byweekday.length == 0) return;\r\n\r\n const rule: RRule = new RRule({\r\n ...event.rrule,\r\n dtstart: moment(this.viewPeriod.start).startOf('day').toDate(),\r\n until: moment(this.viewPeriod.end).endOf('day').toDate(),\r\n });\r\n const { label, color } = event;\r\n\r\n let events = [];\r\n\r\n rule.all().forEach((date) => {\r\n date.setDate(date.getDate() - 1);\r\n if (date >= new Date(new Date(event.startDate).setHours(0)) && date <= new Date(new Date(event.endDate).setHours(0))) {\r\n let start = new Date(date);\r\n let end = new Date(date);\r\n start.setHours(0);\r\n start.setMinutes(0);\r\n start.setMilliseconds(0);\r\n\r\n end.setHours(0);\r\n end.setMinutes(0);\r\n end.setMilliseconds(0);\r\n\r\n let blockedDates = event.blockedDates ? event.blockedDates.filter(e => date.getTime() == new Date(e.effectiveDate).getTime()) : [];\r\n let outletBlockedDates = event.outletDishBlockedDates ? event.outletDishBlockedDates.filter(e => date.getTime() == new Date(e.effectiveDate).getTime()) : [];\r\n events.push({\r\n title: label,\r\n color,\r\n start: start,\r\n end: end,\r\n actions: this.actions,\r\n meta: event,\r\n isBlocked: (blockedDates && blockedDates.length > 0),\r\n isOutletBlocked: (outletBlockedDates && outletBlockedDates.length > 0),\r\n outletId: this.outletId\r\n });\r\n \r\n }\r\n });\r\n\r\n this.calendarEvents = this.calendarEvents.concat(Array.from(events));\r\n });\r\n //this.refresh.next();\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n updateCalendarEvents(\r\n viewRender:\r\n | CalendarMonthViewBeforeRenderEvent\r\n | CalendarWeekViewBeforeRenderEvent\r\n | CalendarDayViewBeforeRenderEvent\r\n ): void {\r\n if (!this.viewPeriod ||\r\n !moment(this.viewPeriod.start).isSame(viewRender.period.start) ||\r\n !moment(this.viewPeriod.end).isSame(viewRender.period.end)\r\n ) {\r\n this.viewPeriod = viewRender.period;\r\n this.calendarEvents = [];\r\n\r\n this.eventUpdateEvent();\r\n }\r\n }\r\n\r\n dayClicked(\r\n date,\r\n event\r\n ): void {\r\n if (isSameMonth(date, this.viewDate)) {\r\n this.viewDate = date;\r\n }\r\n\r\n\r\n let startD = moment(new Date(event.meta.startDate).setHours(0));\r\n let endD = moment(event.start);\r\n let totalDays = endD.diff(startD, \"days\");\r\n let totalSchedules = event.meta.schedules ? event.meta.schedules.length : 0;\r\n\r\n let day = (totalDays % totalSchedules) + 1; //event.start.getDay();\r\n this.openViewDishDialog(event.meta, day);\r\n console.log(event);\r\n }\r\n\r\n eventClicked(event: CalendarEvent<{ dishCycle: DishCycle }>): void {\r\n //window.open(\r\n // `https://www.themoviedb.org/movie/${event.meta.film.id}`,\r\n // '_blank'\r\n //);\r\n }\r\n\r\n ngOnInit() {\r\n\r\n //this.route.params.subscribe(queryParams => {\r\n // this.outletId = queryParams[\"id\"];\r\n // this.loadData(this.outletId);\r\n //});\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n //this.dishCycleEditor.changesSavedCallback = () => {\r\n // this.loadData();\r\n // this.editorModal.hide();\r\n //};\r\n\r\n //this.dishCycleEditor.changesCancelledCallback = () => {\r\n // this.editedDishCycle = null;\r\n // this.sourceDishCycle = null;\r\n // this.editorModal.hide();\r\n //};\r\n\r\n \r\n this.cdr.detectChanges();\r\n }\r\n\r\n loadData(id?: string) {\r\n this.deliveryService.getOutletById(id)\r\n .subscribe(outlet => {\r\n this.outlet = outlet;\r\n console.log(this.outlet);\r\n let approvedOutlet = false;\r\n let catererOutlets = [];\r\n //if (this.outlet.catererOutlets && this.outlet.catererOutlets) {\r\n // catererOutlets = this.outlet.catererOutlets.filter(e => e.status == 'APPROVED');\r\n // approvedOutlet = catererOutlets && catererOutlets.length > 0;\r\n // this.catererId = catererOutlets[0];\r\n //}\r\n\r\n //if (approvedOutlet) {\r\n this.dishService.getOutletDishCycles(id, this.catererId)\r\n .subscribe(results => {\r\n let dishCycles = results;\r\n\r\n dishCycles.forEach((dishCycle, index, dishCycles) => {\r\n try {\r\n (dishCycle).index = index + 1;\r\n\r\n let weekday = [];\r\n\r\n //if (dishCycle.schedules) {\r\n // let dayRules = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU];\r\n // dishCycle.schedules.forEach((schedule, i, s) => {\r\n // weekday.push(dayRules[(schedule.day % 7) - 1]);\r\n // });\r\n //}\r\n\r\n dishCycle.rrule = {\r\n freq: RRule.WEEKLY,\r\n byweekday: [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU],\r\n }\r\n } catch (ex) { }\r\n });\r\n\r\n\r\n this.schedules = dishCycles;\r\n\r\n this.eventUpdateEvent();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n //}\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getOutletProfiles() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n\r\n this.deliveryService.getOutletProfilesByFilter(filter)\r\n .subscribe(results => {\r\n this.outletProfiles = results.pagedData;\r\n this.loadData();\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlet profiles.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n onOutletProfileChange(outletId: string) {\r\n this.loadData(outletId);\r\n }\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingDishCycleName = null;\r\n //this.dishCycleEditor.resetForm(true);\r\n }\r\n\r\n blockDate(ev, day) {\r\n this.activeDayIsOpen = false;\r\n \r\n if (day && day.events && day.events.length > 0 && !day.events[0].isBlocked) {\r\n let isBlocked = this.isBlocked(day, day.events);\r\n this.alertService.showDialog(`Are you sure you want to \"${(isBlocked.length > 0 ? \"unblock\": \"block\")}\" this date?`, DialogType.confirm, () => this.blockDishCycleHelper(day, isBlocked.length > 0));\r\n }\r\n }\r\n\r\n\r\n blockDishCycleHelper(day: any, isUnblock) {\r\n let m = new Date(day.date);\r\n let date = new Date(m.getFullYear(), m.getMonth(), m.getDate());\r\n let blockedDates = day.events.map(function (e) {\r\n let blockedDate = new OutletDishBlockedDate();\r\n blockedDate.effectiveDate = date.toLocaleDateString();\r\n blockedDate.label = e.meta.label;\r\n blockedDate.dishCycleId = e.meta.id;\r\n blockedDate.outletId = e.outletId;\r\n return blockedDate;\r\n });\r\n this.alertService.startLoadingMessage(\"Processing...\");\r\n this.loadingIndicator = true;\r\n\r\n let model = new BlockUnblockOutletDishDateModel();\r\n model.isUnblock = isUnblock;\r\n model.blockedDates = blockedDates;\r\n this.dishService.blockunblockOutletDishDate(model)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData(this.outletId);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while processing the record.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n isBlocked(day, events) {\r\n if (events && events.length > 0) {\r\n if (events[0].isBlocked) {\r\n return 'disabled-date';\r\n } else if (events[0].isOutletBlocked) {\r\n return 'outlet-disabled-date';\r\n } \r\n }\r\n return '';\r\n }\r\n\r\n openViewDishDialog(dishCycle: DishCycle, day): void {\r\n const dialogRef = this.dialog.open(OutletViewDishCycleMenuComponent, {\r\n data: { header: 'Dish List', dishCycle: dishCycle, day, outletId: this.outletId, catererId: this.catererId },\r\n width: '600px'\r\n });\r\n }\r\n\r\n\r\n get canManageDishCycles() {\r\n return true;// || this.accountService.userHasPermission(Permission.manageDishCyclesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {\\r\\n padding: 4px !important;\\r\\n vertical-align:middle;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvbWVhbC1zZXNzaW9uL21lYWwtc2Vzc2lvbi1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEU7O0FBR0E7RUFDRSx1QkFBdUI7RUFDdkIscUJBQXFCO0FBQ3ZCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvbWVhbC1zZXNzaW9uL21lYWwtc2Vzc2lvbi1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcblxyXG5cclxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLCAudGFibGUgPiB0Ym9keSA+IHRyID4gdGgsIC50YWJsZSA+IHRmb290ID4gdHIgPiB0ZCwgLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRoLCAudGFibGUgPiB0aGVhZCA+IHRyID4gdGQsIC50YWJsZSA+IHRoZWFkID4gdHIgPiB0aCB7XHJcbiAgcGFkZGluZzogNHB4ICFpbXBvcnRhbnQ7XHJcbiAgdmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameStart TimeRoute (Minutes)Overheads (Minutes)Cal. SourceAssigned RouteActions
\\r\\n {{mealSession.name}}\\r\\n {{mealSession.startDate | date: \\\"h:mm a\\\"}}-{{mealSession.endDate | date: \\\"h:mm a\\\"}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Time must be within the period\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{calculateCalSource(detail)}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{route.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MatDialogRef, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealSession, MealSessionDetail, MealSessionMealPeriod } from 'src/app/models/meal-order/meal-session.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport * as moment from 'moment';\r\nimport { OutletClassRosterEditorComponent } from '../class-roster/class-roster-editor.component';\r\nimport { OutletClassRostersManagementComponent } from '../class-roster/class-rosters-management.component';\r\n\r\n@Component({\r\n selector: 'meal-session-editor',\r\n templateUrl: './meal-session-editor.component.html',\r\n styleUrls: ['./meal-session-editor.component.css'],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\nexport class MealSessionEditorComponent {\r\n\r\n private isNewMealSession = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingMealSessionCode: string;\r\n private mealSessionEdit: MealSession = new MealSession();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n start = new Date();\r\n route = new Date();\r\n overheads = new Date();\r\n calsource = new Date();\r\n outletProfiles = [];\r\n routes = [];\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n private outlet: Outlet;\r\n private outletProfileId: string;\r\n private catererId: string;\r\n private outletId: string;\r\n private mealPeriodSessions: MealSessionMealPeriod[];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private mealService: MealService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private deliveryService: DeliveryService, \r\n @Inject(MAT_DIALOG_DATA) public data: any, public dialog: MatDialog) {\r\n\r\n if (typeof (data.outlet) != typeof (undefined)) {\r\n this.outlet = data.outlet;\r\n this.outletProfileId = data.outletProfileId;\r\n this.catererId = data.catererId;\r\n this.outletId = data.outletId;\r\n \r\n //if (!this.outlet.mealSessions) {\r\n //this.editMealSessions(data.outlet);\r\n this.getMealPeriodSessions();\r\n //} \r\n }\r\n\r\n this.getRoutes();\r\n }\r\n\r\n getMealSessions() {\r\n let filter = new Filter();\r\n filter.sorts = 'startDate';\r\n filter.filters = '(IsActive)==true,(OutletProfileId)==' + this.outletProfileId;\r\n this.mealService.getMealPeriodsByFilter(filter)\r\n .subscribe(results => {\r\n let mealPeriods = results.pagedData;\r\n if (!this.outlet.mealSessions) {\r\n this.outlet.mealSessions = [];\r\n }\r\n\r\n let newMealSessions: MealSession[] = [];\r\n mealPeriods.forEach((mp: MealPeriod, index, periods) => {\r\n let mealSession = new MealSession();\r\n let mealSessions = this.outlet.mealSessions.filter(e => e.mealPeriodId == mp.id);\r\n if (mealSessions && mealSessions.length > 0) {\r\n mealSession = mealSessions[0];\r\n } else {\r\n mealSession.mealPeriodId = mp.id;\r\n mealSession.mealPeriodName = mp.name;\r\n mealSession.outletId = this.outletId;\r\n mealSession.sequence = mp.sequence;\r\n mealSession.name = mp.name;\r\n mealSession.startDate = mp.startDate;\r\n mealSession.endDate = mp.endDate;\r\n mealSession.catererId = this.catererId;\r\n }\r\n if (mealSession.details) {\r\n mealSession.details.forEach((det: MealSessionDetail, i, dets) => {\r\n det.id = '0';\r\n });\r\n } else {\r\n mealSession.details = [];\r\n }\r\n \r\n //mealSession.id = '';\r\n mealSession.name = mp.name;\r\n mealSession.startDate = mp.startDate;\r\n mealSession.endDate = mp.endDate;\r\n\r\n newMealSessions.push(mealSession);\r\n });\r\n\r\n this.outlet.mealSessions = newMealSessions;\r\n\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving sessions.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getMealPeriodSessions() {\r\n this.mealService.getMealPeriodSessions(this.outletId, this.catererId, this.outletProfileId)\r\n .subscribe(results => {\r\n this.mealPeriodSessions = results;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving sessions.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getRoutes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getRoutesByFilter(filter)\r\n .subscribe(results => {\r\n this.routes = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving routes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n errors: Set = new Set();\r\n private save() {\r\n if (this.form.valid) {\r\n console.log(this.form);\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n console.log(this.outlet);\r\n\r\n let sessions: MealSession[] = [];\r\n this.mealPeriodSessions.forEach((e) => {\r\n sessions.push(...e.mealSessions);\r\n });\r\n \r\n this.mealService.bulkMealSession(sessions).subscribe(mealSession => this.saveSuccessHelper(mealSession), error => this.saveFailedHelper(error));\r\n } else {\r\n this.alertService.showMessage(\"Validation Error\", \"Please enter correct values.\", MessageSeverity.error);\r\n }\r\n \r\n }\r\n\r\n\r\n private saveSuccessHelper(mealSession?: MealSession) {\r\n if (mealSession)\r\n Object.assign(this.mealSessionEdit, mealSession);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n this.alertService.showMessage(\"Success\", `Sessions were updated successfully`, MessageSeverity.success);\r\n\r\n\r\n this.mealSessionEdit = new MealSession();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewMealSession && this.accountService.currentUser.facilities.some(r => r == this.editingMealSessionCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.mealSessionEdit = new MealSession();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n onChangeDate(type: string, detail: MealSessionDetail, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n detail.startDate = new Date(event.value);\r\n }\r\n if (type == 'route') {\r\n this.route = new Date(event.value);\r\n detail.routeTime = new Date(event.value);\r\n }\r\n if (type == 'overheads') {\r\n this.overheads = new Date(event.value);\r\n detail.overheadTime = new Date(event.value);\r\n }\r\n if (type == 'calsource') {\r\n this.calsource = new Date(event.value);\r\n detail.calSourceTime = new Date(event.value);\r\n }\r\n }\r\n\r\n addMealSession(mealSession) {\r\n let newMealSessionObj = new MealSessionDetail();\r\n if (!mealSession.details) {\r\n mealSession.details = [];\r\n }\r\n newMealSessionObj.mealSessionId = mealSession.mealPeriodId;\r\n newMealSessionObj.startDate = mealSession.startDate;\r\n mealSession.details.push(newMealSessionObj)\r\n \r\n }\r\n\r\n deleteMealSession(mealSession, index) {\r\n mealSession.details.splice(index, 1);\r\n }\r\n\r\n validateStart(mealSession, time, a, id, i, detail) {\r\n if (mealSession && time) {\r\n console.log(mealSession);\r\n console.log(time);\r\n let ctrl = 'detail-start-' + a + id + i;\r\n let currentDate = new Date();\r\n currentDate.setHours(time.split(\":\")[0]);\r\n currentDate.setMinutes(time.split(\":\")[1]);\r\n currentDate.setSeconds(0);\r\n\r\n let start = new Date(mealSession.startDate);\r\n let end = new Date(mealSession.endDate);\r\n\r\n\r\n let startTime = new Date();\r\n startTime.setHours(start.getHours());\r\n startTime.setMinutes(start.getMinutes());\r\n startTime.setSeconds(0);\r\n let endTime = new Date();\r\n endTime.setHours(end.getHours());\r\n endTime.setMinutes(end.getMinutes());\r\n endTime.setSeconds(0);\r\n\r\n let sTime = startTime.getTime();\r\n let eTime = endTime.getTime();\r\n let cTime = currentDate.getTime();\r\n\r\n let valid = sTime <= cTime && eTime >= cTime;\r\n if (valid) {\r\n this.form.controls[ctrl].setErrors(null);\r\n this.errors[ctrl] = false;\r\n detail.startDate = currentDate.toLocaleString();// moment(currentDate).format('DD/MM/YYYY HH:mm');;\r\n } else {\r\n this.form.controls[ctrl].setErrors({ 'incorrect': true });\r\n this.errors[ctrl] = true;\r\n }\r\n }\r\n \r\n }\r\n\r\n isValid(id, a, i) {\r\n return this.errors[\"detail-start-\" + a + id + i] == true;\r\n }\r\n\r\n validateCalSource(mealSession, time, a, id, i, detail) {\r\n if (mealSession && time) {\r\n let ctrl = 'detail-calsource-' + a + id + i;\r\n let currentDate = new Date();\r\n currentDate.setHours(time.split(\":\")[0]);\r\n currentDate.setMinutes(time.split(\":\")[1]);\r\n currentDate.setSeconds(0);\r\n\r\n let start = new Date(mealSession.startDate);\r\n let startTime = new Date();\r\n startTime.setHours(start.getHours());\r\n startTime.setMinutes(start.getMinutes());\r\n startTime.setSeconds(0);\r\n\r\n let sTime = startTime.getTime();\r\n let cTime = currentDate.getTime();\r\n\r\n let valid = sTime > cTime;\r\n if (valid) {\r\n this.form.controls[ctrl].setErrors(null);\r\n this.errors[ctrl] = false;\r\n detail.calSourceTime = currentDate.toLocaleString();//moment(currentDate).format('DD/MM/YYYY HH:mm');;\r\n } else {\r\n this.form.controls[ctrl].setErrors({ 'incorrect': true });\r\n this.errors[ctrl] = true;\r\n }\r\n }\r\n }\r\n\r\n calculateCalSource(det: MealSessionDetail, id, i) {\r\n let d = new Date(det.startDate);\r\n d.setMinutes(d.getMinutes() - det.routeInterval - det.overheadInterval);\r\n return Utilities.printTimeOnly(d, false); \r\n }\r\n //isValidCalSource(a, id, i) {\r\n // return this.errors[\"detail-calsource-\" + a + id + i] == true;\r\n //}\r\n\r\n addClassRoster(mealSession: MealSession): void {\r\n const dialogRef = this.dialog.open(OutletClassRosterEditorComponent, {\r\n data: { header: mealSession.name + ' - Class Detailing', mealSession: mealSession, catererId: this.catererId, outletId: this.outletId, outletProfileId: this.outletProfileId },\r\n width: '900px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n \r\n });\r\n }\r\n\r\n openClassRoster(mealSession: MealSession): void {\r\n const dialogRef = this.dialog.open(OutletClassRostersManagementComponent, {\r\n data: { header: mealSession.name + ' - Class Detailing', mealSession: mealSession, catererId: this.catererId, outletId: this.outletId, outletProfileId: this.outletProfileId },\r\n width: '900px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n });\r\n }\r\n\r\n get canManageMealSessions() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMealSessionsPermission)\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvb3JkZXItZGVsaXZlcnktcmVwb3J0L29yZGVyLWRlbGl2ZXJ5LXJlcG9ydC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvb3JkZXItZGVsaXZlcnktcmVwb3J0L29yZGVyLWRlbGl2ZXJ5LXJlcG9ydC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMyOGE3NDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport * as moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\nimport { MenuService } from '../../../../services/meal-order/menu.service';\r\n\r\n@Component({\r\n selector: 'order-delivery-report',\r\n templateUrl: './order-delivery-report.component.html',\r\n styleUrls: ['./order-delivery-report.component.css']\r\n})\r\nexport class OrderDeliveryReportComponent implements OnInit {\r\n stores: StoreInfo[];\r\n storesCache: StoreInfo[];\r\n selectedStores: StoreInfo[] = [];\r\n editOutlet: Outlet;\r\n selectedCaterers: CatererOutlet[];\r\n startDate = moment();\r\n endDate = moment();\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,private menuService: MenuService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outlet) != typeof (undefined)) {\r\n this.editOutlet = data.outlet;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n let filterCaterer = \"\";\r\n this.selectedCaterers.forEach((caterer, i) => {\r\n if (caterer.status == \"APPROVED\") {\r\n if (filterCaterer != \"\") {\r\n filterCaterer += '|'\r\n }\r\n filterCaterer += caterer.catererInfoId\r\n }\r\n });\r\n console.log(\"caterer filter = \", filterCaterer)\r\n\r\n //this.getStore(filterCaterer);\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n console.log(\"event value: \", moment(event.value))\r\n if (type == \"start\") {\r\n this.startDate = moment(event.value);\r\n } else if (type == \"end\") {\r\n this.endDate = moment(event.value);\r\n }\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.stores = this.storesCache.filter(r => Utilities.searchArray(value, false, r.name));\r\n }\r\n\r\n\r\n downloadReport() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_PrductionDeliveryReport.xlsx';\r\n\r\n var insideFilter = new Filter();\r\n\r\n var strStartDate = this.startDate.format().split('T');\r\n //var strEndDate = this.endDate.format().split('T');\r\n insideFilter.filters = '(IsActive)==true,(DeliveryDate)==' + strStartDate[0];\r\n console.log(\"filters: \", insideFilter.filters)\r\n insideFilter.sorts = \"DeliveryDate\";\r\n\r\n this.menuService.downloadDeliveryOrderReport(insideFilter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvb3JkZXItbWVhbC1zdW1tYXJ5L29yZGVyLW1lYWwtc3VtbWFyeS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvb3JkZXItbWVhbC1zdW1tYXJ5L29yZGVyLW1lYWwtc3VtbWFyeS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMyOGE3NDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport * as moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\nimport { MenuService } from '../../../../services/meal-order/menu.service';\r\n\r\n@Component({\r\n selector: 'order-meal-summary',\r\n templateUrl: './order-meal-summary.component.html',\r\n styleUrls: ['./order-meal-summary.component.css']\r\n})\r\nexport class OrderMealSummaryComponent implements OnInit {\r\n stores: StoreInfo[];\r\n storesCache: StoreInfo[];\r\n selectedStores: StoreInfo[] = [];\r\n editOutlet: Outlet;\r\n selectedCaterers: CatererOutlet[];\r\n startDate = moment();\r\n endDate = moment();\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,private menuService: MenuService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outlet) != typeof (undefined)) {\r\n this.editOutlet = data.outlet;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n let filterCaterer = \"\";\r\n this.selectedCaterers.forEach((caterer, i) => {\r\n if (caterer.status == \"APPROVED\") {\r\n if (filterCaterer != \"\") {\r\n filterCaterer += '|'\r\n }\r\n filterCaterer += caterer.catererInfoId\r\n }\r\n });\r\n console.log(\"caterer filter = \", filterCaterer)\r\n\r\n //this.getStore(filterCaterer);\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n console.log(\"event value: \", moment(event.value))\r\n if (type == \"start\") {\r\n this.startDate = moment(event.value);\r\n } else if (type == \"end\") {\r\n this.endDate = moment(event.value);\r\n }\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.stores = this.storesCache.filter(r => Utilities.searchArray(value, false, r.name));\r\n }\r\n\r\n\r\n downloadReport() {\r\n const fileName = moment().format('YYYYMMDD_hhmmss') + '_MealSummaryReport.xlsx';\r\n\r\n var insideFilter = new Filter();\r\n\r\n var strStartDate = this.startDate.format().split('T');\r\n //var strEndDate = this.endDate.format().split('T');\r\n insideFilter.filters = '(IsActive)==true,(DeliveryDate)==' + strStartDate[0];\r\n console.log(\"filters: \", insideFilter.filters)\r\n insideFilter.sorts = \"DeliveryDate\";\r\n\r\n this.menuService.downloadMealSummaryReport(insideFilter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvb3JkZXItcmVwb3J0L29yZGVyLXJlcG9ydC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvb3JkZXItcmVwb3J0L29yZGVyLXJlcG9ydC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMyOGE3NDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport * as moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\nimport { MenuService } from '../../../../services/meal-order/menu.service';\r\n\r\n@Component({\r\n selector: 'order-report',\r\n templateUrl: './order-report.component.html',\r\n styleUrls: ['./order-report.component.css']\r\n})\r\nexport class OrderReportComponent implements OnInit {\r\n stores: StoreInfo[];\r\n storesCache: StoreInfo[];\r\n selectedStores: StoreInfo[] = [];\r\n editOutlet: Outlet;\r\n selectedCaterers: CatererOutlet[];\r\n startDate = moment();\r\n endDate = moment();\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,private menuService: MenuService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outlet) != typeof (undefined)) {\r\n this.editOutlet = data.outlet;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n let filterCaterer = \"\";\r\n this.selectedCaterers.forEach((caterer, i) => {\r\n if (caterer.status == \"APPROVED\") {\r\n if (filterCaterer != \"\") {\r\n filterCaterer += '|'\r\n }\r\n filterCaterer += caterer.catererInfoId\r\n }\r\n });\r\n console.log(\"caterer filter = \", filterCaterer)\r\n\r\n //this.getStore(filterCaterer);\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n console.log(\"event value: \", moment(event.value))\r\n if (type == \"start\") {\r\n this.startDate = moment(event.value);\r\n } else if (type == \"end\") {\r\n this.endDate = moment(event.value);\r\n }\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.stores = this.storesCache.filter(r => Utilities.searchArray(value, false, r.name));\r\n }\r\n\r\n\r\n downloadReport() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_OrderReport.pdf';\r\n\r\n var insideFilter = new Filter();\r\n\r\n var strStartDate = this.startDate.format().split('T');\r\n var strEndDate = this.endDate.format().split('T');\r\n insideFilter.filters = '(IsActive)==true,(TokenOrderDateRange)==' + strStartDate[0] + '|' + strEndDate[0];\r\n console.log(\"filters: \", insideFilter.filters)\r\n insideFilter.sorts = \"DeliveryDate\";\r\n\r\n this.menuService.downloadOrderReport(insideFilter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \".modal {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n.display-block {\\r\\n display:block !important;\\r\\n}\\r\\n\\r\\n.cal-month-view .cal-open-day-events {\\r\\n background-color: #03b1ab !important;\\r\\n box-shadow: none !important;\\r\\n}\\r\\n\\r\\n.cal-month-view .cal-event {\\r\\n background-color: #fff !important;\\r\\n}\\r\\n\\r\\n.cal-event-action {\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.event-block {\\r\\n background: #029f9a;\\r\\n color: white;\\r\\n padding-left: 5px;\\r\\n font-size: 12px;\\r\\n border-top: 1px solid white;\\r\\n}\\r\\n\\r\\n.cal-drag-active{\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.disabled-date {\\r\\n background: #ffc8c8;\\r\\n}\\r\\n\\r\\n.outlet-disabled-date {\\r\\n background: #f96262;\\r\\n}\\r\\n\\r\\n.action-menu {\\r\\n padding-left: 5px;\\r\\n padding-right: 5px;\\r\\n}\\r\\n\\r\\n.cal-event-title {\\r\\n padding-right: 20px;\\r\\n width: 350px;\\r\\n display: inline-flex;\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n}\\r\\n\\r\\n.day-free{\\r\\n color:green;\\r\\n}\\r\\n\\r\\n.day-blocked{\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.cal-day-number{\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.cal-day-number:hover{\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvb3V0bGV0LWNhbGVuZGFyL291dGxldC1jYWxlbmRhci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZiwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL291dGxldC9vdXRsZXQtY2FsZW5kYXIvb3V0bGV0LWNhbGVuZGFyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubW9kYWwge1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcbi5kaXNwbGF5LWJsb2NrIHtcclxuICBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jYWwtbW9udGgtdmlldyAuY2FsLW9wZW4tZGF5LWV2ZW50cyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzYjFhYiAhaW1wb3J0YW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNhbC1tb250aC12aWV3IC5jYWwtZXZlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNhbC1ldmVudC1hY3Rpb24ge1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5ldmVudC1ibG9jayB7XHJcbiAgYmFja2dyb3VuZDogIzAyOWY5YTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB3aGl0ZTtcclxufVxyXG5cclxuLmNhbC1kcmFnLWFjdGl2ZXtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uZGlzYWJsZWQtZGF0ZSB7XHJcbiAgYmFja2dyb3VuZDogI2ZmYzhjODtcclxufVxyXG5cclxuLm91dGxldC1kaXNhYmxlZC1kYXRlIHtcclxuICBiYWNrZ3JvdW5kOiAjZjk2MjYyO1xyXG59XHJcblxyXG4uYWN0aW9uLW1lbnUge1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcclxufVxyXG5cclxuLmNhbC1ldmVudC10aXRsZSB7XHJcbiAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICB3aWR0aDogMzUwcHg7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgcGFkZGluZy10b3A6IDVweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uZGF5LWZyZWV7XHJcbiAgY29sb3I6Z3JlZW47XHJcbn1cclxuXHJcbi5kYXktYmxvY2tlZHtcclxuICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4uY2FsLWRheS1udW1iZXJ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbi5jYWwtZGF5LW51bWJlcjpob3ZlcntcclxuICBjdXJzb3I6cG9pbnRlcjtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

{{outlet? outlet.name : ''}} Calendar

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Previous\\r\\n
\\r\\n
\\r\\n Today\\r\\n
\\r\\n
\\r\\n Next\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ viewDate | calendarDate: ((view === 'list' ? 'day' : view) + 'ViewTitle'):locale }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ day.date | calendarDate:'monthViewDayNumber':locale }}\\r\\n
\\r\\n
\\r\\n
{{ev.title | slice:0:20}}
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, NgZone, ViewEncapsulation } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { CalendarView, CalendarEvent, CalendarEventAction, CalendarMonthViewBeforeRenderEvent, CalendarWeekViewBeforeRenderEvent, CalendarDayViewBeforeRenderEvent } from 'angular-calendar';\r\nimport { ViewPeriod } from 'calendar-utils';\r\nimport RRule from 'rrule';\r\nimport * as moment from 'moment';\r\nimport { fadeInOut } from 'src/app/services/animations';\r\nimport { AlertService, DialogType, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { BlockUnblockDateModel, BlockUnblockOutletDateModel, MenuCycle, MenuCycleBlockedDate, OutletBlockedDate } from 'src/app/models/meal-order/menu-cycle.model';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport {\r\n isSameMonth,\r\n isSameDay\r\n} from 'date-fns';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ViewMenuCycleMenuComponent } from '../../menu-cycle/view-menu/view-menu.component';\r\nimport { OutletViewMenuCycleMenuComponent } from '../view-menu/view-menu.component';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { CatererInfo } from 'src/app/models/meal-order/caterer-info.model';\r\n//import { ViewMenuCycleMenuComponent } from '../../menu-cycle/view-menu/view-menu.component';\r\n\r\n@Component({\r\n selector: 'outlet-calendar',\r\n templateUrl: './outlet-calendar.component.html',\r\n styleUrls: ['./outlet-calendar.component.css'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class OutletMenuCycleCalendarComponent implements OnInit, AfterViewInit {\r\n schedules: MenuCycle[] = [];\r\n editedMenuCycle: MenuCycle;\r\n sourceMenuCycle: MenuCycle;\r\n editingMenuCycleName: { shortDescription: string };\r\n loadingIndicator: boolean;\r\n activeDayIsOpen: boolean = false;\r\n outletId: any;\r\n @Input()\r\n\r\n view: CalendarView = CalendarView.Month;\r\n viewDate: Date = new Date();\r\n @Output() viewChange: EventEmitter = new EventEmitter();\r\n\r\n @Output() viewDateChange: EventEmitter = new EventEmitter();\r\n\r\n actions: CalendarEventAction[] = [\r\n //{\r\n // label: ' Edit Menu Cycle ',\r\n // //a11yLabel: 'Edit',\r\n // onClick: ({ event }: { event: CalendarEvent }): void => {\r\n // //this.editMenuCycle(event.meta);\r\n // },\r\n //},\r\n {\r\n label: ' Enable/Disable Menu ',\r\n //a11yLabel: 'Delete',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n //let startD = moment(new Date(event.meta.startDate).setHours(0));\r\n //let endD = moment(event.start);\r\n //let totalDays = endD.diff(startD, \"days\");\r\n //let totalSchedules = event.meta.schedules ? event.meta.schedules.length : 0;\r\n\r\n //let day = (totalDays % totalSchedules) + 1; //event.start.getDay();\r\n //this.openViewMenuDialog(event.meta, day);\r\n //console.log(event);\r\n },\r\n },\r\n ];\r\n\r\n private outletProfiles = [];\r\n private outlet: Outlet;\r\n private catererId: string;\r\n calendarEvents: CalendarEvent[];\r\n\r\n viewPeriod: ViewPeriod;\r\n\r\n //refresh: Subject = new Subject();\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n //@ViewChild('menuCycleEditor')\r\n //menuCycleEditor: MenuCycleEditorComponent;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private menuService: MenuService, private cdr: ChangeDetectorRef, private deliveryService: DeliveryService, public zone: NgZone, public dialog: MatDialog,\r\n private route: ActivatedRoute) {\r\n this.route.params.subscribe(queryParams => {\r\n this.outletId = queryParams[\"id\"];\r\n this.catererId = queryParams[\"catererId\"];\r\n this.loadData(this.outletId);\r\n });\r\n\r\n }\r\n\r\n handleEvent(action: string, event: CalendarEvent): void {\r\n\r\n }\r\n\r\n eventUpdateEvent() {\r\n this.activeDayIsOpen = false;\r\n this.calendarEvents = [];\r\n this.calendarEvents.length = 0;\r\n \r\n this.schedules.forEach((event) => {\r\n if (!event.rrule || !event.rrule.byweekday || event.rrule.byweekday.length == 0) return;\r\n\r\n const rule: RRule = new RRule({\r\n ...event.rrule,\r\n dtstart: moment(this.viewPeriod.start).startOf('day').toDate(),\r\n until: moment(this.viewPeriod.end).endOf('day').toDate(),\r\n });\r\n const { label, color } = event;\r\n\r\n let events = [];\r\n\r\n rule.all().forEach((date) => {\r\n date.setDate(date.getDate() - 1);\r\n if (date >= new Date(new Date(event.startDate).setHours(0)) && date <= new Date(new Date(event.endDate).setHours(0))) {\r\n let start = new Date(date);\r\n let end = new Date(date);\r\n start.setHours(0);\r\n start.setMinutes(0);\r\n start.setMilliseconds(0);\r\n\r\n end.setHours(0);\r\n end.setMinutes(0);\r\n end.setMilliseconds(0);\r\n\r\n let blockedDates = event.blockedDates.filter(e => date.getTime() == new Date(e.effectiveDate).getTime());\r\n let outletBlockedDates = event.outletBlockedDates.filter(e => date.getTime() == new Date(e.effectiveDate).getTime());\r\n events.push({\r\n title: label,\r\n color,\r\n start: start,\r\n end: end,\r\n actions: this.actions,\r\n meta: event,\r\n isBlocked: (blockedDates && blockedDates.length > 0),\r\n isOutletBlocked: (outletBlockedDates && outletBlockedDates.length > 0),\r\n outletId: this.outletId\r\n });\r\n \r\n }\r\n });\r\n\r\n this.calendarEvents = this.calendarEvents.concat(Array.from(events));\r\n });\r\n //this.refresh.next();\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n updateCalendarEvents(\r\n viewRender:\r\n | CalendarMonthViewBeforeRenderEvent\r\n | CalendarWeekViewBeforeRenderEvent\r\n | CalendarDayViewBeforeRenderEvent\r\n ): void {\r\n if (!this.viewPeriod ||\r\n !moment(this.viewPeriod.start).isSame(viewRender.period.start) ||\r\n !moment(this.viewPeriod.end).isSame(viewRender.period.end)\r\n ) {\r\n this.viewPeriod = viewRender.period;\r\n this.calendarEvents = [];\r\n\r\n this.eventUpdateEvent();\r\n }\r\n }\r\n\r\n dayClicked(\r\n date,\r\n event\r\n ): void {\r\n if (isSameMonth(date, this.viewDate)) {\r\n this.viewDate = date;\r\n }\r\n\r\n\r\n let startD = moment(new Date(event.meta.startDate).setHours(0));\r\n let endD = moment(event.start);\r\n let totalDays = endD.diff(startD, \"days\");\r\n let totalSchedules = event.meta.schedules ? event.meta.schedules.length : 0;\r\n\r\n let day = (totalDays % totalSchedules) + 1; //event.start.getDay();\r\n this.openViewMenuDialog(event.meta, day);\r\n console.log(event);\r\n }\r\n\r\n eventClicked(event: CalendarEvent<{ menuCycle: MenuCycle }>): void {\r\n //window.open(\r\n // `https://www.themoviedb.org/movie/${event.meta.film.id}`,\r\n // '_blank'\r\n //);\r\n }\r\n\r\n ngOnInit() {\r\n\r\n //this.route.params.subscribe(queryParams => {\r\n // this.outletId = queryParams[\"id\"];\r\n // this.loadData(this.outletId);\r\n //});\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n //this.menuCycleEditor.changesSavedCallback = () => {\r\n // this.loadData();\r\n // this.editorModal.hide();\r\n //};\r\n\r\n //this.menuCycleEditor.changesCancelledCallback = () => {\r\n // this.editedMenuCycle = null;\r\n // this.sourceMenuCycle = null;\r\n // this.editorModal.hide();\r\n //};\r\n\r\n \r\n this.cdr.detectChanges();\r\n }\r\n\r\n loadData(id?: string) {\r\n this.deliveryService.getOutletById(id)\r\n .subscribe(outlet => {\r\n this.outlet = outlet;\r\n console.log(this.outlet);\r\n let approvedOutlet = false;\r\n let catererOutlets = [];\r\n //if (this.outlet.catererOutlets && this.outlet.catererOutlets) {\r\n // catererOutlets = this.outlet.catererOutlets.filter(e => e.status == 'APPROVED');\r\n // approvedOutlet = catererOutlets && catererOutlets.length > 0;\r\n // this.catererId = catererOutlets[0];\r\n //}\r\n\r\n //if (approvedOutlet) {\r\n this.menuService.getOutletMenuCyclesByFilter(id, this.catererId)\r\n .subscribe(results => {\r\n let menuCycles = results;\r\n\r\n menuCycles.forEach((menuCycle, index, menuCycles) => {\r\n try {\r\n (menuCycle).index = index + 1;\r\n\r\n let weekday = [];\r\n\r\n //if (menuCycle.schedules) {\r\n // let dayRules = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU];\r\n // menuCycle.schedules.forEach((schedule, i, s) => {\r\n // weekday.push(dayRules[(schedule.day % 7) - 1]);\r\n // });\r\n //}\r\n\r\n menuCycle.rrule = {\r\n freq: RRule.WEEKLY,\r\n byweekday: [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU],\r\n }\r\n } catch (ex) { }\r\n });\r\n\r\n\r\n this.schedules = menuCycles;\r\n\r\n this.eventUpdateEvent();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n //}\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getOutletProfiles() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n\r\n this.deliveryService.getOutletProfilesByFilter(filter)\r\n .subscribe(results => {\r\n this.outletProfiles = results.pagedData;\r\n this.loadData();\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlet profiles.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n onOutletProfileChange(outletId: string) {\r\n this.loadData(outletId);\r\n }\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingMenuCycleName = null;\r\n //this.menuCycleEditor.resetForm(true);\r\n }\r\n\r\n blockDate(ev, day) {\r\n this.activeDayIsOpen = false;\r\n \r\n if (day && day.events && day.events.length > 0 && !day.events[0].isBlocked) {\r\n let isBlocked = this.isBlocked(day, day.events);\r\n this.alertService.showDialog(`Are you sure you want to \"${(isBlocked.length > 0 ? \"unblock\": \"block\")}\" this date?`, DialogType.confirm, () => this.blockMenuCycleHelper(day, isBlocked.length > 0));\r\n }\r\n }\r\n\r\n\r\n blockMenuCycleHelper(day: any, isUnblock) {\r\n let m = new Date(day.date);\r\n let date = new Date(m.getFullYear(), m.getMonth(), m.getDate());\r\n let blockedDates = day.events.map(function (e) {\r\n let blockedDate = new OutletBlockedDate();\r\n blockedDate.effectiveDate = date.toLocaleDateString();\r\n blockedDate.label = e.meta.label;\r\n blockedDate.menuCycleId = e.meta.id;\r\n blockedDate.outletId = e.outletId;\r\n return blockedDate;\r\n });\r\n this.alertService.startLoadingMessage(\"Processing...\");\r\n this.loadingIndicator = true;\r\n\r\n let model = new BlockUnblockOutletDateModel();\r\n model.isUnblock = isUnblock;\r\n model.blockedDates = blockedDates;\r\n this.menuService.blockunblockOutletDate(model)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData(this.outletId);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while processing the record.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n isBlocked(day, events) {\r\n if (events && events.length > 0) {\r\n if (events[0].isBlocked) {\r\n return 'disabled-date';\r\n } else if (events[0].isOutletBlocked) {\r\n return 'outlet-disabled-date';\r\n } \r\n }\r\n return '';\r\n }\r\n\r\n openViewMenuDialog(menuCycle: MenuCycle, day): void {\r\n const dialogRef = this.dialog.open(OutletViewMenuCycleMenuComponent, {\r\n data: { header: 'Menu List', menuCycle: menuCycle, day, outletId: this.outletId, catererId: this.catererId },\r\n width: '600px'\r\n });\r\n }\r\n\r\n\r\n //newMenuCycle() {\r\n // this.editingMenuCycleName = null;\r\n // this.sourceMenuCycle = null;\r\n // //this.editedMenuCycle = this.menuCycleEditor.newMenuCycle();\r\n // this.editorModal.show();\r\n //}\r\n\r\n\r\n //editMenuCycle(row: MenuCycle) {\r\n // this.editingMenuCycleName = { shortDescription: row.label };\r\n // this.sourceMenuCycle = row;\r\n // //this.editedMenuCycle = this.menuCycleEditor.editMenuCycle(row);\r\n // this.editorModal.show();\r\n //}\r\n\r\n //deleteMenuCycle(row: MenuCycle) {\r\n // this.alertService.showDialog('Are you sure you want to delete \\\"' + row.label + '\\\"?', DialogType.confirm, () => this.deleteMenuCycleHelper(row));\r\n //}\r\n\r\n\r\n //deleteMenuCycleHelper(row: MenuCycle) {\r\n\r\n // this.alertService.startLoadingMessage(\"Deleting...\");\r\n // this.loadingIndicator = true;\r\n\r\n // this.menuService.deleteMenuCycle(row)\r\n // .subscribe(results => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // this.loadData();\r\n // },\r\n // error => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the record.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // MessageSeverity.error);\r\n // });\r\n //}\r\n\r\n\r\n get canManageMenuCycles() {\r\n return true;// || this.accountService.userHasPermission(Permission.manageMenuCyclesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvb3V0bGV0LWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vb3V0bGV0L291dGxldC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Outlet, OutletProfile } from 'src/app/models/meal-order/outlet.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'outlet-editor',\r\n templateUrl: './outlet-editor.component.html',\r\n styleUrls: ['./outlet-editor.component.css']\r\n})\r\nexport class OutletEditorComponent {\r\n\r\n private isNewOutlet = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingOutletCode: string;\r\n private outletEdit: Outlet = new Outlet();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private outletProfiles: OutletProfile[] = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outlet) != typeof (undefined)) {\r\n if (data.outlet.id) {\r\n this.editOutlet(data.outlet);\r\n } else {\r\n this.newOutlet();\r\n }\r\n }\r\n\r\n this.getOutletProfiles();\r\n }\r\n\r\n getOutletProfiles() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getOutletProfilesByFilter(filter)\r\n .subscribe(results => {\r\n this.outletProfiles = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.isNewOutlet) {\r\n this.deliveryService.newOutlet(this.outletEdit).subscribe(outlet => this.saveSuccessHelper(outlet), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateOutlet(this.outletEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(outlet?: Outlet) {\r\n if (outlet)\r\n Object.assign(this.outletEdit, outlet);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewOutlet)\r\n this.alertService.showMessage(\"Success\", `Caterer \\\"${this.outletEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to caterer \\\"${this.outletEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.outletEdit = new Outlet();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewOutlet && this.accountService.currentUser.facilities.some(r => r == this.editingOutletCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.outletEdit = new Outlet();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newOutlet() {\r\n this.isNewOutlet = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingOutletCode = null;\r\n this.selectedValues = {};\r\n this.outletEdit = new Outlet();\r\n\r\n return this.outletEdit;\r\n }\r\n\r\n editOutlet(outlet: Outlet) {\r\n if (outlet) {\r\n this.isNewOutlet = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingOutletCode = outlet.name;\r\n this.selectedValues = {};\r\n this.outletEdit = new Outlet();\r\n Object.assign(this.outletEdit, outlet);\r\n\r\n return this.outletEdit;\r\n }\r\n else {\r\n return this.newOutlet();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageOutlets() {\r\n return true; //this.accountService.userHasPermission(Permission.manageOutletsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvb3V0bGV0cy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL291dGxldC9vdXRsZXRzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Outlets

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

{{row.name}} Details

\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Caterer\\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n Details\\r\\n Stores\\r\\n Order Report\\r\\n Delivery Report\\r\\n Meal Summary\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { OutletEditorComponent } from './outlet-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { MenuService } from '../../../services/meal-order/menu.service';\r\nimport { CatererSelectorComponent } from './caterer-selector/caterer-selector.component';\r\nimport { MealSessionEditorComponent } from './meal-session/meal-session-editor.component';\r\nimport { StoreSelectorComponent } from './store-selector/store-selector.component';\r\nimport { OrderReportComponent } from './order-report/order-report.component';\r\nimport { OrderDeliveryReportComponent } from './order-delivery-report/order-delivery-report.component';\r\nimport { PrintLabelComponent } from './print-label/print-label.component';\r\nimport { OrderMealSummaryComponent } from './order-meal-summary/order-meal-summary.component';\r\n\r\n@Component({\r\n selector: 'outlets-management',\r\n templateUrl: './outlets-management.component.html',\r\n styleUrls: ['./outlets-management.component.css']\r\n})\r\nexport class OutletsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Outlet[] = [];\r\n rowsCache: Outlet[] = [];\r\n allPermissions: Permission[] = [];\r\n editedOutlet: Outlet;\r\n sourceOutlet: Outlet;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: OutletEditorComponent;\r\n header: string;\r\n\r\n @ViewChild('infotable') table: any;\r\n\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog, private cdr: ChangeDetectorRef, private menuService: MenuService) {\r\n }\r\n\r\n openDialog(outlet: Outlet): void {\r\n const dialogRef = this.dialog.open(OutletEditorComponent, {\r\n data: { header: this.header, outlet: outlet },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Name' },\r\n { prop: 'address', name: 'Address' },\r\n //{ prop: 'outletProfileName', name: 'Outlet Profile Name' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.deliveryService.getOutletsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let outlets = results.pagedData;\r\n\r\n outlets.forEach((outlet, index, outlets) => {\r\n (outlet).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...outlets];\r\n this.rows = outlets;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newOutlet() {\r\n this.header = 'New Outlet';\r\n this.editedOutlet = new Outlet();\r\n this.openDialog(this.editedOutlet);\r\n }\r\n\r\n\r\n editOutlet(row: Outlet) {\r\n this.editedOutlet = row;\r\n this.header = 'Edit Outlet';\r\n this.openDialog(this.editedOutlet);\r\n }\r\n\r\n deleteOutlet(row: Outlet) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" outlet?', DialogType.confirm, () => this.deleteOutletHelper(row));\r\n }\r\n\r\n\r\n deleteOutletHelper(row: Outlet) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteOutlet(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the outlet.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n requestCaterer(row: Outlet) {\r\n //filter caterer outlets by profile id\r\n if (!row.catererOutlets) row.catererOutlets = [];\r\n //let outlets = row.catererOutlets.filter(e => e.outletProfileId == row.outletProfileId);\r\n //row.catererOutlets = outlets;\r\n //let catererId = outlets && outlets.length > 0? outlets[0].catererInfoId : '';\r\n\r\n const dialogRef = this.dialog.open(CatererSelectorComponent, {\r\n data: { header: \"Caterers\", outlet: row},\r\n width: '700px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n openMealSession(row) {\r\n const dialogRef = this.dialog.open(MealSessionEditorComponent, {\r\n data: { header: \"Meal Sessions\", outlet: row },\r\n width: '1200px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n openOutletCalendar(outlet) {\r\n window.open('/outletcalendars/' + outlet.id, '_blank');\r\n }\r\n\r\n openOutletStore(row) {\r\n const dialogRef = this.dialog.open(StoreSelectorComponent, {\r\n data: { header: \"Add Stores\", outlet: row },\r\n width: '1000px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n\r\n openOrderReport(row) {\r\n const dialogRef = this.dialog.open(OrderReportComponent, {\r\n data: { header: \"Order Report\", outlet: row },\r\n width: '800px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n openDeliveryOrderReport(row) {\r\n const dialogRef = this.dialog.open(OrderDeliveryReportComponent, {\r\n data: { header: \"Production Delivery Report\", outlet: row },\r\n width: '800px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n openMealSummaryReport(row) {\r\n const dialogRef = this.dialog.open(OrderMealSummaryComponent, {\r\n data: { header: \"Meal Summary Report\", outlet: row },\r\n width: '800px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n\r\n openPrintLabel(row) {\r\n const dialogRef = this.dialog.open(PrintLabelComponent, {\r\n data: { header: \"Print Order Label\", outlet: row },\r\n width: '1000px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n openClassBatches() {\r\n window.open('/classbatches');\r\n }\r\n\r\n openClassLevels() {\r\n window.open('/classlevels');\r\n }\r\n\r\n openClasses() {\r\n window.open('/classes');\r\n }\r\n\r\n openStudents() {\r\n window.open('/students');\r\n }\r\n\r\n openStaffTypes() {\r\n window.open('/stafftypes');\r\n }\r\n\r\n openStaffs() {\r\n window.open('/staffs');\r\n }\r\n\r\n openInterestGroups() {\r\n window.open('/interestgroups');\r\n }\r\n\r\n toggleExpandRow(row) {\r\n console.log('Toggled Expand Row!', row);\r\n this.table.rowDetail.toggleExpandRow(row);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onDetailToggle(event) {\r\n console.log('Detail Toggled', event);\r\n }\r\n\r\n get canManageOutlets() {\r\n return true; //this.accountService.userHasPermission(Permission.manageOutletsPermission)\r\n }\r\n\r\n\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvcHJpbnQtbGFiZWwvcHJpbnQtbGFiZWwuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGlCQUFpQjtBQUNuQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vb3V0bGV0L3ByaW50LWxhYmVsL3ByaW50LWxhYmVsLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBsb2FkIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBjb2xvcjogIzI4YTc0NTtcclxuICBtYXJnaW4tbGVmdDogMTVweDtcclxuICBsaW5lLWhlaWdodDogMzZweDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Token OrdersToken BookedDish BookedProposed AllocationOverwrite AllocationTotal
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { TokenOrder, TokenLabel, TokenDishLabel } from 'src/app/models/meal-order/token-order.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport * as moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\nimport { MenuService } from '../../../../services/meal-order/menu.service';\r\nimport { Dish } from '../../../../models/meal-order/dish.model';\r\nimport { MealType } from '../../../../models/meal-order/meal-type.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\n\r\n\r\n@Component({\r\n selector: 'print-label',\r\n templateUrl: './print-label.component.html',\r\n styleUrls: ['./print-label.component.css']\r\n})\r\nexport class PrintLabelComponent implements OnInit {\r\n stores: StoreInfo[];\r\n storesCache: StoreInfo[];\r\n selectedStores: StoreInfo[] = [];\r\n editOutlet: Outlet;\r\n selectedCaterers: CatererOutlet[];\r\n orderDate = moment();\r\n orders: TokenOrder[];\r\n token_count: TokenLabel[] = [];\r\n dishes: Dish[];\r\n tokens: MealType[];\r\n\r\n //dish_count: TokenDishLabel[] = [];\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef, private menuService: MenuService, private mealService: MealService, private dishService: DishService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outlet) != typeof (undefined)) {\r\n this.editOutlet = data.outlet;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.getMenuDishes();\r\n this.getMealTypes();\r\n this.getTokenOrder();\r\n }\r\n\r\n loadData() {\r\n let filterCaterer = \"\";\r\n this.selectedCaterers.forEach((caterer, i) => {\r\n if (caterer.status == \"APPROVED\") {\r\n if (filterCaterer != \"\") {\r\n filterCaterer += '|'\r\n }\r\n filterCaterer += caterer.catererInfoId\r\n }\r\n });\r\n console.log(\"caterer filter = \", filterCaterer)\r\n\r\n //this.getStore(filterCaterer);\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n console.log(\"event value: \", moment(event.value))\r\n this.orderDate = moment(event.value);\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.stores = this.storesCache.filter(r => Utilities.searchArray(value, false, r.name));\r\n }\r\n\r\n getOrderData() {\r\n console.log(\"clicked\")\r\n this.getTokenOrder();\r\n }\r\n\r\n getMealTypes() {\r\n let filter = new Filter();\r\n filter.sorts = 'name';\r\n //let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters ='(IsActive)==true';\r\n this.mealService.getMealTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.tokens = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal type.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getMenuDishes() {\r\n let filter = new Filter();\r\n //let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters ='(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishes = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getTokenName(id) {\r\n let token = this.tokens.find(x => x.id === id);\r\n if (token) {\r\n return token.name\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n getDishName(id) {\r\n let dish = this.dishes.find(x => x.id === id);\r\n if (dish) {\r\n return dish.label\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n getDishCode(id) {\r\n let dish = this.dishes.find(x => x.id === id);\r\n if (dish) {\r\n return dish.code\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n \r\n\r\n onChangeQty(event, detail?: TokenDishLabel, token?: TokenLabel) {\r\n if (detail.a_qty > 0) {\r\n detail.t_qty = detail.o_qty + detail.a_qty;\r\n } else {\r\n detail.t_qty = detail.o_qty + detail.p_qty;\r\n }\r\n\r\n token.qty_tdishes = 0;\r\n\r\n token.dishes.forEach(d => {\r\n token.qty_tdishes += d.t_qty;\r\n\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n\r\n getTokenOrder() {\r\n var insideFilter = new Filter();\r\n\r\n this.token_count = [];\r\n\r\n var strDate = this.orderDate.format().split('T');\r\n insideFilter.filters = '(IsActive)==true,(outletId)==' + this.editOutlet.id + ',(DeliveryDate)==' + strDate[0];\r\n console.log(\"filters: \", insideFilter.filters)\r\n\r\n this.menuService.getTokenOrdersByFilter(insideFilter).subscribe(results => {\r\n this.orders = results.pagedData;\r\n\r\n console.log(\"order : \",this.orders)\r\n\r\n //Order Loop\r\n this.orders.forEach(o => {\r\n\r\n //Token Loop\r\n o.tokens.forEach(t => {\r\n\r\n var tokenIndex = this.token_count.findIndex(x => x.token_id === t.tokenId)\r\n if (tokenIndex < 0) {\r\n var token = new TokenLabel;\r\n token.token_id = t.tokenId;\r\n token.token_name = this.getTokenName(t.tokenId);\r\n console.log(\"combined dish: \", t.selectedCombinedDishes.length)\r\n if (t.selectedCombinedDishes.length > 0) {\r\n console.log(\"menuqty: \", t.selectedCombinedDishes[0].menuQty)\r\n token.qty = t.qty * t.selectedCombinedDishes[0].menuQty;\r\n } else {\r\n token.qty = t.qty;\r\n }\r\n token.qty_menus = t.qty;\r\n token.qty_dishes = 0;\r\n token.qty_pdishes = 0;\r\n token.qty_tdishes = 0;\r\n token.deliveryDate = strDate[0];\r\n token.dishes = [];\r\n this.token_count.push(token);\r\n tokenIndex = this.token_count.findIndex(x => x.token_id === t.tokenId)\r\n } else {\r\n if (t.selectedCombinedDishes.length > 0) {\r\n this.token_count[tokenIndex].qty += (t.qty * t.selectedCombinedDishes[0].menuQty);\r\n } else {\r\n this.token_count[tokenIndex].qty += t.qty;\r\n }\r\n this.token_count[tokenIndex].qty_menus += t.qty;\r\n }\r\n\r\n // Selected dishes loop\r\n t.selectedDishes.forEach(d => {\r\n var dishIndex = this.token_count[tokenIndex].dishes.findIndex(y => y.dish_id === d.dishId)\r\n if (dishIndex < 0) {\r\n var dish = new TokenDishLabel;\r\n dish.token_id = t.tokenId;\r\n dish.token_name = this.getTokenName(t.tokenId);\r\n dish.dish_id = d.dishId;\r\n dish.dish_name = this.getDishName(d.dishId);\r\n dish.dish_code = this.getDishCode(d.dishId);\r\n dish.o_qty = d.qty;\r\n this.token_count[tokenIndex].dishes.push(dish);\r\n } else {\r\n this.token_count[tokenIndex].dishes[dishIndex].o_qty += d.qty;\r\n }\r\n this.token_count[tokenIndex].qty_dishes += d.qty;\r\n\r\n })\r\n\r\n })\r\n\r\n })\r\n\r\n //count proposed allocation\r\n this.token_count.forEach(t => {\r\n t.qty_pdishes = 0;\r\n t.qty_tdishes = 0;\r\n t.dishes.forEach(d => {\r\n console.log(\"hasil awal: \", d.o_qty / t.qty_dishes * (t.qty - t.qty_dishes))\r\n var p_allocation = Math.ceil(d.o_qty / t.qty_dishes * (t.qty - t.qty_dishes))\r\n console.log(\"ceiling: \", p_allocation)\r\n d.p_qty = p_allocation;\r\n d.t_qty = d.o_qty + d.p_qty;\r\n t.qty_pdishes += p_allocation;\r\n t.qty_tdishes += d.t_qty;\r\n\r\n })\r\n\r\n })\r\n\r\n\r\n console.log(\"token count: \", this.token_count);\r\n\r\n }, error => { });\r\n }\r\n\r\n save() {\r\n console.log(\"download Label\");\r\n this.downloadLabel();\r\n }\r\n\r\n downloadLabel() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_OrderLabel.pdf';\r\n\r\n console.log(\"token sent: \", this.token_count)\r\n\r\n this.menuService.downloadOrderLabel(this.token_count).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvc3RvcmUtc2VsZWN0b3ItZGV0YWlscy9zdG9yZS1zZWxlY3Rvci1kZXRhaWxzLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL291dGxldC9zdG9yZS1zZWxlY3Rvci1kZXRhaWxzL3N0b3JlLXNlbGVjdG9yLWRldGFpbHMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGxvYWQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMjhhNzQ1O1xyXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject, TemplateRef, ViewChild } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Dish, DishDetail } from 'src/app/models/meal-order/dish.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\n\r\n@Component({\r\n selector: 'store-selector-details',\r\n templateUrl: './store-selector-details.component.html',\r\n styleUrls: ['./store-selector-details.component.css']\r\n})\r\nexport class StoreSelectorDetailsComponent implements OnInit {\r\n public storeIds: number[];\r\n stores: StoreInfo[];\r\n storesCache: StoreInfo[];\r\n selectedStores: StoreInfo[];\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n columns: any[] = [];\r\n rows: StoreInfo[] = [];\r\n rowsCache: StoreInfo[] = [];\r\n outletId: string;\r\n editOutlet: Outlet;\r\n selectedCaterers: CatererOutlet[];\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n constructor(private http: HttpClient, private dishService: DishService, private deliveryService: DeliveryService,\r\n private alertService: AlertService, public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.editOutlet = data.outlet;\r\n if (typeof (data.stores) != typeof (undefined)) {\r\n this.selectedStores = data.stores;\r\n }\r\n this.selectedCaterers = data.outlet.catererOutlets;\r\n console.log(\"selected caterers: \", this.selectedCaterers)\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 0;\r\n\r\n\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n\r\n this.columns = [\r\n { prop: 'code', name: 'Store Code' },\r\n { prop: 'name', name: 'Store Name' },\r\n { prop: 'storeType', name: 'Store Type' },\r\n { prop: 'catererInfoName', name: 'Caterer' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n let filterCaterer = \"\";\r\n this.selectedCaterers.forEach((caterer, i) => {\r\n if (caterer.status == \"APPROVED\") {\r\n if (filterCaterer != \"\") {\r\n filterCaterer += '|'\r\n }\r\n filterCaterer += caterer.catererInfoId\r\n }\r\n });\r\n console.log(\"caterer filter = \", filterCaterer)\r\n\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = filterCaterer ? '(CatererInfoId)==' + filterCaterer + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Code|Name)@=' + this.keyword;\r\n\r\n this.deliveryService.getStoreInfosByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n console.log(\"result page: \", this.pagedResult)\r\n\r\n let stores = results.pagedData;\r\n\r\n stores.forEach((store,index) => {\r\n if (store.outletId == null) {\r\n store.status = \"Available\"\r\n } else if (store.outletId == this.editOutlet.id) {\r\n store.status = \"Added\"\r\n } else {\r\n store.status = \"Taken\"\r\n stores.splice(index, 1);\r\n }\r\n })\r\n\r\n stores.forEach((store, index, stores) => {\r\n (store).index = index + 1;\r\n });\r\n\r\n if (typeof (this.selectedStores) != typeof (undefined)) {\r\n stores.map(cg => {\r\n const index = this.selectedStores.findIndex(item => item.id == cg.id)\r\n if (index >= 0) {\r\n cg.checked = true;\r\n }\r\n });\r\n }\r\n\r\n this.rowsCache = [...stores];\r\n this.rows = stores;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n public save = () => {\r\n let stores = this.rows.filter((cg) => cg.checked); \r\n this.dialogRef.close({ isCancel: false, selectedStores: stores });\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvc3RvcmUtc2VsZWN0b3Ivc3RvcmUtc2VsZWN0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGlCQUFpQjtBQUNuQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vb3V0bGV0L3N0b3JlLXNlbGVjdG9yL3N0b3JlLXNlbGVjdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBsb2FkIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBjb2xvcjogIzI4YTc0NTtcclxuICBtYXJnaW4tbGVmdDogMTVweDtcclxuICBsaW5lLWhlaWdodDogMzZweDtcclxufVxyXG4iXX0= */\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Store Name
{{store.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\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { StoreSelectorDetailsComponent } from '../store-selector-details/store-selector-details.component'\r\n\r\n@Component({\r\n selector: 'store-selector',\r\n templateUrl: './store-selector.component.html',\r\n styleUrls: ['./store-selector.component.css']\r\n})\r\nexport class StoreSelectorComponent implements OnInit {\r\n stores: StoreInfo[];\r\n storesCache: StoreInfo[];\r\n selectedStores: StoreInfo[] = [];\r\n editOutlet: Outlet;\r\n selectedCaterers: CatererOutlet[];\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outlet) != typeof (undefined)) {\r\n this.editOutlet = data.outlet;\r\n if (data.catererOutlets) {\r\n this.editOutlet.catererOutlets = [];\r\n }\r\n this.selectedCaterers = data.outlet.catererOutlets;\r\n console.log(\"selected caterers: \", this.selectedCaterers)\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n let filterCaterer = \"\";\r\n this.selectedCaterers.forEach((caterer, i) => {\r\n if (caterer.status == \"APPROVED\") {\r\n if (filterCaterer != \"\") {\r\n filterCaterer += '|'\r\n }\r\n filterCaterer += caterer.catererInfoId\r\n }\r\n });\r\n console.log(\"caterer filter = \", filterCaterer)\r\n\r\n this.getStore(filterCaterer);\r\n }\r\n\r\n getStore(filterCaterer) {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(CatererInfoId)==' + filterCaterer;\r\n\r\n console.log(\"filter:\", filter)\r\n\r\n this.deliveryService.getStoreInfosByFilter(filter).subscribe(results => {\r\n this.stores = results.pagedData;\r\n\r\n this.stores.forEach((store) => {\r\n if (store.outletId == null) {\r\n store.status = \"Available\"\r\n } else if (store.outletId == this.editOutlet.id) {\r\n store.status = \"Added\"\r\n this.selectedStores.push(store);\r\n } else {\r\n store.status = \"Taken\"\r\n }\r\n })\r\n\r\n //this.caterers.map(cg => {\r\n // if (this.editOutlet.catererOutlets && typeof (this.editOutlet.catererOutlets) != typeof (undefined)) {\r\n // let catererOutlet = this.editOutlet.catererOutlets.find(item => item.catererInfoId == cg.id);\r\n // if (catererOutlet) {\r\n // cg.status = catererOutlet.status;\r\n // }\r\n // }\r\n //});\r\n\r\n console.log(\"stores: \", this.stores)\r\n\r\n\r\n this.storesCache = this.stores;\r\n\r\n }, error => { });\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n addStore(row: StoreInfo) {\r\n row.outletId = this.editOutlet.id;\r\n this.deliveryService.updateStoreInfo(row).subscribe(results => {\r\n row.status = 'Added';\r\n }, error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Request Error\", `An error occured while adding Store.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n }\r\n\r\n save() {\r\n this.editOutlet.stores = this.selectedStores;\r\n console.log(\"outlet: \", this.editOutlet);\r\n this.deliveryService.updateOutletStore(this.editOutlet).subscribe(results => {\r\n this.alertService.showMessage(\"Success\", `Stores were updated successfully`, MessageSeverity.success);\r\n this.dialogRef.close();\r\n }, error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Request Error\", `An error occured while adding Store.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n addStoreSel(outlet,stores) {\r\n const dialogRef = this.dialog.open(StoreSelectorDetailsComponent, {\r\n data: { header: \"Stores\", outlet: outlet, stores: stores },\r\n width: '600px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (!result.isCancel) {\r\n console.log(\"early selstore:\", this.selectedStores);\r\n console.log(\"change selstore:\", result.selectedStores);\r\n this.selectedStores = result.selectedStores;\r\n }\r\n });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.stores = this.storesCache.filter(r => Utilities.searchArray(value, false, r.name));\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.menu-select {\\r\\n padding-left: 0;\\r\\n padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvdmlldy1kaXNoL3ZpZXctZGlzaC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RTs7QUFFQTtFQUNFLGVBQWU7RUFDZixvQkFBb0I7QUFDdEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL291dGxldC92aWV3LWRpc2gvdmlldy1kaXNoLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJhZGlvLXJpcHBsZSB7XHJcbiAgaGVpZ2h0OiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHdpZHRoOiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxufVxyXG5cclxuLm1lbnUtc2VsZWN0IHtcclxuICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}} for {{dishCycle.label}} {{day > 0 ? '(Day ' + day + ')' : ''}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{(set.cycleTypeLabel ? set.cycleTypeLabel : set.label)}}
\\r\\n \\r\\n \\r\\n \\r\\n {{menu.dishLabel}}\\r\\n \\r\\n {{menu.dishCode}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Cuisine } from 'src/app/models/meal-order/cuisine.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { MealTypeMenuDish, Menu, MenuDish, OutletMenuDish } from 'src/app/models/meal-order/menu.model';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { MealType } from 'src/app/models/meal-order/meal-type.model';\r\nimport { Observable } from 'rxjs';\r\nimport { DishCycle, DishCyclePeriod, DishCycleScheduleDetailMenu, DishCycleScheduleSet, OutletDishCyclePeriodMenu, OutletDishViewMenu } from 'src/app/models/meal-order/dish-cycle';\r\n\r\n\r\n@Component({\r\n selector: 'outlet-view-dish',\r\n templateUrl: './view-dish.component.html',\r\n styleUrls: ['./view-dish.component.css']\r\n})\r\nexport class OutletViewDishCycleMenuComponent {\r\n public dishCycle: DishCycle;\r\n public day: number;\r\n public periods: DishCyclePeriod[] = [];\r\n private isSaving: boolean;\r\n public formResetToggle = true;\r\n private menus: Menu[] = [];\r\n private mealTypes: MealType[] = [];\r\n private outletId: any;\r\n private catererId: any;\r\n public sets: DishCycleScheduleSet[] = [];\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private menuService: MenuService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService, private dishService: DishService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.dishCycle) != typeof (undefined)) {\r\n this.outletId = data.outletId;\r\n this.dishCycle = data.dishCycle;\r\n this.day = data.day;\r\n this.catererId = data.catererId;\r\n this.getDishCycleMenu();\r\n //this.getMenus();\r\n }\r\n }\r\n\r\n getMenus() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.menuService.getMenusByFilter(filter)\r\n .subscribe(results => {\r\n this.menus = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving menus.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getDishCycleMenu() {\r\n this.dishService.getOutletDishCyclePeriods(this.dishCycle.id)\r\n .subscribe(periods => {\r\n if (!periods) periods = [];\r\n this.dishCycle.dishCyclePeriods = periods;\r\n this.dishService.getDishCycleScheduleSetDetails(this.dishCycle.id, this.day, this.outletId)\r\n .subscribe(results => {\r\n const res = results ? [...results] : [];\r\n this.dishCycle.dishCyclePeriods.forEach((period: DishCyclePeriod, index, arr) => {\r\n const sets = [];\r\n res.forEach((set: DishCycleScheduleSet, i, a) => {\r\n let s = new DishCycleScheduleSet();\r\n Object.assign(s, set);\r\n s.menus = [];\r\n set.menus.forEach((menu: DishCycleScheduleDetailMenu, x, ar) => {\r\n let m = new DishCycleScheduleDetailMenu();\r\n Object.assign(m, menu);\r\n m.checked = !(period.excludedMenus.findIndex(e => e.dishCyclePeriodId == period.id && e.outletId == this.outletId && e.dishCycleScheduleSetId == set.id && e.dishId == menu.dishId) > -1);\r\n s.menus.push(m);\r\n });\r\n sets.push(s);\r\n });\r\n period.sets = [...sets];\r\n });\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n \r\n //async getDishCycleMenu() {\r\n // this.getMealTypes().subscribe(results => {\r\n // let mealTypes = results.pagedData;\r\n // this.menuService.getOutletDishCyclePeriods(this.outletId, this.catererId, this.dishCycle.id, this.day)\r\n // .subscribe(results => {\r\n // this.periods = results;\r\n // this.periods.forEach((period: DishCyclePeriod, index, arr) => {\r\n // if (!period.menus) period.menus = [];\r\n // period.menus.forEach((menu: DishCycleScheduleMenu, i, a) => {\r\n // if (!period.outletMenus) period.outletMenus = [];\r\n // menu.checked = !(period.outletMenus.findIndex(e => e.outletId == this.outletId && e.menuId == menu.menuId) > -1);\r\n\r\n // //dishes\r\n // menu.menu.mealTypeMenuDishes = [];\r\n // mealTypes.forEach((mealType: MealType, m, x) => {\r\n // let mtDish = new MealTypeMenuDish();\r\n // mtDish.mealTypeId = mealType.id;\r\n // mtDish.mealTypeName = mealType.name;\r\n // mtDish.menuId = menu.menu.id;\r\n // mtDish.menuDishes = menu.menu.menuDishes.filter(e => e.menuId == menu.menu.id && e.mealTypeId == mealType.id).map((e) => {\r\n // let md = new MenuDish();\r\n // Object.assign(md, e);\r\n // md.checked = (menu.checked && (!period.outletMenuDishes || (period.outletMenuDishes.findIndex(e => e.outletId == this.outletId && e.menuId == menu.menuId &&\r\n // e.mealTypeId == mealType.id && e.dishId == md.dishId) < 0)));\r\n // return md;\r\n // }); \r\n\r\n // menu.menu.mealTypeMenuDishes.push(mtDish);\r\n // });\r\n\r\n // console.log(menu.menu.mealTypeMenuDishes);\r\n // });\r\n // });\r\n // },\r\n // error => {\r\n // this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n // })\r\n // },\r\n // error => {\r\n // this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n // });\r\n \r\n //}\r\n\r\n selectDeselectAllDishes(menu) {\r\n if (menu.menu) {\r\n menu.menu.mealTypeMenuDishes.forEach((mealTypeMenuDish: MealTypeMenuDish, index, arr) => {\r\n mealTypeMenuDish.menuDishes.forEach((menuDish: MenuDish, i, a) => {\r\n menuDish.checked = menu.checked;\r\n });\r\n });\r\n }\r\n }\r\n\r\n selectMenu(menuDish, menu) {\r\n //if (menuDish.checked) menu.checked = true;\r\n }\r\n\r\n getMealTypes() {\r\n let filter = new Filter();\r\n filter.sorts = 'name';\r\n //let f = this.dishCycle.catererId ? '(CatererId)==' + this.dishCycle.catererId + ',' : '';\r\n filter.filters = '(MealTypeByOutletProfileId)==' + this.dishCycle.outletProfileId + ',(IsActive)==true';\r\n //filter.filters = f + '(IsActive)==true';\r\n return this.mealService.getMealTypesByFilter(filter);\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n //this.alertService.startLoadingMessage(\"Saving changes...\");\r\n let excludedMenus: OutletDishCyclePeriodMenu[] = []\r\n this.dishCycle.dishCyclePeriods.forEach((period: DishCyclePeriod, index, arr) => {\r\n period.sets.forEach((set: DishCycleScheduleSet, i, a) => {\r\n set.menus.forEach((menu: DishCycleScheduleDetailMenu, x, ar) => {\r\n if (!menu.checked) {\r\n let m = new OutletDishCyclePeriodMenu();\r\n m.dishCyclePeriodId = period.id;\r\n m.dishCycleScheduleSetId = set.id;\r\n m.dishId = menu.dishId;\r\n m.outletId = this.outletId;\r\n\r\n excludedMenus.push(m);\r\n }\r\n });\r\n });\r\n });\r\n let model = new OutletDishViewMenu();\r\n model.outletId = this.outletId;\r\n model.excludedMenus = excludedMenus;\r\n this.dishService.createOutletDishCyclePeriodMenus(model).subscribe(response => this.saveSuccessHelper(response), error => this.saveFailedHelper(error));\r\n }\r\n\r\n\r\n private saveSuccessHelper(response: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (response.isSuccess)\r\n this.alertService.showMessage(\"Success\", `Successfully saved.`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Error\", response.message, MessageSeverity.error);\r\n\r\n\r\n this.resetForm();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.menu-select {\\r\\n padding-left: 0;\\r\\n padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9vdXRsZXQvdmlldy1tZW51L3ZpZXctbWVudS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RTs7QUFFQTtFQUNFLGVBQWU7RUFDZixvQkFBb0I7QUFDdEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL291dGxldC92aWV3LW1lbnUvdmlldy1tZW51LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJhZGlvLXJpcHBsZSB7XHJcbiAgaGVpZ2h0OiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHdpZHRoOiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxufVxyXG5cclxuLm1lbnUtc2VsZWN0IHtcclxuICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}} for {{menuCycle.label}} {{day > 0 ? '(Day ' + day + ')' : ''}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{period.mealPeriodName}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{menu.label}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{mealTypeMenuDish.mealTypeName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Dish Name
\\r\\n \\r\\n \\r\\n {{menuDish.dishName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Cuisine } from 'src/app/models/meal-order/cuisine.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { MenuCycle, MenuCycleScheduleMenu, MenuCycleSchedulePeriod, OutletMenuCycleScheduleMenu } from 'src/app/models/meal-order/menu-cycle.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { MealTypeMenuDish, Menu, MenuDish, OutletMenuDish } from 'src/app/models/meal-order/menu.model';\r\nimport { forEach } from '@angular/router/src/utils/collection';\r\nimport { MealType } from 'src/app/models/meal-order/meal-type.model';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'outlet-view-menu',\r\n templateUrl: './view-menu.component.html',\r\n styleUrls: ['./view-menu.component.css']\r\n})\r\nexport class OutletViewMenuCycleMenuComponent {\r\n public menuCycle: MenuCycle;\r\n public day: number;\r\n public periods: MenuCycleSchedulePeriod[] = [];\r\n private isSaving: boolean;\r\n public formResetToggle = true;\r\n private menus: Menu[] = [];\r\n private mealTypes: MealType[] = [];\r\n private outletId: any;\r\n private catererId: any;\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private menuService: MenuService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService, \r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.menuCycle) != typeof (undefined)) {\r\n this.outletId = data.outletId;\r\n this.menuCycle = data.menuCycle;\r\n this.day = data.day;\r\n this.catererId = data.catererId;\r\n this.getMealTypes();\r\n this.getMenuCycleMenu();\r\n this.getMenus();\r\n }\r\n }\r\n\r\n getMenus() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.menuService.getMenusByFilter(filter)\r\n .subscribe(results => {\r\n this.menus = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving menus.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n \r\n async getMenuCycleMenu() {\r\n this.getMealTypes().subscribe(results => {\r\n let mealTypes = results.pagedData;\r\n this.menuService.getOutletMenuCycleSchedulePeriods(this.outletId, this.catererId, this.menuCycle.id, this.day)\r\n .subscribe(results => {\r\n this.periods = results;\r\n this.periods.forEach((period: MenuCycleSchedulePeriod, index, arr) => {\r\n if (!period.menus) period.menus = [];\r\n period.menus.forEach((menu: MenuCycleScheduleMenu, i, a) => {\r\n if (!period.outletMenus) period.outletMenus = [];\r\n menu.checked = !(period.outletMenus.findIndex(e => e.outletId == this.outletId && e.menuId == menu.menuId) > -1);\r\n\r\n //dishes\r\n menu.menu.mealTypeMenuDishes = [];\r\n mealTypes.forEach((mealType: MealType, m, x) => {\r\n let mtDish = new MealTypeMenuDish();\r\n mtDish.mealTypeId = mealType.id;\r\n mtDish.mealTypeName = mealType.name;\r\n mtDish.menuId = menu.menu.id;\r\n mtDish.menuDishes = menu.menu.menuDishes.filter(e => e.menuId == menu.menu.id && e.mealTypeId == mealType.id).map((e) => {\r\n let md = new MenuDish();\r\n Object.assign(md, e);\r\n md.checked = (menu.checked && (!period.outletMenuDishes || (period.outletMenuDishes.findIndex(e => e.outletId == this.outletId && e.menuId == menu.menuId &&\r\n e.mealTypeId == mealType.id && e.dishId == md.dishId) < 0)));\r\n return md;\r\n }); \r\n\r\n menu.menu.mealTypeMenuDishes.push(mtDish);\r\n });\r\n\r\n console.log(menu.menu.mealTypeMenuDishes);\r\n });\r\n });\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n \r\n }\r\n\r\n selectDeselectAllDishes(menu) {\r\n if (menu.menu) {\r\n menu.menu.mealTypeMenuDishes.forEach((mealTypeMenuDish: MealTypeMenuDish, index, arr) => {\r\n mealTypeMenuDish.menuDishes.forEach((menuDish: MenuDish, i, a) => {\r\n menuDish.checked = menu.checked;\r\n });\r\n });\r\n }\r\n }\r\n\r\n selectMenu(menuDish, menu) {\r\n if (menuDish.checked) menu.checked = true;\r\n }\r\n\r\n getMealTypes() {\r\n let filter = new Filter();\r\n filter.sorts = 'name';\r\n //let f = this.menuCycle.catererId ? '(CatererId)==' + this.menuCycle.catererId + ',' : '';\r\n filter.filters = '(MealTypeByOutletProfileId)==' + this.menuCycle.outletProfileId + ',(IsActive)==true';\r\n //filter.filters = f + '(IsActive)==true';\r\n return this.mealService.getMealTypesByFilter(filter);\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n //this.alertService.startLoadingMessage(\"Saving changes...\");\r\n let outletPeriods: MenuCycleSchedulePeriod[] = [];\r\n this.periods.forEach((period: MenuCycleSchedulePeriod, index, arr) => {\r\n let outletPeriod = new MenuCycleSchedulePeriod();\r\n Object.assign(outletPeriod, period);\r\n\r\n if (!period.menus) period.menus = [];\r\n let outletMenuDishes = [];\r\n let outletMenus = [];\r\n period.menus.map((e) => {\r\n let outletMenu = new OutletMenuCycleScheduleMenu();\r\n Object.assign(outletMenu, e);\r\n outletMenu.outletId = this.outletId;\r\n if (!e.checked) {\r\n outletMenu.menu = null;\r\n outletMenus.push(outletMenu);\r\n }\r\n \r\n //outletMenu.menu.outletMenuDishes = [];\r\n e.menu.mealTypeMenuDishes.forEach((mealTypeMenuDish: MealTypeMenuDish, m, x) => {\r\n mealTypeMenuDish.menuDishes.forEach((menuDish: MenuDish, m, x) => {\r\n if (!menuDish.checked) {\r\n let outletMenuDish = new OutletMenuDish();\r\n outletMenuDish.outletId = this.outletId;\r\n outletMenuDish.mealTypeId = menuDish.mealTypeId;\r\n outletMenuDish.menuId = menuDish.menuId;\r\n outletMenuDish.dishId = menuDish.dishId;\r\n outletMenuDish.mealPeriodId = period.mealPeriodId;\r\n outletMenuDishes.push(outletMenuDish);\r\n }\r\n });\r\n });\r\n\r\n\r\n });\r\n\r\n outletPeriod.outletMenus = outletMenus;\r\n outletPeriod.outletMenuDishes = outletMenuDishes;\r\n outletPeriods.push(outletPeriod);\r\n });\r\n\r\n this.menuService.createOutletPeriodMenus(outletPeriods).subscribe(response => this.saveSuccessHelper(response), error => this.saveFailedHelper(error));\r\n }\r\n\r\n\r\n private saveSuccessHelper(response: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (response.isSuccess)\r\n this.alertService.showMessage(\"Success\", `Successfully saved.`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Error\", response.message, MessageSeverity.error);\r\n\r\n\r\n this.resetForm();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n }\r\n\r\n addMenu(period: any, m: Menu) {\r\n if (!m || !period) return;\r\n let menu = new MenuCycleScheduleMenu();\r\n menu.mealPeriodId = period.mealPeriodId;\r\n menu.menuId = m.id;\r\n menu.label = m.label;\r\n if (!period.menus) period.menus = [];\r\n period.menus.push(menu);\r\n\r\n m = null;\r\n period.selectedMenu = null;\r\n }\r\n\r\n removeMenu(period: MenuCycleSchedulePeriod, id: string) {\r\n let indx = period.menus.findIndex(f => f.menuId == id);\r\n if (indx > -1) {\r\n period.menus.splice(indx, 1);\r\n }\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9wYWNraW5nLWFsbG9jYXRpb24vcGFja2luZy1hbGxvY2F0aW9uLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9wYWNraW5nLWFsbG9jYXRpb24vcGFja2luZy1hbGxvY2F0aW9uLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMyOGE3NDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Route\\r\\n \\r\\n \\r\\n {{route.label}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Dish CodeDish NameQuantity
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { TokenOrder, TokenLabel, TokenDishLabel, MealAllocation, PackingAllocation, DishAllocation } from 'src/app/models/meal-order/token-order.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport * as moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\nimport { MenuService } from '../../../services/meal-order/menu.service';\r\nimport { Dish } from '../../../models/meal-order/dish.model';\r\nimport { MealType } from '../../../models/meal-order/meal-type.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { MealSessionDetail, MealSession } from 'src/app/models/meal-order/meal-session.model';\r\nimport { Route } from 'src/app/models/meal-order/route.model';\r\n\r\n\r\n@Component({\r\n selector: 'packing-allocation-editor',\r\n templateUrl: './packing-allocation-editor.component.html',\r\n styleUrls: ['./packing-allocation-editor.component.css']\r\n})\r\nexport class PackingAllocationEditorComponent implements OnInit {\r\n stores: StoreInfo[];\r\n storesCache: StoreInfo[];\r\n selectedStores: StoreInfo[] = [];\r\n editOutlet: Outlet;\r\n outletId: string;\r\n sessions: MealSessionDetail[] = [];\r\n routes: Route[] = [];\r\n allSessions: MealSession[] = [];\r\n selectedCaterers: CatererOutlet[];\r\n orderDate = new Date();\r\n orders: MealAllocation[];\r\n token_count: TokenLabel[] = [];\r\n dish_count: DishAllocation[] = [];\r\n dishes: Dish[];\r\n tokens: MealType[];\r\n allocation: PackingAllocation;\r\n isSaving = false;\r\n isNewAllocation = false;\r\n selectedPeriodName = \"\";\r\n\r\n //dish_count: TokenDishLabel[] = [];\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef, private menuService: MenuService, private mealService: MealService, private dishService: DishService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outletId) != typeof (undefined)) {\r\n this.outletId = data.outletId;\r\n }\r\n if (typeof (data.allocation) != typeof (undefined)) {\r\n if (data.allocation.id) {\r\n this.editAllocation(data.allocation);\r\n } else {\r\n this.newAllocation();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.getMenuDishes();\r\n //this.getMealTypes();\r\n //this.getSessions();\r\n this.getRoutes();\r\n //this.getAllSessions();\r\n //this.getTokenOrder();\r\n }\r\n\r\n loadData() {\r\n let filterCaterer = \"\";\r\n this.selectedCaterers.forEach((caterer, i) => {\r\n if (caterer.status == \"APPROVED\") {\r\n if (filterCaterer != \"\") {\r\n filterCaterer += '|'\r\n }\r\n filterCaterer += caterer.catererInfoId\r\n }\r\n });\r\n console.log(\"caterer filter = \", filterCaterer)\r\n\r\n //this.getStore(filterCaterer);\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n console.log(\"event value: \", moment(event.value))\r\n this.orderDate = new Date(event.value);\r\n this.allocation.packingDate = this.orderDate;\r\n this.getSessions();\r\n }\r\n\r\n //onChangeSessions() {\r\n // if (this.allocation.routeId) {\r\n // let routeSelected = this.routes.find(x => x.id === this.allocation.routeId);\r\n // //let sessionSelected = this.allSessions.find(x => x.id === sessionDetailSelected.mealSessionId);\r\n\r\n // //this.allocation.outletId = sessionSelected.mealPeriodId;\r\n // this.selectedPeriodName = sessionSelected.mealPeriodName;\r\n // }\r\n //}\r\n\r\n getRoutes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getRoutesByFilter(filter)\r\n .subscribe(results => {\r\n this.routes = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving routes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n //getAllSessions() {\r\n // let filter = new Filter();\r\n // //let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n // filter.filters = '(IsActive)==true';\r\n // this.mealService.getMealSessionsByFilter(filter)\r\n // .subscribe(results => {\r\n // this.allSessions = results.pagedData;\r\n // this.onChangeSessions()\r\n // },\r\n // error => {\r\n // this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal type.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n // })\r\n //}\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.stores = this.storesCache.filter(r => Utilities.searchArray(value, false, r.name));\r\n }\r\n\r\n getOrderData() {\r\n console.log(\"clicked\")\r\n this.getMealAllocation();\r\n }\r\n\r\n getMealTypes() {\r\n let filter = new Filter();\r\n filter.sorts = 'name';\r\n //let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters ='(IsActive)==true';\r\n this.mealService.getMealTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.tokens = results.pagedData;\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal type.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getMenuDishes() {\r\n let filter = new Filter();\r\n //let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters ='(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishes = results.pagedData;\r\n console.log(\"dishes: \", this.dishes)\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getSessions() {\r\n if (this.orderDate) {\r\n var date = new Date(this.orderDate.getTime() - (this.orderDate.getTimezoneOffset() * 60000)).toJSON().split('T')\r\n console.log(\"order date: \", date[0])\r\n this.menuService.getOutletSessionsByFilter(this.outletId, date[0])\r\n .subscribe(results => {\r\n this.sessions = results;\r\n console.log(\"sessions: \", this.sessions)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal sessions.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n }\r\n\r\n getTokenName(id) {\r\n let token = this.tokens.find(x => x.id === id);\r\n if (token) {\r\n return token.name\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n getDishName(id) {\r\n let dish = this.dishes.find(x => x.id === id);\r\n if (dish) {\r\n return dish.label\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n getDishCode(id) {\r\n let dish = this.dishes.find(x => x.id === id);\r\n if (dish) {\r\n return dish.code\r\n } else {\r\n return ''\r\n }\r\n }\r\n\r\n \r\n\r\n onChangeQty(event, detail?: TokenDishLabel, token?: TokenLabel) {\r\n if (detail.a_qty > 0) {\r\n detail.t_qty = detail.o_qty + detail.a_qty;\r\n } else {\r\n detail.t_qty = detail.o_qty + detail.p_qty;\r\n }\r\n\r\n token.qty_tdishes = 0;\r\n\r\n token.dishes.forEach(d => {\r\n token.qty_tdishes += d.t_qty;\r\n\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n\r\n //getTokenOrder() {\r\n // var insideFilter = new Filter();\r\n\r\n // this.token_count = [];\r\n\r\n // var strDate = moment(this.orderDate).format().split('T');\r\n // let f = this.allocation.mealSessionId ? '(MealSessionDetailId)==' + this.allocation.mealSessionId + ',' : '';\r\n // insideFilter.filters = f + '(IsActive)==true,(outletId)==' + this.outletId + ',(DeliveryDate)==' + strDate[0];\r\n // console.log(\"filters: \", insideFilter.filters)\r\n\r\n // this.menuService.getTokenOrdersByFilter(insideFilter).subscribe(results => {\r\n // this.orders = results.pagedData;\r\n\r\n // console.log(\"order : \",this.orders)\r\n\r\n // //Order Loop\r\n // this.orders.forEach(o => {\r\n\r\n // //Token Loop\r\n // o.tokens.forEach(t => {\r\n\r\n // var tokenIndex = this.token_count.findIndex(x => x.token_id === t.tokenId)\r\n // if (tokenIndex < 0) {\r\n // var token = new TokenLabel;\r\n // token.token_id = t.tokenId;\r\n // token.meal_allocation_id = this.allocation.id;\r\n // token.token_name = this.getTokenName(t.tokenId);\r\n // console.log(\"combined dish: \", t.selectedCombinedDishes.length)\r\n // if (t.selectedCombinedDishes.length > 0) {\r\n // console.log(\"menuqty: \", t.selectedCombinedDishes[0].menuQty)\r\n // token.qty = t.qty * t.selectedCombinedDishes[0].menuQty;\r\n // } else {\r\n // token.qty = t.qty;\r\n // }\r\n // token.qty_menus = t.qty;\r\n // token.qty_dishes = 0;\r\n // token.qty_pdishes = 0;\r\n // token.qty_tdishes = 0;\r\n // token.deliveryDate = strDate[0];\r\n // token.dishes = [];\r\n // this.token_count.push(token);\r\n // tokenIndex = this.token_count.findIndex(x => x.token_id === t.tokenId)\r\n // } else {\r\n // if (t.selectedCombinedDishes.length > 0) {\r\n // this.token_count[tokenIndex].qty += (t.qty * t.selectedCombinedDishes[0].menuQty);\r\n // } else {\r\n // this.token_count[tokenIndex].qty += t.qty;\r\n // }\r\n // this.token_count[tokenIndex].qty_menus += t.qty;\r\n // }\r\n\r\n // // Selected dishes loop\r\n // t.selectedDishes.forEach(d => {\r\n // var dishIndex = this.token_count[tokenIndex].dishes.findIndex(y => y.dish_id === d.dishId)\r\n // if (dishIndex < 0) {\r\n // var dish = new TokenDishLabel;\r\n // dish.token_lable_id = token.id;\r\n // dish.token_id = t.tokenId;\r\n // dish.token_name = this.getTokenName(t.tokenId);\r\n // dish.dish_id = d.dishId;\r\n // dish.dish_name = this.getDishName(d.dishId);\r\n // dish.dish_code = this.getDishCode(d.dishId);\r\n // dish.o_qty = d.qty;\r\n // this.token_count[tokenIndex].dishes.push(dish);\r\n // } else {\r\n // this.token_count[tokenIndex].dishes[dishIndex].o_qty += d.qty;\r\n // }\r\n // this.token_count[tokenIndex].qty_dishes += d.qty;\r\n\r\n // })\r\n\r\n // })\r\n\r\n // })\r\n\r\n // //count proposed allocation\r\n // this.token_count.forEach(t => {\r\n // t.qty_pdishes = 0;\r\n // t.qty_tdishes = 0;\r\n // t.dishes.forEach(d => {\r\n // console.log(\"hasil awal: \", d.o_qty / t.qty_dishes * (t.qty - t.qty_dishes))\r\n // var p_allocation = Math.ceil(d.o_qty / t.qty_dishes * (t.qty - t.qty_dishes))\r\n // console.log(\"ceiling: \", p_allocation)\r\n // d.p_qty = p_allocation;\r\n // d.t_qty = d.o_qty + d.p_qty;\r\n // t.qty_pdishes += p_allocation;\r\n // t.qty_tdishes += d.t_qty;\r\n\r\n // })\r\n\r\n // })\r\n\r\n\r\n // console.log(\"token count: \", this.token_count);\r\n\r\n // }, error => { });\r\n //}\r\n\r\n getMealAllocation() {\r\n var insideFilter = new Filter();\r\n\r\n this.dish_count = [];\r\n\r\n var strDate = moment(this.orderDate).format().split('T');\r\n let f = this.allocation.routeId ? '(routeId)==' + this.allocation.routeId + ',' : '';\r\n insideFilter.filters = f + '(IsActive)==true,(outletId)==' + this.outletId + ',(DeliveryDate)==' + strDate[0];\r\n console.log(\"filters: \", insideFilter.filters)\r\n\r\n this.menuService.getMealAllocationsByFilter(insideFilter).subscribe(results => {\r\n this.orders = results.pagedData;\r\n\r\n console.log(\"Allocations : \", this.orders)\r\n\r\n this.allocation.allocations = this.orders;\r\n\r\n //Order Loop\r\n this.orders.forEach(o => {\r\n\r\n //Token Loop\r\n o.tokens.forEach(t => {\r\n t.dishes.forEach(d => {\r\n var dishIndex = this.dish_count.findIndex(x => x.dishId === d.dish_id)\r\n if (dishIndex < 0) {\r\n var dish = new DishAllocation;\r\n dish.dishId = d.dish_id;\r\n dish.packingId = this.allocation.id;\r\n dish.qty = d.t_qty;\r\n this.dish_count.push(dish);\r\n } else {\r\n this.dish_count[dishIndex].qty += d.t_qty;\r\n }\r\n })\r\n\r\n })\r\n\r\n })\r\n\r\n }, error => { });\r\n }\r\n\r\n save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.allocation.outletId = this.outletId;\r\n this.allocation.dishes = this.dish_count;\r\n this.allocation.packingDate = (new Date(this.orderDate.getTime() - (this.orderDate.getTimezoneOffset() * 60000)));\r\n console.log(\"saving: \", this.allocation)\r\n\r\n if (this.isNewAllocation) {\r\n this.menuService.newPackingAllocation(this.allocation).subscribe(allocation => this.saveSuccessHelper(allocation), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.menuService.updatePackingAllocation(this.allocation).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n\r\n }\r\n\r\n\r\n private saveSuccessHelper(allocation?: PackingAllocation) {\r\n if (allocation)\r\n Object.assign(this.allocation, allocation);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n if (this.isNewAllocation)\r\n this.alertService.showMessage(\"Success\", `Packing Allocation was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Meal Allocations was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.allocation = new PackingAllocation();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n newAllocation() {\r\n this.isNewAllocation = true;\r\n\r\n this.allocation = new PackingAllocation();\r\n this.orderDate = moment().toDate();\r\n this.orderDate.setHours(0, 0, 0, 0);\r\n this.allocation.packingDate = this.orderDate;\r\n\r\n return this.allocation;\r\n }\r\n\r\n editAllocation(allocation: MealAllocation) {\r\n if (allocation) {\r\n this.isNewAllocation = false;\r\n\r\n console.log(\"allocation inside: \", allocation)\r\n\r\n this.allocation = new PackingAllocation();\r\n Object.assign(this.allocation, allocation);\r\n this.orderDate = new Date(this.allocation.packingDate);\r\n this.dish_count = this.allocation.dishes;\r\n\r\n return this.allocation;\r\n }\r\n else {\r\n return this.allocation;\r\n }\r\n }\r\n\r\n print() {\r\n console.log(\"download Label\");\r\n this.downloadLabel();\r\n }\r\n\r\n downloadLabel() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_OrderLabel.pdf';\r\n\r\n console.log(\"token sent: \", this.token_count)\r\n\r\n this.menuService.downloadOrderLabel(this.token_count).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9wYWNraW5nLWFsbG9jYXRpb24vcGFja2luZy1hbGxvY2F0aW9ucy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9wYWNraW5nLWFsbG9jYXRpb24vcGFja2luZy1hbGxvY2F0aW9ucy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Meal Allocations

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{(row.isFAS ? 'YES' : 'NO')}}\\r\\n \\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { StudentGroup } from 'src/app/models/meal-order/student-group.model';\r\nimport { PackingAllocationEditorComponent } from './packing-allocation-editor.component';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { TokenOrdersBulkManagementComponent } from './../token-order-bulk/token-orders-bulk-management.component';\r\nimport { TokenLabel, TokenDishLabel, MealAllocation, PackingAllocation } from 'src/app/models/meal-order/token-order.model';\r\nimport { Route } from 'src/app/models/meal-order/route.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { PipeTransform } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'packing-allocations-management',\r\n templateUrl: './packing-allocations-management.component.html',\r\n styleUrls: ['./packing-allocations-management.component.css']\r\n})\r\nexport class PackingAllocationssManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: PackingAllocation[] = [];\r\n rowsCache: PackingAllocation[] = [];\r\n allPermissions: Permission[] = [];\r\n editedAllocation: PackingAllocation;\r\n sourceAllocation: PackingAllocation;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n private routes: Route[] = [];\r\n\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() outletId: string;\r\n\r\n @ViewChild('fileImport')\r\n fileImport: ElementRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('fasTemplate')\r\n fasTemplate: TemplateRef;\r\n\r\n @ViewChild('packingAllocationEditorComponent')\r\n packingAllocationEditorComponent: PackingAllocationEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private studentService: StudentService, public dialog: MatDialog, private menuService: MenuService, private deliveryService: DeliveryService) {\r\n }\r\n\r\n openDialog(allocation: PackingAllocation): void {\r\n const dialogRef = this.dialog.open(PackingAllocationEditorComponent, {\r\n data: { header: this.header, allocation: allocation, outletId: this.outletId },\r\n width: '1000px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'packingDate';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'packingDate', name: 'Packing Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'routeId', name: 'Route', pipe: this.pipeRouteName() },\r\n //{ prop: 'name', name: 'Name' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.getRoutes();\r\n //this.loadData();\r\n }\r\n\r\n getRoutes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getRoutesByFilter(filter)\r\n .subscribe(results => {\r\n this.routes = results.pagedData;\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving routes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.outletId ? '(OutletId)==' + this.outletId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true';\r\n\r\n this.menuService.getPackingAllocationsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let allocations = results.pagedData;\r\n\r\n allocations.forEach((allocation, index, students) => {\r\n (allocation).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...allocations];\r\n this.rows = allocations;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n pipeRouteName(): PipeTransform {\r\n return {\r\n transform: (value) => {\r\n let route = this.routes.find(x => x.id === value);\r\n if (route) {\r\n return route.label\r\n } else {\r\n return ''\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newAllocation() {\r\n this.header = 'New Packing Allocations';\r\n this.editedAllocation = new PackingAllocation();\r\n this.openDialog(this.editedAllocation);\r\n }\r\n\r\n\r\n editAllocation(row: PackingAllocation) {\r\n this.editedAllocation = row;\r\n this.header = 'Edit Packing Allocation';\r\n this.openDialog(this.editedAllocation);\r\n }\r\n\r\n deleteAllocation(row: PackingAllocation) {\r\n this.alertService.showDialog('Are you sure you want to delete Packing Allocation?', DialogType.confirm, () => this.deleteAllocationHelper(row));\r\n }\r\n\r\n\r\n deleteAllocationHelper(row: PackingAllocation) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.menuService.deletePackingAllocation(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Packing Allocation.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageStudents() {\r\n return true;\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9wYWNraW5nLXByb2Nlc3MvcGFja2luZy1wcm9jZXNzcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3BhY2tpbmctcHJvY2Vzcy9wYWNraW5nLXByb2Nlc3NzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Packing Process

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Carton Asset TID\\r\\n \\r\\n \\r\\n
0\\\" style=\\\"border: solid 1px;padding: 0;max-height: 385px;overflow: auto;\\\" class=\\\"col-sm-12\\\">\\r\\n
\\r\\n
\\r\\n
{{row.code}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n Bento Asset TID\\r\\n \\r\\n \\r\\n
0\\\" style=\\\"border: solid 1px;padding: 0;max-height: 385px;overflow: auto;\\\" class=\\\"col-sm-12\\\">\\r\\n
\\r\\n
\\r\\n
{{row.code}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Auto add when bento inputted\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n Success\\r\\n
\\r\\n {{row.message}}\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ChangeDetectorRef, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { BentoAsset } from 'src/app/models/meal-order/bento-asset.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CartonAsset } from '../../../models/meal-order/carton-asset.model';\r\nimport { Dish } from '../../../models/meal-order/dish.model';\r\n\r\n\r\n@Component({\r\n selector: 'packing-processs-management',\r\n templateUrl: './packing-processs-management.component.html',\r\n styleUrls: ['./packing-processs-management.component.css']\r\n})\r\nexport class PackingProcesssManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: any[] = [];\r\n map: any = {};\r\n allPermissions: Permission[] = [];\r\n editedPackingProcess: BentoAsset;\r\n sourcePackingProcess: BentoAsset;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('cartonInput')\r\n cartonInput: ElementRef;\r\n\r\n //@ViewChild('dishInput')\r\n //dishInput: ElementRef;\r\n\r\n @ViewChild('bentoInput')\r\n bentoInput: ElementRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n header: string;\r\n\r\n cartonAssets: CartonAsset[];\r\n bentoAssets: BentoAsset[];\r\n //dishs: Dish[];\r\n\r\n cartonAssetCode: any;\r\n //dishCode: any;\r\n bentoAssetCode: any;\r\n bentoTimeout: NodeJS.Timer;\r\n autoAdd: any = true;\r\n cartonTimeout: NodeJS.Timer;\r\n bentoSearchs: BentoAsset[];\r\n cartonSearchs: CartonAsset[];\r\n //dishTimeout: NodeJS.Timer;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService, private dishService: DishService, private ref: ChangeDetectorRef,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n\r\n this.getCartonAssets();\r\n this.getBentoAssets();\r\n //this.getDishs();\r\n }\r\n\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'cartonAssetCode', name: 'Carton Asset TID' },\r\n //{ prop: 'dishCode', name: 'Dish Code' },\r\n { prop: 'bentoAssetCode', name: 'Bento Asset TID' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n //if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n // this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n //}\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n }\r\n\r\n \r\n\r\n get canManagePackingProcesss() {\r\n return true; //this.accountService.userHasPermission(Permission.managePackingProcesssPermission)\r\n }\r\n\r\n cartonChanged() {\r\n clearTimeout(this.cartonTimeout)\r\n this.cartonTimeout = setTimeout(() => {\r\n this.cartonSearchs = this.cartonAssets.filter(x => x.code && this.cartonAssetCode && x.code.toLowerCase().includes(this.cartonAssetCode.toLowerCase()));\r\n\r\n if (this.autoAdd && this.cartonSearchs.length == 1) {\r\n this.addBento();\r\n this.bentoInput.nativeElement.focus();\r\n }\r\n }, 500);\r\n }\r\n\r\n //dishChanged() {\r\n // clearTimeout(this.dishTimeout)\r\n // this.dishTimeout = setTimeout(() => {\r\n // if (this.autoAdd) this.addBento();\r\n // this.bentoInput.nativeElement.focus();\r\n // }, 500);\r\n //}\r\n\r\n bentoChanged() {\r\n clearTimeout(this.bentoTimeout)\r\n this.bentoTimeout = setTimeout(() => {\r\n this.bentoSearchs = this.bentoAssets.filter(x => x.code && this.bentoAssetCode && x.code.toLowerCase().includes(this.bentoAssetCode.toLowerCase()));\r\n\r\n if (this.autoAdd && this.bentoSearchs.length == 1) {\r\n this.addBento();\r\n this.cartonInput.nativeElement.focus();\r\n }\r\n }, 500);\r\n }\r\n\r\n addBento() {\r\n if (!this.cartonAssetCode || !this.bentoAssetCode) return; \r\n\r\n if (!this.map[this.bentoAssetCode]) {\r\n let row = {\r\n cartonAssetCode: this.cartonAssetCode,\r\n //dishCode: this.dishCode,\r\n bentoAssetCode: this.bentoAssetCode\r\n };\r\n this.rows.push(row)\r\n this.map[this.bentoAssetCode] = row; \r\n } else {\r\n this.map[this.bentoAssetCode].cartonAssetCode = this.cartonAssetCode;\r\n //this.map[this.bentoAssetCode].dishCode = this.dishCode;\r\n this.map[this.bentoAssetCode].isActive = true;\r\n }\r\n\r\n let tempcarton = this.cartonAssetCode;\r\n //let tempdish = this.dishCode;\r\n let tempbento = this.bentoAssetCode;\r\n\r\n this.cartonAssetCode = '';\r\n this.cartonSearchs = [];\r\n this.bentoAssetCode = '';\r\n this.bentoSearchs = [];\r\n this.rows = [...this.rows];\r\n\r\n let bento = this.bentoAssets.find(x => x.code === tempbento);\r\n\r\n if (!bento) {\r\n this.getBentoAssets();\r\n }\r\n\r\n //let dish = this.dishs.find(x => x.code === tempdish);\r\n\r\n //if (!dish) {\r\n // this.getDishs();\r\n //}\r\n\r\n let carton = this.cartonAssets.find(x => x.code === tempcarton);\r\n\r\n if (!carton) {\r\n this.getCartonAssets();\r\n }\r\n }\r\n\r\n removeBento(row) {\r\n this.rows = this.rows.filter((r) => r.bentoAssetCode != row.bentoAssetCode);\r\n this.map[this.bentoAssetCode] = null;\r\n }\r\n\r\n\r\n\r\n submit() {\r\n for (let row of this.rows) {\r\n row.message = '';\r\n row.isSuccess = false;\r\n\r\n let bento = this.bentoAssets.find(x => x.code === row.bentoAssetCode);\r\n\r\n if (!bento) {\r\n row.message = \"No match bento asset TID\";\r\n continue;\r\n }\r\n\r\n //let dish = this.dishs.find(x => x.code === row.dishCode);\r\n\r\n //if (!dish) {\r\n // row.message = \"No match dish code\";\r\n // continue;\r\n //}\r\n\r\n //bento.dishId = dish.id;\r\n\r\n //if (row.cartonAssetCode) {\r\n let carton = this.cartonAssets.find(x => x.code === row.cartonAssetCode);\r\n\r\n if (!carton) {\r\n row.message = \"No match carton asset TID\";\r\n continue;\r\n }\r\n\r\n bento.cartonAssetId = carton.id;\r\n //}\r\n\r\n this.deliveryService.updateBentoAsset(bento).subscribe(response => row.isSuccess = true, error => row.message = error);\r\n }\r\n }\r\n\r\n getCartonAssets() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getCartonAssetsByFilter(filter)\r\n .subscribe(results => {\r\n this.cartonAssets = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving carton assets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getBentoAssets() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getBentoAssetsByFilter(filter)\r\n .subscribe(results => {\r\n this.bentoAssets = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving bento assets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n //getDishs() {\r\n // let filter = new Filter();\r\n // filter.filters = '(IsActive)==true';\r\n // this.dishService.getDishesByFilter(filter)\r\n // .subscribe(results => {\r\n // this.dishs = results.pagedData;\r\n // },\r\n // error => {\r\n // //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishs.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n // })\r\n //}\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9wYXltZW50LXR5cGUvcGF5bWVudC10eXBlLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vcGF5bWVudC10eXBlL3BheW1lbnQtdHlwZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { PaymentService } from '../../../services/meal-order/payment.service';\r\nimport { PaymentType } from 'src/app/models/meal-order/payment-type.model';\r\n\r\n\r\n@Component({\r\n selector: 'payment-type-editor',\r\n templateUrl: './payment-type-editor.component.html',\r\n styleUrls: ['./payment-type-editor.component.css']\r\n})\r\nexport class PaymentTypeEditorComponent {\r\n\r\n private isNewPaymentType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingPaymentTypeCode: string;\r\n private paymentTypeEdit: PaymentType = new PaymentType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private paymentService: PaymentService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.paymentType) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.paymentType.id) {\r\n this.editPaymentType(data.paymentType);\r\n } else {\r\n this.newPaymentType();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n\r\n if (this.isNewPaymentType) {\r\n this.paymentService.newPaymentType(this.paymentTypeEdit).subscribe(paymentType => this.saveSuccessHelper(paymentType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.paymentService.updatePaymentType(this.paymentTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(paymentType?: PaymentType) {\r\n if (paymentType)\r\n Object.assign(this.paymentTypeEdit, paymentType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewPaymentType)\r\n this.alertService.showMessage(\"Success\", `\\\"${this.paymentTypeEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.paymentTypeEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.paymentTypeEdit = new PaymentType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewPaymentType && this.accountService.currentUser.facilities.some(r => r == this.editingPaymentTypeCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.paymentTypeEdit = new PaymentType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newPaymentType() {\r\n this.isNewPaymentType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingPaymentTypeCode = null;\r\n this.selectedValues = {};\r\n this.paymentTypeEdit = new PaymentType();\r\n return this.paymentTypeEdit;\r\n }\r\n\r\n editPaymentType(paymentType: PaymentType) {\r\n if (paymentType) {\r\n this.isNewPaymentType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingPaymentTypeCode = paymentType.name;\r\n this.selectedValues = {};\r\n this.paymentTypeEdit = new PaymentType();\r\n Object.assign(this.paymentTypeEdit, paymentType);\r\n\r\n return this.paymentTypeEdit;\r\n }\r\n else {\r\n return this.newPaymentType();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManagePaymentTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.managePaymentTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9wYXltZW50LXR5cGUvcGF5bWVudC10eXBlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3BheW1lbnQtdHlwZS9wYXltZW50LXR5cGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Payment Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { PaymentTypeEditorComponent } from './payment-type-editor.component';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { PaymentType } from 'src/app/models/meal-order/payment-type.model';\r\nimport { PaymentService } from 'src/app/services/meal-order/payment.service';\r\n\r\n\r\n@Component({\r\n selector: 'payment-types-management',\r\n templateUrl: './payment-types-management.component.html',\r\n styleUrls: ['./payment-types-management.component.css']\r\n})\r\nexport class PaymentTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: PaymentType[] = [];\r\n rowsCache: PaymentType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedPaymentType: PaymentType;\r\n sourcePaymentType: PaymentType;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: PaymentTypeEditorComponent;\r\n\r\n @ViewChild('paymentTypesTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private paymentService: PaymentService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(paymentType: PaymentType): void {\r\n const dialogRef = this.dialog.open(PaymentTypeEditorComponent, {\r\n data: { header: this.header, paymentType: paymentType },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Name' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.paymentService.getPaymentTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let paymentTypes = results.pagedData;\r\n\r\n paymentTypes.forEach((paymentType, index, paymentTypes) => {\r\n (paymentType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...paymentTypes];\r\n this.rows = paymentTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newPaymentType() {\r\n this.header = 'New Payment Type';\r\n this.editedPaymentType = new PaymentType();\r\n this.openDialog(this.editedPaymentType);\r\n }\r\n\r\n\r\n editPaymentType(row: PaymentType) {\r\n this.editedPaymentType = row;\r\n this.header = 'Edit Payment Type';\r\n this.openDialog(this.editedPaymentType);\r\n }\r\n\r\n deletePaymentType(row: PaymentType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" payment type?', DialogType.confirm, () => this.deletePaymentTypeHelper(row));\r\n }\r\n\r\n\r\n deletePaymentTypeHelper(row: PaymentType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.paymentService.deletePaymentType(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the payment type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManagePaymentTypes() {\r\n return this.accountService.userHasPermission(Permission.manageMOSOrderMgtPaymentTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9yZXN0cmljdGlvbi10eXBlL3Jlc3RyaWN0aW9uLXR5cGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVksRUFBRSx3Q0FBd0M7RUFDdEQsV0FBVyxFQUFFLHdDQUF3QztFQUNyRCxzQkFBc0IsRUFBRSw2Q0FBNkM7RUFDckUscUJBQXFCLEVBQUUsNkNBQTZDO0FBQ3RFIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9yZXN0cmljdGlvbi10eXBlL3Jlc3RyaWN0aW9uLXR5cGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJhZGlvLXJpcHBsZSB7XHJcbiAgaGVpZ2h0OiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHdpZHRoOiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Yes\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Yes\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Yes\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Yes\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Yes\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { RestrictionType } from 'src/app/models/meal-order/restriction-type.model';\r\nimport { RestrictionService } from 'src/app/services/meal-order/restriction.service';\r\n\r\n\r\n@Component({\r\n selector: 'restriction-type-editor',\r\n templateUrl: './restriction-type-editor.component.html',\r\n styleUrls: ['./restriction-type-editor.component.css']\r\n})\r\nexport class RestrictionTypeEditorComponent {\r\n\r\n private isNewRestrictionType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingRestrictionTypeCode: string;\r\n private restrictionTypeEdit: RestrictionType = new RestrictionType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private restrictionService: RestrictionService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.restrictionType) != typeof (undefined)) {\r\n if (data.restrictionType.id) {\r\n this.editRestrictionType(data.restrictionType);\r\n } else {\r\n this.newRestrictionType();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.restrictionTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewRestrictionType) {\r\n this.restrictionService.newRestrictionType(this.restrictionTypeEdit).subscribe(restrictionType => this.saveSuccessHelper(restrictionType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.restrictionService.updateRestrictionType(this.restrictionTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(restrictionType?: RestrictionType) {\r\n if (restrictionType)\r\n Object.assign(this.restrictionTypeEdit, restrictionType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewRestrictionType)\r\n this.alertService.showMessage(\"Success\", `Restriction Type \\\"${this.restrictionTypeEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to restriction type \\\"${this.restrictionTypeEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.restrictionTypeEdit = new RestrictionType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewRestrictionType && this.accountService.currentUser.facilities.some(r => r == this.editingRestrictionTypeCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.restrictionTypeEdit = new RestrictionType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newRestrictionType() {\r\n this.isNewRestrictionType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingRestrictionTypeCode = null;\r\n this.selectedValues = {};\r\n this.restrictionTypeEdit = new RestrictionType();\r\n\r\n return this.restrictionTypeEdit;\r\n }\r\n\r\n editRestrictionType(restrictionType: RestrictionType) {\r\n if (restrictionType) {\r\n this.isNewRestrictionType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingRestrictionTypeCode = restrictionType.code;\r\n this.selectedValues = {};\r\n this.restrictionTypeEdit = new RestrictionType();\r\n Object.assign(this.restrictionTypeEdit, restrictionType);\r\n\r\n return this.restrictionTypeEdit;\r\n }\r\n else {\r\n return this.newRestrictionType();\r\n }\r\n }\r\n\r\n get canManageRestrictionTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageRestrictionTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9yZXN0cmljdGlvbi10eXBlL3Jlc3RyaWN0aW9uLXR5cGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vcmVzdHJpY3Rpb24tdHlwZS9yZXN0cmljdGlvbi10eXBlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbi5hY3RpdmUge1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Restriction Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { RestrictionType } from 'src/app/models/meal-order/restriction-type.model';\r\nimport { RestrictionTypeEditorComponent } from './restriction-type-editor.component';\r\nimport { RestrictionService } from 'src/app/services/meal-order/restriction.service';\r\n\r\n\r\n@Component({\r\n selector: 'restriction-types-management',\r\n templateUrl: './restriction-types-management.component.html',\r\n styleUrls: ['./restriction-types-management.component.css']\r\n})\r\nexport class RestrictionTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: RestrictionType[] = [];\r\n rowsCache: RestrictionType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedRestrictionType: RestrictionType;\r\n sourceRestrictionType: RestrictionType;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('restrictionTypeEditor')\r\n restrictionTypeEditor: RestrictionTypeEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private restrictionService: RestrictionService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(restrictionType: RestrictionType): void {\r\n const dialogRef = this.dialog.open(RestrictionTypeEditorComponent, {\r\n data: { header: this.header, restrictionType: restrictionType },\r\n width: '600px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'code', name: 'Code' },\r\n { prop: 'label', name: 'Label' },\r\n { prop: 'isHandledEMR', name: 'Handled EMR', cellTemplate: this.flagTemplate },\r\n { prop: 'isDishTypeCustomisation', name: 'Dish Type Customisation', cellTemplate: this.flagTemplate },\r\n { prop: 'isSpecialCondition', name: 'Special Condition', cellTemplate: this.flagTemplate },\r\n { prop: 'isCarriedForward', name: 'Carried Forward', cellTemplate: this.flagTemplate },\r\n { prop: 'isMealFiltering', name: 'Meal Filtering', cellTemplate: this.flagTemplate },\r\n { prop: 'sequence', name: 'Sequence' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Code|Label)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.restrictionService.getRestrictionTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let restrictionTypes = results.pagedData;\r\n\r\n restrictionTypes.forEach((restrictionType, index, restrictionTypes) => {\r\n (restrictionType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...restrictionTypes];\r\n this.rows = restrictionTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newRestrictionType() {\r\n this.header = 'New Restriction Type';\r\n this.editedRestrictionType = new RestrictionType();\r\n this.openDialog(this.editedRestrictionType);\r\n }\r\n\r\n\r\n editRestrictionType(row: RestrictionType) {\r\n this.editedRestrictionType = row;\r\n this.header = 'Edit Restriction Type';\r\n this.openDialog(this.editedRestrictionType);\r\n }\r\n\r\n deleteRestrictionType(row: RestrictionType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\" restriction type?', DialogType.confirm, () => this.deleteRestrictionTypeHelper(row));\r\n }\r\n\r\n\r\n deleteRestrictionTypeHelper(row: RestrictionType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.restrictionService.deleteRestrictionType(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the restriction type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageRestrictionTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageRestrictionTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9yZXN0cmljdGlvbi9yZXN0cmljdGlvbi1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEUiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3Jlc3RyaWN0aW9uL3Jlc3RyaWN0aW9uLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Restriction Type\\r\\n \\r\\n \\r\\n {{restrictionType.label}}\\r\\n \\r\\n \\r\\n Restriction Type is required\\r\\n \\r\\n \\r\\n \\r\\n Code is required\\r\\n \\r\\n \\r\\n \\r\\n Label is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Yes\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Yes\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Yes\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Yes\\r\\n No\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Restriction } from 'src/app/models/meal-order/restriction.model';\r\nimport { RestrictionService } from 'src/app/services/meal-order/restriction.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'restriction-editor',\r\n templateUrl: './restriction-editor.component.html',\r\n styleUrls: ['./restriction-editor.component.css']\r\n})\r\nexport class RestrictionEditorComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n private isNewRestriction = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingRestrictionCode: string;\r\n private restrictionEdit: Restriction = new Restriction();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public restrictionTypes = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private restrictionService: RestrictionService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.restriction) != typeof (undefined) && data.restriction.id) {\r\n this.editRestriction(data.restriction);\r\n } else {\r\n this.newRestriction();\r\n }\r\n\r\n this.getRestrictionTypes();\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n getRestrictionTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.subscription.add(this.restrictionService.getRestrictionTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.restrictionTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving restriction types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n if (this.isNewRestriction) {\r\n this.restrictionService.newRestriction(this.restrictionEdit).subscribe(restriction => this.saveSuccessHelper(restriction), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.restrictionService.updateRestriction(this.restrictionEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private invalidate() {\r\n return false;\r\n }\r\n\r\n private saveSuccessHelper(restriction?: Restriction) {\r\n if (restriction)\r\n Object.assign(this.restrictionEdit, restriction);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewRestriction)\r\n this.alertService.showMessage(\"Success\", `Restriction \\\"${this.restrictionEdit.code}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to restriction \\\"${this.restrictionEdit.code}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.restrictionEdit = new Restriction();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewRestriction && this.accountService.currentUser.facilities.some(r => r == this.editingRestrictionCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.restrictionEdit = new Restriction();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newRestriction() {\r\n this.isNewRestriction = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingRestrictionCode = null;\r\n this.selectedValues = {};\r\n this.restrictionEdit = new Restriction();\r\n\r\n return this.restrictionEdit;\r\n }\r\n\r\n editRestriction(restriction: Restriction) {\r\n if (restriction) {\r\n this.isNewRestriction = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingRestrictionCode = restriction.code;\r\n this.selectedValues = {};\r\n this.restrictionEdit = new Restriction();\r\n Object.assign(this.restrictionEdit, restriction);\r\n\r\n return this.restrictionEdit;\r\n }\r\n else {\r\n return this.newRestriction();\r\n }\r\n }\r\n\r\n get canManageRestrictions() {\r\n return true; //this.accountService.userHasPermission(Permission.manageRestrictionPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9yZXN0cmljdGlvbi9yZXN0cmljdGlvbnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9yZXN0cmljdGlvbi9yZXN0cmljdGlvbnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG5cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Restrictions

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Restriction } from 'src/app/models/meal-order/restriction.model';\r\nimport { RestrictionEditorComponent } from './restriction-editor.component';\r\nimport { RestrictionService } from 'src/app/services/meal-order/restriction.service';\r\n\r\n\r\n@Component({\r\n selector: 'restrictions-management',\r\n templateUrl: './restrictions-management.component.html',\r\n styleUrls: ['./restrictions-management.component.css']\r\n})\r\nexport class RestrictionsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Restriction[] = [];\r\n rowsCache: Restriction[] = [];\r\n allPermissions: Permission[] = [];\r\n editedRestriction: Restriction;\r\n sourceRestriction: Restriction;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('restrictionEditor')\r\n restrictionEditor: RestrictionEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private restrictionService: RestrictionService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(restriction: Restriction): void {\r\n const dialogRef = this.dialog.open(RestrictionEditorComponent, {\r\n data: { header: this.header, restriction: restriction },\r\n width: '600px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'code';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'code', name: 'Code' },\r\n { prop: 'label', name: 'Label' },\r\n { prop: 'restrictionTypeLabel', name: 'Restriction Label' },\r\n { prop: 'isHighPriority', name: 'Set Patient as High Priority', cellTemplate: this.flagTemplate },\r\n { prop: 'isIncludeHighPriorityFiltering', name: 'Include in High Priority Filtering', cellTemplate: this.flagTemplate },\r\n { prop: 'isAvailableDateSpecific', name: 'Available as Date-Specific', cellTemplate: this.flagTemplate },\r\n { prop: 'isMealFiltering', name: 'Date-Specific Single Meal Period Only', cellTemplate: this.flagTemplate },\r\n { prop: 'sequence', name: 'Sequence'},\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Code|Label)@=' + this.keyword;\r\n \r\n this.restrictionService.getRestrictionsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let restrictions = results.pagedData;\r\n\r\n restrictions.forEach((restriction, index, restrictions) => {\r\n (restriction).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...restrictions];\r\n this.rows = restrictions;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newRestriction() {\r\n this.header = 'New Restriction Level';\r\n this.editedRestriction = new Restriction();\r\n this.openDialog(this.editedRestriction);\r\n }\r\n\r\n\r\n editRestriction(row: Restriction) {\r\n this.editedRestriction = row;\r\n this.header = 'Edit Restriction Level';\r\n this.openDialog(this.editedRestriction);\r\n }\r\n\r\n deleteRestriction(row: Restriction) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.code + '\\\" restriction?', DialogType.confirm, () => this.deleteRestrictionHelper(row));\r\n }\r\n\r\n\r\n deleteRestrictionHelper(row: Restriction) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.restrictionService.deleteRestriction(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the restriction.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageRestrictions() {\r\n return true; //this.accountService.userHasPermission(Permission.manageRestrictionsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\nimg {\\r\\n max-height: 200px;\\r\\n max-width: 200px;\\r\\n}\\r\\n\\r\\nvideo {\\r\\n max-height: 200px;\\r\\n max-width: 200px;\\r\\n}\\r\\n\\r\\n.example-list {\\r\\n width: 500px;\\r\\n max-width: 100%;\\r\\n border: solid 1px #ccc;\\r\\n min-height: 60px;\\r\\n display: block;\\r\\n background: white;\\r\\n border-radius: 4px;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.example-box {\\r\\n padding: 20px 10px;\\r\\n border-bottom: solid 1px #ccc;\\r\\n color: rgba(0, 0, 0, 0.87);\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n align-items: center;\\r\\n justify-content: space-between;\\r\\n box-sizing: border-box;\\r\\n cursor: move;\\r\\n background: white;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.cdk-drag-preview {\\r\\n box-sizing: border-box;\\r\\n border-radius: 4px;\\r\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\r\\n}\\r\\n\\r\\n.cdk-drag-placeholder {\\r\\n opacity: 0;\\r\\n}\\r\\n\\r\\n.cdk-drag-animating {\\r\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\r\\n}\\r\\n\\r\\n.example-box:last-child {\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder) {\\r\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9yb3V0ZS9yb3V0ZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEU7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLDBCQUEwQjtFQUMxQixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIscUhBQXFIO0FBQ3ZIOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0Usc0RBQXNEO0FBQ3hEOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0Usc0RBQXNEO0FBQ3hEIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9yb3V0ZS9yb3V0ZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcblxyXG5pbWcge1xyXG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xyXG4gIG1heC13aWR0aDogMjAwcHg7XHJcbn1cclxuXHJcbnZpZGVvIHtcclxuICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICBtYXgtd2lkdGg6IDIwMHB4O1xyXG59XHJcblxyXG4uZXhhbXBsZS1saXN0IHtcclxuICB3aWR0aDogNTAwcHg7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIGJvcmRlcjogc29saWQgMXB4ICNjY2M7XHJcbiAgbWluLWhlaWdodDogNjBweDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmV4YW1wbGUtYm94IHtcclxuICBwYWRkaW5nOiAyMHB4IDEwcHg7XHJcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNjY2M7XHJcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgY3Vyc29yOiBtb3ZlO1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxufVxyXG5cclxuLmNkay1kcmFnLXByZXZpZXcge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIGJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxufVxyXG5cclxuLmNkay1kcmFnLXBsYWNlaG9sZGVyIHtcclxuICBvcGFjaXR5OiAwO1xyXG59XHJcblxyXG4uY2RrLWRyYWctYW5pbWF0aW5nIHtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XHJcbn1cclxuXHJcbi5leGFtcGxlLWJveDpsYXN0LWNoaWxkIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbi5leGFtcGxlLWxpc3QuY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyAuZXhhbXBsZS1ib3g6bm90KC5jZGstZHJhZy1wbGFjZWhvbGRlcikge1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcclxufVxyXG5cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Nodes

\\r\\n
\\r\\n \\r\\n Node\\r\\n \\r\\n \\r\\n {{n.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
0\\\" style=\\\"max-height: 75vh;overflow-y: auto;\\\" cdkDropList class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event)\\\">\\r\\n
\\r\\n
\\r\\n
\\r\\n {{node.name}}\\r\\n
\\r\\n
\\r\\n close\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Route, RouteNode } from 'src/app/models/meal-order/route.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { DateAdapter, MatDatepickerInputEvent, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { StoreInfo } from '../../../models/meal-order/store-info.model';\r\n\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\n\r\n\r\n@Component({\r\n selector: 'route-editor',\r\n templateUrl: './route-editor.component.html',\r\n styleUrls: ['./route-editor.component.css']\r\n})\r\nexport class RouteEditorComponent {\r\n\r\n private isNewRoute = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingRouteLabel: string;\r\n private routeEdit: Route = new Route();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public nodes = [];\r\n public selectedNodes = [];\r\n public selectedNode;\r\n\r\n start = new Date();\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.route) != typeof (undefined)) {\r\n if (data.route.id) {\r\n this.editRoute(data.route);\r\n } else {\r\n this.newRoute();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n getStores() {\r\n console.log(\"get stores\")\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getStoreInfosByFilter(filter)\r\n .subscribe(results => {\r\n console.log(\"stores: \", results)\r\n this.nodes = results.pagedData;\r\n if (this.routeEdit.nodes != null) {\r\n this.routeEdit.nodes.forEach((rn, indexr) => {\r\n this.nodes.forEach((n, index) => {\r\n if (rn.storeId == n.id) {\r\n n.order = rn.order;\r\n n.interval = rn.interval;\r\n this.selectedNodes.push(n)\r\n }\r\n });\r\n });\r\n }\r\n console.log(\"selected Nodes\", this.selectedNodes)\r\n this.selectedNodes.sort((a, b) => a.order - b.order)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving interest groups.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n addNode() {\r\n console.log(\"selected node: \", this.selectedNode)\r\n this.selectedNodes.push(this.selectedNode)\r\n }\r\n\r\n drop(event: CdkDragDrop<{ id: number, title: string, url: string }[]>) {\r\n moveItemInArray(this.selectedNodes, event.previousIndex, event.currentIndex);\r\n console.log(\"urutan: \" + this.selectedNodes)\r\n }\r\n\r\n removeNode(node) {\r\n var index = this.selectedNodes.indexOf(node);\r\n this.selectedNodes.splice(index, 1);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.routeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n console.log(\"route save:\", this.routeEdit)\r\n\r\n this.routeEdit.nodes = [];\r\n this.selectedNodes.forEach((p, index, ps) => {\r\n let sr = new RouteNode();\r\n sr.routeId = this.routeEdit.id;\r\n sr.storeId = p.id;\r\n sr.order = index;\r\n sr.interval = p.interval;\r\n this.routeEdit.nodes.push(sr);\r\n\r\n });\r\n\r\n\r\n if (this.isNewRoute) {\r\n this.deliveryService.newRoute(this.routeEdit).subscribe(route => this.saveSuccessHelper(route), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateRoute(this.routeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(route?: Route) {\r\n if (route)\r\n Object.assign(this.routeEdit, route);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewRoute)\r\n this.alertService.showMessage(\"Success\", `Route \\\"${this.routeEdit.label}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to route type \\\"${this.routeEdit.label}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.routeEdit = new Route();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewMealType && this.accountService.currentUser.facilities.some(r => r == this.editingMealTypeCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.routeEdit = new Route();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newRoute() {\r\n this.isNewRoute = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingRouteLabel = null;\r\n this.selectedValues = {};\r\n this.start = new Date();\r\n this.routeEdit = new Route();\r\n\r\n this.getStores();\r\n\r\n return this.routeEdit;\r\n }\r\n\r\n editRoute(route: Route) {\r\n if (route) {\r\n console.log(\"route edit:\", route)\r\n this.isNewRoute = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingRouteLabel = route.label;\r\n this.selectedValues = {};\r\n this.routeEdit = new Route();\r\n Object.assign(this.routeEdit, route);\r\n\r\n console.log('start: ', this.start)\r\n\r\n this.getStores();\r\n\r\n return this.routeEdit;\r\n }\r\n else {\r\n return this.newRoute();\r\n }\r\n }\r\n\r\n get canManageRoutes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMealTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9yb3V0ZS9yb3V0ZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9yb3V0ZS9yb3V0ZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Routes

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, PipeTransform } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Route } from 'src/app/models/meal-order/route.model';\r\nimport { RouteEditorComponent } from './route-editor.component';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Component({\r\n selector: 'routes-management',\r\n templateUrl: './routes-management.component.html',\r\n styleUrls: ['./routes-management.component.css']\r\n})\r\nexport class RoutesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Route[] = [];\r\n rowsCache: Route[] = [];\r\n allPermissions: Permission[] = [];\r\n editedRoute: Route;\r\n sourceRoute: Route;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('routeEditor')\r\n routeEditor: RouteEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(route: Route): void {\r\n const dialogRef = this.dialog.open(RouteEditorComponent, {\r\n data: { header: this.header, route: route },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'label';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'label', name: 'Label' },\r\n { prop: 'details', name: 'Route Details' },\r\n { prop: 'pickup', name: 'Pickup Time', pipe: this.pipeTime() },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Label)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deliveryService.getRoutesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let routes = results.pagedData;\r\n\r\n routes.forEach((route, index, routes) => {\r\n (route).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...routes];\r\n this.rows = routes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newRoute() {\r\n this.header = 'New Route';\r\n this.editedRoute = new Route();\r\n this.openDialog(this.editedRoute);\r\n }\r\n\r\n\r\n editRoute(row: Route) {\r\n this.editedRoute = row;\r\n this.header = 'Edit Route';\r\n this.openDialog(this.editedRoute);\r\n }\r\n\r\n deleteRoute(row: Route) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.label + '\\\" route?', DialogType.confirm, () => this.deleteRouteHelper(row));\r\n }\r\n\r\n\r\n deleteRouteHelper(row: Route) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteRoute(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the route type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n pipeTime(): PipeTransform {\r\n return {\r\n transform: (value) => {\r\n return moment(value).format('HH:mm')\r\n }\r\n }\r\n }\r\n\r\n get canManageRoutes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMealTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdGFmZi10eXBlL3N0YWZmLXR5cGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vc3RhZmYtdHlwZS9zdGFmZi10eXBlLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { StaffType } from 'src/app/models/meal-order/staff-type.model';\r\nimport { UserService } from 'src/app/services/meal-order/user.service';\r\n\r\n\r\n@Component({\r\n selector: 'staff-type-editor',\r\n templateUrl: './staff-type-editor.component.html',\r\n styleUrls: ['./staff-type-editor.component.css']\r\n})\r\nexport class StaffTypeEditorComponent {\r\n\r\n private isNewStaffType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingStaffTypeName: string;\r\n private staffTypeEdit: StaffType = new StaffType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private userService: UserService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.staffType) != typeof (undefined)) {\r\n if (data.staffType.id) {\r\n this.editStaffType(data.staffType);\r\n } else {\r\n this.newStaffType();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.staffTypeEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewStaffType) {\r\n this.userService.newStaffType(this.staffTypeEdit).subscribe(staffType => this.saveSuccessHelper(staffType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.userService.updateStaffType(this.staffTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(staffType?: StaffType) {\r\n if (staffType)\r\n Object.assign(this.staffTypeEdit, staffType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewStaffType)\r\n this.alertService.showMessage(\"Success\", `User Type \\\"${this.staffTypeEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to user type \\\"${this.staffTypeEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.staffTypeEdit = new StaffType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewStaffType && this.accountService.currentUser.facilities.some(r => r == this.editingStaffTypeName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.staffTypeEdit = new StaffType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newStaffType() {\r\n this.isNewStaffType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingStaffTypeName = null;\r\n this.selectedValues = {};\r\n this.staffTypeEdit = new StaffType();\r\n\r\n return this.staffTypeEdit;\r\n }\r\n\r\n editStaffType(staffType: StaffType) {\r\n if (staffType) {\r\n this.isNewStaffType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingStaffTypeName = staffType.name;\r\n this.selectedValues = {};\r\n this.staffTypeEdit = new StaffType();\r\n Object.assign(this.staffTypeEdit, staffType);\r\n\r\n return this.staffTypeEdit;\r\n }\r\n else {\r\n return this.newStaffType();\r\n }\r\n }\r\n\r\n get canManageStaffTypes() {\r\n return true; //this.accountService.userHasPermission(Permission.manageStaffTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdGFmZi10eXBlL3N0YWZmLXR5cGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3N0YWZmLXR5cGUvc3RhZmYtdHlwZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Staff Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { StaffType } from 'src/app/models/meal-order/staff-type.model';\r\nimport { StaffTypeEditorComponent } from './staff-type-editor.component';\r\nimport { UserService } from 'src/app/services/meal-order/user.service';\r\n\r\n\r\n@Component({\r\n selector: 'staff-types-management',\r\n templateUrl: './staff-types-management.component.html',\r\n styleUrls: ['./staff-types-management.component.css']\r\n})\r\nexport class StaffTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: StaffType[] = [];\r\n rowsCache: StaffType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedStaffType: StaffType;\r\n sourceStaffType: StaffType;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() outletId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('staffTypeEditor')\r\n staffTypeEditor: StaffTypeEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private userService: UserService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(staffType: StaffType): void {\r\n const dialogRef = this.dialog.open(StaffTypeEditorComponent, {\r\n data: { header: this.header, staffType: staffType },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: gT('common.Name'), width: 200 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.userService.getStaffTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let staffTypes = results.pagedData;\r\n\r\n staffTypes.forEach((staffType, index, staffTypes) => {\r\n (staffType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...staffTypes];\r\n this.rows = staffTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newStaffType() {\r\n this.header = 'New Staff Type';\r\n this.editedStaffType = new StaffType();\r\n this.openDialog(this.editedStaffType);\r\n }\r\n\r\n\r\n editStaffType(row: StaffType) {\r\n this.editedStaffType = row;\r\n this.header = 'Edit Staff Type';\r\n this.openDialog(this.editedStaffType);\r\n }\r\n\r\n deleteStaffType(row: StaffType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" user type?', DialogType.confirm, () => this.deleteStaffTypeHelper(row));\r\n }\r\n\r\n\r\n deleteStaffTypeHelper(row: StaffType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.userService.deleteStaffType(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the staff type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageStaffTypes() {\r\n return true; //this.accountService.staffHasPermission(Permission.manageStaffTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: 11px !important;\\r\\n font-weight: 400 !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdGFmZi9zdGFmZi1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0UsMEJBQTBCO0VBQzFCLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vc3RhZmYvc3RhZmYtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcclxuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Staff Information

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Name is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Male \\r\\n Female \\r\\n \\r\\n \\r\\n \\r\\n Staff Type\\r\\n \\r\\n \\r\\n {{staffType.name}}\\r\\n \\r\\n \\r\\n Staff Type is required\\r\\n \\r\\n \\r\\n Department\\r\\n \\r\\n \\r\\n {{dept.name}}\\r\\n \\r\\n \\r\\n Department is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Account Information

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Username is required\\r\\n \\r\\n \\r\\n \\r\\n Email is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.CurrentPasswordRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.NewPasswordRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.ConfirmationPasswordRequired' | translate}}\\r\\n \\r\\n \\r\\n {{'users.editor.PasswordMismatch' | 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
Card IdStatusRemarks
{{row.cardId}}{{row.status}}{{row.remarks}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Staff } from 'src/app/models/meal-order/staff.model';\r\nimport { StaffService } from 'src/app/services/meal-order/staff.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\nimport { ClassLevel } from 'src/app/models/meal-order/class-level.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { UserService } from 'src/app/services/meal-order/user.service';\r\nimport { UserCardIdEditorComponent } from '../../controls/usercardid/usercardid-editor.component';\r\nimport { UserCardId } from 'src/app/models/usercardid.model';\r\nimport { DepartmentService } from 'src/app/services/department.service';\r\n\r\n\r\n@Component({\r\n selector: 'staff-editor',\r\n templateUrl: './staff-editor.component.html',\r\n styleUrls: ['./staff-editor.component.css']\r\n})\r\nexport class StaffEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isNewStaff = false;\r\n private isChangePassword = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingStaffName: string;\r\n private staffEdit: Staff = new Staff();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private validation = { name: false, gender: false, classLevel: false, class: false, fas: false };\r\n private isAddAccount = false;\r\n\r\n public classLevels = [];\r\n public classes = [];\r\n public staffTypes = [];\r\n public departments = [];\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private staffService: StaffService, private accountService: AccountService, private classService: ClassService,\r\n private userService: UserService, private departmentService: DepartmentService,\r\n public dialogRef: MatDialogRef, public dialog: MatDialog, \r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.staff) != typeof (undefined) && data.staff.id) {\r\n this.editStaff(data.staff);\r\n } else {\r\n this.newStaff();\r\n }\r\n\r\n this.getStaffTypes();\r\n this.getDepartments();\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n getStaffTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.subscription.add(this.userService.getStaffTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.staffTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving staff types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getDepartments() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.subscription.add(this.departmentService.getDepartmentsByFilter(filter)\r\n .subscribe(results => {\r\n this.departments = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving departments.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n private validate() {\r\n this.validation = { name: false, gender: false, classLevel: false, class: false, fas: false };;\r\n if (this.staffEdit.name && this.staffEdit.name.trim().length == 0) {\r\n this.validation.name = true;\r\n //this.name.control.setErrors({});\r\n }\r\n\r\n if (!this.staffEdit.gender) {\r\n this.validation.gender = true;\r\n //this.value.control.setErrors({});\r\n }\r\n\r\n if (this.validation.name || this.validation.gender) {\r\n this.showValidationErrors = true;\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n if (this.isNewStaff) {\r\n this.staffService.newStaff(this.staffEdit).subscribe(staff => this.saveSuccessHelper(staff), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.staffService.updateStaff(this.staffEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n invalidate() {\r\n return false;\r\n }\r\n\r\n private saveSuccessHelper(staff?: Staff) {\r\n if (staff)\r\n Object.assign(this.staffEdit, staff);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewStaff)\r\n this.alertService.showMessage(\"Success\", `Staff \\\"${this.staffEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to staff \\\"${this.staffEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.staffEdit = new Staff();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewStaff && this.accountService.currentUser.facilities.some(r => r == this.editingStaffName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.staffEdit = new Staff();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n this.isChangePassword = false;\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newStaff() {\r\n this.isNewStaff = true;\r\n this.showValidationErrors = true;\r\n this.isChangePassword = false;\r\n this.editingStaffName = null;\r\n this.selectedValues = {};\r\n this.staffEdit = new Staff();\r\n this.staffEdit.gender = 'Male';\r\n if (!this.staffEdit.cards) this.staffEdit.cards = [];\r\n return this.staffEdit;\r\n }\r\n\r\n editStaff(staff: Staff) {\r\n if (staff) {\r\n this.isNewStaff = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingStaffName = staff.name;\r\n this.selectedValues = {};\r\n this.staffEdit = new Staff();\r\n Object.assign(this.staffEdit, staff);\r\n this.isAddAccount = this.staffEdit.userId && parseInt(this.staffEdit.userId) > 0;\r\n if (!this.staffEdit.cards) this.staffEdit.cards = [];\r\n return this.staffEdit;\r\n }\r\n else {\r\n return this.newStaff();\r\n }\r\n }\r\n\r\n private changePassword() {\r\n this.isChangePassword = true;\r\n }\r\n\r\n public deletePasswordFromUser(staff: Staff) {\r\n let userEdit = staff;\r\n\r\n delete userEdit.currentPassword;\r\n delete userEdit.newPassword;\r\n delete userEdit.confirmPassword;\r\n }\r\n\r\n //cards\r\n addCardId() {\r\n var dialog = this.dialog.open(UserCardIdEditorComponent, {\r\n data: { header: \"New Card\", userCardId: new UserCardId(), isUserInfo: true },\r\n width: '400px',\r\n panelClass: 'user-info-modal',\r\n backdropClass: 'user-info-backdrop',\r\n disableClose: true\r\n });\r\n\r\n dialog.afterClosed().subscribe(result => {\r\n console.log(\"resulting data: \", result)\r\n if (result && result.cardId) {\r\n if (typeof (this.staffEdit) == typeof (undefined)) {\r\n this.staffEdit = new Staff();\r\n }\r\n\r\n if (typeof (this.staffEdit.cards) == typeof (undefined)) {\r\n this.staffEdit.cards = [];\r\n }\r\n\r\n result.userId = this.staffEdit.userId;\r\n this.staffEdit.cards.push(result);\r\n let c = this.staffEdit.cards.length - 1;\r\n this.activateCardId(this.staffEdit.cards[c], c);\r\n }\r\n });\r\n }\r\n\r\n editCardId(row, i) {\r\n var dialog = this.dialog.open(UserCardIdEditorComponent, {\r\n data: { header: \"Edit CardId\", userCardId: row, isUserInfo: true },\r\n width: '400px',\r\n panelClass: 'user-info-modal',\r\n backdropClass: 'user-info-backdrop',\r\n disableClose: true\r\n });\r\n\r\n dialog.afterClosed().subscribe(result => {\r\n console.log(\"resulting data: \", result)\r\n if (result && result.cardId) {\r\n if (typeof (this.staffEdit) == typeof (undefined)) {\r\n this.staffEdit = new Staff();\r\n }\r\n\r\n if (typeof (this.staffEdit.cards) == typeof (undefined)) {\r\n this.staffEdit.cards = [];\r\n }\r\n\r\n result.userId = this.staffEdit.userId;\r\n this.staffEdit.cards[i] = result;\r\n }\r\n });\r\n }\r\n\r\n activateCardId(row, i) {\r\n for (var j = 0; j < this.staffEdit.cards.length; j++) {\r\n this.staffEdit.cards[j].status = \"INACTIVE\";\r\n }\r\n\r\n this.staffEdit.cards[i].status = \"ACTIVE\";\r\n }\r\n\r\n deleteCardId(row: UserCardId) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.cardId + '\\\" ?', DialogType.confirm, () => this.deleteCardIdHelper(row));\r\n }\r\n\r\n deleteCardIdHelper(row: UserCardId) {\r\n\r\n this.staffEdit.cards = this.staffEdit.cards.filter(item => item !== row);\r\n }\r\n\r\n get canManageStaffs() {\r\n return true; //this.accountService.userHasPermission(Permission.manageStaffsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdGFmZi9zdGFmZnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vc3RhZmYvc3RhZmZzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n

Staff Directory

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{(row.isFAS ? 'YES' : 'NO')}}\\r\\n \\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Staff } from 'src/app/models/meal-order/staff.model';\r\nimport { StaffEditorComponent } from './staff-editor.component';\r\nimport { StaffService } from 'src/app/services/meal-order/staff.service';\r\n\r\n\r\n@Component({\r\n selector: 'staffs-management',\r\n templateUrl: './staffs-management.component.html',\r\n styleUrls: ['./staffs-management.component.css']\r\n})\r\nexport class StaffsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Staff[] = [];\r\n rowsCache: Staff[] = [];\r\n allPermissions: Permission[] = [];\r\n editedStaff: Staff;\r\n sourceStaff: Staff;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() outletId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('fasTemplate')\r\n fasTemplate: TemplateRef;\r\n\r\n @ViewChild('staffEditorComponent')\r\n staffEditorComponent: StaffEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private staffService: StaffService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(staff: Staff): void {\r\n const dialogRef = this.dialog.open(StaffEditorComponent, {\r\n data: { header: this.header, staff: staff },\r\n width: '800px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: gT('common.Name') },\r\n { prop: 'staffTypeName', name: 'Type' },\r\n { prop: 'departmentName', name: 'Department' },\r\n { prop: 'gender', name: 'Gender'},\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.staffService.getStaffsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let staffs = results.pagedData;\r\n\r\n staffs.forEach((staff, index, staffs) => {\r\n (staff).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...staffs];\r\n this.rows = staffs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newStaff() {\r\n this.header = 'New Staff';\r\n this.editedStaff = new Staff();\r\n this.openDialog(this.editedStaff);\r\n }\r\n\r\n\r\n editStaff(row: Staff) {\r\n this.editedStaff = row;\r\n this.header = 'Edit Staff';\r\n this.openDialog(this.editedStaff);\r\n }\r\n\r\n deleteStaff(row: Staff) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" staff?', DialogType.confirm, () => this.deleteStaffHelper(row));\r\n }\r\n\r\n\r\n deleteStaffHelper(row: Staff) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.staffService.deleteStaff(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the staff.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageStaffs() {\r\n return true; //this.accountService.userHasPermission(Permission.manageStaffsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdG9yZS1pbmZvL2RvLXNlbGVjdG9yL2RvLXNlbGVjdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3N0b3JlLWluZm8vZG8tc2VsZWN0b3IvZG8tc2VsZWN0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51cGxvYWQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAjMjhhNzQ1O1xyXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DO NumberStatus
\\r\\n Receive\\r\\n \\r\\n {{row.doNumber}}In Progress
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryOrder } from 'src/app/models/meal-order/delivery-order.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ReceiveDOComponent } from './../receive-do/receive-do.component'\r\n\r\n@Component({\r\n selector: 'do-selector',\r\n templateUrl: './do-selector.component.html',\r\n styleUrls: ['./do-selector.component.css']\r\n})\r\nexport class DOSelectorComponent implements OnInit {\r\n dos: DeliveryOrder[];\r\n dosCache: DeliveryOrder[];\r\n editStore: StoreInfo;\r\n selectedCaterers: CatererOutlet[];\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.store) != typeof (undefined)) {\r\n this.editStore = data.store;\r\n\r\n //if (data.catererOutlets) {\r\n // //this.editStore.catererOutlets = [];\r\n //}\r\n //this.selectedCaterers = data.outlet.catererOutlets;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(ToStoreId)==' + this.editStore.id;\r\n\r\n this.deliveryService.getDeliveryOrdersByFilter(filter).subscribe(results => {\r\n this.dos = results.pagedData;\r\n\r\n //this.dos.map(cg => {\r\n // if (this.editOutlet.catererOutlets && typeof (this.editOutlet.catererOutlets) != typeof (undefined)) {\r\n // let catererOutlet = this.editOutlet.catererOutlets.find(item => item.catererInfoId == cg.id);\r\n // if (catererOutlet) {\r\n // cg.status = catererOutlet.status;\r\n // }\r\n // }\r\n //});\r\n\r\n console.log(\"dos: \", this.dos)\r\n\r\n\r\n this.dosCache = this.dos;\r\n\r\n }, error => { });\r\n\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n //requestCaterer(row: CatererInfo) {\r\n // this.deliveryService.requestCaterer(row.id, this.editOutlet.id, 'REQUESTED').subscribe(results => {\r\n // if (results.isSuccess) {\r\n // row.status = 'REQUESTED';\r\n // }\r\n // }, error => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.alertService.showStickyMessage(\"Request Error\", `An error occured while requesting the caterer.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // MessageSeverity.error);\r\n // });\r\n //}\r\n\r\n onSearchChanged(value: string) {\r\n this.dos = this.dosCache.filter(r => Utilities.searchArray(value, false, r.doNumber));\r\n }\r\n\r\n\r\n receiveDO(row) {\r\n const dialogRef = this.dialog.open(ReceiveDOComponent, {\r\n data: { header: \"Receive Delivery Order\", do: row },\r\n width: '1200px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdG9yZS1pbmZvL2ludmVudG9yeS1kZXRhaWwvaW52ZW50b3J5LWRldGFpbC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdG9yZS1pbmZvL2ludmVudG9yeS1kZXRhaWwvaW52ZW50b3J5LWRldGFpbC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMyOGE3NDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryOrder } from 'src/app/models/meal-order/delivery-order.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { StoreInventory, StoreInventoryDetail } from '../../../../models/meal-order/store-inventory.model';\r\n\r\n@Component({\r\n selector: 'inventory-detail',\r\n templateUrl: './inventory-detail.component.html',\r\n styleUrls: ['./inventory-detail.component.css']\r\n})\r\nexport class InventoryDetailComponent implements OnInit {\r\n private isSaving: boolean;\r\n editInventory: StoreInventoryDetail;\r\n doDishes = [];\r\n doCartons = [];\r\n countDish = {};\r\n countCarton = {};\r\n\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.do) != typeof (undefined)) {\r\n this.editInventory = data.do;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n canManageReceive() {\r\n return true;\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdG9yZS1pbmZvL2ludmVudG9yeS1zZWxlY3Rvci9pbnZlbnRvcnktc2VsZWN0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGlCQUFpQjtBQUNuQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vc3RvcmUtaW5mby9pbnZlbnRvcnktc2VsZWN0b3IvaW52ZW50b3J5LXNlbGVjdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudXBsb2FkIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBjb2xvcjogIzI4YTc0NTtcclxuICBtYXJnaW4tbGVmdDogMTVweDtcclxuICBsaW5lLWhlaWdodDogMzZweDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Time ReceivedDish CodeQuantityDelivered ByRemarks
\\r\\n Details\\r\\n \\r\\n {{row.timeReceived | date: 'd-MM-y, HH:mm':'UTC +14'}}{{row.dish.code }}{{row.qtyReceived }}{{row.storeInventory.deliveredBy}}{{row.remarks}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { DeliveryOrder } from 'src/app/models/meal-order/delivery-order.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { InventoryDetailComponent } from './../inventory-detail/inventory-detail.component'\r\nimport { StoreInventory } from 'src/app/models/meal-order/store-inventory.model'\r\n\r\n@Component({\r\n selector: 'inventory-selector',\r\n templateUrl: './inventory-selector.component.html',\r\n styleUrls: ['./inventory-selector.component.css']\r\n})\r\nexport class InventorySelectorComponent implements OnInit {\r\n dos: StoreInventory[];\r\n dosCache: StoreInventory[];\r\n editStore: StoreInfo;\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.store) != typeof (undefined)) {\r\n this.editStore = data.store;\r\n\r\n //if (data.catererOutlets) {\r\n // //this.editStore.catererOutlets = [];\r\n //}\r\n //this.selectedCaterers = data.outlet.catererOutlets;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n let filter = new Filter();\r\n filter.sorts = 'timeReceived'\r\n filter.filters = '(IsActive)==true,(timeReceived)>2022-01-01T00:00:00,(StoreInfoId)==' + this.editStore.id;\r\n\r\n this.deliveryService.getStoreInventoryDetailsByFilter(filter).subscribe(results => {\r\n this.dos = results.pagedData;\r\n\r\n //this.dos.map(cg => {\r\n // if (this.editOutlet.catererOutlets && typeof (this.editOutlet.catererOutlets) != typeof (undefined)) {\r\n // let catererOutlet = this.editOutlet.catererOutlets.find(item => item.catererInfoId == cg.id);\r\n // if (catererOutlet) {\r\n // cg.status = catererOutlet.status;\r\n // }\r\n // }\r\n //});\r\n\r\n console.log(\"dos: \", this.dos)\r\n\r\n\r\n this.dosCache = this.dos;\r\n\r\n }, error => { });\r\n\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n //requestCaterer(row: CatererInfo) {\r\n // this.deliveryService.requestCaterer(row.id, this.editOutlet.id, 'REQUESTED').subscribe(results => {\r\n // if (results.isSuccess) {\r\n // row.status = 'REQUESTED';\r\n // }\r\n // }, error => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.alertService.showStickyMessage(\"Request Error\", `An error occured while requesting the caterer.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // MessageSeverity.error);\r\n // });\r\n //}\r\n\r\n onSearchChanged(value: string) {\r\n this.dos = this.dosCache.filter(r => Utilities.searchArray(value, false, r.deliveredBy));\r\n }\r\n\r\n\r\n seeDetail(row) {\r\n const dialogRef = this.dialog.open(InventoryDetailComponent, {\r\n data: { header: \"Stock Details\", do: row },\r\n width: '1200px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdG9yZS1pbmZvL3JlY2VpdmUtZG8vcmVjZWl2ZS1kby5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdG9yZS1pbmZvL3JlY2VpdmUtZG8vcmVjZWl2ZS1kby5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMyOGE3NDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Carton CodeQty ExpectedQty ReceivedQty to Receive
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Dish CodeQty ExpectedQty ReceivedQty to ReceiveRemarks
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { DeliveryOrder } from 'src/app/models/meal-order/delivery-order.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { StoreInventory, StoreInventoryDetail } from '../../../../models/meal-order/store-inventory.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'receive-do',\r\n templateUrl: './receive-do.component.html',\r\n styleUrls: ['./receive-do.component.css']\r\n})\r\nexport class ReceiveDOComponent implements OnInit {\r\n private isSaving: boolean;\r\n editDo: DeliveryOrder;\r\n inventories: StoreInventory[];\r\n editInventory: StoreInventory;\r\n doDishes = [];\r\n doCartons = [];\r\n countDish = {};\r\n countCarton = {};\r\n\r\n constructor(private http: HttpClient, private alertService: AlertService, private deliveryService: DeliveryService, public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.do) != typeof (undefined)) {\r\n this.editDo = data.do;\r\n //if (data.catererOutlets) {\r\n // //this.editStore.catererOutlets = [];\r\n //}\r\n //this.selectedCaterers = data.outlet.catererOutlets;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(DeliveryOrderID)==' + this.editDo.id;\r\n\r\n this.deliveryService.getStoreInventoriesByFilter(filter).subscribe(results => {\r\n this.inventories = results.pagedData;\r\n\r\n //this.dos.map(cg => {\r\n // if (this.editOutlet.catererOutlets && typeof (this.editOutlet.catererOutlets) != typeof (undefined)) {\r\n // let catererOutlet = this.editOutlet.catererOutlets.find(item => item.catererInfoId == cg.id);\r\n // if (catererOutlet) {\r\n // cg.status = catererOutlet.status;\r\n // }\r\n // }\r\n //});\r\n\r\n console.log(this.inventories)\r\n\r\n if (this.inventories.length == 0) {\r\n this.getDoDishes();\r\n this.editInventory = new StoreInventory();\r\n } else {\r\n this.editInventory = this.inventories[0];\r\n this.getSIDishes();\r\n }\r\n\r\n }, error => { });\r\n\r\n }\r\n\r\n getDoDishes() {\r\n this.editDo.deliveryDetails.forEach((dod, index, periods) => {\r\n dod.deliveryBentos.forEach((db, index2, periods2) => {\r\n if (!this.countDish[db.dishId]) {\r\n db.qty = 1;\r\n db.cartonId = dod.cartonAssetId;\r\n this.countDish[db.dishId] = db;\r\n } else {\r\n this.countDish[db.dishId].qty = this.countDish[db.dishId].qty + 1;\r\n }\r\n });\r\n if (!this.countCarton[dod.cartonAssetId]) {\r\n dod.qty = 1;\r\n this.countCarton[dod.cartonAssetId] = dod;\r\n } else {\r\n this.countCarton[dod.cartonAssetId].qty = this.countCarton[dod.cartonAssetId].qty + 1;\r\n }\r\n });\r\n\r\n console.log(\"count Dish: \", this.countDish)\r\n\r\n console.log(\"count Carton: \", this.countCarton)\r\n\r\n for (let [key, value] of Object.entries(this.countCarton)) {\r\n console.log(key, value)\r\n let carton = {\r\n cartonId: key,\r\n cartonCode: (value as any).cartonAssetCode,\r\n qtyExpected: (value as any).qty,\r\n qtyReceived: 0,\r\n qtyToReceive: 0\r\n }\r\n this.doCartons.push(carton);\r\n }\r\n\r\n for (let [key, value] of Object.entries(this.countDish)) {\r\n console.log(key, value)\r\n let dish = {\r\n dishId: key,\r\n dishCode: (value as any).dishCode,\r\n cartonId: (value as any).cartonId,\r\n qtyExpected: (value as any).qty,\r\n qtyReceived: 0,\r\n qtyToReceive: 0\r\n }\r\n this.doDishes.push(dish);\r\n }\r\n\r\n console.log(\"do Cartons: \", this.doCartons)\r\n\r\n console.log(\"do Dishes: \",this.doDishes )\r\n }\r\n\r\n getSIDishes() {\r\n this.editInventory.storeInventoryDetails.forEach((detail) => {\r\n if ((detail as any).dish) {\r\n (detail as any).qtyToReceive = 0;\r\n (detail as any).dishCode = (detail as any).dish.code;\r\n this.doDishes.push(detail);\r\n } else if ((detail as any).carton) {\r\n (detail as any).qtyToReceive = 0;\r\n (detail as any).cartonCode = (detail as any).carton.code;\r\n this.doCartons.push(detail);\r\n }\r\n });\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n\r\n private save() {\r\n var complete = true;\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.editInventory.timeReceived = moment().utc().local().toDate();\r\n let allDetail = [...this.doDishes, ...this.doCartons];\r\n allDetail.forEach((sid) => {\r\n sid.qtyReceived = sid.qtyReceived + sid.qtyToReceive;\r\n sid.timeReceived = this.editInventory.timeReceived;\r\n sid.storeInfoId = this.editInventory.storeInfoId;\r\n if (sid.qtyExpected > sid.qtyReceived) {\r\n complete = false;\r\n }\r\n })\r\n this.editInventory.storeInventoryDetails = allDetail;\r\n this.editInventory.deliveryOrderId = this.editDo.id;\r\n this.editInventory.storeInfoId = this.editDo.toStoreId;\r\n console.log(this.editInventory);\r\n\r\n\r\n if (this.editInventory.id) {\r\n this.deliveryService.updateStoreInventory(this.editInventory).subscribe(storeInventory => this.saveSuccessHelper(this.editInventory), error => this.saveFailedHelper(error));\r\n } else {\r\n this.deliveryService.newStoreInventory(this.editInventory).subscribe(storeInventory => this.saveSuccessHelper(this.editInventory), error => this.saveFailedHelper(error));\r\n }\r\n\r\n if (complete) {\r\n this.editDo.completed = true;\r\n this.deliveryService.updateDeliveryOrder(this.editDo).subscribe();\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(storeInventory?: StoreInventory) {\r\n if (storeInventory)\r\n Object.assign(this.editInventory, storeInventory);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showMessage(\"Success\", `Sessions were updated successfully`, MessageSeverity.success);\r\n\r\n\r\n this.editInventory = new StoreInventory();\r\n\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n canManageReceive() {\r\n return true;\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdG9yZS1pbmZvL3N0b3JlLWluZm8tZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVksRUFBRSx3Q0FBd0M7RUFDdEQsV0FBVyxFQUFFLHdDQUF3QztFQUNyRCxzQkFBc0IsRUFBRSw2Q0FBNkM7RUFDckUscUJBQXFCLEVBQUUsNkNBQTZDO0FBQ3RFIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdG9yZS1pbmZvL3N0b3JlLWluZm8tZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJhZGlvLXJpcHBsZSB7XHJcbiAgaGVpZ2h0OiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHdpZHRoOiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Store Type\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Kitchen\\r\\n \\r\\n \\r\\n Inventory\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Caterer\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{catererInfo.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
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CatererInfo } from '../../../models/meal-order/caterer-info.model';\r\n\r\n\r\n@Component({\r\n selector: 'store-info-editor',\r\n templateUrl: './store-info-editor.component.html',\r\n styleUrls: ['./store-info-editor.component.css']\r\n})\r\nexport class StoreInfoEditorComponent {\r\n\r\n private isNewStoreInfo = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingStoreInfoCode: string;\r\n private storeInfoEdit: StoreInfo = new StoreInfo();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n private catererInfos: CatererInfo[] = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.storeInfo) != typeof (undefined)) {\r\n if (data.storeInfo.id) {\r\n this.editStoreInfo(data.storeInfo);\r\n } else {\r\n this.newStoreInfo();\r\n }\r\n }\r\n\r\n this.getCatererInfos();\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.storeInfoEdit.institutionId = this.accountService.currentUser.institutionId;\r\n console.log(this.periods);\r\n let selectedPeriods = this.periods.filter(f => f.checked);\r\n \r\n\r\n if (this.isNewStoreInfo) {\r\n this.deliveryService.newStoreInfo(this.storeInfoEdit).subscribe(storeInfo => this.saveSuccessHelper(storeInfo), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateStoreInfo(this.storeInfoEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(storeInfo?: StoreInfo) {\r\n if (storeInfo)\r\n Object.assign(this.storeInfoEdit, storeInfo);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewStoreInfo)\r\n this.alertService.showMessage(\"Success\", `Store Info \\\"${this.storeInfoEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Store Info \\\"${this.storeInfoEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.storeInfoEdit = new StoreInfo();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewStoreInfo && this.accountService.currentUser.facilities.some(r => r == this.editingStoreInfoCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.storeInfoEdit = new StoreInfo();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newStoreInfo() {\r\n this.isNewStoreInfo = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingStoreInfoCode = null;\r\n this.selectedValues = {};\r\n this.storeInfoEdit = new StoreInfo();\r\n\r\n return this.storeInfoEdit;\r\n }\r\n\r\n editStoreInfo(storeInfo: StoreInfo) {\r\n if (storeInfo) {\r\n this.isNewStoreInfo = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingStoreInfoCode = storeInfo.name;\r\n this.selectedValues = {};\r\n this.storeInfoEdit = new StoreInfo();\r\n Object.assign(this.storeInfoEdit, storeInfo);\r\n\r\n return this.storeInfoEdit;\r\n }\r\n else {\r\n return this.newStoreInfo();\r\n }\r\n }\r\n\r\n getCatererInfos() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getCatererInfosByFilter(filter)\r\n .subscribe(results => {\r\n this.catererInfos = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving caterers.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n\r\n get canManageStoreInfos() {\r\n return true; //this.accountService.userHasPermission(Permission.manageStoreInfosPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdG9yZS1pbmZvL3N0b3JlLWluZm9zLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vc3RvcmUtaW5mby9zdG9yZS1pbmZvcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbi5hY3RpdmUge1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Store

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Receive\\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n Stock\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { StoreInfoEditorComponent } from './store-info-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { DOSelectorComponent } from './do-selector/do-selector.component';\r\nimport { InventorySelectorComponent } from './inventory-selector/inventory-selector.component';\r\n\r\n\r\n@Component({\r\n selector: 'store-infos-management',\r\n templateUrl: './store-infos-management.component.html',\r\n styleUrls: ['./store-infos-management.component.css']\r\n})\r\nexport class StoreInfosManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: StoreInfo[] = [];\r\n rowsCache: StoreInfo[] = [];\r\n allPermissions: Permission[] = [];\r\n editedStoreInfo: StoreInfo;\r\n sourceStoreInfo: StoreInfo;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('storeInfoEditor')\r\n storeInfoEditor: StoreInfoEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(storeInfo: StoreInfo): void {\r\n const dialogRef = this.dialog.open(StoreInfoEditorComponent, {\r\n data: { header: this.header, storeInfo: storeInfo },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'code', name: 'Code' },\r\n { prop: 'name', name: 'Name' },\r\n { prop: 'address', name: 'Address' },\r\n { prop: 'storeType', name: 'Store Type' },\r\n { prop: 'catererInfoName', name: 'Caterer' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deliveryService.getStoreInfosByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let storeInfos = results.pagedData;\r\n\r\n storeInfos.forEach((storeInfo, index, storeInfos) => {\r\n (storeInfo).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...storeInfos];\r\n this.rows = storeInfos;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newStoreInfo() {\r\n this.header = 'New Store Info';\r\n this.editedStoreInfo = new StoreInfo();\r\n this.openDialog(this.editedStoreInfo);\r\n }\r\n\r\n\r\n editStoreInfo(row: StoreInfo) {\r\n this.editedStoreInfo = row;\r\n this.header = 'Edit Store Info';\r\n this.openDialog(this.editedStoreInfo);\r\n }\r\n\r\n deleteStoreInfo(row: StoreInfo) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" Store Info?', DialogType.confirm, () => this.deleteStoreInfoHelper(row));\r\n }\r\n\r\n\r\n deleteStoreInfoHelper(row: StoreInfo) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteStoreInfo(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Store Info.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageStoreInfos() {\r\n return true; //this.accountService.userHasPermission(Permission.manageStoreInfosPermission)\r\n }\r\n\r\n receiveDO(row) {\r\n const dialogRef = this.dialog.open(DOSelectorComponent, {\r\n data: { header: \"Delivery Order List\", store: row },\r\n width: '500px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n stock(row) {\r\n const dialogRef = this.dialog.open(InventorySelectorComponent, {\r\n data: { header: \"Stock List\", store: row },\r\n width: '1000px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: 11px !important;\\r\\n font-weight: 400 !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdHVkZW50LWdyb3VwL3N0dWRlbnQtZ3JvdXAtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLDBCQUEwQjtFQUMxQiwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3N0dWRlbnQtZ3JvdXAvc3R1ZGVudC1ncm91cC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Student Group Information

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Name is required\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Name is required\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Student Name
{{getName(details.studentId)}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Student, StudentCard, StudentInterestGroup, StudentRestriction } from 'src/app/models/meal-order/student.model';\r\nimport { StudentGroup, StudentGroupDetail } from 'src/app/models/meal-order/student-group.model';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { CommonFilter, Filter } from 'src/app/models/sieve-filter.model';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\nimport { ClassLevel } from 'src/app/models/meal-order/class-level.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { UserService } from 'src/app/services/meal-order/user.service';\r\nimport { UserCardIdEditorComponent } from '../../controls/usercardid/usercardid-editor.component';\r\nimport { UserCardId } from 'src/app/models/usercardid.model';\r\nimport { RestrictionService } from 'src/app/services/meal-order/restriction.service';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { FormControl } from '@angular/forms';\r\nimport { StudentSelectorComponent } from './student-selector/student-selector.component'\r\n\r\n\r\n@Component({\r\n selector: 'student-group-editor',\r\n templateUrl: './student-group-editor.component.html',\r\n styleUrls: ['./student-group-editor.component.css']\r\n})\r\nexport class StudentGroupEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isNewGroup = false;\r\n private isChangePassword = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingStudentName: string;\r\n private groupEdit: StudentGroup = new StudentGroup();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private validation = { name: false, gender: false, classLevel: false, class: false, fas: false };\r\n private isAddAccount = false;\r\n private outletId;\r\n\r\n public students = [];\r\n\r\n public searchForm: FormControl = new FormControl();\r\n groupId: any;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private studentService: StudentService, private accountService: AccountService, private classService: ClassService,\r\n private userService: UserService, private restrictionService: RestrictionService, private deliveryService: DeliveryService,\r\n public dialogRef: MatDialogRef, public dialog: MatDialog, \r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.outletId) != typeof (undefined)) {\r\n this.outletId = data.outletId;\r\n }\r\n if (typeof (data.group) != typeof (undefined) && data.group.id) {\r\n this.editGroup(data.group);\r\n } else {\r\n this.newGroup();\r\n }\r\n\r\n this.getStudents();\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n getStudents() {\r\n let filter = new Filter();\r\n let f = this.outletId ? '(OutletId)==' + this.outletId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.studentService.getStudentsByFilter(filter)\r\n .subscribe(results => {\r\n this.students = results.pagedData;\r\n console.log(\"students: \", this.students)\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving students.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n //private validate() {\r\n // this.validation = { name: false, gender: false, classLevel: false, class: false, fas: false };;\r\n // if (this.studentEdit.name && this.studentEdit.name.trim().length == 0) {\r\n // this.validation.name = true;\r\n // //this.name.control.setErrors({});\r\n // }\r\n\r\n // if (!this.studentEdit.gender) {\r\n // this.validation.gender = true;\r\n // //this.value.control.setErrors({});\r\n // }\r\n\r\n // if (!this.studentEdit.classLevelId) {\r\n // this.validation.classLevel = true;\r\n // //this.description.control.setErrors({});\r\n // }\r\n\r\n // if (!this.studentEdit.classId) {\r\n // this.validation.class = true;\r\n // //this.description.control.setErrors({});\r\n // }\r\n\r\n // if (!this.studentEdit.isFAS) {\r\n // this.validation.fas = true;\r\n // //this.description.control.setErrors({});\r\n // }\r\n\r\n // if (this.validation.name || this.validation.gender || this.validation.classLevel || this.validation.class || this.validation.fas) {\r\n // this.showValidationErrors = true;\r\n // return false;\r\n // }\r\n\r\n // return true;\r\n //}\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.groupEdit.outletId = this.outletId;\r\n\r\n if (this.isNewGroup) {\r\n this.studentService.newStudentGroup(this.groupEdit).subscribe(group => this.saveSuccessHelper(group), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.studentService.updateStudentGroup(this.groupEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n invalidate() {\r\n return false;\r\n }\r\n\r\n private saveSuccessHelper(group?: StudentGroup) {\r\n if (group)\r\n Object.assign(this.groupEdit, group);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewGroup)\r\n this.alertService.showMessage(\"Success\", `Student group \\\"${this.groupEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to student group \\\"${this.groupEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.groupEdit = new StudentGroup();\r\n this.resetForm();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.groupEdit = new StudentGroup();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n this.isChangePassword = false;\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newGroup() {\r\n this.isNewGroup = true;\r\n this.editingStudentName = null;\r\n this.selectedValues = {};\r\n this.groupEdit = new StudentGroup();\r\n return this.groupEdit;\r\n }\r\n\r\n editGroup(group: StudentGroup) {\r\n if (group) {\r\n this.isNewGroup = false;\r\n this.showValidationErrors = true;\r\n\r\n this.selectedValues = {};\r\n this.groupEdit = new StudentGroup();\r\n Object.assign(this.groupEdit, group);\r\n return this.groupEdit;\r\n }\r\n else {\r\n return this.newGroup();\r\n }\r\n }\r\n\r\n addStudentSel() {\r\n const dialogRef = this.dialog.open(StudentSelectorComponent, {\r\n data: { header: \"Students\", outletId: this.outletId, students: this.groupEdit.sgdetails },\r\n width: '800px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (!result.isCancel) {\r\n console.log(\"early selstore:\", this.groupEdit.sgdetails);\r\n console.log(\"change selstore:\", result.selectedStudents);\r\n this.groupEdit.sgdetails = [];\r\n result.selectedStudents.forEach(student => {\r\n var detail = new StudentGroupDetail();\r\n detail.studentId = student.id;\r\n detail.studentGroupId = this.groupEdit.id;\r\n this.groupEdit.sgdetails.push(detail);\r\n })\r\n console.log(\"final sgdetails: \", this.groupEdit)\r\n }\r\n });\r\n }\r\n\r\n getName(id) {\r\n let student = this.students.find(x => x.id === id);\r\n if (student) {\r\n return student.name\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n get canManageStudents() {\r\n return true; //this.accountService.userHasPermission(Permission.manageStudentsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdHVkZW50LWdyb3VwL3N0dWRlbnQtZ3JvdXBzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3N0dWRlbnQtZ3JvdXAvc3R1ZGVudC1ncm91cHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Student Group Directory

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{(row.isFAS ? 'YES' : 'NO')}}\\r\\n \\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n Bulk Meal Order\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { StudentGroup } from 'src/app/models/meal-order/student-group.model';\r\nimport { StudentGroupEditorComponent } from './student-group-editor.component';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { TokenOrdersBulkManagementComponent } from './../token-order-bulk/token-orders-bulk-management.component';\r\n\r\n\r\n@Component({\r\n selector: 'student-groups-management',\r\n templateUrl: './student-groups-management.component.html',\r\n styleUrls: ['./student-groups-management.component.css']\r\n})\r\nexport class StudentGroupsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: StudentGroup[] = [];\r\n rowsCache: StudentGroup[] = [];\r\n allPermissions: Permission[] = [];\r\n editedGroup: StudentGroup;\r\n sourceGroup: StudentGroup;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() outletId: string;\r\n\r\n @ViewChild('fileImport')\r\n fileImport: ElementRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('fasTemplate')\r\n fasTemplate: TemplateRef;\r\n\r\n @ViewChild('studentEditorComponent')\r\n studentEditorComponent: StudentGroupEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private studentService: StudentService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(group: StudentGroup): void {\r\n const dialogRef = this.dialog.open(StudentGroupEditorComponent, {\r\n data: { header: this.header, group: group, outletId: this.outletId },\r\n width: '1000px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'code', name: 'Code' },\r\n { prop: 'name', name: 'Name' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.outletId ? '(OutletId)==' + this.outletId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.studentService.getStudentGroupsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let groups = results.pagedData;\r\n\r\n groups.forEach((group, index, students) => {\r\n (group).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...groups];\r\n this.rows = groups;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newGroup() {\r\n this.header = 'New Student Group';\r\n this.editedGroup = new StudentGroup();\r\n this.openDialog(this.editedGroup);\r\n }\r\n\r\n\r\n editGroup(row: StudentGroup) {\r\n this.editedGroup = row;\r\n this.header = 'Edit Student Group';\r\n this.openDialog(this.editedGroup);\r\n }\r\n\r\n deleteGroup(row: StudentGroup) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" student group?', DialogType.confirm, () => this.deleteGroupHelper(row));\r\n }\r\n\r\n\r\n deleteGroupHelper(row: StudentGroup) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.studentService.deleteStudentGroup(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the student group.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n openTokenOrder(row) {\r\n const dialogRef = this.dialog.open(TokenOrdersBulkManagementComponent, {\r\n data: { header: \"Meal Order\", group: row },\r\n width: '1200px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n get canManageStudents() {\r\n return true;\r\n }\r\n\r\n}\r\n","module.exports = \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdHVkZW50LWdyb3VwL3N0dWRlbnQtc2VsZWN0b3Ivc3R1ZGVudC1zZWxlY3Rvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdHVkZW50LWdyb3VwL3N0dWRlbnQtc2VsZWN0b3Ivc3R1ZGVudC1zZWxlY3Rvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6ICMyOGE3NDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n

{{data.header}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Class Filter:\\r\\n \\r\\n \\r\\n {{c.name}}\\r\\n \\r\\n \\r\\n Interest Group Filter:\\r\\n \\r\\n \\r\\n {{ig.name}}\\r\\n \\r\\n \\r\\n is FAS Filter:\\r\\n \\r\\n Yes \\r\\n No \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{(row.isFAS ? 'YES' : 'NO')}}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, Output, EventEmitter, Input, Inject, TemplateRef, ViewChild } from '@angular/core';\r\nimport { HttpEventType, HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Dish, DishDetail } from 'src/app/models/meal-order/dish.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StoreInfo } from 'src/app/models/meal-order/store-info.model';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { Class } from 'src/app/models/meal-order/class.model';\r\nimport { InterestGroup } from 'src/app/models/meal-order/interest-group.model';\r\nimport { StudentGroup, StudentGroupDetail } from 'src/app/models/meal-order/student-group.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { Outlet } from 'src/app/models/meal-order/outlet.model';\r\nimport { CatererInfo, CatererOutlet } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\n\r\n@Component({\r\n selector: 'student-selector',\r\n templateUrl: './student-selector.component.html',\r\n styleUrls: ['./student-selector.component.css']\r\n})\r\nexport class StudentSelectorComponent implements OnInit {\r\n public studentIds: number[];\r\n students: Student[];\r\n studentsCache: Student[];\r\n selectedStudents: StudentGroupDetail[];\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n columns: any[] = [];\r\n rows: Student[] = [];\r\n rowsCache: Student[] = [];\r\n outletId: string;\r\n editOutlet: Outlet;\r\n selectedCaterers: CatererOutlet[];\r\n public classes: Class[] = [];\r\n public interestGroups: InterestGroup[] = [];\r\n\r\n filterIsFas: boolean;\r\n filterClassId: string;\r\n filterIGId: string;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('fasTemplate')\r\n fasTemplate: TemplateRef;\r\n\r\n constructor(private http: HttpClient,\r\n private alertService: AlertService, public dialogRef: MatDialogRef, private studentService: StudentService, private classService: ClassService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n console.log(\"data inside: \", data);\r\n this.outletId = data.outletId;\r\n if (typeof (data.students) != typeof (undefined)) {\r\n this.selectedStudents = data.students;\r\n }\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 0;\r\n\r\n\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Student Name' },\r\n { prop: 'classBatchName', name: 'Batch' },\r\n { prop: 'classLevelName', name: 'Class Level' },\r\n { prop: 'className', name: 'Class' },\r\n { name: 'Is FAS', cellTemplate: this.fasTemplate },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n this.getClasses();\r\n this.getInterestGroups();\r\n }\r\n\r\n getClasses() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n\r\n this.classService.getClassesByFilter(filter)\r\n .subscribe(results => {\r\n this.classes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving classes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getInterestGroups() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.studentService.getInterestGroupsByFilter(filter)\r\n .subscribe(results => {\r\n this.interestGroups = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving interest groups.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.outletId ? '(OutletId)==' + this.outletId + ',' : '';\r\n let c = this.filterClassId ? '(ClassId)==' + this.filterClassId + ',' : '';\r\n let ig = this.filterIGId ? '(StudentInterestGroupId)==' + this.filterIGId + ',' : '';\r\n let fas = this.filterIsFas != null ? '(IsFAS)==' + this.filterIsFas + ',' : '';\r\n this.filter.filters = f + c + ig + fas + '(IsActive)==true,(Name)@=' + this.keyword;\r\n\r\n this.studentService.getStudentsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n console.log(\"result page: \", this.pagedResult)\r\n\r\n let students = results.pagedData;\r\n\r\n students.forEach((student, index, stores) => {\r\n (student).index = index + 1;\r\n });\r\n\r\n console.log(\"selected students: \", this.selectedStudents)\r\n if (typeof (this.selectedStudents) != typeof (undefined)) {\r\n students.map(cg => {\r\n const index = this.selectedStudents.findIndex(item => item.studentId == cg.id)\r\n if (index >= 0) {\r\n cg.checked = true;\r\n }\r\n });\r\n }\r\n\r\n this.rowsCache = [...students];\r\n this.rows = students;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n onClassChanged(value: any) {\r\n this.filterClassId = value.value;\r\n console.log(\"filterClassID: \", value)\r\n this.loadData(null);\r\n }\r\n\r\n onGroupChanged(value: any) {\r\n this.filterIGId = value.value;\r\n console.log(\"filterInterestGroupID: \", value)\r\n this.loadData(null);\r\n }\r\n\r\n onFASChange(value: any) {\r\n this.filterIsFas = value.value;\r\n console.log(\"filterFasID: \", value)\r\n this.loadData(null);\r\n }\r\n\r\n clearFilter() {\r\n this.keyword = '';\r\n this.filterClassId = null;\r\n this.filterIGId = null;\r\n this.filterIsFas = null;\r\n this.loadData(null);\r\n }\r\n\r\n public save = () => {\r\n let students = this.rows.filter((cg) => (cg).checked); \r\n this.dialogRef.close({ isCancel: false, selectedStudents: students });\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n}\r\n","module.exports = \"

Create Multiple Account

\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
No data matched.
\\r\\n
\\r\\n {{row.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
Selected Student
\\r\\n
\\r\\n
\\r\\n {{row.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, ViewChild, Inject, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Student, StudentCard, StudentInterestGroup, StudentRestriction } from 'src/app/models/meal-order/student.model';\r\nimport { CommonFilter, Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { NotificationService } from 'src/app/services/notification.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\n\r\n\r\n@Component({\r\n selector: 'student-notification-dialog',\r\n template: `\r\n

{{data.header}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Type\r\n \r\n \r\n {{notificationEvent.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\nexport class StudentNotificationDialogComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n public formResetToggle = true;\r\n\r\n public student: Student;\r\n public notificationEventId: any;\r\n public notificationEvents = [];\r\n public isSaving = false;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private notificationService: NotificationService, \r\n public dialogRef: MatDialogRef, public dialog: MatDialog, \r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.student = data.student;\r\n this.getNotificationEvents();\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n getNotificationEvents() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.notificationService.getNotificationEventsByFilter(filter)\r\n .subscribe(results => {\r\n this.notificationEvents = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving notification events.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.notificationService.sendStudentNotification(this.notificationEventId, this.student.email, this.student.userId)\r\n .subscribe(results => {\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Success\", `Notification sent!`, MessageSeverity.success);\r\n this.alertService.resetStickyMessage();\r\n this.dialogRef.close();\r\n },\r\n error => {\r\n this.isSaving = false;\r\n this.loadingIndicator = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Sending Error\", `An error occured while triggering notification.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n private cancel() {\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n get canManageStudents() {\r\n return true; //this.accountService.userHasPermission(Permission.manageStudentsPermission)\r\n }\r\n}\r\n","module.exports = \".modal {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n.display-block {\\r\\n display:block !important;\\r\\n}\\r\\n\\r\\n.cal-month-view .cal-open-day-events {\\r\\n background-color: #03b1ab !important;\\r\\n box-shadow: none !important;\\r\\n}\\r\\n\\r\\n.cal-month-view .cal-event {\\r\\n background-color: #fff !important;\\r\\n}\\r\\n\\r\\n.cal-event-action {\\r\\n color: #fff !important;\\r\\n}\\r\\n\\r\\n.event-block {\\r\\n background: #029f9a;\\r\\n color: white;\\r\\n padding-left: 5px;\\r\\n font-size: 12px;\\r\\n border-top: 1px solid white;\\r\\n}\\r\\n\\r\\n.cal-drag-active{\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n.disabled-date {\\r\\n background: #ffc8c8;\\r\\n}\\r\\n\\r\\n.outlet-disabled-date {\\r\\n background: #f96262;\\r\\n}\\r\\n\\r\\n.action-menu {\\r\\n padding-left: 5px;\\r\\n padding-right: 5px;\\r\\n}\\r\\n\\r\\n/*.cal-event-title {\\r\\n padding-right: 20px;\\r\\n width: 350px;\\r\\n display: inline-flex;\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n}*/\\r\\n\\r\\n.cal-event-title-day {\\r\\n width: 100% !important;\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n.day-free {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.day-blocked{\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.cal-day-number{\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.cal-day-number:hover{\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdHVkZW50L3N0dWRlbnQtY2FsZW5kYXIvc3R1ZGVudC1jYWxlbmRhci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZiwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsa0JBQWtCO0FBQ3BCOztBQUVBOzs7Ozs7RUFNRTs7QUFFRjtFQUNFLHNCQUFzQjtFQUN0QixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxVQUFVO0FBQ1o7O0FBRUE7RUFDRSwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdHVkZW50L3N0dWRlbnQtY2FsZW5kYXIvc3R1ZGVudC1jYWxlbmRhci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1vZGFsIHtcclxuICB6LWluZGV4OiAxMDAwO1xyXG59XHJcblxyXG4uZGlzcGxheS1ibG9jayB7XHJcbiAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2FsLW1vbnRoLXZpZXcgLmNhbC1vcGVuLWRheS1ldmVudHMge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwM2IxYWIgIWltcG9ydGFudDtcclxuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jYWwtbW9udGgtdmlldyAuY2FsLWV2ZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jYWwtZXZlbnQtYWN0aW9uIHtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZXZlbnQtYmxvY2sge1xyXG4gIGJhY2tncm91bmQ6ICMwMjlmOWE7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7XHJcbn1cclxuXHJcbi5jYWwtZHJhZy1hY3RpdmV7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLmRpc2FibGVkLWRhdGUge1xyXG4gIGJhY2tncm91bmQ6ICNmZmM4Yzg7XHJcbn1cclxuXHJcbi5vdXRsZXQtZGlzYWJsZWQtZGF0ZSB7XHJcbiAgYmFja2dyb3VuZDogI2Y5NjI2MjtcclxufVxyXG5cclxuLmFjdGlvbi1tZW51IHtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbn1cclxuXHJcbi8qLmNhbC1ldmVudC10aXRsZSB7XHJcbiAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICB3aWR0aDogMzUwcHg7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgcGFkZGluZy10b3A6IDVweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG59Ki9cclxuXHJcbi5jYWwtZXZlbnQtdGl0bGUtZGF5IHtcclxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmRheS1mcmVlIHtcclxuICBjb2xvcjogZ3JlZW47XHJcbn1cclxuXHJcbi5kYXktYmxvY2tlZHtcclxuICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4uY2FsLWRheS1udW1iZXJ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbi5jYWwtZGF5LW51bWJlcjpob3ZlcntcclxuICBjdXJzb3I6cG9pbnRlcjtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Student Calendar

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Previous\\r\\n
\\r\\n
\\r\\n Today\\r\\n
\\r\\n
\\r\\n Next\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ viewDate | calendarDate: ((view === 'list' ? 'day' : view) + 'ViewTitle'):locale }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Month\\r\\n
\\r\\n
\\r\\n Week\\r\\n
\\r\\n
\\r\\n Day\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ day.date | calendarDate:'monthViewDayNumber':locale }}\\r\\n
\\r\\n
\\r\\n
{{ev.title | slice:0:20}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, NgZone, ViewEncapsulation } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { CalendarView, CalendarEvent, CalendarEventAction, CalendarMonthViewBeforeRenderEvent, CalendarWeekViewBeforeRenderEvent, CalendarDayViewBeforeRenderEvent } from 'angular-calendar';\r\nimport { ViewPeriod } from 'calendar-utils';\r\nimport RRule from 'rrule';\r\nimport * as moment from 'moment';\r\nimport { fadeInOut } from 'src/app/services/animations';\r\nimport { AlertService, DialogType, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport {\r\n isSameMonth,\r\n isSameDay\r\n} from 'date-fns';\r\nimport { MatDialog } from '@angular/material';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ViewMenuCycleMenuComponent } from '../../menu-cycle/view-menu/view-menu.component';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { CatererInfo } from 'src/app/models/meal-order/caterer-info.model';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { OutletClassRoster, OutletClassRosterSchedule, OutletClassRosterScheduleByDay } from 'src/app/models/meal-order/outlet-class-roster.model';\r\n\r\n@Component({\r\n selector: 'student-calendar',\r\n templateUrl: './student-calendar.component.html',\r\n styleUrls: ['./student-calendar.component.css'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class StudentMenuCycleCalendarComponent implements OnInit, AfterViewInit {\r\n schedules: OutletClassRosterSchedule[] = [];\r\n rosters: OutletClassRoster[] = [];\r\n editedMenuCycle: OutletClassRosterSchedule;\r\n sourceMenuCycle: OutletClassRosterSchedule;\r\n editingMenuCycleName: { shortDescription: string };\r\n loadingIndicator: boolean;\r\n activeDayIsOpen: boolean = false;\r\n studentId: any;\r\n @Input()\r\n\r\n view: CalendarView = CalendarView.Month;\r\n viewDate: Date = new Date();\r\n @Output() viewChange: EventEmitter = new EventEmitter();\r\n\r\n @Output() viewDateChange: EventEmitter = new EventEmitter();\r\n\r\n actions: CalendarEventAction[] = [\r\n //{\r\n // label: ' Edit Menu Cycle ',\r\n // //a11yLabel: 'Edit',\r\n // onClick: ({ event }: { event: CalendarEvent }): void => {\r\n // //this.editMenuCycle(event.meta);\r\n // },\r\n //},\r\n {\r\n label: ' Enable/Disable Menu ',\r\n //a11yLabel: 'Delete',\r\n onClick: ({ event }: { event: CalendarEvent }): void => {\r\n //let startD = moment(new Date(event.meta.startDate).setHours(0));\r\n //let endD = moment(event.start);\r\n //let totalDays = endD.diff(startD, \"days\");\r\n //let totalSchedules = event.meta.schedules ? event.meta.schedules.length : 0;\r\n\r\n //let day = (totalDays % totalSchedules) + 1; //event.start.getDay();\r\n //this.openViewMenuDialog(event.meta, day);\r\n //console.log(event);\r\n },\r\n },\r\n ];\r\n\r\n private studentProfiles = [];\r\n private student: Student;\r\n private catererId: string;\r\n private outletId: string;\r\n calendarEvents: CalendarEvent[];\r\n\r\n viewPeriod: ViewPeriod;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private menuService: MenuService, private cdr: ChangeDetectorRef, private deliveryService: DeliveryService, public zone: NgZone, public dialog: MatDialog,\r\n private route: ActivatedRoute, private studentService: StudentService) {\r\n this.route.params.subscribe(queryParams => {\r\n this.studentId = queryParams[\"id\"];\r\n this.catererId = queryParams[\"catererId\"];\r\n this.outletId = queryParams[\"outletId\"];\r\n this.loadData(this.studentId);\r\n });\r\n\r\n }\r\n\r\n handleEvent(action: string, event: CalendarEvent): void {\r\n\r\n }\r\n\r\n eventUpdateEvent() {\r\n this.activeDayIsOpen = false;\r\n this.calendarEvents = [];\r\n this.calendarEvents.length = 0;\r\n \r\n\r\n \r\n this.rosters.forEach((roster) => {\r\n //if (!schedule.rrule || !schedule.rrule.byweekday || schedule.rrule.byweekday.length == 0) return;\r\n const rule: RRule = new RRule({\r\n ...roster.rrule,\r\n dtstart: moment(this.viewPeriod.start).startOf('day').toDate(),\r\n until: moment(this.viewPeriod.end).endOf('day').toDate(),\r\n });\r\n\r\n let dayCount = roster.schedules.length;\r\n let day: number = 1;\r\n let events = [];\r\n rule.all().forEach((date) => {\r\n //const { color } = event;\r\n //if(this.view == 'month') date.setDate(date.getDate() - 1);\r\n if (date >= new Date(new Date(roster.startDate).setHours(0)) && date <= new Date(new Date(roster.endDate).setHours(0))) {\r\n let schedules = roster.schedules.filter(e => e.day == day);\r\n if (schedules && schedules.length > 0) {\r\n let schedule = schedules[0];\r\n\r\n let start = new Date(date);\r\n let end = new Date(date);\r\n start.setHours(0);\r\n start.setMinutes(0);\r\n start.setMilliseconds(0);\r\n\r\n end.setHours(0);\r\n end.setMinutes(0);\r\n end.setMilliseconds(0);\r\n\r\n schedule.periods.forEach((p) => {\r\n if (p.classes && p.classes.length > 0) {\r\n let s = new Date(p.mealSessionDetailStartDate);\r\n let pStart = start;\r\n pStart.setHours(s.getHours());\r\n pStart.setMinutes(s.getMinutes());\r\n let pEnd = new Date(pStart);\r\n pEnd.setMinutes(pStart.getMinutes() + 30);\r\n let label = p.mealSessionDetailName;\r\n events.push({\r\n title: label,\r\n start: pStart,\r\n end: pEnd,\r\n meta: {\r\n isDefault: true, label, obj: { label } }\r\n });\r\n }\r\n });\r\n\r\n if (day++ >= dayCount) day = 1;\r\n }\r\n }\r\n });\r\n this.calendarEvents = this.calendarEvents.concat(Array.from(events));\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n\r\n updateCalendarEvents(\r\n viewRender:\r\n | CalendarMonthViewBeforeRenderEvent\r\n | CalendarWeekViewBeforeRenderEvent\r\n | CalendarDayViewBeforeRenderEvent\r\n ): void {\r\n if (!this.viewPeriod ||\r\n !moment(this.viewPeriod.start).isSame(viewRender.period.start) ||\r\n !moment(this.viewPeriod.end).isSame(viewRender.period.end)\r\n ) {\r\n this.viewPeriod = viewRender.period;\r\n this.calendarEvents = [];\r\n\r\n this.eventUpdateEvent();\r\n }\r\n }\r\n\r\n dayClicked(\r\n date,\r\n event\r\n ): void {\r\n if (isSameMonth(date, this.viewDate)) {\r\n this.viewDate = date;\r\n }\r\n\r\n\r\n let startD = moment(new Date(event.meta.startDate).setHours(0));\r\n let endD = moment(event.start);\r\n let totalDays = endD.diff(startD, \"days\");\r\n let totalSchedules = event.meta.schedules ? event.meta.schedules.length : 0;\r\n\r\n let day = (totalDays % totalSchedules) + 1; //event.start.getDay();\r\n //this.openViewMenuDialog(event.meta, day);\r\n console.log(event);\r\n }\r\n\r\n eventClicked(event: CalendarEvent<{ menuCycle: OutletClassRosterSchedule }>): void {\r\n //window.open(\r\n // `https://www.themoviedb.org/movie/${event.meta.film.id}`,\r\n // '_blank'\r\n //);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n loadData(id?: string) {\r\n this.studentService.getStudentById(id)\r\n .subscribe(student => {\r\n this.student = student;\r\n console.log(this.student);\r\n let approvedStudent = false;\r\n let catererStudents = [];\r\n //if (this.student.catererStudents && this.student.catererStudents) {\r\n // catererStudents = this.student.catererStudents.filter(e => e.status == 'APPROVED');\r\n // approvedStudent = catererStudents && catererStudents.length > 0;\r\n // this.catererId = catererStudents[0];\r\n //}\r\n\r\n //if (approvedStudent) {\r\n this.menuService.getStudentMenuCyclesByFilter(id, this.outletId, this.catererId)\r\n .subscribe(results => {\r\n let rosters = results;\r\n rosters.forEach((roster, index, menuCycles) => {\r\n roster.schedules.forEach((schedule, index, menuCycles) => {\r\n try {\r\n (schedule).index = index + 1;\r\n\r\n let weekday = [];\r\n\r\n //if (menuCycle.schedules) {\r\n // let dayRules = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU];\r\n // menuCycle.schedules.forEach((schedule, i, s) => {\r\n // weekday.push(dayRules[(schedule.day % 7) - 1]);\r\n // });\r\n //}\r\n\r\n //schedule.rrule = {\r\n // freq: RRule.WEEKLY,\r\n // byweekday: [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU],\r\n //}\r\n } catch (ex) { }\r\n });\r\n\r\n roster.rrule = {\r\n freq: RRule.WEEKLY,\r\n byweekday: [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR, RRule.SA, RRule.SU],\r\n }\r\n\r\n });\r\n\r\n this.rosters = rosters;\r\n this.eventUpdateEvent();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n //}\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onStudentProfileChange(studentId: string) {\r\n this.loadData(studentId);\r\n }\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.label));\r\n }\r\n\r\n get canManageMenuCycles() {\r\n return true;// || this.accountService.userHasPermission(Permission.manageMenuCyclesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: 11px !important;\\r\\n font-weight: 400 !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdHVkZW50L3N0dWRlbnQtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLDBCQUEwQjtFQUMxQiwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3N0dWRlbnQvc3R1ZGVudC1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Student Information

\\r\\n
\\r\\n
\\r\\n \\r\\n Outlet\\r\\n \\r\\n \\r\\n {{outlet.name}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Name is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Male \\r\\n Female \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Batch\\r\\n \\r\\n \\r\\n {{c.name}}\\r\\n \\r\\n \\r\\n Batch is required\\r\\n \\r\\n \\r\\n Level\\r\\n \\r\\n \\r\\n {{classLevel.name}}\\r\\n \\r\\n \\r\\n Level is required\\r\\n \\r\\n \\r\\n Class\\r\\n \\r\\n \\r\\n {{c.name}}\\r\\n \\r\\n \\r\\n Class is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Yes \\r\\n No \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Vouchers

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Voucher CodeStatus
{{row.voucherCode}}{{row.status}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Custodians

\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Full NameUser Name
{{row.fullName}}{{row.userName}}\\r\\n \\r\\n Remove\\r\\n \\r\\n \\r\\n Undo Remove\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Restrictions

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{restrictionType.label}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n

Interest Groups

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

Card Information

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Card IdStatusRemarks
{{row.cardId}}{{row.status}}{{row.remarks}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Account Information

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Username is required\\r\\n \\r\\n \\r\\n \\r\\n nEEmail is required\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.CurrentPasswordRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.NewPasswordRequired' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.ConfirmationPasswordRequired' | translate}}\\r\\n \\r\\n \\r\\n {{'users.editor.PasswordMismatch' | 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\"","import { Component, ViewChild, Inject, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Student, StudentCard, StudentInterestGroup, StudentRestriction } from 'src/app/models/meal-order/student.model';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { CommonFilter, Filter } from 'src/app/models/sieve-filter.model';\r\nimport { ClassService } from 'src/app/services/meal-order/class.service';\r\nimport { ClassLevel } from 'src/app/models/meal-order/class-level.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { UserService } from 'src/app/services/meal-order/user.service';\r\nimport { UserCardIdEditorComponent } from '../../controls/usercardid/usercardid-editor.component';\r\nimport { UserCardId } from 'src/app/models/usercardid.model';\r\nimport { RestrictionService } from 'src/app/services/meal-order/restriction.service';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'student-editor',\r\n templateUrl: './student-editor.component.html',\r\n styleUrls: ['./student-editor.component.css']\r\n})\r\nexport class StudentEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isNewStudent = false;\r\n private isChangePassword = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingStudentName: string;\r\n private studentEdit: Student = new Student();\r\n private allPermissions: Permission[] = [];\r\n outlets = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private validation = { name: false, gender: false, classLevel: false, class: false, fas: false };\r\n private isAddAccount = false;\r\n\r\n public classLevels = [];\r\n public batches = [];\r\n public classes = [];\r\n public userTypes = [];\r\n public restrictions = [];\r\n public restrictionTypes = [];\r\n public interestGroups = [];\r\n\r\n public searchForm: FormControl = new FormControl();\r\n studentId: any;\r\n public users = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private studentService: StudentService, private accountService: AccountService, private classService: ClassService,\r\n private userService: UserService, private restrictionService: RestrictionService, private deliveryService: DeliveryService,\r\n public dialogRef: MatDialogRef, public dialog: MatDialog, \r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.student) != typeof (undefined) && data.student.id) {\r\n this.editStudent(data.student);\r\n } else {\r\n this.newStudent();\r\n }\r\n\r\n this.getOutlets();\r\n //this.getClassLevels();\r\n this.getClassBatches();\r\n //this.getUserTypes();\r\n this.getRestrictions();\r\n this.getInterestGroups();\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n getOutlets() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getOutletsByFilter(filter)\r\n .subscribe(results => {\r\n this.outlets = results.pagedData;\r\n this.getClassLevels(false, this.studentEdit.outletId);\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getRestrictionTypes() {\r\n let filter = new Filter();\r\n filter.sorts = 'label';\r\n //let f = this.menuCycle.catererId ? '(CatererId)==' + this.menuCycle.catererId + ',' : '';\r\n filter.filters = '(IsActive)==true';\r\n //filter.filters = f + '(IsActive)==true';\r\n return this.restrictionService.getRestrictionTypesByFilter(filter);\r\n }\r\n\r\n getRestrictions() {\r\n this.getRestrictionTypes().subscribe(res => {\r\n this.restrictionTypes = res.pagedData;\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.restrictionService.getRestrictionsByFilter(filter)\r\n .subscribe(results => {\r\n this.restrictions = results.pagedData;\r\n this.restrictionTypes.forEach((rt, index, ps) => {\r\n rt.restrictions = [];\r\n rt.restrictions = this.restrictions.filter(e => e.restrictionTypeId == rt.id);\r\n rt.restrictions.forEach((p, index, ps) => {\r\n (p).checked = this.studentEdit.restrictions != null && this.studentEdit.restrictions.findIndex(f => f.restrictionId == p.id) > -1;\r\n });\r\n });\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving restriction types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n console.log(this.restrictionTypes);\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the records.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getInterestGroups() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.studentService.getInterestGroupsByFilter(filter)\r\n .subscribe(results => {\r\n this.interestGroups = results.pagedData;\r\n this.interestGroups.forEach((p, index, ps) => {\r\n (p).checked = this.studentEdit.interestGroups != null && this.studentEdit.interestGroups.findIndex(f => f.interestGroupId == p.id) > -1;\r\n });\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving interest groups.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getClassBatches() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.subscription.add(this.classService.getClassBatchesByFilter(filter)\r\n .subscribe(results => {\r\n this.batches = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving batches.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getClassLevels(isClearValue: boolean, id?: string) {\r\n if (id) {\r\n if (isClearValue) {\r\n this.studentEdit.classLevelId = '';\r\n this.studentEdit.classId = '';\r\n }\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(OutletId)==' + id;\r\n this.subscription.add(this.classService.getClassLevelsByFilter(filter)\r\n .subscribe(results => {\r\n this.classLevels = results.pagedData;\r\n this.getClasses(false, this.studentEdit.classLevelId);\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving levels.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n } else {\r\n this.classLevels = [];\r\n }\r\n }\r\n\r\n getClasses(isClearValue: boolean, classLevelId?: string) {\r\n if (classLevelId) {\r\n if (isClearValue) this.studentEdit.classId = '';\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(ClassLevelId)==' + classLevelId;\r\n\r\n this.subscription.add(this.classService.getClassesByFilter(filter)\r\n .subscribe(results => {\r\n this.classes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving classes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n } else {\r\n this.classes = [];\r\n }\r\n }\r\n\r\n onOutletChange(outId?: string) {\r\n this.getClassLevels(true, outId);\r\n }\r\n\r\n onClassLevelChange(classLevelId?: string) {\r\n this.getClasses(true, classLevelId);\r\n }\r\n\r\n //getUserTypes() {\r\n // let filter = new Filter();\r\n // filter.filters = '(IsActive)==true';\r\n // this.subscription.add(this.userService.getUserTypesByFilter(filter)\r\n // .subscribe(results => {\r\n // this.userTypes = results.pagedData;\r\n // },\r\n // error => {\r\n // //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving user types.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n // }));\r\n //}\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n private validate() {\r\n this.validation = { name: false, gender: false, classLevel: false, class: false, fas: false };;\r\n if (this.studentEdit.name && this.studentEdit.name.trim().length == 0) {\r\n this.validation.name = true;\r\n //this.name.control.setErrors({});\r\n }\r\n\r\n if (!this.studentEdit.gender) {\r\n this.validation.gender = true;\r\n //this.value.control.setErrors({});\r\n }\r\n\r\n if (!this.studentEdit.classLevelId) {\r\n this.validation.classLevel = true;\r\n //this.description.control.setErrors({});\r\n }\r\n\r\n if (!this.studentEdit.classId) {\r\n this.validation.class = true;\r\n //this.description.control.setErrors({});\r\n }\r\n\r\n if (!this.studentEdit.isFAS) {\r\n this.validation.fas = true;\r\n //this.description.control.setErrors({});\r\n }\r\n\r\n if (this.validation.name || this.validation.gender || this.validation.classLevel || this.validation.class || this.validation.fas) {\r\n this.showValidationErrors = true;\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n let selectedRestrictions = this.restrictions.filter(f => f.checked);\r\n this.studentEdit.restrictions = [];\r\n this.restrictions.forEach((p, index, ps) => {\r\n if (p.checked) {\r\n let sr = new StudentRestriction();\r\n sr.studentId = this.studentEdit.id;\r\n sr.restrictionId = p.id;\r\n this.studentEdit.restrictions.push(sr);\r\n }\r\n\r\n });\r\n\r\n let selectedInterestGroups = this.restrictions.filter(f => f.checked);\r\n this.studentEdit.interestGroups = [];\r\n this.interestGroups.forEach((p, index, ps) => {\r\n if (p.checked) {\r\n let sr = new StudentInterestGroup();\r\n sr.studentId = this.studentEdit.id;\r\n sr.interestGroupId = p.id;\r\n this.studentEdit.interestGroups.push(sr);\r\n }\r\n\r\n });\r\n\r\n if (this.isNewStudent) {\r\n this.studentService.newStudent(this.studentEdit).subscribe(student => this.saveSuccessHelper(student), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.studentService.updateStudent(this.studentEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n invalidate() {\r\n return false;\r\n }\r\n\r\n private saveSuccessHelper(student?: Student) {\r\n if (student)\r\n Object.assign(this.studentEdit, student);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewStudent)\r\n this.alertService.showMessage(\"Success\", `Student \\\"${this.studentEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to student \\\"${this.studentEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.studentEdit = new Student();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewStudent && this.accountService.currentUser.facilities.some(r => r == this.editingStudentName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.studentEdit = new Student();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n this.isChangePassword = false;\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newStudent() {\r\n this.isNewStudent = true;\r\n this.showValidationErrors = true;\r\n this.isChangePassword = false;\r\n this.editingStudentName = null;\r\n this.selectedValues = {};\r\n this.studentEdit = new Student();\r\n this.studentEdit.gender = 'Male';\r\n this.studentEdit.isFAS = false;\r\n if (!this.studentEdit.studentCards) this.studentEdit.studentCards = [];\r\n return this.studentEdit;\r\n }\r\n\r\n editStudent(student: Student) {\r\n if (student) {\r\n this.isNewStudent = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingStudentName = student.name;\r\n this.selectedValues = {};\r\n this.studentEdit = new Student();\r\n Object.assign(this.studentEdit, student);\r\n this.isAddAccount = this.studentEdit.userId && parseInt(this.studentEdit.userId) > 0;\r\n if (!this.studentEdit.studentCards) this.studentEdit.studentCards = [];\r\n return this.studentEdit;\r\n }\r\n else {\r\n return this.newStudent();\r\n }\r\n }\r\n\r\n private changePassword() {\r\n this.isChangePassword = true;\r\n }\r\n\r\n public deletePasswordFromUser(student: Student) {\r\n let userEdit = student;\r\n\r\n delete userEdit.currentPassword;\r\n delete userEdit.newPassword;\r\n delete userEdit.confirmPassword;\r\n }\r\n\r\n //cards\r\n addCardId() {\r\n var dialog = this.dialog.open(UserCardIdEditorComponent, {\r\n data: { header: \"New Card\", userCardId: new UserCardId(), isUserInfo: true },\r\n width: '400px',\r\n panelClass: 'user-info-modal',\r\n backdropClass: 'user-info-backdrop',\r\n disableClose: true\r\n });\r\n\r\n dialog.afterClosed().subscribe(result => {\r\n console.log(\"resulting data: \", result)\r\n if (result && result.cardId) {\r\n if (typeof (this.studentEdit) == typeof (undefined)) {\r\n this.studentEdit = new Student();\r\n }\r\n\r\n if (typeof (this.studentEdit.studentCards) == typeof (undefined)) {\r\n this.studentEdit.studentCards = [];\r\n }\r\n\r\n result.studentId = this.studentEdit.id;\r\n this.studentEdit.studentCards.push(result);\r\n let c = this.studentEdit.studentCards.length - 1;\r\n this.activateCardId(this.studentEdit.studentCards[c], c);\r\n }\r\n });\r\n }\r\n\r\n editCardId(row, i) {\r\n var dialog = this.dialog.open(UserCardIdEditorComponent, {\r\n data: { header: \"Edit CardId\", userCardId: row, isUserInfo: true },\r\n width: '400px',\r\n panelClass: 'user-info-modal',\r\n backdropClass: 'user-info-backdrop',\r\n disableClose: true\r\n });\r\n\r\n dialog.afterClosed().subscribe(result => {\r\n console.log(\"resulting data: \", result)\r\n if (result && result.cardId) {\r\n if (typeof (this.studentEdit) == typeof (undefined)) {\r\n this.studentEdit = new Student();\r\n }\r\n\r\n if (typeof (this.studentEdit.studentCards) == typeof (undefined)) {\r\n this.studentEdit.studentCards = [];\r\n }\r\n\r\n result.studentId = this.studentEdit.id;\r\n this.studentEdit.studentCards[i] = result;\r\n }\r\n });\r\n }\r\n\r\n activateCardId(row, i) {\r\n for (var j = 0; j < this.studentEdit.studentCards.length; j++) {\r\n this.studentEdit.studentCards[j].status = \"INACTIVE\";\r\n }\r\n\r\n this.studentEdit.studentCards[i].status = \"ACTIVE\";\r\n }\r\n\r\n deleteCardId(row: StudentCard) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.cardId + '\\\" ?', DialogType.confirm, () => this.deleteCardIdHelper(row));\r\n }\r\n\r\n deleteCardIdHelper(row: StudentCard) {\r\n\r\n this.studentEdit.studentCards = this.studentEdit.studentCards.filter(item => item !== row);\r\n }\r\n\r\n get canManageStudents() {\r\n return true; //this.accountService.userHasPermission(Permission.manageStudentsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS9zdHVkZW50L3N0dWRlbnRzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3N0dWRlbnQvc3R1ZGVudHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Student Directory

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\\"icon\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{(row.isFAS ? 'YES' : 'NO')}}\\r\\n \\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n Meal Order\\r\\n Calendar \\r\\n Add Voucher \\r\\n Send Notification \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ElementRef, Inject } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { StudentEditorComponent } from './student-editor.component';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { TokenOrdersManagementComponent } from './../token-order/token-orders-management.component';\r\nimport { StudentNotificationDialogComponent } from './notification-dialog.component';\r\n\r\n\r\n@Component({\r\n selector: 'students-management',\r\n templateUrl: './students-management.component.html',\r\n styleUrls: ['./students-management.component.css']\r\n})\r\nexport class StudentsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Student[] = [];\r\n rowsCache: Student[] = [];\r\n allPermissions: Permission[] = [];\r\n editedStudent: Student;\r\n sourceStudent: Student;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @Input() isHideHeader: boolean;\r\n\r\n @Input() outletId: string;\r\n\r\n @ViewChild('fileImport')\r\n fileImport: ElementRef;\r\n\r\n @ViewChild('fileStudentCardImport')\r\n fileStudentCardImport: ElementRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('fasTemplate')\r\n fasTemplate: TemplateRef;\r\n\r\n @ViewChild('studentEditorComponent')\r\n studentEditorComponent: StudentEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private studentService: StudentService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(student: Student): void {\r\n const dialogRef = this.dialog.open(StudentEditorComponent, {\r\n data: { header: this.header, student: student },\r\n width: '800px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'outletName', name: 'Outlet' },\r\n { prop: 'name', name: gT('common.Name') },\r\n { prop: 'classBatchName', name: 'Batch' },\r\n { prop: 'classLevelName', name: 'Class Level' },\r\n { prop: 'className', name: 'Class' },\r\n { prop: 'gender', name: 'Gender' },\r\n { name: 'Is FAS', cellTemplate: this.fasTemplate },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.outletId ? '(OutletId)==' + this.outletId + ',' : '';\r\n this.filter.filters = f + '(IsActive)==true,(Name)@=' + this.keyword;\r\n\r\n this.studentService.getStudentsByFilter(this.filter)\r\n .subscribe(results => {\r\n console.log(\"Filter\", this.filter)\r\n\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let students = results.pagedData;\r\n\r\n students.forEach((student, index, students) => {\r\n (student).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...students];\r\n this.rows = students;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newStudent() {\r\n this.header = 'New Student';\r\n this.editedStudent = new Student();\r\n this.openDialog(this.editedStudent);\r\n }\r\n\r\n\r\n editStudent(row: Student) {\r\n this.editedStudent = row;\r\n this.header = 'Edit Student';\r\n this.openDialog(this.editedStudent);\r\n }\r\n\r\n deleteStudent(row: Student) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" student?', DialogType.confirm, () => this.deleteStudentHelper(row));\r\n }\r\n\r\n\r\n deleteStudentHelper(row: Student) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.studentService.deleteStudent(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the student.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n addVoucher(row: Student) {\r\n this.alertService.showDialog('Enter Voucher Code:', DialogType.prompt, (val) => {\r\n if (!val) return;\r\n this.studentService.addStudentVoucher(row.id, val)\r\n .subscribe(response => {\r\n this.loadingIndicator = false;\r\n this.alertService.showMessage(response.message);\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.alertService.showStickyMessage(\"Voucher Error\", `Unable to add voucher.`,\r\n MessageSeverity.error);\r\n });\r\n }, () => {\r\n });\r\n }\r\n\r\n triggerNotification(student: Student): void {\r\n const dialogRef = this.dialog.open(StudentNotificationDialogComponent, {\r\n data: { header: 'Trigger notification', student: student },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n\r\n public importedFile = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n if (!confirm(`Are you sure to import file '${files[0].name}'? \\nImport cannot be undone after the file uploaded.`)) return;\r\n\r\n let fileToUpload = files[0];\r\n const formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n\r\n this.loadingIndicator = true;\r\n this.alertService.startLoadingMessage(\"Uploading...\");\r\n this.studentService.importFile>(formData)\r\n .subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress) { }\r\n //this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response) {\r\n //this.message = 'Upload success.';\r\n //var fileUploadResponse: any = ;\r\n //this.filename = fileUploadResponse.fileName;\r\n this.onUploadFinished(event.body);\r\n }\r\n\r\n this.loadingIndicator = false;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (this.fileImport && this.fileImport.nativeElement) {\r\n this.fileImport.nativeElement.value = \"\";\r\n }\r\n\r\n this.alertService.showStickyMessage(\"Import Error\", `Unable to import the file to the server.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onUploadFinished(response: any) {\r\n this.alertService.stopLoadingMessage();\r\n if (response.isSuccess) {\r\n this.alertService.showMessage(response.message);\r\n this.loadData(null);\r\n } else {\r\n if (this.fileImport && this.fileImport.nativeElement) {\r\n this.fileImport.nativeElement.value = \"\";\r\n }\r\n this.alertService.showStickyMessage(\"Import Error\", `Unable to import the file to the server.\\r\\nErrors: \"${response.message}\"`,\r\n MessageSeverity.error);\r\n }\r\n\r\n }\r\n\r\n public importedStudentCardFile = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n this.alertService.resetStickyMessage();\r\n if (!confirm(`Are you sure to import file '${files[0].name}'? \\nImport cannot be undone after the file uploaded.`)) return;\r\n\r\n this.alertService.showDialog('Enter Batch Year:', DialogType.prompt, (val) => {\r\n if (isNaN(val)) return;\r\n let fileToUpload = files[0];\r\n const formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n formData.append('outletId', this.outletId);\r\n formData.append('batch', val);\r\n\r\n this.loadingIndicator = true;\r\n this.alertService.startLoadingMessage(\"Uploading...\");\r\n this.studentService.importStudentCardFile>(formData)\r\n .subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress) { }\r\n //this.progress = Math.round(100 * event.loaded / event.total);\r\n else if (event.type === HttpEventType.Response) {\r\n //this.message = 'Upload success.';\r\n //var fileUploadResponse: any = ;\r\n //this.filename = fileUploadResponse.fileName;\r\n this.onUploadStudentCardFinished(event.body);\r\n }\r\n\r\n this.loadingIndicator = false;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n if (this.fileStudentCardImport && this.fileStudentCardImport.nativeElement) {\r\n this.fileStudentCardImport.nativeElement.value = \"\";\r\n }\r\n\r\n this.alertService.showStickyMessage(\"Import Error\", `Unable to import the file to the server.`,\r\n MessageSeverity.error);\r\n });\r\n }, () => {\r\n if (this.fileStudentCardImport && this.fileStudentCardImport.nativeElement) {\r\n this.fileStudentCardImport.nativeElement.value = \"\";\r\n }\r\n });\r\n }\r\n\r\n onUploadStudentCardFinished(response: any) {\r\n this.alertService.stopLoadingMessage();\r\n if (this.fileStudentCardImport && this.fileStudentCardImport.nativeElement) {\r\n this.fileStudentCardImport.nativeElement.value = \"\";\r\n }\r\n\r\n if (response.isSuccess) {\r\n this.alertService.showMessage(response.message);\r\n this.loadData(null);\r\n } else {\r\n this.alertService.showMessage(\"Import Error\", `Unable to import the file to the server.\\r\\nErrors: \"${response.message}\"`,\r\n MessageSeverity.error);\r\n }\r\n\r\n }\r\n\r\n openTokenOrder(row) {\r\n const dialogRef = this.dialog.open(TokenOrdersManagementComponent, {\r\n data: { header: \"Meal Order\", student: row },\r\n width: '1200px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n get canManageStudents() {\r\n return true; //this.accountService.userHasPermission(Permission.manageStudentsPermission)\r\n }\r\n\r\n createAccount() {\r\n const dialogRef = this.dialog.open(CreateAccountMultiple, {\r\n width: '60vw',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n setTimeout(() => this.loadData(null), 2000);\r\n });\r\n }\r\n\r\n openStudentCalendar(student) {\r\n window.open('/studentcalendars/' + student.id, '_blank');\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'create-account-multiple',\r\n templateUrl: 'create-account-multiple.html',\r\n})\r\nexport class CreateAccountMultiple {\r\n\r\n bentoAssetCode: any;\r\n bentoBoxType: any;\r\n bentoBoxTypes: any;\r\n searchTimeout: NodeJS.Timer;\r\n map: any = {};\r\n rows: any = [];\r\n\r\n loadingIndicator: boolean;\r\n pagedResult: PagedResult;\r\n\r\n page: number;\r\n pageSize: number = 10;\r\n maxPage: number;\r\n prevPage: number;\r\n\r\n selected: Student[] = [];\r\n\r\n search: string = '';\r\n prevSearch\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n\r\n @ViewChild('selectedContainer') private selectedContainer: ElementRef;\r\n\r\n constructor(private alertService: AlertService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any, public studentService: StudentService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.loadData();\r\n }\r\n\r\n pageChanged(newValue) {\r\n if (this.prevPage !== newValue) {\r\n this.page = newValue;\r\n this.prevPage = this.page;\r\n\r\n this.loadData();\r\n }\r\n }\r\n\r\n searchChanged(newValue) {\r\n clearTimeout(this.searchTimeout)\r\n this.searchTimeout = setTimeout(() => {\r\n this.search = newValue;\r\n this.loadData();\r\n }, 500);\r\n }\r\n\r\n checkValue(value, row) {\r\n if (value) {\r\n this.selected.unshift(row);\r\n //try {\r\n // this.selectedContainer.nativeElement.scrollTop = this.selectedContainer.nativeElement.scrollHeight + 1000;\r\n //} catch (err) { }\r\n } else {\r\n this.selected = this.selected.filter(s => s.id != row.id);\r\n }\r\n }\r\n\r\n checkSelected(value, row) {\r\n if (!value) {\r\n this.selected = this.selected.filter(s => s.id != row.id);\r\n let r = this.rows.find(s => s.id != row.id);\r\n if (r) r.checked = value;\r\n }\r\n }\r\n\r\n loadData() {\r\n let filter: any = {\r\n filters: \"(IsActive)==true,(Name)@=\" + this.search,\r\n page: this.page || 1,\r\n pageSize: this.pageSize,\r\n sorts: \"name\",\r\n noAccount: true\r\n }\r\n\r\n this.studentService.getStudentsByFilter(filter)\r\n .subscribe(results => {\r\n\r\n this.pagedResult = results;\r\n\r\n this.page = this.page || this.pagedResult && this.pagedResult.filter && this.pagedResult.filter.page ? this.pagedResult.filter.page : 1;\r\n this.prevPage = this.page;\r\n this.maxPage = Math.ceil(this.pagedResult.totalCount / this.pageSize);\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let students = results.pagedData;\r\n\r\n this.rows = students;\r\n\r\n for (let row of this.rows) {\r\n if (this.selected.some(s => s.id === row.id)) row.checked = true;\r\n }\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n }\r\n\r\n\r\n save() {\r\n let ids = this.selected.map(s => s.id);\r\n\r\n this.studentService.createAccount(ids).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n\r\n private saveSuccessHelper() {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showMessage(\"Success\", `Accounts was created successfully`, MessageSeverity.success);\r\n\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.mat-tab-body-content{\\r\\n padding:20px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90b2tlbi1vcmRlci1idWxrL3Rva2VuLW9yZGVyLWJ1bGstZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVksRUFBRSx3Q0FBd0M7RUFDdEQsV0FBVyxFQUFFLHdDQUF3QztFQUNyRCxzQkFBc0IsRUFBRSw2Q0FBNkM7RUFDckUscUJBQXFCLEVBQUUsNkNBQTZDO0FBQ3RFOztBQUVBO0VBQ0UsWUFBWTtBQUNkIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90b2tlbi1vcmRlci1idWxrL3Rva2VuLW9yZGVyLWJ1bGstZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJhZGlvLXJpcHBsZSB7XHJcbiAgaGVpZ2h0OiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHdpZHRoOiAzMHB4OyAvKmRvdWJsZSBvZiB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB0b3A6IGNhbGMoNTAlIC0gMTVweCk7IC8qJzEwcHgnLXNhbWUgYXMgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxufVxyXG5cclxuLm1hdC10YWItYm9keS1jb250ZW50e1xyXG4gIHBhZGRpbmc6MjBweDtcclxufVxyXG4iXX0= */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Student Group\\r\\n \\r\\n \\r\\n {{group.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Session\\r\\n \\r\\n \\r\\n {{session.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
Tokens
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Token {{i + 1}}\\r\\n \\r\\n \\r\\n {{mealType.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\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Remove\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Combined Dish {{j + 1}}\\r\\n \\r\\n \\r\\n {{cdish.setname}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Dish {{k + 1}}\\r\\n \\r\\n \\r\\n {{dish.label}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n Add Commbined Dish\\r\\n
\\r\\n
\\r\\n\\r\\n Add Token\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealTypeMenuDish, Menu, MenuDish } from 'src/app/models/meal-order/menu.model';\r\nimport { TokenOrder, TokenOrdered, TokenOrderDish, TokenAltDish, TokenOrderCombinedDish } from 'src/app/models/meal-order/token-order.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Dish } from 'src/app/models/meal-order/dish.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { StudentGroup } from 'src/app/models/meal-order/student-group.model';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport * as moment from 'moment';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { MealType, MealTypeDish } from 'src/app/models/meal-order/meal-type.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { DishSelectorComponent } from '../dishes/dish-selector/dish-selector.component';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\n\r\n@Component({\r\n selector: 'token-order-bulk-editor',\r\n templateUrl: './token-order-bulk-editor.component.html',\r\n styleUrls: ['./token-order-bulk-editor.component.css'],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\nexport class TokenOrderBulkEditorComponent {\r\n\r\n private isNewOrder = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingOrderCode: string;\r\n private orderEdit: TokenOrder = new TokenOrder();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n transactionTime = new Date();\r\n deliveryDate = new Date();\r\n private groups: StudentGroup[] = [];\r\n private periods: MealPeriod[] = [];\r\n private mealtypes: MealType[] = [];\r\n\r\n selectedGroup: StudentGroup;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public catererId: string;\r\n public dishes: Dish[] = [];\r\n public storeId: string;\r\n\r\n private groupQty = 0;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private menuService: MenuService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private dishService: DishService, private studentService: StudentService, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any, public dialog: MatDialog, private deliveryService: DeliveryService,\r\n private dateAdapter: DateAdapter) {\r\n this.dateAdapter.setLocale('en-SG');\r\n\r\n if (typeof (data.group) != typeof (undefined)) {\r\n if (data.group) {\r\n this.selectedGroup = data.group;\r\n this.groupQty = this.selectedGroup.sgdetails.length;\r\n }\r\n }\r\n\r\n this.getMealTypes(data);\r\n this.getStudentGroups();\r\n this.getPeriods();\r\n this.getMenuDishes();\r\n this.getStore();\r\n }\r\n\r\n getStudentGroups() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.studentService.getStudentGroupsByFilter(filter)\r\n .subscribe(results => {\r\n this.groups = results.pagedData;\r\n console.log(\"groups: \", this.groups)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving student groups.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getPeriods() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.mealService.getMealSessionsByFilter(filter)\r\n .subscribe(results => {\r\n this.periods = results.pagedData;\r\n console.log(\"periods: \", this.periods)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal sessions.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getStore() {\r\n console.log(\"get store\")\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(outletId)==' + this.selectedGroup.outletId;\r\n this.deliveryService.getStoreInfosByFilter(filter)\r\n .subscribe(results => {\r\n if (results.pagedData.length > 0) {\r\n this.storeId = results.pagedData[0].id;\r\n this.catererId = results.pagedData[0].catererInfoId;\r\n } else {\r\n this.storeId = \"0\";\r\n this.catererId = \"0\";\r\n }\r\n console.log(\"store paged data: \", results.pagedData)\r\n console.log(\"store: \", this.storeId)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal periods.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n this.deliveryDate = new Date(event.value);\r\n this.orderEdit.deliveryDate = new Date(event.value);\r\n }\r\n\r\n selectToken(event, detail?: TokenOrdered) {\r\n console.log(\"event: \", event)\r\n console.log(\"order: \", detail)\r\n let token = this.mealtypes.find(x => x.id === event.value);\r\n if (token) {\r\n detail.price = token.price;\r\n }\r\n\r\n detail.groupQty = this.groupQty;\r\n\r\n this.getCombinedDishes(detail);\r\n this.onChangeQty(event, detail);\r\n }\r\n\r\n selectCDish(event, detail?: TokenOrdered, selCDish?: TokenOrderCombinedDish) {\r\n console.log(\"event: \", event)\r\n console.log(\"order: \", detail)\r\n detail.selectedDishes = [];\r\n\r\n let cdish = detail.listCombinedDishes.find(x => x.setname === event.value);\r\n\r\n console.log(\"cdish: \", cdish)\r\n selCDish.menuQty = cdish.menus.length;\r\n cdish.menus.forEach(dish => {\r\n if (!detail.selectedDishes) detail.selectedDishes = [];\r\n\r\n let selDish = new TokenOrderDish();\r\n selDish.tokenOrderedId = detail.id;\r\n selDish.dishId = dish.dishId;\r\n\r\n detail.selectedDishes.push(selDish);\r\n })\r\n }\r\n\r\n onChangeCDQty(event, detail?: TokenOrdered, selCDish?: TokenOrderCombinedDish) {\r\n console.log(\"event: \", event)\r\n\r\n if (detail.selectedDishes) {\r\n\r\n detail.selectedDishes.forEach(dish => {\r\n dish.qty = selCDish.qty;\r\n })\r\n }\r\n\r\n }\r\n\r\n onChangeQty(event, detail?: TokenOrdered) {\r\n if (detail.qty && detail.price) {\r\n detail.subtotal = detail.qty * detail.groupQty * detail.price;\r\n } else {\r\n detail.subtotal = 0;\r\n }\r\n\r\n var sumAmount = 0;\r\n\r\n this.orderEdit.tokens.forEach(t => {\r\n sumAmount += t.subtotal;\r\n })\r\n\r\n this.orderEdit.totalAmount = sumAmount;\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n console.log(\"order: \", this.orderEdit)\r\n\r\n this.orderEdit.transactionTime = new Date();\r\n this.orderEdit.status = \"pending\";\r\n \r\n if (this.isNewOrder) {\r\n this.menuService.newTokenOrder(this.orderEdit).subscribe(order => this.saveSuccessHelper(order), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.menuService.updateTokenOrder(this.orderEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(order?: TokenOrder) {\r\n if (order)\r\n Object.assign(this.orderEdit, order);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewOrder)\r\n this.alertService.showMessage(\"Success\", `Order No \\\"${this.orderEdit.id}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Order No \\\"${this.orderEdit.id}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.orderEdit = new TokenOrder();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewMenu && this.accountService.currentUser.facilities.some(r => r == this.editingMenuCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.orderEdit = new TokenOrder();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newOrder() {\r\n this.isNewOrder = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingOrderCode = null;\r\n this.selectedValues = {};\r\n this.orderEdit = new TokenOrder();\r\n this.orderEdit.studentGroupId = this.selectedGroup.id;\r\n this.transactionTime = new Date();\r\n this.deliveryDate = new Date();\r\n this.orderEdit.transactionTime = this.transactionTime;\r\n this.orderEdit.deliveryDate = this.deliveryDate;\r\n return this.orderEdit;\r\n }\r\n\r\n editOrder(order: TokenOrder) {\r\n if (order) {\r\n this.isNewOrder = false;\r\n this.showValidationErrors = true;\r\n\r\n console.log(\"order is: \", order)\r\n //this.editingMenuCode = menu.label;\r\n order.tokens.forEach(t => {\r\n let token = this.mealtypes.find(x => x.id === t.tokenId);\r\n t.groupQty = this.groupQty;\r\n if (token) {\r\n t.price = token.price;\r\n }\r\n\r\n if (t.price && t.qty) {\r\n t.subtotal = t.price * t.qty;\r\n }\r\n \r\n })\r\n this.selectedValues = {};\r\n this.orderEdit = new TokenOrder();\r\n Object.assign(this.orderEdit, order);\r\n this.transactionTime = this.orderEdit.transactionTime;\r\n this.deliveryDate = this.orderEdit.deliveryDate;\r\n return this.orderEdit;\r\n }\r\n else {\r\n return this.newOrder();\r\n }\r\n }\r\n\r\n getMealTypes(data: any) {\r\n let filter = new Filter();\r\n filter.sorts = 'name';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.mealService.getMealTypesByFilter(filter)\r\n .subscribe(results => {\r\n let mealTypes = results.pagedData;\r\n this.mealtypes = results.pagedData;\r\n if (typeof (data.tokenOrder) != typeof (undefined)) {\r\n if (data.tokenOrder.id) {\r\n this.editOrder(data.tokenOrder);\r\n } else {\r\n this.newOrder();\r\n }\r\n } \r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal type.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getMenuDishes() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getCombinedDishes(detail: TokenOrdered) {\r\n if (this.deliveryDate) {\r\n detail.listCombinedDishes = [];\r\n var deliveryDate = (new Date(this.deliveryDate.getTime() - (this.deliveryDate.getTimezoneOffset() * 60000)).toJSON().split('T'))[0]\r\n console.log(\"get combined dish: \", this.selectedGroup.outletId, this.catererId, detail.tokenId, deliveryDate, this.orderEdit.mealSessionDetailId)\r\n if (this.selectedGroup.outletId && this.orderEdit.mealSessionDetailId && detail.tokenId && deliveryDate && this.catererId) {\r\n\r\n this.dishService.getCombinedDish(this.selectedGroup.outletId, this.catererId, detail.tokenId, deliveryDate, this.orderEdit.mealSessionDetailId)\r\n .subscribe(results => {\r\n console.log(\"result combined dish list: \", results);\r\n detail.listCombinedDishes = results\r\n }\r\n , error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving combined dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n\r\n })\r\n }\r\n }\r\n }\r\n\r\n addDetail(order: TokenOrder) {\r\n if (!order.tokens) order.tokens = [];\r\n\r\n let tokenOrdered = new TokenOrdered();\r\n tokenOrdered.orderId = order.id;\r\n\r\n order.tokens.push(tokenOrdered);\r\n }\r\n\r\n addDish(detail: TokenOrdered) {\r\n if (!detail.selectedDishes) detail.selectedDishes = [];\r\n\r\n let selDish = new TokenOrderDish();\r\n selDish.tokenOrderedId = detail.id;\r\n\r\n detail.selectedDishes.push(selDish);\r\n }\r\n\r\n addCombinedDish(detail: TokenOrdered) {\r\n if (!detail.selectedCombinedDishes) detail.selectedCombinedDishes = [];\r\n\r\n let selCDish = new TokenOrderCombinedDish();\r\n selCDish.tokenOrderedId = detail.id;\r\n\r\n detail.selectedCombinedDishes.push(selCDish);\r\n }\r\n\r\n removeToken(row: TokenOrdered) {\r\n\r\n this.orderEdit.tokens = this.orderEdit.tokens.filter(item => item !== row);\r\n }\r\n\r\n get canManageOrders() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMenusPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90b2tlbi1vcmRlci1idWxrL3Rva2VuLW9yZGVycy1idWxrLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vdG9rZW4tb3JkZXItYnVsay90b2tlbi1vcmRlcnMtYnVsay1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbi5hY3RpdmUge1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Bulk Token Order

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Menu } from 'src/app/models/meal-order/menu.model';\r\nimport { TokenOrderBulkEditorComponent } from './token-order-bulk-editor.component';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { TokenOrder } from 'src/app/models/meal-order/token-order.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { StudentGroup } from 'src/app/models/meal-order/student-group.model';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { PipeTransform } from '@angular/core';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\n\r\n@Component({\r\n selector: 'token-orders-bulk-management',\r\n templateUrl: './token-orders-bulk-management.component.html',\r\n styleUrls: ['./token-orders-bulk-management.component.css']\r\n})\r\nexport class TokenOrdersBulkManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: TokenOrder[] = [];\r\n rowsCache: TokenOrder[] = [];\r\n allPermissions: Permission[] = [];\r\n editedOrder: TokenOrder;\r\n sourceOrder: TokenOrder;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n private groups: StudentGroup[] = [];\r\n private periods: MealPeriod[] = [];\r\n selectedGroup: StudentGroup;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('tokenOrderBulkEditor')\r\n tokenOrderBulkEditor: TokenOrderBulkEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private menuService: MenuService, public dialog: MatDialog, private studentService: StudentService, private mealService: MealService,\r\n public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\r\n\r\n if (typeof (data.group) != typeof (undefined)) {\r\n if (data.group) {\r\n this.selectedGroup = data.group;\r\n }\r\n }\r\n }\r\n\r\n openDialog(tokenOrder: TokenOrder): void {\r\n const dialogRef = this.dialog.open(TokenOrderBulkEditorComponent, {\r\n data: { header: this.header, tokenOrder: tokenOrder, group: this.selectedGroup },\r\n width: '1000px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'transactionTime';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'transactionTime', name: 'Transaction Time', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'studentGroupId', name: 'Student Group', pipe: this.pipeGroupName() },\r\n { prop: 'periodId', name: 'Period', pipe: this.pipePeriodName() },\r\n { prop: 'status', name: 'Status' },\r\n { prop: 'remarks', name: 'Remarks' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.getStudentGroups();\r\n this.getPeriods();\r\n }\r\n\r\n getStudentGroups() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.studentService.getStudentGroupsByFilter(filter)\r\n .subscribe(results => {\r\n this.groups = results.pagedData;\r\n console.log(\"groups: \", this.groups)\r\n this.loadData();\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving student groups.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getPeriods() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.mealService.getMealPeriodsByFilter(filter)\r\n .subscribe(results => {\r\n this.periods = results.pagedData;\r\n console.log(\"periods: \", this.periods)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal periods.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.selectedGroup ? '(studentGroupId)==' + this.selectedGroup.id + ',' : '';\r\n //let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n //this.filter.filters = '(IsActive)==true,(Code|Label)@=' + this.keyword;\r\n this.filter.filters = f + '(IsActive)==true';\r\n\r\n console.log(\"filter: \", this.filter)\r\n \r\n this.menuService.getTokenOrdersByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let orders = results.pagedData;\r\n\r\n console.log(\"order: \", orders)\r\n\r\n orders.forEach((tokenOrder, index, orders) => {\r\n (tokenOrder).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...orders];\r\n this.rows = orders;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newOrder() {\r\n this.header = 'New Order';\r\n this.editedOrder = new TokenOrder();\r\n this.openDialog(this.editedOrder);\r\n }\r\n\r\n\r\n editOrder(row: TokenOrder) {\r\n this.editedOrder = row;\r\n this.header = 'Edit Order';\r\n //this.editedOrder.catererId = this.catererId;\r\n this.openDialog(this.editedOrder);\r\n }\r\n\r\n deleteOrder(row: TokenOrder) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.id + '\\\" order?', DialogType.confirm, () => this.deleteOrderHelper(row));\r\n }\r\n\r\n\r\n deleteOrderHelper(row: TokenOrder) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.menuService.deleteTokenOrder(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Order.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n pipeGroupName(): PipeTransform {\r\n return {\r\n transform: (value) => {\r\n let group = this.groups.find(x => x.id === value);\r\n if (group) {\r\n return group.name\r\n } else {\r\n return ''\r\n }\r\n }\r\n }\r\n }\r\n\r\n pipePeriodName(): PipeTransform {\r\n return {\r\n transform: (value) => {\r\n let period = this.periods.find(x => x.id === value);\r\n if (period) {\r\n return period.name\r\n } else {\r\n return ''\r\n }\r\n }\r\n }\r\n }\r\n\r\n private cancel() {\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n get canManageOrders() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMenusPermission)\r\n }\r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n\r\n\r\n}\r\n","module.exports = \" \\r\\n.center {\\r\\n margin: auto;\\r\\n width: 60%;\\r\\n padding: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90b2tlbi1vcmRlci1wYXltZW50L3Rva2VuLW9yZGVyLXBheW1lbnQtdGhhbmt5b3UvdG9rZW4tb3JkZXItcGF5bWVudC10aGFua3lvdS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtFQUNFLFlBQVk7RUFDWixVQUFVO0VBQ1YsYUFBYTtBQUNmIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90b2tlbi1vcmRlci1wYXltZW50L3Rva2VuLW9yZGVyLXBheW1lbnQtdGhhbmt5b3UvdG9rZW4tb3JkZXItcGF5bWVudC10aGFua3lvdS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiIFxyXG4uY2VudGVyIHtcclxuICBtYXJnaW46IGF1dG87XHJcbiAgd2lkdGg6IDYwJTtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \" \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

{{'paymentSucesss.Thankyou' | translate}}

\\r\\n

{{'paymentSucesss.PaymentConfirmed' | 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\"","import { Component, ViewChild, OnInit, Input, Output, EventEmitter, Inject } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n\r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\nimport { Router } from '@angular/router';\r\nimport { FormBuilder, FormArray, ValidatorFn } from '@angular/forms';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\n\r\nimport { AppTranslationService } from \"../../../../services/app-translation.service\";\r\nimport { ApiService } from '../../../../services/meal-order-payment/api.service';\r\n\r\n/*import { CookieService } from 'ngx-cookie-service';*/\r\n \r\n@Component({\r\n selector: 'app-token-order-payment-thankyou',\r\n templateUrl: './token-order-payment-thankyou.component.html',\r\n styleUrls: ['./token-order-payment-thankyou.component.css']\r\n})\r\nexport class TokenOrderPaymentThankyouComponent implements OnInit\r\n{\r\n\r\n cookieValue: any;\r\n fomoPayOrderId: any;\r\n ourOrderNumber: any;\r\n sessstorage: any;\r\n errorMessageDisplay: string;\r\n\r\n constructor(private apiService: ApiService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog \r\n )\r\n {\r\n \r\n\r\n // this.fomoPayOrderId = sessionStorage.getItem('fomoPayOrderId');\r\n // this.ourOrderNumber = sessionStorage.getItem('ourOrderNumber');\r\n\r\n\r\n }\r\n\r\n ngOnInit()\r\n {\r\n\r\n this.fomoPayOrderId = \"\";\r\n this.ourOrderNumber = \"\";\r\n\r\n this.fomoPayOrderId = sessionStorage.getItem('fomoPayOrderId'); //\r\n this.ourOrderNumber = sessionStorage.getItem('ourOrderNumber'); //\r\n\r\n // for test only - actual values saved in session vars in file api.service.ts \r\n //this.fomoPayOrderId = \"100500220221201278597654\";\r\n //this.ourOrderNumber = \"6794151467160136\";\r\n // for test only\r\n \r\n\r\n if (this.fomoPayOrderId != null && this.ourOrderNumber!= null)\r\n {\r\n\r\n // this.fomoPayOrderId = sessionStorage.getItem('fomoPayOrderId'); //\r\n // this.ourOrderNumber = sessionStorage.getItem('ourOrderNumber'); //\r\n \r\n this.updateOrderStatus();\r\n }\r\n else\r\n {\r\n console.log('PaymentThankyou module: No/Missing id values to update token order ststus');\r\n }\r\n \r\n\r\n }\r\n\r\n\r\n updateOrderStatus()\r\n {\r\n var updateResult: boolean;\r\n\r\n // Check we have a valid value ie non-null & not undefined\r\n if ((this.fomoPayOrderId != null) && (this.ourOrderNumber != null))\r\n {\r\n // call method\r\n this.apiService.updateOrderStatus(this.fomoPayOrderId, this.ourOrderNumber).subscribe(\r\n (data) =>\r\n {\r\n //console.log('updateOrderStatus method ');\r\n this.clearStoredID();\r\n },\r\n // error => this.errorHandler(error)\r\n error => this.clearUp(error)\r\n );\r\n\r\n \r\n }\r\n\r\n }\r\n\r\n\r\n\r\n clearUp(error)\r\n {\r\n this.clearStoredID();\r\n this.errorHandler(error);\r\n}\r\n\r\nclearStoredID()\r\n{\r\n // clear vars after update/error\r\n console.log('clearing value fomoPayOrderId :' + this.fomoPayOrderId);\r\n console.log('clearing value ourOrderNumber :' + this.ourOrderNumber);\r\n\r\n this.fomoPayOrderId = \"\";\r\n this.ourOrderNumber = \"\";\r\n\r\n sessionStorage.setItem('fomoPayOrderId', \"\"); //\r\n sessionStorage.setItem('ourOrderNumber', \"\"); //\r\n\r\n}\r\n\r\n\r\n\r\n\r\n //Redirect URL's\r\n returnBack() {\r\n var outletURL: string = \"\";\r\n var baseURL : string = \"\";\r\n \r\n //1 eg http://localhost:56767\r\n baseURL = window.location.origin;\r\n\r\n if (baseURL.length > 0) {\r\n outletURL = baseURL + \"/\" + \"outlets\";\r\n }\r\n \r\n window.location.href = outletURL;\r\n\r\n } // end function\r\n\r\n\r\n close()\r\n {\r\n this.dialogRef.close();\r\n }\r\n\r\n // Error handling\r\n errorHandler(error) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // Get client-side error\r\n errorMessage = error.error.message;\r\n // this.errorMessageDisplay = errorMessage;\r\n console.log(errorMessage);\r\n\r\n } else {\r\n // Get server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n this.errorMessageDisplay = errorMessage;\r\n console.log(this.errorMessageDisplay );\r\n }\r\n // console.log(errorMessage);\r\n return throwError(() => {\r\n this.errorMessageDisplay = errorMessage;\r\n console.log(this.errorMessageDisplay);\r\n return errorMessage;\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","module.exports = \"/* You can add global styles to this file, and also import other style files */\\r\\n.center {\\r\\n margin: auto;\\r\\n}\\r\\n.bigbutton {\\r\\n font-size: large;\\r\\n}\\r\\n.bigbutton {\\r\\n height: 5em;\\r\\n width: 9em;\\r\\n}\\r\\n.bigg {\\r\\n height: 3.5em;\\r\\n width: 100%;\\r\\n}\\r\\n#wrapper {\\r\\n display: flex;\\r\\n border: solid 5px black;\\r\\n width: 50%;\\r\\n margin: auto;\\r\\n}\\r\\n#left {\\r\\n flex: 0 0 65%;\\r\\n border: solid 5px brown;\\r\\n /*1height: 100px; */\\r\\n}\\r\\n#right {\\r\\n flex: 1;\\r\\n border: solid 5px red;\\r\\n 1height: 100px;\\r\\n}\\r\\n.paymentimage {\\r\\n border: solid 1px red;\\r\\n width: 150px;\\r\\n height: 150px;\\r\\n}\\r\\n.red {\\r\\n height: 50px;\\r\\n background: red;\\r\\n}\\r\\n.green {\\r\\n height: 50px;\\r\\n background: lightgreen;\\r\\n margin: 10px;\\r\\n}\\r\\n.blue {\\r\\n height: 50px;\\r\\n background: blue;\\r\\n margin: 10px;\\r\\n}\\r\\n.outline {\\r\\n margin: auto;\\r\\n}\\r\\n.container {\\r\\n margin: auto;\\r\\n width: 80%; \\r\\n 1padding: 10px;\\r\\n}\\r\\n.outlineName {\\r\\n border: solid 2px black;\\r\\n 1margin: auto;\\r\\n margin-top: -100px;\\r\\n}\\r\\n.resizeimg {\\r\\n margin-left: auto;\\r\\n margin-right: auto;\\r\\n width: 130px;\\r\\n height: 95px;\\r\\n}\\r\\nspan.ans {\\r\\n display: inline;\\r\\n 1text-indent: 142px;\\r\\n 1margin-left: 100px;\\r\\n margin-top: -90px;\\r\\n}\\r\\n.center {\\r\\n margin: auto;\\r\\n /* width: 60%;\\r\\n padding: 5px;\\r\\n */\\r\\n}\\r\\n.clearfix::after {\\r\\n content: \\\"\\\";\\r\\n clear: both;\\r\\n display: table;\\r\\n}\\r\\n.fixedbox {\\r\\n width: 7em; /* 3.3em;*/\\r\\n 1height: 80px;\\r\\n}\\r\\n.borderline {\\r\\n border: solid 1px #DCDCDC;\\r\\n}\\r\\n.paymentdesc {\\r\\n padding-left: 25px;\\r\\n padding-right: 25px;\\r\\n height: 30px;\\r\\n font-size: 1em;\\r\\n}\\r\\n.fixcol {\\r\\n width: 10em; \\r\\n}\\r\\n.bigfont {\\r\\n font-size: 1.45em;\\r\\n font-weight: 100;\\r\\n}\\r\\n.bigfont2 {\\r\\n font-size: 1.5em;\\r\\n font-weight: 100;\\r\\n}\\r\\n.faintboxborder {\\r\\n border: 1px solid #DCDCDC;\\r\\n}\\r\\n.faintboxborder-container {\\r\\n border: 1px solid #F0F0F0;\\r\\n}\\r\\n.itembox {\\r\\n width: auto;\\r\\n border: 2px solid #F0F0F0;\\r\\n}\\r\\n.centertxt {\\r\\n text-align: center;\\r\\n}\\r\\nimg {\\r\\n display: block;\\r\\n margin-left: auto;\\r\\n margin-right: auto;\\r\\n}\\r\\n.gruende-button {\\r\\n display: inline-grid;\\r\\n grid-template-columns: 1fr 1fr 1fr;\\r\\n grid-template-rows: auto;\\r\\n grid-gap: 2px;\\r\\n /* align-items: center; */\\r\\n}\\r\\n.gruende-button input[type=\\\"radio\\\"] {\\r\\n opacity: 0;\\r\\n position: fixed;\\r\\n width: 0;\\r\\n}\\r\\n/* Payment Button enabled */\\r\\n.gruende-button {\\r\\n /* 1display: table-cell; set Text in vertical center (with vertical align) */\\r\\n vertical-align: middle;\\r\\n /* 1text-align: center; set Text in horizontal center */\\r\\n font-size: 100%;\\r\\n font-family: Tahoma;\\r\\n /*background-color: #7597F0; */\\r\\n background-color: #00A774;\\r\\n color: #FDFEFF; /* text white colour */\\r\\n width: 100px;\\r\\n height: 80px;\\r\\n border-radius: 10px;\\r\\n}\\r\\ninput.ng-dirty {\\r\\n color: #A9A9A9; /* text colour */\\r\\n}\\r\\n/* ie mark as untouched/clean */\\r\\ninput .ng-pristine {\\r\\n background-color: #000000; /* colour */\\r\\n}\\r\\n.gruende-button--checked {\\r\\n background-color: #969699;\\r\\n}\\r\\n#content {\\r\\n border: 1px ridge #999;\\r\\n height: auto;\\r\\n min-height: 1000px;\\r\\n width: 1100px;\\r\\n margin-top: 40px;\\r\\n margin-right: auto;\\r\\n /* 1margin-bottom: 30px; */\\r\\n margin-left: auto;\\r\\n float: left;\\r\\n position: relative;\\r\\n width: 100%;\\r\\n}\\r\\n.tab_container {\\r\\n border: 1px ridge orange; \\r\\n clear: both;\\r\\n width: 100%;\\r\\n border-right: 1px ridge #999;\\r\\n /* 1margin-bottom: 20px;*/\\r\\n height: 100%;\\r\\n position: absolute;\\r\\n}\\r\\n.textboxAlign {\\r\\n padding-left: 18%;\\r\\n}\\r\\n.bigbuttontext {\\r\\n font-size: 2em;\\r\\n}\\r\\n.highlight {\\r\\n font-weight: bolder;\\r\\n}\\r\\n.widebutton {\\r\\n width: 50px;\\r\\n}\\r\\n.subtitlespacer {\\r\\n padding-top: 10px;\\r\\n padding-bottom: 10px;\\r\\n}\\r\\n.bottonspacer {\\r\\n padding-bottom: 10px;\\r\\n}\\r\\n.topspacer {\\r\\n padding-top: 10px;\\r\\n}\\r\\n.filler--bordered:hover {\\r\\n border:5px solid black;\\r\\n}\\r\\n.box:hover {\\r\\n border-color: purple;\\r\\n}\\r\\n.boldtext{\\r\\n font-weight:bold;\\r\\n}\\r\\n.item {\\r\\n background: #eee;\\r\\n border: 1px solid transparent;\\r\\n}\\r\\n.item:hover {\\r\\n background: #e1e1e1;\\r\\n border: 5px solid red;\\r\\n\\r\\n }\\r\\n.container2 div {\\r\\n float: left;\\r\\n width: 180px;\\r\\n height: 160px;\\r\\n}\\r\\n.box2 {\\r\\n float:left;\\r\\n}\\r\\n.centerbox\\r\\n{\\r\\n margin: auto;\\r\\n width:100%; \\r\\n text-align:center;\\r\\n padding-right:10px;\\r\\n margin-right:10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90b2tlbi1vcmRlci1wYXltZW50L3Rva2VuLW9yZGVyLXBheW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4RUFBOEU7QUFDOUU7RUFDRSxZQUFZO0FBQ2Q7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0UsV0FBVztFQUNYLFVBQVU7QUFDWjtBQUVBO0VBQ0UsYUFBYTtFQUNiLFdBQVc7QUFDYjtBQUVBO0VBQ0UsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixVQUFVO0VBQ1YsWUFBWTtBQUNkO0FBRUE7RUFDRSxhQUFhO0VBQ2IsdUJBQXVCO0NBQ3hCLG1CQUFtQjtBQUNwQjtBQUVBO0VBQ0UsT0FBTztFQUNQLHFCQUFxQjtFQUNyQixjQUFjO0FBQ2hCO0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsWUFBWTtFQUNaLGFBQWE7QUFDZjtBQUVBO0VBQ0UsWUFBWTtFQUNaLGVBQWU7QUFDakI7QUFFQTtFQUNFLFlBQVk7RUFDWixzQkFBc0I7RUFDdEIsWUFBWTtBQUNkO0FBRUE7RUFDRSxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLFlBQVk7QUFDZDtBQUVBO0VBQ0UsWUFBWTtBQUNkO0FBRUE7RUFDRSxZQUFZO0VBQ1osVUFBVTtFQUNWLGNBQWM7QUFDaEI7QUFFQTtFQUNFLHVCQUF1QjtFQUN2QixhQUFhO0VBQ2Isa0JBQWtCO0FBQ3BCO0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixZQUFZO0FBQ2Q7QUFFQTtFQUNFLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLGlCQUFpQjtBQUNuQjtBQUVBO0VBQ0UsWUFBWTtFQUNaOztHQUVDO0FBQ0g7QUFFQTtFQUNFLFdBQVc7RUFDWCxXQUFXO0VBQ1gsY0FBYztBQUNoQjtBQUVBO0VBQ0UsVUFBVSxFQUFFLFVBQVU7RUFDdEIsYUFBYTtBQUNmO0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLGNBQWM7QUFDaEI7QUFFQTtFQUNFLFdBQVc7QUFDYjtBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0UseUJBQXlCO0FBQzNCO0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7QUFFQTtFQUNFLFdBQVc7RUFDWCx5QkFBeUI7QUFDM0I7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUVBO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixrQ0FBa0M7RUFDbEMsd0JBQXdCO0VBQ3hCLGFBQWE7RUFDYiwyQkFBMkI7QUFDN0I7QUFFQTtFQUNFLFVBQVU7RUFDVixlQUFlO0VBQ2YsUUFBUTtBQUNWO0FBRUEsMkJBQTJCO0FBQzNCO0VBQ0UsNEVBQTRFO0VBQzVFLHNCQUFzQjtFQUN0Qix3REFBd0Q7RUFDeEQsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIseUJBQXlCO0VBQ3pCLGNBQWMsRUFBRSxzQkFBc0I7RUFDdEMsWUFBWTtFQUNaLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7QUFFQTtFQUNFLGNBQWMsRUFBRSxnQkFBZ0I7QUFDbEM7QUFFQSwrQkFBK0I7QUFDL0I7RUFDRSx5QkFBeUIsRUFBRSxhQUFhO0FBQzFDO0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixXQUFXO0FBQ2I7QUFFQTtFQUNFLHdCQUF3QjtFQUN4QixXQUFXO0VBQ1gsV0FBVztFQUNYLDRCQUE0QjtDQUM3QiwwQkFBMEI7RUFDekIsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQjtBQUVBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBRUE7RUFDRSxjQUFjO0FBQ2hCO0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7QUFFQTtFQUNFLFdBQVc7QUFDYjtBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLG9CQUFvQjtBQUN0QjtBQUVBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7QUFFQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUVBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7QUFFQztFQUNDLGdCQUFnQjtFQUNoQiw2QkFBNkI7QUFDL0I7QUFFQztJQUNHLG1CQUFtQjtJQUNuQixxQkFBcUI7O0NBRXhCO0FBRUQ7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGFBQWE7QUFDZjtBQUVBO0VBQ0UsVUFBVTtBQUNaO0FBRUE7O0VBRUUsWUFBWTtFQUNaLFVBQVU7RUFDVixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtBQUNuQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vdG9rZW4tb3JkZXItcGF5bWVudC90b2tlbi1vcmRlci1wYXltZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBZb3UgY2FuIGFkZCBnbG9iYWwgc3R5bGVzIHRvIHRoaXMgZmlsZSwgYW5kIGFsc28gaW1wb3J0IG90aGVyIHN0eWxlIGZpbGVzICovXHJcbi5jZW50ZXIge1xyXG4gIG1hcmdpbjogYXV0bztcclxufVxyXG5cclxuLmJpZ2J1dHRvbiB7XHJcbiAgZm9udC1zaXplOiBsYXJnZTtcclxufVxyXG5cclxuLmJpZ2J1dHRvbiB7XHJcbiAgaGVpZ2h0OiA1ZW07XHJcbiAgd2lkdGg6IDllbTtcclxufVxyXG5cclxuLmJpZ2cge1xyXG4gIGhlaWdodDogMy41ZW07XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbiN3cmFwcGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGJvcmRlcjogc29saWQgNXB4IGJsYWNrO1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG59XHJcblxyXG4jbGVmdCB7XHJcbiAgZmxleDogMCAwIDY1JTtcclxuICBib3JkZXI6IHNvbGlkIDVweCBicm93bjtcclxuIC8qMWhlaWdodDogMTAwcHg7ICovXHJcbn1cclxuXHJcbiNyaWdodCB7XHJcbiAgZmxleDogMTtcclxuICBib3JkZXI6IHNvbGlkIDVweCByZWQ7XHJcbiAgMWhlaWdodDogMTAwcHg7XHJcbn1cclxuXHJcbi5wYXltZW50aW1hZ2Uge1xyXG4gIGJvcmRlcjogc29saWQgMXB4IHJlZDtcclxuICB3aWR0aDogMTUwcHg7XHJcbiAgaGVpZ2h0OiAxNTBweDtcclxufVxyXG5cclxuLnJlZCB7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIGJhY2tncm91bmQ6IHJlZDtcclxufVxyXG5cclxuLmdyZWVuIHtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogbGlnaHRncmVlbjtcclxuICBtYXJnaW46IDEwcHg7XHJcbn1cclxuXHJcbi5ibHVlIHtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogYmx1ZTtcclxuICBtYXJnaW46IDEwcHg7XHJcbn1cclxuXHJcbi5vdXRsaW5lIHtcclxuICBtYXJnaW46IGF1dG87XHJcbn1cclxuXHJcbi5jb250YWluZXIge1xyXG4gIG1hcmdpbjogYXV0bztcclxuICB3aWR0aDogODAlOyAgXHJcbiAgMXBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5vdXRsaW5lTmFtZSB7XHJcbiAgYm9yZGVyOiBzb2xpZCAycHggYmxhY2s7XHJcbiAgMW1hcmdpbjogYXV0bztcclxuICBtYXJnaW4tdG9wOiAtMTAwcHg7XHJcbn1cclxuXHJcbi5yZXNpemVpbWcge1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB3aWR0aDogMTMwcHg7XHJcbiAgaGVpZ2h0OiA5NXB4O1xyXG59XHJcblxyXG5zcGFuLmFucyB7XHJcbiAgZGlzcGxheTogaW5saW5lO1xyXG4gIDF0ZXh0LWluZGVudDogMTQycHg7XHJcbiAgMW1hcmdpbi1sZWZ0OiAxMDBweDtcclxuICBtYXJnaW4tdG9wOiAtOTBweDtcclxufVxyXG5cclxuLmNlbnRlciB7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG4gIC8qIHdpZHRoOiA2MCU7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgKi9cclxufVxyXG4gXHJcbi5jbGVhcmZpeDo6YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbiAgZGlzcGxheTogdGFibGU7XHJcbn1cclxuXHJcbi5maXhlZGJveCB7XHJcbiAgd2lkdGg6IDdlbTsgLyogMy4zZW07Ki9cclxuICAxaGVpZ2h0OiA4MHB4O1xyXG59XHJcblxyXG4uYm9yZGVybGluZSB7XHJcbiAgYm9yZGVyOiBzb2xpZCAxcHggI0RDRENEQztcclxufVxyXG5cclxuLnBheW1lbnRkZXNjIHtcclxuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XHJcbiAgcGFkZGluZy1yaWdodDogMjVweDtcclxuICBoZWlnaHQ6IDMwcHg7XHJcbiAgZm9udC1zaXplOiAxZW07XHJcbn1cclxuXHJcbi5maXhjb2wge1xyXG4gIHdpZHRoOiAxMGVtOyBcclxufVxyXG5cclxuLmJpZ2ZvbnQge1xyXG4gIGZvbnQtc2l6ZTogMS40NWVtO1xyXG4gIGZvbnQtd2VpZ2h0OiAxMDA7XHJcbn1cclxuXHJcbi5iaWdmb250MiB7XHJcbiAgZm9udC1zaXplOiAxLjVlbTtcclxuICBmb250LXdlaWdodDogMTAwO1xyXG59XHJcblxyXG4uZmFpbnRib3hib3JkZXIge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNEQ0RDREM7XHJcbn1cclxuXHJcbi5mYWludGJveGJvcmRlci1jb250YWluZXIge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNGMEYwRjA7XHJcbn1cclxuXHJcbi5pdGVtYm94IHtcclxuICB3aWR0aDogYXV0bztcclxuICBib3JkZXI6IDJweCBzb2xpZCAjRjBGMEYwO1xyXG59XHJcblxyXG4uY2VudGVydHh0IHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbmltZyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4uZ3J1ZW5kZS1idXR0b24ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xyXG4gIGdyaWQtZ2FwOiAycHg7XHJcbiAgLyogIGFsaWduLWl0ZW1zOiBjZW50ZXI7ICAqL1xyXG59XHJcblxyXG4uZ3J1ZW5kZS1idXR0b24gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB3aWR0aDogMDtcclxufVxyXG5cclxuLyogUGF5bWVudCBCdXR0b24gZW5hYmxlZCAqL1xyXG4uZ3J1ZW5kZS1idXR0b24ge1xyXG4gIC8qIDFkaXNwbGF5OiB0YWJsZS1jZWxsOyBzZXQgVGV4dCBpbiB2ZXJ0aWNhbCBjZW50ZXIgKHdpdGggdmVydGljYWwgYWxpZ24pICovXHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAvKiAxdGV4dC1hbGlnbjogY2VudGVyOyAgc2V0IFRleHQgaW4gaG9yaXpvbnRhbCBjZW50ZXIgKi9cclxuICBmb250LXNpemU6IDEwMCU7XHJcbiAgZm9udC1mYW1pbHk6IFRhaG9tYTtcclxuICAvKmJhY2tncm91bmQtY29sb3I6ICM3NTk3RjA7ICovXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQTc3NDtcclxuICBjb2xvcjogI0ZERkVGRjsgLyogdGV4dCB3aGl0ZSBjb2xvdXIgKi9cclxuICB3aWR0aDogMTAwcHg7XHJcbiAgaGVpZ2h0OiA4MHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbn1cclxuXHJcbmlucHV0Lm5nLWRpcnR5IHtcclxuICBjb2xvcjogI0E5QTlBOTsgLyogdGV4dCBjb2xvdXIgKi9cclxufVxyXG5cclxuLyogaWUgbWFyayBhcyB1bnRvdWNoZWQvY2xlYW4gKi9cclxuaW5wdXQgLm5nLXByaXN0aW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwOyAvKiAgIGNvbG91ciAqL1xyXG59XHJcblxyXG4uZ3J1ZW5kZS1idXR0b24tLWNoZWNrZWQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5Njk2OTk7XHJcbn1cclxuXHJcbiNjb250ZW50IHtcclxuICBib3JkZXI6IDFweCByaWRnZSAjOTk5O1xyXG4gIGhlaWdodDogYXV0bztcclxuICBtaW4taGVpZ2h0OiAxMDAwcHg7XHJcbiAgd2lkdGg6IDExMDBweDtcclxuICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAvKiAgMW1hcmdpbi1ib3R0b206IDMwcHg7ICovXHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4udGFiX2NvbnRhaW5lciB7XHJcbiAgYm9yZGVyOiAxcHggcmlkZ2Ugb3JhbmdlOyAgXHJcbiAgY2xlYXI6IGJvdGg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggcmlkZ2UgIzk5OTtcclxuIC8qICAxbWFyZ2luLWJvdHRvbTogMjBweDsqL1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbn1cclxuXHJcbi50ZXh0Ym94QWxpZ24ge1xyXG4gIHBhZGRpbmctbGVmdDogMTglO1xyXG59XHJcblxyXG4uYmlnYnV0dG9udGV4dCB7XHJcbiAgZm9udC1zaXplOiAyZW07XHJcbn1cclxuXHJcbi5oaWdobGlnaHQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbn1cclxuXHJcbi53aWRlYnV0dG9uIHtcclxuICB3aWR0aDogNTBweDtcclxufVxyXG5cclxuLnN1YnRpdGxlc3BhY2VyIHtcclxuICBwYWRkaW5nLXRvcDogMTBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLmJvdHRvbnNwYWNlciB7XHJcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbi50b3BzcGFjZXIge1xyXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uZmlsbGVyLS1ib3JkZXJlZDpob3ZlciB7XHJcbiAgYm9yZGVyOjVweCBzb2xpZCBibGFjaztcclxufVxyXG5cclxuLmJveDpob3ZlciB7XHJcbiAgYm9yZGVyLWNvbG9yOiBwdXJwbGU7XHJcbn1cclxuXHJcbi5ib2xkdGV4dHtcclxuICAgIGZvbnQtd2VpZ2h0OmJvbGQ7XHJcbn1cclxuXHJcbiAuaXRlbSB7XHJcbiAgYmFja2dyb3VuZDogI2VlZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuIC5pdGVtOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICNlMWUxZTE7XHJcbiAgICBib3JkZXI6IDVweCBzb2xpZCByZWQ7XHJcblxyXG4gfVxyXG5cclxuLmNvbnRhaW5lcjIgZGl2IHtcclxuICBmbG9hdDogbGVmdDtcclxuICB3aWR0aDogMTgwcHg7XHJcbiAgaGVpZ2h0OiAxNjBweDtcclxufVxyXG5cclxuLmJveDIge1xyXG4gIGZsb2F0OmxlZnQ7XHJcbn1cclxuIFxyXG4uY2VudGVyYm94XHJcbntcclxuICBtYXJnaW46IGF1dG87XHJcbiAgd2lkdGg6MTAwJTsgIFxyXG4gIHRleHQtYWxpZ246Y2VudGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6MTBweDtcclxuICBtYXJnaW4tcmlnaHQ6MTBweDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

{{'paymentPopup.Title' | translate}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{'paymentPopup.OrderNumber' | translate}} : {{displayOrderNumber}}\\r\\n
\\r\\n\\r\\n
\\r\\n {{userMessage}}\\r\\n
\\r\\n\\r\\n
\\r\\n {{errorMessageDisplay}}\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\\"{{imageAlt}}\\\"\\r\\n
\\r\\n\\r\\n
\\r\\n {{paymode.paymentName}}\\r\\n
\\r\\n\\r\\n
\\r\\n {{'paymentPopup.OrderPayment' | translate}} \\r\\n
\\r\\n\\r\\n
\\r\\n SGD {{paymode.discountedPaymentAmount}} \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
0 && (rd+1) % 6 === 0 \\\" style=\\\"width: 100%\\\">\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","import { Component, ViewChild, OnInit, Input, Output, EventEmitter, Inject} from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n \r\nimport { throwError } from 'rxjs/internal/observable/throwError';\r\nimport { Router } from '@angular/router';\r\nimport { FormBuilder, FormArray, ValidatorFn } from '@angular/forms';\r\n\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\n\r\nimport { Location } from '@angular/common';\r\n\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\n\r\nimport { ApiService } from '../../../services/meal-order-payment/api.service';\r\n\r\nimport { TokenOrderedPayment } from 'src/app/models/meal-order-payment/token-ordered.model';\r\nimport { TokenOrder, TokenOrdered } from 'src/app/models/meal-order/token-order.model';\r\nimport { PaymentResult } from 'src/app/models/meal-order-payment/payment-result.model';\r\nimport { FomoPaymentResponse } from 'src/app/models/meal-order-payment/fomo-payment-response.model';\r\nimport { PaymentOptions } from 'src/app/models/meal-order-payment/payment-options.model';\r\nimport { TokenOrderPaymentThankyouComponent } from './token-order-payment-thankyou/token-order-payment-thankyou.component';\r\n\r\nimport { PaymentDiscount } from 'src/app/models/meal-order-payment/payment-discount.model';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\n\r\nimport { OrderPaymentRequest } from 'src/app/models/meal-order-payment/order-payment-request';\r\nimport { OrderPaymentResponse } from 'src/app/models/meal-order-payment/order-payment-response';\r\nimport { AccountService } from '../../../services/account.service';\r\n \r\nimport paymentDiscountData from 'src/assets/token-payment-appsettings.json';\r\nimport paymentListData from 'src/assets/token-payment-options.json';\r\n\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { PaymentType } from 'src/app/models/meal-order/payment-type.model';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { PaymentService } from 'src/app/services/meal-order/payment.service';\r\nimport { Utilities } from '../../../services/utilities';\r\n\r\n\r\n/*import { CookieService } from 'ngx-cookie-service';*/\r\n\r\n@Component({\r\n selector: 'token-order-payment',\r\n templateUrl: './token-order-payment.component.html',\r\n styleUrls: ['./token-order-payment.component.css']\r\n})\r\n\r\n\r\n\r\n\r\n\r\nexport class TokenOrderPaymentComponent implements OnInit\r\n{\r\n\r\n private studentTokenOrder: TokenOrder;\r\n cookieValue: any;\r\n\r\n formdata;\r\n bodyData;\r\n imageSrc;\r\n imageAlt;\r\n displayOrderNumber = this.appTranslationService.getTranslation('paymentPopup.NoOrderNumberFound');\r\n userMessage = \"\";\r\n errorMessageDisplay = \"\";\r\n\r\n outletURL = \"\";\r\n thankyouURL = \"\"; // Customer redirected to this page after successful payment\r\n notifyURL = \"\"; // FOMOpay will use this send us when an order status changes eg credit card payment successful. \r\n\r\n public href: string = \"\";\r\n\r\n paymentResult : PaymentResult;\r\n fomoPaymentResponse : FomoPaymentResponse;\r\n paymentRequestRecordId: number = 0;\r\n\r\n paymentList : PaymentOptions[] = [];\r\n paymentOption : PaymentOptions;\r\n\r\n form: FormGroup;\r\n orders = [];\r\n\r\n ////\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n rows: PaymentType[] = [];\r\n paymentTypesList;\r\n\r\n\r\n constructor(private apiService: ApiService,\r\n private appTranslationService: AppTranslationService,\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private accountService: AccountService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialog: MatDialog, \r\n private paymentService: PaymentService, private alertService: AlertService\r\n )\r\n\r\n {\r\n\r\n \r\n\r\n // //\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.loadPaymentTypeData();\r\n // //\r\n\r\n this.studentTokenOrder = new TokenOrder();\r\n \r\n if (data.tokenOrder !== undefined && data.tokenOrder !== null)\r\n {\r\n this.studentTokenOrder = Object.assign({}, data.tokenOrder);\r\n this.displayOrderNumber = this.getRandomInt(1, Number.MAX_SAFE_INTEGER);\r\n //console.log(\"========================================\");\r\n //var date= new Date();\r\n //console.log(\"time=\"+ date);\r\n //console.log(\"JSON.stringify this.orderEdit => \" + JSON.stringify(this.studentTokenOrder));\r\n //console.log(\"data.tokenOrder.id id=>\");\r\n //console.log(\"cloneFood status =>\" + this.studentTokenOrder.status);\r\n //console.log(\"cloneFood totalAmount=>\" + this.studentTokenOrder.totalAmount);\r\n //console.log(\"cloneFood totalAmount=>\" + this.studentTokenOrder.totalAmount);\r\n //console.log(\"========================================\");\r\n } // if (data !== undefined && data !== null)\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n ///\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n //\r\n\r\n\r\n\r\n\r\n loadPaymentTypeData(ev?: any)\r\n {\r\n // this.alertService.startLoadingMessage();\r\n // this.loadingIndicator = true;\r\n this.filter.pageSize = 15;\r\n\r\n // console.log(\" doing loadPaymentTypeData line 147 \" );\r\n\r\n if (ev)\r\n {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword;\r\n\r\n this.paymentService.getPaymentTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n //this.alertService.stopLoadingMessage();\r\n //this.loadingIndicator = false;\r\n\r\n let paymentTypes = results.pagedData;\r\n \r\n\r\n paymentTypes.forEach((paymentType, index, paymentTypes) => {\r\n (paymentType).index = index + 1;\r\n });\r\n\r\n this.paymentTypesList = paymentTypes;\r\n\r\n //for (var product of this.paymentTypesList) {\r\n // console.log(\"Line 176: \"+product.name);\r\n //}\r\n\r\n this.processPaymenTypes();;\r\n\r\n //this.rowsCache = [...paymentTypes];\r\n //this.rows = paymentTypes;\r\n\r\n },\r\n error => {\r\n //this.alertService.stopLoadingMessage();\r\n //this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n\r\n // console.log(\" finish doing loadPaymentTypeData line 147 \");\r\n\r\n }\r\n\r\n\r\n //\r\n\r\n \r\n SetupFormControls()\r\n {\r\n var tokenOrdered = new TokenOrdered();\r\n \r\n this.formdata = new FormGroup({\r\n paymentchosen: new FormControl(\"SELECT\"),\r\n\r\n });\r\n\r\n }\r\n\r\n \r\n\r\n\r\n\r\n//Redirect URL's\r\ngetReturnURLS()\r\n{\r\n var currentURL : string = \"\";\r\n var currentRouterPath : string = \"\";\r\n\r\n \r\n //1 eg http://localhost:56767/outlets\r\n if (window.location.href.length > 0) {\r\n this.outletURL = window.location.href;\r\n //console.log(' outletURL=' + this.outletURL);\r\n }\r\n\r\n //2 eg /outlets\r\n currentRouterPath = this.router.url;\r\n\r\n\r\n //3 eg http://localhost:56767\r\n currentURL = window.location.origin\r\n if (currentURL.length > 0)\r\n {\r\n this.thankyouURL = currentURL + \"/\" + \"paymentthankyou\";\r\n\r\n this.notifyURL = currentURL + \"/\" + \"api/Order/PostProcessNotifyURL\";\r\n }\r\n \r\n //console.log('2 this.outletURL =' + this.outletURL );\r\n //console.log('3 thankyouURL=' + this.thankyouURL);\r\n //console.log('3 thankyouURL=' + window.location.origin);\r\n\r\n\r\n\r\n\r\n } // end function\r\n\r\n\r\n\r\nngOnInit() {\r\n this.SetupFormControls();\r\n } // end function\r\n\r\n\r\nngAfterViewInit() {\r\n } // end function\r\n\r\n\r\n\r\nprocessPaymenTypes()\r\n {\r\n var discountRate: number = 0;\r\n var orderQty: number = 0;\r\n var orderTotal: number = 0;\r\n var discountRate: number = 0;\r\n var key;\r\n\r\n var objPaymentData = JSON.stringify(paymentListData)\r\n var discountRateMap = new Map();\r\n this.getReturnURLS();\r\n this.userMessage = \"\";\r\n\r\n // check object\r\n if (this.studentTokenOrder !== undefined && this.studentTokenOrder !== null)\r\n {\r\n\r\n discountRateMap = this.getDiscountRateInfo(discountRateMap);\r\n orderTotal = this.studentTokenOrder.totalAmount;\r\n \r\n if (orderTotal > 0.50)\r\n {\r\n \r\n // console.log(\" ngOnInit() Line 277:\");\r\n for (var paymentType of this.paymentTypesList)\r\n {\r\n // console.log(\" ngOnInit() Line 276:\"+ paymentType.name);\r\n key = paymentType.name;\r\n \r\n\r\n /// this.SetupFormControls();\r\n this.paymentResult = new PaymentResult();\r\n this.fomoPaymentResponse = new FomoPaymentResponse();\r\n\r\n \r\n // if (key.toUpperCase() == \"ALIPAY\" && value == true)\r\n if (key.toUpperCase() == \"ALIPAY\")\r\n {\r\n let paymentOption = new PaymentOptions();\r\n paymentOption.isEnabled = true;\r\n paymentOption.imageSrc = 'assets/images/payments/alipayplus-logo.png';\r\n discountRate = discountRateMap.get('ALIPAY'); \r\n paymentOption.paymentDiscount = discountRate;\r\n paymentOption.paymentName = \"AliPay\";\r\n paymentOption.paymentCode = \"ALIPAY\";\r\n paymentOption.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); // NB Not doing discounts off payment now.\r\n this.imageAlt = 'AliPay';\r\n this.paymentList.push(paymentOption);\r\n }\r\n\r\n if (key.toUpperCase() == \"ATOME\") \r\n {\r\n let paymentOption2 = new PaymentOptions();\r\n paymentOption2.isEnabled = true;\r\n paymentOption2.imageSrc = 'assets/images/payments/atome-logo.png';\r\n discountRate = discountRateMap.get('ATOME'); \r\n paymentOption2.paymentDiscount = discountRate;\r\n paymentOption2.paymentName = \"Atome\";\r\n paymentOption2.paymentCode = \"ATOME\";\r\n paymentOption2.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); // this.calculateDiscountedPrice(orderTotal, discountRate);\r\n \r\n this.imageAlt = 'Atome';\r\n this.paymentList.push(paymentOption2);\r\n }\r\n\r\n if (key.toUpperCase() == \"CREDIT CARD\")\r\n {\r\n console.log(\"Line 321 handling payment:\"+paymentType.name);\r\n let paymentOption3 = new PaymentOptions();\r\n paymentOption3.isEnabled = true;\r\n paymentOption3.imageSrc = 'assets/images/payments/card-logo.png';\r\n discountRate = discountRateMap.get('CARD'); \r\n paymentOption3.paymentDiscount = discountRate;\r\n paymentOption3.paymentName = \"Credit/Debit Card\";\r\n paymentOption3.paymentCode = \"CARD\";\r\n paymentOption3.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); // this.calculateDiscountedPrice(orderTotal, discountRate);\r\n\r\n this.imageAlt = 'Credit/Debit Card';\r\n this.paymentList.push(paymentOption3);\r\n }\r\n\r\n\r\n if (key.toUpperCase() == \"DPT\") \r\n {\r\n let paymentOption4 = new PaymentOptions();\r\n paymentOption4.isEnabled = true;\r\n paymentOption4.imageSrc = 'assets/images/payments/dpt-logo.png';\r\n discountRate = discountRateMap.get('DPT'); \r\n paymentOption4.paymentDiscount = discountRate;\r\n paymentOption4.paymentName = \"DPT\";\r\n paymentOption4.paymentCode = \"DPT\";\r\n paymentOption4.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); // this.calculateDiscountedPrice(orderTotal, discountRate);\r\n\r\n this.imageAlt = 'DPT';\r\n this.paymentList.push(paymentOption4);\r\n }\r\n\r\n if (key.toUpperCase() == \"BROWSER\")\r\n {\r\n let paymentOption5 = new PaymentOptions();\r\n paymentOption5.isEnabled = true;\r\n paymentOption5.imageSrc = 'assets/images/payments/googlepay-logo.png';\r\n discountRate = discountRateMap.get('BROWSER'); \r\n paymentOption5.paymentDiscount = discountRate;\r\n paymentOption5.paymentName = \"Browser Payment\"; // eg google pay, apple pay, microsoft pay etc\r\n paymentOption5.paymentCode = \"BROWSER\";\r\n paymentOption5.discountedPaymentAmount = this.formatDisplayAmount(orderTotal);// this.calculateDiscountedPrice(orderTotal, discountRate);\r\n\r\n this.paymentList.push(paymentOption5);\r\n }\r\n\r\n if (key.toUpperCase() == \"GRABPAY\") \r\n {\r\n let paymentOption6 = new PaymentOptions();\r\n paymentOption6.isEnabled = true;\r\n paymentOption6.imageSrc = 'assets/images/payments/grabpay-logo.png';\r\n discountRate = discountRateMap.get('GRABPAY'); \r\n paymentOption6.paymentDiscount = discountRate;\r\n paymentOption6.paymentName = \"GrabPay\";\r\n paymentOption6.paymentCode = \"GRABPAY\";\r\n paymentOption6.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); // this.calculateDiscountedPrice(orderTotal, discountRate);\r\n\r\n this.paymentList.push(paymentOption6);\r\n }\r\n\r\n if (key.toUpperCase() == \"NETSPAY\")\r\n {\r\n let paymentOption7 = new PaymentOptions();\r\n paymentOption7.isEnabled = true;\r\n paymentOption7.imageSrc = 'assets/images/payments/netspay-logo.png';\r\n discountRate = discountRateMap.get('NETSPAY'); \r\n paymentOption7.paymentDiscount = discountRate;\r\n paymentOption7.paymentName = \"NetsPay\";\r\n paymentOption7.paymentCode = \"NETSPAY\";\r\n paymentOption7.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); // this.calculateDiscountedPrice(orderTotal, discountRate);\r\n\r\n this.paymentList.push(paymentOption7);\r\n }\r\n\r\n if (key.toUpperCase() == \"PAYNOW\")\r\n {\r\n let paymentOption8 = new PaymentOptions();\r\n paymentOption8.isEnabled = true;\r\n paymentOption8.imageSrc = 'assets/images/payments/paynow-logo.png';\r\n discountRate = discountRateMap.get('PAYNOW'); \r\n paymentOption8.paymentDiscount = discountRate;\r\n paymentOption8.paymentName = \"PayNow\";\r\n paymentOption8.paymentCode = \"PAYNOW\";\r\n paymentOption8.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); // this.calculateDiscountedPrice(orderTotal, discountRate);\r\n\r\n this.paymentList.push(paymentOption8);\r\n }\r\n\r\n if (key.toUpperCase() == \"PAYPAL\")\r\n {\r\n let paymentOption9 = new PaymentOptions();\r\n paymentOption9.isEnabled = true;\r\n paymentOption9.imageSrc = 'assets/images/payments/paypal-logo.png';\r\n discountRate = discountRateMap.get('PAYPAL'); \r\n paymentOption9.paymentDiscount = discountRate;\r\n paymentOption9.paymentName = \"PayPal\";\r\n paymentOption9.paymentCode = \"PAYPAL\";\r\n paymentOption9.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); //this.formatDisplayAmount(orderTotal); // this.calculateDiscountedPrice(orderTotal, discountRate);\r\n\r\n this.paymentList.push(paymentOption9);\r\n }\r\n\r\n if (key.toUpperCase() == \"SHOPEEPAY\")\r\n {\r\n let paymentOption10 = new PaymentOptions();\r\n paymentOption10.isEnabled = true;\r\n paymentOption10.imageSrc = '../../assets/images/payments/shopeepay-logo.png';\r\n discountRate = discountRateMap.get('SHOPEEPAY'); \r\n paymentOption10.paymentDiscount = discountRate;\r\n paymentOption10.paymentName = \"ShopeePay\";\r\n paymentOption10.paymentCode = \"SHOPEEPAY\";\r\n paymentOption10.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); // this.calculateDiscountedPrice(orderTotal, discountRate);\r\n\r\n this.paymentList.push(paymentOption10);\r\n }\r\n\r\n if (key.toUpperCase() == \"UNIONPAY\" )\r\n {\r\n let paymentOption11 = new PaymentOptions();\r\n paymentOption11.isEnabled = true;\r\n paymentOption11.imageSrc = 'assets/images/payments/unionpay-logo.png';\r\n discountRate = discountRateMap.get('UNIONPAY'); \r\n paymentOption11.paymentDiscount = discountRate;\r\n paymentOption11.paymentName = \"UnionPay\";\r\n paymentOption11.paymentCode = \"UNIONPAY\";\r\n paymentOption11.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); // this.calculateDiscountedPrice(orderTotal, discountRate);\r\n\r\n this.paymentList.push(paymentOption11);\r\n }\r\n\r\n if (key.toUpperCase() == \"WECHATPAY\")\r\n {\r\n let paymentOption12 = new PaymentOptions();\r\n paymentOption12.isEnabled = true;\r\n paymentOption12.imageSrc = 'assets/images/payments/wechatpay-logo.png';\r\n discountRate = discountRateMap.get('WECHATPAY'); \r\n paymentOption12.paymentDiscount = discountRate;\r\n paymentOption12.paymentName = \"WeChatPay\";\r\n paymentOption12.paymentCode = \"WECHATPAY\";\r\n paymentOption12.discountedPaymentAmount = this.formatDisplayAmount(orderTotal); // this.calculateDiscountedPrice(orderTotal, discountRate);\r\n\r\n this.paymentList.push(paymentOption12);\r\n }\r\n\r\n } // for (var paymentType of paymentTypes) {\r\n\r\n\r\n }\r\n else\r\n {\r\n // this.userMessage = \"Order total is below minimum order value or no data to display !\";\r\n this.displayOrderNumber = \"\";\r\n this.userMessage = this.appTranslationService.getTranslation('paymentPopup.BelowMinOrderValue');\r\n\r\n } // if (orderTotal > 0.50)\r\n \r\n\r\n } // if (this.studentTokenOrder !== undefined && this.studentTokenOrder !== null)\r\n\r\n \r\n\r\n } // ngOnInit\r\n\r\n \r\ngetCurrentAbsoluteSiteUrl(): string\r\n{\r\n\r\n //console.log(window.location.href);\r\n //console.log(window.location.host);\r\n\r\n if (window\r\n && \"location\" in window\r\n && \"protocol\" in window.location\r\n && \"pathname\" in window.location\r\n && \"host\" in window.location) {\r\n return window.location.protocol + \"//\" + window.location.host + window.location.pathname;\r\n }\r\n\r\n return null;\r\n\r\n }\r\n\r\n\r\n \r\n// Read json file and return discount rate\r\ngetDiscountRate(paymentMethod)\r\n{\r\n var objData = JSON.stringify(paymentDiscountData)\r\n var discountRate: number = 0;\r\n\r\n const myArr = JSON.parse(objData);\r\n\r\n JSON.parse(objData, (key, value) =>\r\n {\r\n if (key == paymentMethod) {\r\n //console.log(\"found match paymentMethod: \" + paymentMethod);\r\n discountRate = value;\r\n }\r\n\r\n });\r\n return discountRate;\r\n }\r\n\r\n\r\n// Read json file and return discount rate data - \r\ngetDiscountRateInfo(discountDataList)\r\n {\r\n var objData = JSON.stringify(paymentDiscountData)\r\n \r\n const myArr = JSON.parse(objData);\r\n\r\n JSON.parse(objData, (key, value) => {\r\n discountDataList.set(key, value);\r\n });\r\n\r\n return discountDataList;\r\n\r\n}\r\n\r\n\r\n\r\ncalculateRevisedAmount(orderAmount, paymentMethod)\r\n {\r\n var discountRate : number;\r\n var subTotalNew : number = 0;\r\n var subTotalRounded;\r\n \r\n var discountRate = this.getDiscountRate(paymentMethod);\r\n subTotalNew = (orderAmount) - ((orderAmount) * discountRate);\r\n subTotalRounded = subTotalNew.toFixed(2);\r\n\r\n return subTotalRounded;\r\n\r\n}\r\n\r\n\r\n\r\ncalculateDiscountedPrice(orderTotalAmount, paymentDiscountRate)\r\n{\r\n var subTotalNew : number = 0;\r\n var subTotalRounded;\r\n\r\n subTotalNew = (orderTotalAmount) - ((orderTotalAmount) * paymentDiscountRate);\r\n subTotalRounded = subTotalNew.toFixed(2);\r\n\r\n return subTotalRounded;\r\n\r\n }\r\n\r\n\r\n\r\nformatDisplayAmount(orderTotalAmount)\r\n{\r\n var subTotalRounded;\r\n subTotalRounded = orderTotalAmount.toFixed(2);\r\n return subTotalRounded;\r\n}\r\n\r\n\r\n// Call API with data via input button click\r\nonClickSubmitAction(eventButn, data)\r\n{\r\n\r\n var paymentMethod: string;\r\n var currentPaymentPageURL: string;\r\n var newPaymentResponseRecordId;\r\n\r\n // console.log(' onClickSubmitAction ' + eventButn);\r\n // console.log(' data ' + data);\r\n // console.log(\" current url \" + window.location.href);\r\n\r\n // Get selected payment method.\r\n paymentMethod = eventButn.target.id;\r\n\r\n this.errorMessageDisplay = \"\";\r\n\r\n\r\n if (this.formdata.valid) {\r\n // Disable the payment buttons\r\n this.formdata.controls['paymentchosen'].disable();\r\n this.formdata.controls['paymentchosen'].markAsDirty();\r\n var dd = this.formdata.controls['paymentchosen'];\r\n\r\n // Highlight select payment button \r\n var btnSelected = eventButn.target;\r\n btnSelected.style.backgroundColor = '#4800FF'; // dark purple colour\r\n }\r\n else {\r\n //console.log(\"not form submitted\");\r\n }\r\n\r\n\r\n\r\n //console.log(\"onClickSubmitAction / totalAmount=>\" + this.studentTokenOrder.totalAmount);\r\n //console.log(\"onClickSubmitAction / studentTokenOrder.id) =>\" + this.studentTokenOrder.id);\r\n //console.log(\"onClickSubmitAction / studentTokenOrder.mealSessionDetailId =>\" + this.studentTokenOrder.mealSessionDetailId);\r\n //console.log(\"onClickSubmitAction / studentTokenOrder.profileId =>\" + this.studentTokenOrder.profileId);\r\n\r\n currentPaymentPageURL = window.location.href;\r\n \r\n let discountRate: number = 0;\r\n let revisedSubTotal: number = 0;\r\n\r\n // Get revised SubTotal.\r\n revisedSubTotal = this.studentTokenOrder.totalAmount; // this.calculateRevisedAmount(this.studentTokenOrder.totalAmount, paymentMethod)\r\n\r\n\r\n\r\n // Just for debug\r\n //temp for testing - min payment for fomopay is SGD 0.50\r\n // revisedSubTotal = 0.50; \r\n // console.log('onClickSubmitAction / revisedSubTotal :' + revisedSubTotal);\r\n //temp for testing\r\n //\r\n\r\n\r\n ////// Revised\r\n let tokenOrdered = new TokenOrderedPayment(); \r\n let id: string = this.displayOrderNumber; \r\n let tokenId: string = this.studentTokenOrder.id;\r\n let tokenDesc: string = \"Token Meal Payment\"; \r\n let subtotal: number = revisedSubTotal\r\n\r\n subtotal = 0;\r\n \r\n \r\n //console.debug(\"data submitted\");\r\n //console.debug(\"id: \" + id);\r\n //console.debug(\"tokenId: \" + tokenId);\r\n //console.debug(\"tokenDesc: \" + tokenDesc);\r\n //console.debug(\"subtotal: \" + subtotal);\r\n //console.debug(\"revisedSubTotal: \" + revisedSubTotal);\r\n\r\n tokenOrdered.id = id;\r\n tokenOrdered.tokenId = tokenId;\r\n tokenOrdered.tokenDesc = tokenDesc;\r\n tokenOrdered.subtotal = revisedSubTotal;\r\n tokenOrdered.paymentMethod = paymentMethod.trim();\r\n\r\n // 1st call create db record\r\n this.SaveRequestRecord(tokenOrdered, paymentMethod, this.outletURL, this.thankyouURL, this.notifyURL);\r\n\r\n \r\n this.apiService.getPaymentURLWithErrHd(tokenOrdered, paymentMethod, this.outletURL, this.thankyouURL, this.notifyURL ).subscribe(\r\n (data) => {\r\n //console.log('(onClickSubmit) About to read data from post call');\r\n // console.log(data);\r\n // this.bodyData = data['body'];\r\n this.paymentResult = data.body;\r\n\r\n //console.log('Finished URL from API');\r\n //console.log('URL :' + this.paymentResult.responseURI);\r\n //console.log('responseStatus :' + this.paymentResult.responseStatus);\r\n //console.log('paymentTime :' + this.paymentResult.paymentTime);\r\n //console.log('isSuccessful :' + this.paymentResult.isSuccessful); \r\n //console.log(' data.body :' + JSON.stringify(data.body) );\r\n\r\n if (this.paymentResult !== undefined && this.paymentResult !== null) {\r\n\r\n if (this.paymentResult.responseURI !== undefined && this.paymentResult.responseURI !== null)\r\n {\r\n if (this.paymentResult.responseURI.length > 0)\r\n {\r\n\r\n // Save transactionID\r\n let fomoPaymentResponse = new FomoPaymentResponse\r\n fomoPaymentResponse = this.paymentResult.fomoPaymentResponse;\r\n\r\n // console.log('token component/ this.SavePaymentResponse method /line 562 about to call payment URL :' + this.paymentRequestRecordId);\r\n // Save data before call api to be on safe side.\r\n newPaymentResponseRecordId = this.SavePaymentResponse(this.paymentResult, tokenOrdered, this.paymentRequestRecordId);\r\n //console.log('token component/onClickSubmitAction method/line 567 returned valued=' + newPaymentResponseRecordId);\r\n\r\n // Redirect user to the FOMOPay payment page (URL). \r\n this.gotoPaymentPage(this.paymentResult.responseURI, false);\r\n\r\n \r\n\r\n\r\n\r\n }\r\n\r\n }\r\n else {\r\n this.errorMessageDisplay = this.appTranslationService.getTranslation('paymentPopup.ApologiesErrorOccurred');\r\n }\r\n\r\n \r\n }\r\n else {\r\n this.errorMessageDisplay = this.appTranslationService.getTranslation('paymentPopup.ApologiesErrorOccurred');\r\n }\r\n \r\n\r\n },\r\n // error => console.log('oops', error)\r\n error => this.errorHandler(error)\r\n );\r\n\r\n} // onClickSubmit(data)\r\n\r\n\r\ngotoPaymentPage(urlPage, newTab) {\r\n\r\n // redirect in same window/tab\r\n if (newTab == false) {\r\n window.location.href = urlPage;\r\n }\r\n else {\r\n // redirect in new tab\r\n window.open(urlPage, \"_blank\");\r\n }\r\n\r\n \r\n}\r\n\r\n\r\n\r\n// Error handling\r\nerrorHandler(error) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // Get client-side error\r\n errorMessage = error.error.message;\r\n this.errorMessageDisplay = errorMessage;\r\n } else {\r\n // Get server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n this.errorMessageDisplay = errorMessage;\r\n }\r\n // console.log(errorMessage);\r\n return throwError(() =>\r\n {\r\n this.errorMessageDisplay = errorMessage;\r\n return errorMessage;\r\n });\r\n}\r\n\r\n \r\n // Generate random number for our trans\r\ngetRandomInt(min, max) {\r\n min = Math.ceil(min);\r\n max = Math.floor(max);\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n\r\n\r\n\r\nclose() {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n \r\n // 1st call method to save request set by this app to FOMOpay.\r\nSaveRequestRecord(tokenOrdered: TokenOrderedPayment, paymentMethod: string, outletURL: string, thankyouURL: string, notifyURL:string) {\r\n // 1st call create db record\r\n this.apiService.createRequestRecord(tokenOrdered, paymentMethod, outletURL, thankyouURL, notifyURL).subscribe(\r\n (data) => {\r\n this.paymentRequestRecordId = data.body;\r\n //console.log('createRequestRecord method line 515: newPaymentRequestRecordId is :' + this.paymentRequestRecordId);\r\n\r\n if (this.paymentRequestRecordId !== undefined && this.paymentRequestRecordId !== null) {\r\n // console.log('createRequestRecord method: line 631 :' + this.paymentRequestRecordId);\r\n }\r\n else {\r\n this.errorMessageDisplay = this.appTranslationService.getTranslation('paymentPopup.ApologiesErrorOccurred');\r\n }\r\n //console.log('createRequestRecord method:line 567 :' + this.paymentRequestRecordId);\r\n\r\n },\r\n error => this.errorHandler(error)\r\n );\r\n\r\n\r\n }\r\n\r\n\r\n // 2nd call method to save response from FOMOpay.\r\nSavePaymentResponse(paymentResponse: PaymentResult, tokenOrderedCurrent: TokenOrderedPayment, newRequestRecordID: number) {\r\n var paymentResponseRecordId = 0;\r\n\r\n this.apiService.createResponseRecord(paymentResponse, tokenOrderedCurrent, newRequestRecordID).subscribe(\r\n (data) => {\r\n paymentResponseRecordId = data.body;\r\n //console.log('SavePaymentResponse: line 589:' + data.body);\r\n if (paymentResponseRecordId !== undefined && paymentResponseRecordId !== null)\r\n {\r\n\r\n \r\n //console.log('line 618 token component/ SavePaymentResponse/ createResponseRecord method returned value from API is :' + paymentResponseRecordId);\r\n }\r\n else {\r\n this.errorMessageDisplay = this.appTranslationService.getTranslation('paymentPopup.ApologiesErrorOccurred');\r\n }\r\n return paymentResponseRecordId;\r\n\r\n },\r\n error => this.errorHandler(error)\r\n );\r\n\r\n\r\n }\r\n\r\n\r\n \r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.mat-tab-body-content{\\r\\n padding:20px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90b2tlbi1vcmRlci90b2tlbi1vcmRlci1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWSxFQUFFLHdDQUF3QztFQUN0RCxXQUFXLEVBQUUsd0NBQXdDO0VBQ3JELHNCQUFzQixFQUFFLDZDQUE2QztFQUNyRSxxQkFBcUIsRUFBRSw2Q0FBNkM7QUFDdEU7O0FBRUE7RUFDRSxZQUFZO0FBQ2QiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3Rva2VuLW9yZGVyL3Rva2VuLW9yZGVyLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eVR5cGVFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICB3aWR0aDogMzBweDsgLypkb3VibGUgb2YgeW91ciByZXF1aXJlZCBjaXJjbGUgcmFkaXVzKi9cclxuICBsZWZ0OiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpOyAvKicxMHB4Jy1zYW1lIGFzIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbn1cclxuXHJcbi5tYXQtdGFiLWJvZHktY29udGVudHtcclxuICBwYWRkaW5nOjIwcHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Student\\r\\n \\r\\n \\r\\n {{student.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Session\\r\\n \\r\\n \\r\\n {{session.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
Tokens
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Token {{i + 1}}\\r\\n \\r\\n \\r\\n {{mealType.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\\r\\n
\\r\\n Remove\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Combined Dish {{j + 1}}\\r\\n \\r\\n \\r\\n {{cdish.setname}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Dish {{k + 1}}\\r\\n \\r\\n \\r\\n {{dish.label}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n Add Commbined Dish\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n Add Token\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealTypeMenuDish, Menu, MenuDish } from 'src/app/models/meal-order/menu.model';\r\nimport { TokenOrder, TokenOrdered, TokenOrderDish, TokenAltDish, TokenOrderCombinedDish } from 'src/app/models/meal-order/token-order.model';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Dish } from 'src/app/models/meal-order/dish.model';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport * as moment from 'moment';\r\nimport { MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport { MomentUtcDateAdapter } from 'src/app/helpers/moment-utc-adapter';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\nimport { MealType, MealTypeDish } from 'src/app/models/meal-order/meal-type.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { MealSessionDetail } from 'src/app/models/meal-order/meal-session.model';\r\nimport { DishSelectorComponent } from '../dishes/dish-selector/dish-selector.component';\r\n\r\n@Component({\r\n selector: 'token-order-editor',\r\n templateUrl: './token-order-editor.component.html',\r\n styleUrls: ['./token-order-editor.component.css'],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-SG' },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: MomentUtcDateAdapter },\r\n ]\r\n})\r\n\r\n\r\n \r\n\r\nexport class TokenOrderEditorComponent {\r\n\r\n private isNewOrder = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingOrderCode: string;\r\n private orderEdit: TokenOrder = new TokenOrder();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n transactionTime = new Date();\r\n deliveryDate = new Date();\r\n private students: Student[] = [];\r\n private periods: MealPeriod[] = [];\r\n private sessions: MealSessionDetail[] = [];\r\n private mealtypes: MealType[] = [];\r\n\r\n selectedStudent: Student;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public catererId: string;\r\n public dishes: Dish[] = [];\r\n public altDishes: TokenAltDish[] = [];\r\n public storeId: string;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private menuService: MenuService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private dishService: DishService, private studentService: StudentService, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any, public dialog: MatDialog, private deliveryService: DeliveryService,\r\n private dateAdapter: DateAdapter) {\r\n this.dateAdapter.setLocale('en-SG');\r\n\r\n if (typeof (data.student) != typeof (undefined)) {\r\n if (data.student) {\r\n this.selectedStudent = data.student;\r\n }\r\n }\r\n\r\n\r\n this.getStore();\r\n this.getMealTypes(data);\r\n this.getStudents();\r\n this.getPeriods();\r\n this.getMenuDishes();\r\n //this.getSessions();\r\n }\r\n\r\n getStudents() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.studentService.getStudentsByFilter(filter)\r\n .subscribe(results => {\r\n this.students = results.pagedData;\r\n console.log(\"students: \", this.students)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving students.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getPeriods() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.mealService.getMealPeriodsByFilter(filter)\r\n .subscribe(results => {\r\n this.periods = results.pagedData;\r\n console.log(\"periods: \", this.periods)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal periods.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getSessions() {\r\n if (this.deliveryDate) {\r\n var date = new Date(this.deliveryDate.getTime() - (this.deliveryDate.getTimezoneOffset() * 60000)).toJSON().split('T')\r\n console.log(\"delivery date: \", date[0])\r\n this.menuService.getStudentSessionsByFilter(this.selectedStudent.id, date[0])\r\n .subscribe(results => {\r\n this.sessions = results;\r\n console.log(\"sessions: \", this.sessions)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal sessions.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n }\r\n\r\n getStore() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true,(outletId)==' + this.selectedStudent.outletId;\r\n this.deliveryService.getStoreInfosByFilter(filter)\r\n .subscribe(results => {\r\n if (results.pagedData.length > 0) {\r\n this.storeId = results.pagedData[0].id;\r\n this.catererId = results.pagedData[0].catererInfoId;\r\n } else {\r\n this.storeId = \"0\";\r\n this.catererId = \"0\";\r\n }\r\n console.log(\"store paged data: \", results.pagedData)\r\n console.log(\"store: \", this.storeId)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal periods.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n this.deliveryDate = new Date(event.value);\r\n this.orderEdit.deliveryDate = new Date(event.value);\r\n this.getSessions();\r\n }\r\n\r\n selectToken(event, detail?: TokenOrdered) {\r\n console.log(\"event: \", event)\r\n console.log(\"order: \", detail)\r\n let token = this.mealtypes.find(x => x.id === event.value);\r\n if (token) {\r\n detail.price = token.price;\r\n }\r\n\r\n this.getCombinedDishes(detail);\r\n this.onChangeQty(event, detail);\r\n }\r\n\r\n selectCDish(event, detail?: TokenOrdered, selCDish?: TokenOrderCombinedDish) {\r\n console.log(\"event: \", event)\r\n console.log(\"order: \", detail)\r\n detail.selectedDishes = [];\r\n\r\n let cdish = detail.listCombinedDishes.find(x => x.setname === event.value);\r\n\r\n console.log(\"cdish: \", cdish)\r\n selCDish.menuQty = cdish.menus.length;\r\n cdish.menus.forEach(dish => {\r\n if (!detail.selectedDishes) detail.selectedDishes = [];\r\n\r\n let selDish = new TokenOrderDish();\r\n selDish.tokenOrderedId = detail.id;\r\n selDish.dishId = dish.dishId;\r\n\r\n detail.selectedDishes.push(selDish);\r\n })\r\n }\r\n\r\n onChangeCDQty(event, detail?: TokenOrdered, selCDish?: TokenOrderCombinedDish) {\r\n console.log(\"event: \", event)\r\n\r\n if (detail.selectedDishes) {\r\n\r\n detail.selectedDishes.forEach(dish => {\r\n dish.qty = selCDish.qty;\r\n })\r\n }\r\n\r\n }\r\n\r\n onChangeQty(event, detail?: TokenOrdered) {\r\n if (detail.qty && detail.price) {\r\n detail.subtotal = detail.qty * detail.price;\r\n } else {\r\n detail.subtotal = 0;\r\n }\r\n\r\n var sumAmount = 0;\r\n\r\n this.orderEdit.tokens.forEach(t => {\r\n sumAmount += t.subtotal;\r\n })\r\n\r\n this.orderEdit.totalAmount = sumAmount;\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n console.log(\"storeID = \", this.storeId)\r\n\r\n if (this.storeId != null && this.storeId != \"0\") {\r\n this.orderEdit.storeId = this.storeId;\r\n } else {\r\n this.noStoreHelper();\r\n return;\r\n }\r\n\r\n\r\n console.log(\"order: \", this.orderEdit)\r\n this.orderEdit.transactionTime = new Date();\r\n this.orderEdit.status = \"pending\";\r\n \r\n if (this.isNewOrder) {\r\n this.menuService.newTokenOrder(this.orderEdit).subscribe(order => this.saveSuccessHelper(order), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.menuService.updateTokenOrder(this.orderEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(order?: TokenOrder) {\r\n if (order)\r\n Object.assign(this.orderEdit, order);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewOrder)\r\n this.alertService.showMessage(\"Success\", `Order No \\\"${this.orderEdit.id}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Order No \\\"${this.orderEdit.id}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.orderEdit = new TokenOrder();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewMenu && this.accountService.currentUser.facilities.some(r => r == this.editingMenuCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private noStoreHelper() {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"Current Outlet doesnt have any store linked to it. Please set up store for the Outlet\", MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.orderEdit = new TokenOrder();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newOrder() {\r\n this.isNewOrder = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingOrderCode = null;\r\n this.selectedValues = {};\r\n this.orderEdit = new TokenOrder();\r\n this.orderEdit.profileId = this.selectedStudent.id;\r\n this.transactionTime = new Date();\r\n this.deliveryDate = new Date();\r\n this.deliveryDate.setUTCHours(0, 0, 0, 0);\r\n this.orderEdit.transactionTime = this.transactionTime;\r\n this.orderEdit.deliveryDate = this.deliveryDate;\r\n return this.orderEdit;\r\n }\r\n\r\n editOrder(order: TokenOrder) {\r\n if (order) {\r\n this.isNewOrder = false;\r\n this.showValidationErrors = true;\r\n\r\n console.log(\"order is: \", order)\r\n //this.editingMenuCode = menu.label;\r\n order.tokens.forEach(t => {\r\n let token = this.mealtypes.find(x => x.id === t.tokenId);\r\n if (token) {\r\n t.price = token.price;\r\n }\r\n\r\n if (t.price && t.qty) {\r\n t.subtotal = t.price * t.qty;\r\n }\r\n })\r\n this.selectedValues = {};\r\n this.orderEdit = new TokenOrder();\r\n Object.assign(this.orderEdit, order);\r\n this.transactionTime = this.orderEdit.transactionTime;\r\n this.deliveryDate = new Date(this.orderEdit.deliveryDate);\r\n\r\n this.getSessions();\r\n\r\n this.orderEdit.tokens.forEach(t => {\r\n this.getCombinedDishes(t);\r\n })\r\n\r\n return this.orderEdit;\r\n }\r\n else {\r\n return this.newOrder();\r\n }\r\n }\r\n\r\n getMealTypes(data: any) {\r\n let filter = new Filter();\r\n filter.sorts = 'name';\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.mealService.getMealTypesByFilter(filter)\r\n .subscribe(results => {\r\n let mealTypes = results.pagedData;\r\n this.mealtypes = results.pagedData;\r\n if (typeof (data.tokenOrder) != typeof (undefined)) {\r\n if (data.tokenOrder.id) {\r\n this.editOrder(data.tokenOrder);\r\n } else {\r\n this.newOrder();\r\n }\r\n }\r\n //if (!this.menuEdit.mealTypeMenuDishes) {\r\n // this.menuEdit.mealTypeMenuDishes = [];\r\n //}\r\n\r\n //let dishFilter = new Filter();\r\n //dishFilter.sorts = 'label';\r\n //dishFilter.filters = f + '(IsActive)==true';\r\n //this.dishService.getDishesByFilter(dishFilter)\r\n // .subscribe(res => {\r\n // let dishes = res.pagedData;\r\n \r\n // mealTypes.forEach((mp: MealType, index, m) => {\r\n // let mealTypeDish = new MealTypeMenuDish();\r\n // mealTypeDish.menuDishes = [];\r\n // mealTypeDish.mealTypeId = mp.id;\r\n // mealTypeDish.mealTypeName = mp.name;\r\n // dishes.forEach((d: Dish, index, dish) => {\r\n // if (!this.menuEdit.menuDishes) this.menuEdit.menuDishes = [];\r\n // let existingDishes = this.menuEdit.menuDishes.filter(e => e.mealTypeId == mp.id && e.dishId == d.id);\r\n // if (existingDishes && existingDishes.length > 0) {\r\n // let existingDish = existingDishes[0];\r\n // existingDish.checked = true;\r\n // mealTypeDish.menuDishes.push(existingDishes[0]);\r\n // } else {\r\n // let newMenuDish = new MenuDish();\r\n // newMenuDish.dishId = d.id;\r\n // newMenuDish.menuId = this.menuEdit.id;\r\n // newMenuDish.mealTypeId = mp.id;\r\n // newMenuDish.dishName = d.label;\r\n // mealTypeDish.menuDishes.push(newMenuDish);\r\n // }\r\n // });\r\n\r\n // this.menuEdit.mealTypeMenuDishes.push(mealTypeDish);\r\n // },\r\n // error => {\r\n // this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal types.\\r\\n\"`,\r\n // MessageSeverity.error);\r\n // });\r\n\r\n // });\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal type.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getMenuDishes() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.dishService.getDishesByFilter(filter)\r\n .subscribe(results => {\r\n this.dishes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getCombinedDishes(detail: TokenOrdered) {\r\n if (this.deliveryDate) {\r\n detail.listCombinedDishes = [];\r\n var deliveryDate = (new Date(this.deliveryDate.getTime() - (this.deliveryDate.getTimezoneOffset() * 60000)).toJSON().split('T'))[0]\r\n console.log(\"get combined dish: \", this.selectedStudent.outletId, this.catererId, detail.tokenId, deliveryDate, this.orderEdit.mealSessionDetailId)\r\n if (this.selectedStudent.outletId && this.orderEdit.mealSessionDetailId && detail.tokenId && deliveryDate && this.catererId) {\r\n\r\n this.dishService.getCombinedDish(this.selectedStudent.outletId, this.catererId, detail.tokenId, deliveryDate, this.orderEdit.mealSessionDetailId)\r\n .subscribe(results => {\r\n console.log(\"result combined dish list: \", results);\r\n detail.listCombinedDishes = results\r\n }\r\n , error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving combined dishes.\\r\\n\"`,\r\n MessageSeverity.error);\r\n\r\n })\r\n }\r\n }\r\n }\r\n\r\n //addDish(mealTypeId, mealTypeName: string) {\r\n // let mealType = this.menuEdit.mealTypeMenuDishes.filter(e => e.mealTypeId == mealTypeId);\r\n // let selectedDishes: MenuDish[] = [];\r\n // if (mealType && mealType.length > 0) {\r\n // selectedDishes = mealType[0].menuDishes.filter(e => e.checked);\r\n // }\r\n \r\n // const dialogRef = this.dialog.open(DishSelectorComponent, {\r\n // data: { header: \"Dishes\", dishes: selectedDishes, catererId: this.catererId },\r\n // width: '800px'\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // if (!result.isCancel) {\r\n // let menuDishes: MenuDish[] = [];\r\n // result.selectedDishes.forEach((d, index, ps) => {\r\n // if (d.checked) {\r\n // let dtDish = new MenuDish();\r\n // dtDish.menuId = this.menuEdit.id;\r\n // dtDish.dishId = d.id;\r\n // dtDish.mealTypeId = mealTypeId;\r\n // dtDish.checked = true;\r\n // dtDish.dishName = d.label;\r\n // menuDishes.push(dtDish);\r\n // }\r\n // });\r\n\r\n // let mealTypeDishes = this.menuEdit.mealTypeMenuDishes.filter((cg) => cg.mealTypeId == mealTypeId);\r\n // if (mealTypeDishes && mealTypeDishes.length > 0) {\r\n // mealTypeDishes[0].menuDishes = menuDishes;\r\n // }\r\n // }\r\n // });\r\n //}\r\n\r\n addDetail(order: TokenOrder) {\r\n if (!order.tokens) order.tokens = [];\r\n\r\n let tokenOrdered = new TokenOrdered();\r\n tokenOrdered.orderId = order.id;\r\n tokenOrdered.tokenAltDishes = [];\r\n\r\n let maxLength = this.dishes.length > 5 ? 5 : this.dishes.length\r\n\r\n for (let i = 0; i < maxLength; i++) {\r\n let tad = new TokenAltDish();\r\n tad.dishId = this.dishes[i].id;\r\n tad.tokenOrderedId = tokenOrdered.id;\r\n tokenOrdered.tokenAltDishes.push(tad);\r\n }\r\n\r\n order.tokens.push(tokenOrdered);\r\n }\r\n\r\n addDish(detail: TokenOrdered) {\r\n if (!detail.selectedDishes) detail.selectedDishes = [];\r\n\r\n let selDish = new TokenOrderDish();\r\n selDish.tokenOrderedId = detail.id;\r\n\r\n detail.selectedDishes.push(selDish);\r\n }\r\n\r\n addCombinedDish(detail: TokenOrdered) {\r\n if (!detail.selectedCombinedDishes) detail.selectedCombinedDishes = [];\r\n\r\n let selCDish = new TokenOrderCombinedDish();\r\n selCDish.tokenOrderedId = detail.id;\r\n\r\n detail.selectedCombinedDishes.push(selCDish);\r\n }\r\n\r\n removeToken(row: TokenOrdered) {\r\n\r\n this.orderEdit.tokens = this.orderEdit.tokens.filter(item => item !== row);\r\n }\r\n\r\n removeDish(token:TokenOrdered,row: TokenOrderDish) {\r\n token.selectedDishes = token.selectedDishes.filter(item => item !== row);\r\n }\r\n\r\n get canManageOrders() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMenusPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90b2tlbi1vcmRlci90b2tlbi1vcmRlcnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFDQTtFQUNFLGNBQWM7QUFDaEI7O0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90b2tlbi1vcmRlci90b2tlbi1vcmRlcnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4uYWN0aXZlIHtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmUgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

Token Order

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n {{'paymentOption.Payment' | translate}} \\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Menu } from 'src/app/models/meal-order/menu.model';\r\nimport { TokenOrderEditorComponent } from './token-order-editor.component';\r\nimport { MenuService } from 'src/app/services/meal-order/menu.service';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { TokenOrder } from 'src/app/models/meal-order/token-order.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { StudentService } from 'src/app/services/meal-order/student.service';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { PipeTransform } from '@angular/core';\r\nimport { DateAdapter, MatDatepickerInputEvent, MatDialog, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { TokenOrderPaymentComponent } from '../token-order-payment/token-order-payment.component';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'token-orders-management',\r\n templateUrl: './token-orders-management.component.html',\r\n styleUrls: ['./token-orders-management.component.css']\r\n})\r\nexport class TokenOrdersManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: TokenOrder[] = [];\r\n rowsCache: TokenOrder[] = [];\r\n allPermissions: Permission[] = [];\r\n editedOrder: TokenOrder;\r\n sourceOrder: TokenOrder;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n @Input() isHideHeader: boolean;\r\n private students: Student[] = [];\r\n private periods: MealPeriod[] = [];\r\n selectedStudent: Student;\r\n\r\n rowTokenOrderStatus;\r\n rowTokenOrderStatusFlag: boolean;\r\n \r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('tokenOrderEditor')\r\n tokenOrderEditor: TokenOrderEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private menuService: MenuService, public dialog: MatDialog, private studentService: StudentService, private mealService: MealService,\r\n public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\r\n\r\n if (typeof (data.student) != typeof (undefined)) {\r\n if (data.student) {\r\n this.selectedStudent = data.student;\r\n }\r\n }\r\n }\r\n\r\n openDialog(tokenOrder: TokenOrder): void {\r\n const dialogRef = this.dialog.open(TokenOrderEditorComponent, {\r\n data: { header: this.header, tokenOrder: tokenOrder, student: this.selectedStudent },\r\n width: '1000px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'transactionTime';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'transactionTime', name: 'Transaction Time', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'profileId', name: 'Student', pipe: this.pipeStudentName() },\r\n { prop: 'periodId', name: 'Period', pipe: this.pipePeriodName() },\r\n { prop: 'status', name: 'Status' },\r\n { prop: 'remarks', name: 'Remarks' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.getStudents();\r\n this.getPeriods();\r\n }\r\n\r\n getStudents() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.studentService.getStudentsByFilter(filter)\r\n .subscribe(results => {\r\n this.students = results.pagedData;\r\n console.log(\"students: \", this.students)\r\n this.loadData();\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving students.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getPeriods() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.mealService.getMealPeriodsByFilter(filter)\r\n .subscribe(results => {\r\n this.periods = results.pagedData;\r\n console.log(\"periods: \", this.periods)\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving meal periods.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n let f = this.selectedStudent ? '(profileId)==' + this.selectedStudent.id + ',' : '';\r\n //let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n //this.filter.filters = '(IsActive)==true,(Code|Label)@=' + this.keyword;\r\n this.filter.filters = f + '(IsActive)==true';\r\n\r\n console.log(\"filter: \", this.filter)\r\n \r\n this.menuService.getTokenOrdersByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let orders = results.pagedData;\r\n\r\n console.log(\"order: \", orders)\r\n\r\n orders.forEach((tokenOrder, index, orders) => {\r\n (tokenOrder).index = index + 1;\r\n\r\n });\r\n\r\n this.rowsCache = [...orders];\r\n this.rows = orders;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n canMakeOrderPayment(row: TokenOrder, rowIndex:number)\r\n {\r\n let pagedMaxNumPages: number;\r\n \r\n pagedMaxNumPages = this.pagedResult.pagedData.length;\r\n\r\n //console.log(\"paged data : \" + pagedMaxNumPages);\r\n //console.log(\"canMakeOrderPayment : \" + row.id);\r\n\r\n if (row.status.toLowerCase().trim() == \"pending\")\r\n {\r\n // console.log(\"match found set flag : \" + row.id);\r\n return true;\r\n }\r\n else\r\n {\r\n // console.log(\"no match set flag false : \" + row.id);\r\n return false;\r\n }\r\n\r\n }\r\n\r\n\r\n \r\n\r\n \r\n\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newOrder() {\r\n this.header = 'New Order';\r\n this.editedOrder = new TokenOrder();\r\n this.openDialog(this.editedOrder);\r\n }\r\n\r\n\r\n editOrder(row: TokenOrder) {\r\n this.editedOrder = row;\r\n this.header = 'Edit Order';\r\n //this.editedOrder.catererId = this.catererId;\r\n this.openDialog(this.editedOrder);\r\n }\r\n\r\n deleteOrder(row: TokenOrder) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.id + '\\\" order?', DialogType.confirm, () => this.deleteOrderHelper(row));\r\n }\r\n\r\n\r\n deleteOrderHelper(row: TokenOrder) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.menuService.deleteTokenOrder(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Order.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n pipeStudentName(): PipeTransform {\r\n return {\r\n transform: (value) => {\r\n let student = this.students.find(x => x.id === value);\r\n if (student) {\r\n return student.name\r\n } else {\r\n return ''\r\n }\r\n }\r\n }\r\n }\r\n\r\n pipePeriodName(): PipeTransform {\r\n return {\r\n transform: (value) => {\r\n let period = this.periods.find(x => x.id === value);\r\n if (period) {\r\n return period.name\r\n } else {\r\n return ''\r\n }\r\n }\r\n }\r\n }\r\n\r\n private cancel() {\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n get canManageOrders() {\r\n return true; //this.accountService.userHasPermission(Permission.manageMenusPermission)\r\n }\r\n\r\n\r\n //\r\n payOrder(row: TokenOrder) {\r\n \r\n this.header = 'Payment for Order';\r\n \r\n const dialogRef = this.dialog.open(TokenOrderPaymentComponent, {\r\n data: { header: this.header, tokenOrder: row, student: this.selectedStudent },\r\n width: '1000px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n \r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90cmFja2luZy1zdGF0dXMvdHJhY2tpbmctc3RhdHVzLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vdHJhY2tpbmctc3RhdHVzL3RyYWNraW5nLXN0YXR1cy1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { TrackingStatus } from 'src/app/models/meal-order/tracking-status.model';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { CatererInfo } from '../../../models/meal-order/caterer-info.model';\r\n\r\n\r\n@Component({\r\n selector: 'tracking-status-editor',\r\n templateUrl: './tracking-status-editor.component.html',\r\n styleUrls: ['./tracking-status-editor.component.css']\r\n})\r\nexport class TrackingStatusEditorComponent {\r\n\r\n private isNewTrackingStatus = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingTrackingStatusCode: string;\r\n private trackingStatusEdit: TrackingStatus = new TrackingStatus();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n private periods: MealPeriod[] = [];\r\n private catererInfos: CatererInfo[] = [];\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private deliveryService: DeliveryService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.trackingStatus) != typeof (undefined)) {\r\n if (data.trackingStatus.id) {\r\n this.editTrackingStatus(data.trackingStatus);\r\n } else {\r\n this.newTrackingStatus();\r\n }\r\n }\r\n\r\n this.getCatererInfos();\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.trackingStatusEdit.institutionId = this.accountService.currentUser.institutionId;\r\n console.log(this.periods);\r\n let selectedPeriods = this.periods.filter(f => f.checked);\r\n \r\n\r\n if (this.isNewTrackingStatus) {\r\n this.deliveryService.newTrackingStatus(this.trackingStatusEdit).subscribe(trackingStatus => this.saveSuccessHelper(trackingStatus), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.deliveryService.updateTrackingStatus(this.trackingStatusEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(trackingStatus?: TrackingStatus) {\r\n if (trackingStatus)\r\n Object.assign(this.trackingStatusEdit, trackingStatus);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewTrackingStatus)\r\n this.alertService.showMessage(\"Success\", `Tracking status \\\"${this.trackingStatusEdit.status}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Tracking status \\\"${this.trackingStatusEdit.status}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.trackingStatusEdit = new TrackingStatus();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewTrackingStatus && this.accountService.currentUser.facilities.some(r => r == this.editingTrackingStatusCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.trackingStatusEdit = new TrackingStatus();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newTrackingStatus() {\r\n this.isNewTrackingStatus = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingTrackingStatusCode = null;\r\n this.selectedValues = {};\r\n this.trackingStatusEdit = new TrackingStatus();\r\n\r\n return this.trackingStatusEdit;\r\n }\r\n\r\n editTrackingStatus(trackingStatus: TrackingStatus) {\r\n if (trackingStatus) {\r\n this.isNewTrackingStatus = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingTrackingStatusCode = trackingStatus.status;\r\n this.selectedValues = {};\r\n this.trackingStatusEdit = new TrackingStatus();\r\n Object.assign(this.trackingStatusEdit, trackingStatus);\r\n\r\n return this.trackingStatusEdit;\r\n }\r\n else {\r\n return this.newTrackingStatus();\r\n }\r\n }\r\n\r\n getCatererInfos() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.deliveryService.getCatererInfosByFilter(filter)\r\n .subscribe(results => {\r\n this.catererInfos = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving caterers.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n\r\n\r\n get canManageTrackingStatuss() {\r\n return true; //this.accountService.userHasPermission(Permission.manageTrackingStatussPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90cmFja2luZy1zdGF0dXMvdHJhY2tpbmctc3RhdHVzcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3RyYWNraW5nLXN0YXR1cy90cmFja2luZy1zdGF0dXNzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Tracking Status

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { TrackingStatus } from 'src/app/models/meal-order/tracking-status.model';\r\nimport { TrackingStatusEditorComponent } from './tracking-status-editor.component';\r\nimport { DishService } from 'src/app/services/meal-order/dish.service';\r\nimport { StaffService } from '../../../services/meal-order/staff.service';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'tracking-statuss-management',\r\n templateUrl: './tracking-statuss-management.component.html',\r\n styleUrls: ['./tracking-statuss-management.component.css']\r\n})\r\nexport class TrackingStatussManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: TrackingStatus[] = [];\r\n rowsCache: TrackingStatus[] = [];\r\n allPermissions: Permission[] = [];\r\n editedTrackingStatus: TrackingStatus;\r\n sourceTrackingStatus: TrackingStatus;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('trackingStatusEditor')\r\n trackingStatusEditor: TrackingStatusEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private deliveryService: DeliveryService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(trackingStatus: TrackingStatus): void {\r\n const dialogRef = this.dialog.open(TrackingStatusEditorComponent, {\r\n data: { header: this.header, trackingStatus: trackingStatus },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'status';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'status', name: 'Status' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Status)@=' + this.keyword + ',(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n \r\n this.deliveryService.getTrackingStatussByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let trackingStatuss = results.pagedData;\r\n\r\n trackingStatuss.forEach((trackingStatus, index, trackingStatuss) => {\r\n (trackingStatus).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...trackingStatuss];\r\n this.rows = trackingStatuss;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n newTrackingStatus() {\r\n this.header = 'New Tracking status';\r\n this.editedTrackingStatus = new TrackingStatus();\r\n this.openDialog(this.editedTrackingStatus);\r\n }\r\n\r\n\r\n editTrackingStatus(row: TrackingStatus) {\r\n this.editedTrackingStatus = row;\r\n this.header = 'Edit Tracking status';\r\n this.openDialog(this.editedTrackingStatus);\r\n }\r\n\r\n deleteTrackingStatus(row: TrackingStatus) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.status + '\\\" Tracking status?', DialogType.confirm, () => this.deleteTrackingStatusHelper(row));\r\n }\r\n\r\n\r\n deleteTrackingStatusHelper(row: TrackingStatus) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.deliveryService.deleteTrackingStatus(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the Tracking status.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageTrackingStatuss() {\r\n return true; //this.accountService.userHasPermission(Permission.manageTrackingStatussPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90cmFuc2FjdGlvbi1mZWUvdHJhbnNhY3Rpb24tZmVlLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vdHJhbnNhY3Rpb24tZmVlL3RyYW5zYWN0aW9uLWZlZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Payment Type\\r\\n \\r\\n \\r\\n {{paymentType.name}}\\r\\n \\r\\n \\r\\n Payment Type is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n % of the Total \\r\\n Fixed Amount \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { TransactionFee } from 'src/app/models/meal-order/transaction-fee.model';\r\nimport { PaymentService } from 'src/app/services/meal-order/payment.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'transaction-fee-editor',\r\n templateUrl: './transaction-fee-editor.component.html',\r\n styleUrls: ['./transaction-fee-editor.component.css']\r\n})\r\nexport class TransactionFeeEditorComponent {\r\n private subscription: Subscription = new Subscription();\r\n private isNewTransactionFee = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingTransactionFeeCode: string;\r\n private transactionFeeEdit: TransactionFee = new TransactionFee();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public paymentTypes = [];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private paymentService: PaymentService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.transactionFee) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.transactionFee.id) {\r\n this.editTransactionFee(data.transactionFee);\r\n } else {\r\n this.newTransactionFee();\r\n }\r\n }\r\n\r\n this.getPaymentTypes();\r\n }\r\n\r\n getPaymentTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.subscription.add(this.paymentService.getPaymentTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.paymentTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving payment types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n\r\n if (this.isNewTransactionFee) {\r\n this.paymentService.newTransactionFee(this.transactionFeeEdit).subscribe(transactionFee => this.saveSuccessHelper(transactionFee), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.paymentService.updateTransactionFee(this.transactionFeeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(transactionFee?: TransactionFee) {\r\n if (transactionFee)\r\n Object.assign(this.transactionFeeEdit, transactionFee);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewTransactionFee)\r\n this.alertService.showMessage(\"Success\", `\\\"${this.transactionFeeEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.transactionFeeEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.transactionFeeEdit = new TransactionFee();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewTransactionFee && this.accountService.currentUser.facilities.some(r => r == this.editingTransactionFeeCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.transactionFeeEdit = new TransactionFee();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newTransactionFee() {\r\n this.isNewTransactionFee = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingTransactionFeeCode = null;\r\n this.selectedValues = {};\r\n this.transactionFeeEdit = new TransactionFee();\r\n return this.transactionFeeEdit;\r\n }\r\n\r\n editTransactionFee(transactionFee: TransactionFee) {\r\n if (transactionFee) {\r\n this.isNewTransactionFee = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingTransactionFeeCode = transactionFee.name;\r\n this.selectedValues = {};\r\n this.transactionFeeEdit = new TransactionFee();\r\n Object.assign(this.transactionFeeEdit, transactionFee);\r\n\r\n return this.transactionFeeEdit;\r\n }\r\n else {\r\n return this.newTransactionFee();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageTransactionFees() {\r\n return true; //this.accountService.userHasPermission(Permission.manageTransactionFeesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS90cmFuc2FjdGlvbi1mZWUvdHJhbnNhY3Rpb24tZmVlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3RyYW5zYWN0aW9uLWZlZS90cmFuc2FjdGlvbi1mZWVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Transaction Fees

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
{{row.isFixed ? \\\"% of the Total\\\": \\\"Fixed\\\" }}
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { TransactionFeeEditorComponent } from './transaction-fee-editor.component';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { PaymentService } from 'src/app/services/meal-order/payment.service';\r\nimport { TransactionFee } from 'src/app/models/meal-order/transaction-fee.model';\r\n\r\n\r\n@Component({\r\n selector: 'transaction-fees-management',\r\n templateUrl: './transaction-fees-management.component.html',\r\n styleUrls: ['./transaction-fees-management.component.css']\r\n})\r\nexport class TransactionFeesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: TransactionFee[] = [];\r\n rowsCache: TransactionFee[] = [];\r\n allPermissions: Permission[] = [];\r\n editedTransactionFee: TransactionFee;\r\n sourceTransactionFee: TransactionFee;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('chargeByTemplate')\r\n chargeByTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: TransactionFeeEditorComponent;\r\n\r\n @ViewChild('transactionFeesTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private paymentService: PaymentService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(transactionFee: TransactionFee): void {\r\n const dialogRef = this.dialog.open(TransactionFeeEditorComponent, {\r\n data: { header: this.header, transactionFee: transactionFee },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'paymentTypeName', name: 'Payment Type' },\r\n { prop: 'name', name: 'Name' },\r\n { name: 'Charge by', cellTemplate: this.chargeByTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false },\r\n { prop: 'amount', name: 'Amount/Percentage' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.paymentService.getTransactionFeesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let transactionFees = results.pagedData;\r\n\r\n transactionFees.forEach((transactionFee, index, transactionFees) => {\r\n (transactionFee).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...transactionFees];\r\n this.rows = transactionFees;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newTransactionFee() {\r\n this.header = 'New Transaction Fee';\r\n this.editedTransactionFee = new TransactionFee();\r\n this.openDialog(this.editedTransactionFee);\r\n }\r\n\r\n\r\n editTransactionFee(row: TransactionFee) {\r\n this.editedTransactionFee = row;\r\n this.header = 'Edit Transaction Fee';\r\n this.openDialog(this.editedTransactionFee);\r\n }\r\n\r\n deleteTransactionFee(row: TransactionFee) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" ?', DialogType.confirm, () => this.deleteTransactionFeeHelper(row));\r\n }\r\n\r\n\r\n deleteTransactionFeeHelper(row: TransactionFee) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.paymentService.deleteTransactionFee(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageTransactionFees() {\r\n return this.accountService.userHasPermission(Permission.manageMOSOrderMgtTransactionFeesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS92b3VjaGVyLXR5cGUvdm91Y2hlci10eXBlLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vdm91Y2hlci10eXBlL3ZvdWNoZXItdHlwZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { PaymentService } from '../../../services/meal-order/payment.service';\r\nimport { VoucherType } from 'src/app/models/meal-order/voucher-type.model';\r\n\r\n\r\n@Component({\r\n selector: 'voucher-type-editor',\r\n templateUrl: './voucher-type-editor.component.html',\r\n styleUrls: ['./voucher-type-editor.component.css']\r\n})\r\nexport class VoucherTypeEditorComponent {\r\n\r\n private isNewVoucherType = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingVoucherTypeCode: string;\r\n private voucherTypeEdit: VoucherType = new VoucherType();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private paymentService: PaymentService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.voucherType) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.voucherType.id) {\r\n this.editVoucherType(data.voucherType);\r\n } else {\r\n this.newVoucherType();\r\n }\r\n }\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n\r\n if (this.isNewVoucherType) {\r\n this.paymentService.newVoucherType(this.voucherTypeEdit).subscribe(voucherType => this.saveSuccessHelper(voucherType), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.paymentService.updateVoucherType(this.voucherTypeEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(voucherType?: VoucherType) {\r\n if (voucherType)\r\n Object.assign(this.voucherTypeEdit, voucherType);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewVoucherType)\r\n this.alertService.showMessage(\"Success\", `\\\"${this.voucherTypeEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.voucherTypeEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.voucherTypeEdit = new VoucherType();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewVoucherType && this.accountService.currentUser.facilities.some(r => r == this.editingVoucherTypeCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.voucherTypeEdit = new VoucherType();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newVoucherType() {\r\n this.isNewVoucherType = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingVoucherTypeCode = null;\r\n this.selectedValues = {};\r\n this.voucherTypeEdit = new VoucherType();\r\n return this.voucherTypeEdit;\r\n }\r\n\r\n editVoucherType(voucherType: VoucherType) {\r\n if (voucherType) {\r\n this.isNewVoucherType = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingVoucherTypeCode = voucherType.name;\r\n this.selectedValues = {};\r\n this.voucherTypeEdit = new VoucherType();\r\n Object.assign(this.voucherTypeEdit, voucherType);\r\n\r\n return this.voucherTypeEdit;\r\n }\r\n else {\r\n return this.newVoucherType();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageVoucherTypes() {\r\n return this.accountService.userHasPermission(Permission.manageMOSOrderMgtVoucherTypesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS92b3VjaGVyLXR5cGUvdm91Y2hlci10eXBlcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3ZvdWNoZXItdHlwZS92b3VjaGVyLXR5cGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Voucher Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { VoucherTypeEditorComponent } from './voucher-type-editor.component';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { VoucherType } from 'src/app/models/meal-order/voucher-type.model';\r\nimport { PaymentService } from 'src/app/services/meal-order/payment.service';\r\n\r\n\r\n@Component({\r\n selector: 'voucher-types-management',\r\n templateUrl: './voucher-types-management.component.html',\r\n styleUrls: ['./voucher-types-management.component.css']\r\n})\r\nexport class VoucherTypesManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: VoucherType[] = [];\r\n rowsCache: VoucherType[] = [];\r\n allPermissions: Permission[] = [];\r\n editedVoucherType: VoucherType;\r\n sourceVoucherType: VoucherType;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: VoucherTypeEditorComponent;\r\n\r\n @ViewChild('voucherTypesTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private paymentService: PaymentService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(voucherType: VoucherType): void {\r\n const dialogRef = this.dialog.open(VoucherTypeEditorComponent, {\r\n data: { header: this.header, voucherType: voucherType },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'name', name: 'Name' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.paymentService.getVoucherTypesByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let voucherTypes = results.pagedData;\r\n\r\n voucherTypes.forEach((voucherType, index, voucherTypes) => {\r\n (voucherType).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...voucherTypes];\r\n this.rows = voucherTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newVoucherType() {\r\n this.header = 'New Voucher Type';\r\n this.editedVoucherType = new VoucherType();\r\n this.openDialog(this.editedVoucherType);\r\n }\r\n\r\n\r\n editVoucherType(row: VoucherType) {\r\n this.editedVoucherType = row;\r\n this.header = 'Edit Voucher Type';\r\n this.openDialog(this.editedVoucherType);\r\n }\r\n\r\n deleteVoucherType(row: VoucherType) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" voucher type?', DialogType.confirm, () => this.deleteVoucherTypeHelper(row));\r\n }\r\n\r\n\r\n deleteVoucherTypeHelper(row: VoucherType) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.paymentService.deleteVoucherType(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the voucher type.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageVoucherTypes() {\r\n return this.accountService.userHasPermission(Permission.manageMOSOrderMgtVoucherTypesPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n.date-picker {\\r\\n width: 40%;\\r\\n float: left;\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n.date-picker-to {\\r\\n width: 20%;\\r\\n float: left;\\r\\n text-align: center;\\r\\n padding-top: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS92b3VjaGVyL3ZvdWNoZXItZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVksRUFBRSx3Q0FBd0M7RUFDdEQsV0FBVyxFQUFFLHdDQUF3QztFQUNyRCxzQkFBc0IsRUFBRSw2Q0FBNkM7RUFDckUscUJBQXFCLEVBQUUsNkNBQTZDO0FBQ3RFOztBQUVBO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixpQkFBaUI7QUFDbkIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3ZvdWNoZXIvdm91Y2hlci1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcblxyXG4uZGF0ZS1waWNrZXIge1xyXG4gIHdpZHRoOiA0MCU7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgcGFkZGluZy10b3A6IDEwcHg7XHJcbn1cclxuXHJcbi5kYXRlLXBpY2tlci10byB7XHJcbiAgd2lkdGg6IDIwJTtcclxuICBmbG9hdDogbGVmdDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgcGFkZGluZy10b3A6IDEwcHg7XHJcbn1cclxuIl19 */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Voucher Type\\r\\n \\r\\n \\r\\n {{voucherType.name}}\\r\\n \\r\\n \\r\\n Payment Type is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Voucher Usage Period\\r\\n
\\r\\n \\r\\n
\\r\\n
TO
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Discount Type\\r\\n \\r\\n Fix Amount\\r\\n Percentage\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Outlet Profile\\r\\n 0\\\" id=\\\"outletProfileId\\\" name=\\\"outletProfileId\\\" [(ngModel)]=\\\"voucherEdit.outletProfileId\\\" #outletProfileId=\\\"ngModel\\\" required (selectionChange)=\\\"onOutletChange($event.value)\\\">\\r\\n \\r\\n {{outletProfile.label}}\\r\\n \\r\\n \\r\\n \\r\\n
Meal Periods
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Display on all pages\\r\\n Do not display\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { PaymentService } from '../../../services/meal-order/payment.service';\r\nimport { Voucher, VoucherMealPeriod } from 'src/app/models/meal-order/voucher.model';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { DeliveryService } from 'src/app/services/meal-order/delivery.service';\r\n\r\n\r\n@Component({\r\n selector: 'voucher-editor',\r\n templateUrl: './voucher-editor.component.html',\r\n styleUrls: ['./voucher-editor.component.css']\r\n})\r\nexport class VoucherEditorComponent {\r\n private subscription: Subscription = new Subscription();\r\n private isNewVoucher = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingVoucherCode: string;\r\n private voucherEdit: Voucher = new Voucher();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n private periods: MealPeriod[] = [];\r\n private outletProfiles = [];\r\n\r\n @ViewChild('f')\r\n private form;\r\n voucherTypes: any;\r\n\r\n constructor(private alertService: AlertService, private paymentService: PaymentService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService, private deliveryService: DeliveryService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.voucher) != typeof (undefined)) {\r\n if (data.voucher.id) {\r\n this.editVoucher(data.voucher);\r\n } else {\r\n this.newVoucher();\r\n }\r\n }\r\n this.getOutletProfiles();;\r\n this.getVoucherTypes();\r\n }\r\n\r\n getVoucherTypes() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.subscription.add(this.paymentService.getVoucherTypesByFilter(filter)\r\n .subscribe(results => {\r\n this.voucherTypes = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving voucher types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getOutletProfiles() {\r\n let filter = new Filter();\r\n let f = this.catererId ? '(CatererId)==' + this.catererId + ',' : '';\r\n filter.filters = f + '(IsActive)==true';\r\n this.deliveryService.getOutletProfilesByFilter(filter)\r\n .subscribe(results => {\r\n this.outletProfiles = results.pagedData;\r\n this.getPeriods(false, this.voucherEdit.outletProfileId);\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving outlets.\\r\\n\"`,\r\n MessageSeverity.error);\r\n })\r\n }\r\n\r\n getPeriods(isClearValue: boolean, outletProfileId?: string) {\r\n if (outletProfileId) {\r\n //if (isClearValue) this.dishCycleEdit.outletProfileId = '';\r\n let filter = new Filter();\r\n filter.sorts = 'sequence';\r\n filter.filters = '(IsActive)==true,(OutletProfileId)==' + outletProfileId;\r\n\r\n this.mealService.getMealPeriodsByFilter(filter)\r\n .subscribe(results => {\r\n this.periods = results.pagedData;\r\n this.periods.forEach((p, index, ps) => {\r\n (p).checked = this.voucherEdit.voucherMealPeriods != null && this.voucherEdit.voucherMealPeriods.findIndex(f => f.mealPeriodId == p.id) > -1;\r\n });\r\n },\r\n error => {\r\n })\r\n } else {\r\n\r\n }\r\n }\r\n\r\n onOutletChange(outletProfileId?: string) {\r\n this.getPeriods(true, outletProfileId);\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n this.voucherEdit.voucherMealPeriods = [];\r\n this.periods.forEach((p, index, ps) => {\r\n if (p.checked) {\r\n let period = new VoucherMealPeriod();\r\n period.VoucherId = this.voucherEdit.id;\r\n period.mealPeriodId = p.id;\r\n this.voucherEdit.voucherMealPeriods.push(period);\r\n }\r\n\r\n });\r\n\r\n if (this.isNewVoucher) {\r\n this.paymentService.newVoucher(this.voucherEdit).subscribe(voucher => this.saveSuccessHelper(voucher), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.paymentService.updateVoucher(this.voucherEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(voucher?: Voucher) {\r\n if (voucher)\r\n Object.assign(this.voucherEdit, voucher);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewVoucher)\r\n this.alertService.showMessage(\"Success\", `\\\"${this.voucherEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.voucherEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.voucherEdit = new Voucher();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewVoucher && this.accountService.currentUser.facilities.some(r => r == this.editingVoucherCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.voucherEdit = new Voucher();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newVoucher() {\r\n this.isNewVoucher = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingVoucherCode = null;\r\n this.selectedValues = {};\r\n this.voucherEdit = new Voucher();\r\n return this.voucherEdit;\r\n }\r\n\r\n editVoucher(voucher: Voucher) {\r\n if (voucher) {\r\n this.isNewVoucher = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingVoucherCode = voucher.name;\r\n this.selectedValues = {};\r\n this.voucherEdit = new Voucher();\r\n Object.assign(this.voucherEdit, voucher);\r\n\r\n return this.voucherEdit;\r\n }\r\n else {\r\n return this.newVoucher();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageVouchers() {\r\n return this.accountService.userHasPermission(Permission.manageMOSOrderMgtVouchersPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS92b3VjaGVyL3ZvdWNoZXJzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBQ0E7RUFDRSxjQUFjO0FBQ2hCOztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vdm91Y2hlci92b3VjaGVycy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbi5hY3RpdmUge1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n
\\r\\n

Vouchers

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { VoucherEditorComponent } from './voucher-editor.component';\r\nimport { Voucher } from 'src/app/models/meal-order/voucher.model';\r\nimport { PaymentService } from 'src/app/services/meal-order/payment.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\n\r\n\r\n@Component({\r\n selector: 'vouchers-management',\r\n templateUrl: './vouchers-management.component.html',\r\n styleUrls: ['./vouchers-management.component.css']\r\n})\r\nexport class VouchersManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Voucher[] = [];\r\n rowsCache: Voucher[] = [];\r\n allPermissions: Permission[] = [];\r\n editedVoucher: Voucher;\r\n sourceVoucher: Voucher;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: VoucherEditorComponent;\r\n\r\n @ViewChild('voucherTypesTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private paymentService: PaymentService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(voucher: Voucher): void {\r\n const dialogRef = this.dialog.open(VoucherEditorComponent, {\r\n data: { header: this.header, voucher: voucher },\r\n width: '600px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'voucherTypeName', name: 'Type' },\r\n { prop: 'name', name: 'Name' },\r\n { prop: 'code', name: 'Code' },\r\n { prop: 'startDateTime', name: 'Start', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'endDateTime', name: 'End', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.paymentService.getVouchersByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let voucherTypes = results.pagedData;\r\n\r\n voucherTypes.forEach((voucher, index, voucherTypes) => {\r\n (voucher).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...voucherTypes];\r\n this.rows = voucherTypes;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newVoucher() {\r\n this.header = 'New Voucher';\r\n this.editedVoucher = new Voucher();\r\n this.openDialog(this.editedVoucher);\r\n }\r\n\r\n\r\n editVoucher(row: Voucher) {\r\n this.editedVoucher = row;\r\n this.header = 'Edit Voucher';\r\n this.openDialog(this.editedVoucher);\r\n }\r\n\r\n deleteVoucher(row: Voucher) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" voucher?', DialogType.confirm, () => this.deleteVoucherHelper(row));\r\n }\r\n\r\n\r\n deleteVoucherHelper(row: Voucher) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.paymentService.deleteVoucher(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the voucher.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageVouchers() {\r\n return this.accountService.userHasPermission(Permission.manageMOSOrderMgtVouchersPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-container {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-outer-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-inner-circle {\\r\\n height: 15px;\\r\\n width: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .mat-radio-button .mat-radio-ripple {\\r\\n height: 30px; /*double of your required circle radius*/\\r\\n width: 30px; /*double of your required circle radius*/\\r\\n left: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n top: calc(50% - 15px); /*'10px'-same as your required circle radius*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS93YWl2ZXIvd2FpdmVyLWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZLEVBQUUsd0NBQXdDO0VBQ3RELFdBQVcsRUFBRSx3Q0FBd0M7RUFDckQsc0JBQXNCLEVBQUUsNkNBQTZDO0VBQ3JFLHFCQUFxQixFQUFFLDZDQUE2QztBQUN0RSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVhbC1vcmRlci1zeXN0ZW0vd2FpdmVyL3dhaXZlci1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcblxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTVweDtcclxuICB3aWR0aDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmFkaW8tcmlwcGxlIHtcclxuICBoZWlnaHQ6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgd2lkdGg6IDMwcHg7IC8qZG91YmxlIG9mIHlvdXIgcmVxdWlyZWQgY2lyY2xlIHJhZGl1cyovXHJcbiAgbGVmdDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTsgLyonMTBweCctc2FtZSBhcyB5b3VyIHJlcXVpcmVkIGNpcmNsZSByYWRpdXMqL1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

{{data.header}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Transaction Fee\\r\\n \\r\\n \\r\\n {{transactionFee.name}} - {{transactionFee.paymentTypeName}} ({{(transactionFee.isFixed ? '$ ' + transactionFee.amount : transactionFee.amount + '%')}})\\r\\n \\r\\n \\r\\n Payment Type is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MealService } from 'src/app/services/meal-order/meal.service';\r\nimport { PaymentService } from '../../../services/meal-order/payment.service';\r\nimport { Waiver } from 'src/app/models/meal-order/waiver.model';\r\nimport { Filter } from 'src/app/models/sieve-filter.model';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'waiver-editor',\r\n templateUrl: './waiver-editor.component.html',\r\n styleUrls: ['./waiver-editor.component.css']\r\n})\r\nexport class WaiverEditorComponent {\r\n private subscription: Subscription = new Subscription();\r\n private isNewWaiver = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingWaiverCode: string;\r\n private waiverEdit: Waiver = new Waiver();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public formResetToggle = true;\r\n public catererId: string;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n private transactionFees = [];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n constructor(private alertService: AlertService, private paymentService: PaymentService, private accountService: AccountService,\r\n public dialogRef: MatDialogRef, private mealService: MealService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.waiver) != typeof (undefined)) {\r\n this.catererId = data.catererId;\r\n if (data.waiver.id) {\r\n this.editWaiver(data.waiver);\r\n } else {\r\n this.newWaiver();\r\n }\r\n }\r\n\r\n this.getTransactionFees();\r\n }\r\n\r\n getTransactionFees() {\r\n let filter = new Filter();\r\n filter.filters = '(IsActive)==true';\r\n this.subscription.add(this.paymentService.getTransactionFeesByFilter(filter)\r\n .subscribe(results => {\r\n this.transactionFees = results.pagedData;\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving voucher types.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n \r\n\r\n if (this.isNewWaiver) {\r\n this.paymentService.newWaiver(this.waiverEdit).subscribe(waiver => this.saveSuccessHelper(waiver), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.paymentService.updateWaiver(this.waiverEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n private saveSuccessHelper(waiver?: Waiver) {\r\n if (waiver)\r\n Object.assign(this.waiverEdit, waiver);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewWaiver)\r\n this.alertService.showMessage(\"Success\", `\\\"${this.waiverEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.waiverEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.waiverEdit = new Waiver();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewWaiver && this.accountService.currentUser.facilities.some(r => r == this.editingWaiverCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.waiverEdit = new Waiver();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newWaiver() {\r\n this.isNewWaiver = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingWaiverCode = null;\r\n this.selectedValues = {};\r\n this.waiverEdit = new Waiver();\r\n return this.waiverEdit;\r\n }\r\n\r\n editWaiver(waiver: Waiver) {\r\n if (waiver) {\r\n this.isNewWaiver = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingWaiverCode = waiver.name;\r\n this.selectedValues = {};\r\n this.waiverEdit = new Waiver();\r\n Object.assign(this.waiverEdit, waiver);\r\n\r\n return this.waiverEdit;\r\n }\r\n else {\r\n return this.newWaiver();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageWaivers() {\r\n return this.accountService.userHasPermission(Permission.manageMOSOrderMgtWaiversPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.active {\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: smaller;\\r\\n padding-right: 10px;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWFsLW9yZGVyLXN5c3RlbS93YWl2ZXIvd2FpdmVycy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKOztBQUNBO0VBQ0UsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lYWwtb3JkZXItc3lzdGVtL3dhaXZlci93YWl2ZXJzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuLmFjdGl2ZSB7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC0tbm8tdW5kZXJsaW5lIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Waivers

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { WaiverEditorComponent } from './waiver-editor.component';\r\nimport { DeliveryService } from '../../../services/meal-order/delivery.service';\r\nimport { Waiver } from 'src/app/models/meal-order/waiver.model';\r\nimport { PaymentService } from 'src/app/services/meal-order/payment.service';\r\n\r\n\r\n@Component({\r\n selector: 'waivers-management',\r\n templateUrl: './waivers-management.component.html',\r\n styleUrls: ['./waivers-management.component.css']\r\n})\r\nexport class WaiversManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: Waiver[] = [];\r\n rowsCache: Waiver[] = [];\r\n allPermissions: Permission[] = [];\r\n editedWaiver: Waiver;\r\n sourceWaiver: Waiver;\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('flagTemplate')\r\n flagTemplate: TemplateRef;\r\n\r\n @ViewChild('outletEditor')\r\n outletEditor: WaiverEditorComponent;\r\n\r\n @ViewChild('waiversTable') table: any;\r\n\r\n header: string;\r\n @Input() isHideHeader: boolean;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private paymentService: PaymentService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(waiver: Waiver): void {\r\n const dialogRef = this.dialog.open(WaiverEditorComponent, {\r\n data: { header: this.header, waiver: waiver },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'label';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'label', name: 'Label' },\r\n { prop: 'name', name: 'Description' },\r\n { prop: 'transactionFeePaymentType', name: 'Payment Type' },\r\n { prop: 'transactionFeeLabel', name: 'Transaction Fee' },\r\n { prop: 'amount', name: 'Amount to Reach' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword;\r\n \r\n this.paymentService.getWaiversByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let waivers = results.pagedData;\r\n\r\n waivers.forEach((waiver, index, waivers) => {\r\n (waiver).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...waivers];\r\n this.rows = waivers;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n newWaiver() {\r\n this.header = 'New Waiver';\r\n this.editedWaiver = new Waiver();\r\n this.openDialog(this.editedWaiver);\r\n }\r\n\r\n\r\n editWaiver(row: Waiver) {\r\n this.editedWaiver = row;\r\n this.header = 'Edit Waiver';\r\n this.openDialog(this.editedWaiver);\r\n }\r\n\r\n deleteWaiver(row: Waiver) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" waiver?', DialogType.confirm, () => this.deleteWaiverHelper(row));\r\n }\r\n\r\n\r\n deleteWaiverHelper(row: Waiver) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.paymentService.deleteWaiver(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the waiver.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManageWaivers() {\r\n return this.accountService.userHasPermission(Permission.manageMOSOrderMgtWaiversPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVkaWEtZXh0ZW5zaW9uL21lZGlhLWV4dGVuc2lvbi1lZGl0b3IuY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"

{{'pageHeader.MediaExtensions' | translate}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n {{'mediaExtensions.editor.CodeRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{'mediaExtensions.editor.LabelRequired' | 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\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { MediaExtension } from 'src/app/models/media-extension.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MediaExtensionService } from 'src/app/services/media-extension.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'media-extension-editor',\r\n templateUrl: './media-extension-editor.component.html',\r\n styleUrls: ['./media-extension-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class MediaExtensionEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewMediaExtension = false;\r\n private originalMediaExtension: MediaExtension = new MediaExtension();\r\n private mediaExtensionEdit: MediaExtension = new MediaExtension();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false};\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private mediaExtensionService: MediaExtensionService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.mediaExtension) != typeof (undefined)) {\r\n if (data.mediaExtension.id) {\r\n this.editMediaExtension(data.mediaExtension);\r\n } else {\r\n this.newMediaExtension();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.mediaExtensionEdit.id) {\r\n this.mediaExtensionService.newMediaExtension(this.mediaExtensionEdit).subscribe(mediaExtension => this.saveSuccessHelper(mediaExtension), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.mediaExtensionService.updateMediaExtension(this.mediaExtensionEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(mediaExtension?: MediaExtension) {\r\n if (mediaExtension)\r\n Object.assign(this.mediaExtensionEdit, mediaExtension);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewMediaExtension) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.mediaExtensionEdit.extension}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.mediaExtensionEdit.extension}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.mediaExtensionEdit = new MediaExtension();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newMediaExtension() {\r\n this.showValidationErrors = true;\r\n this.isNewMediaExtension = true;\r\n this.mediaExtensionEdit = new MediaExtension();\r\n return this.mediaExtensionEdit;\r\n }\r\n\r\n editMediaExtension(mediaExtension: MediaExtension) {\r\n if (mediaExtension) {\r\n this.isNewMediaExtension = false;\r\n this.showValidationErrors = true;\r\n this.originalMediaExtension = mediaExtension;\r\n this.mediaExtensionEdit = new MediaExtension();\r\n Object.assign(this.mediaExtensionEdit, mediaExtension);\r\n\r\n return this.mediaExtensionEdit;\r\n }\r\n else {\r\n return this.newMediaExtension();\r\n }\r\n }\r\n\r\n get canManageMediaExtensions() {\r\n return true;//this.accountService.userHasPermission(Permission.manageMediaExtensionPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWRpYS1leHRlbnNpb24vbWVkaWEtZXh0ZW5zaW9ucy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tZWRpYS1leHRlbnNpb24vbWVkaWEtZXh0ZW5zaW9ucy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
\\r\\n
\\r\\n

Media Extension

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n >\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'mediaExtensions.management.Edit' | translate}}\\r\\n {{'mediaExtensions.management.Details' | translate}}\\r\\n \\r\\n {{'mediaExtensions.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { MediaExtensionService } from 'src/app/services/media-extension.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { MediaExtension } from 'src/app/models/media-extension.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { MediaExtensionEditorComponent } from './media-extension-editor.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'media-extensions-management',\r\n templateUrl: './media-extensions-management.component.html',\r\n styleUrls: ['./media-extensions-management.component.css']\r\n})\r\nexport class MediaExtensionsManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: MediaExtension[] = [];\r\n rowsCache: MediaExtension[] = [];\r\n allPermissions: Permission[] = [];\r\n editedMediaExtension: MediaExtension;\r\n sourceMediaExtension: MediaExtension;\r\n editingMediaExtensionName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('mediaExtensionEditor')\r\n mediaExtensionEditor: MediaExtensionEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private mediaExtensionService: MediaExtensionService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(mediaExtension: MediaExtension): void {\r\n const dialogRef = this.dialog.open(MediaExtensionEditorComponent, {\r\n data: { header: this.header, mediaExtension: mediaExtension },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'extension', name: gT('mediaExtensions.management.Code') },\r\n { prop: 'label', name: gT('mediaExtensions.management.Label') },\r\n { prop: 'min', name: gT('mediaExtensions.management.Min') },\r\n { prop: 'max', name: gT('mediaExtensions.management.Max') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.mediaExtensionEditor.changesSavedCallback = () => {\r\n this.addNewMediaExtensionToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.mediaExtensionEditor.changesCancelledCallback = () => {\r\n this.editedMediaExtension = null;\r\n this.sourceMediaExtension = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewMediaExtensionToList() {\r\n if (this.sourceMediaExtension) {\r\n Object.assign(this.sourceMediaExtension, this.editedMediaExtension);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceMediaExtension, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceMediaExtension, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedMediaExtension = null;\r\n this.sourceMediaExtension = null;\r\n }\r\n else {\r\n let mediaExtension = new MediaExtension();\r\n Object.assign(mediaExtension, this.editedMediaExtension);\r\n this.editedMediaExtension = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (mediaExtension).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, mediaExtension);\r\n this.rows.splice(0, 0, mediaExtension);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.mediaExtensionService.getMediaExtensionByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let mediaExtensions = results[0];\r\n let permissions = results[1];\r\n\r\n mediaExtensions.forEach((mediaExtension, index, mediaExtensions) => {\r\n (mediaExtension).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...mediaExtensions];\r\n this.rows = mediaExtensions;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.extension, r.label));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingMediaExtensionName = null;\r\n this.mediaExtensionEditor.resetForm(true);\r\n }\r\n\r\n\r\n newMediaExtension() {\r\n this.editingMediaExtensionName = null;\r\n this.sourceMediaExtension = null;\r\n this.editedMediaExtension = this.mediaExtensionEditor.newMediaExtension();\r\n this.header = 'New';\r\n this.openDialog(this.editedMediaExtension);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editMediaExtension(row: MediaExtension) {\r\n this.editingMediaExtensionName = { key: row.extension };\r\n this.sourceMediaExtension = row;\r\n this.editedMediaExtension = this.mediaExtensionEditor.editMediaExtension(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedMediaExtension);\r\n }\r\n\r\n deleteMediaExtension(row: MediaExtension) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.extension + '\\\"?', DialogType.confirm, () => this.deleteMediaExtensionHelper(row));\r\n }\r\n\r\n\r\n deleteMediaExtensionHelper(row: MediaExtension) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.mediaExtensionService.deleteMediaExtension(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageMediaExtensions() {\r\n return true;//this.accountService.userHasPermission(Permission.manageMediaExtensionPermission);\r\n }\r\n\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none !important;\\r\\n}\\r\\n\\r\\n#template_editor_container {\\r\\n min-height: 300px;\\r\\n height: 300px;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n#stage-parent {\\r\\n border: 1px solid black !important;\\r\\n background-color: white !important;\\r\\n float: left;\\r\\n}\\r\\n\\r\\ncanvas {\\r\\n border: 1px solid black !important;\\r\\n}\\r\\n\\r\\n.close-properties {\\r\\n float: right;\\r\\n padding-right: 10px;\\r\\n font-size: small;\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.properties {\\r\\n width: 25%;\\r\\n position: absolute;\\r\\n border: solid 1px;\\r\\n right: 0;\\r\\n background: #dadada;\\r\\n color: #a9162e;\\r\\n}\\r\\n\\r\\n.properties-handle {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n left: 30px;\\r\\n color: #969696;\\r\\n cursor: move;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n}\\r\\n\\r\\n.field_name_label {\\r\\n margin: 3px 8px auto 0;\\r\\n color: rgba(0,0,0,.54);\\r\\n font-weight: 500;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n.field_name_select {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.tools-container button {\\r\\n border-right: 1px solid #000;\\r\\n border-top: 1px solid #000;\\r\\n border-radius: 0px;\\r\\n min-width: 30px;\\r\\n}\\r\\n\\r\\n.tools-container button:first-child {\\r\\n border-left: 1px solid #000;\\r\\n }\\r\\n\\r\\n.preview-container {\\r\\n max-width: 100vw;\\r\\n /*max-width: 1304px;*/\\r\\n /*overflow: hidden;*/\\r\\n}\\r\\n\\r\\nimg {\\r\\n width: 100%;\\r\\n -o-object-fit: contain;\\r\\n object-fit: contain;\\r\\n}\\r\\n\\r\\n.container-fluid {\\r\\n padding-right: 0 !important;\\r\\n padding-left: 0 !important;\\r\\n}\\r\\n\\r\\n.left-panel {\\r\\n height: 100vh;\\r\\n background-color: lawngreen;\\r\\n}\\r\\n\\r\\n.right-panel {\\r\\n padding-left: 0px !important;\\r\\n padding-right: 0px !important;\\r\\n}\\r\\n\\r\\n.right-panel .section-1 {\\r\\n height: 75vh;\\r\\n background-color: black;\\r\\n color: #fff;\\r\\n padding: 40px 30px;\\r\\n }\\r\\n\\r\\n.right-panel .section-1 .location-name span{\\r\\n text-transform: uppercase;\\r\\n float: right;\\r\\n font-style: italic;\\r\\n font-size: 35px;\\r\\n }\\r\\n\\r\\n.right-panel .section-1 .status span{\\r\\n text-transform: uppercase;\\r\\n font-size: 80px;\\r\\n }\\r\\n\\r\\n.right-panel .section-2 {\\r\\n background-color: cadetblue;\\r\\n height: 25vh;\\r\\n color: #000;\\r\\n padding: 20px 30px;\\r\\n }\\r\\n\\r\\n.next-meeting-section {\\r\\n flex-grow: 1;\\r\\n}\\r\\n\\r\\n.book-btn-group-section {\\r\\n display: flex;\\r\\n flex-grow: 0;\\r\\n width: 400px;\\r\\n}\\r\\n\\r\\n.facility-container {\\r\\n padding-top: 20px\\r\\n}\\r\\n\\r\\n.facility {\\r\\n height: 100px;\\r\\n}\\r\\n\\r\\n.capacity{\\r\\n font-size: 50px;\\r\\n text-align: center;\\r\\n height: 80px;\\r\\n}\\r\\n\\r\\n.facility-icon img{\\r\\n width: 100%;\\r\\n height:80px;\\r\\n}\\r\\n\\r\\n.facility-name {\\r\\n text-align: center;\\r\\n height: 20px;\\r\\n}\\r\\n\\r\\n.next-meeting-details{\\r\\n font-size: 25px;\\r\\n}\\r\\n\\r\\n.font-red{\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.font-white {\\r\\n color: white;\\r\\n}\\r\\n\\r\\n.next-meeting-organiser {\\r\\n font-size: 20px;\\r\\n font-style: italic;\\r\\n}\\r\\n\\r\\n.next-meeting-label {\\r\\n font-size: 40px;\\r\\n}\\r\\n\\r\\n.circle-button {\\r\\n border-radius: 50%;\\r\\n border: none;\\r\\n cursor: pointer;\\r\\n flex: 1;\\r\\n margin-left: 10px;\\r\\n font-size: 1.2em;\\r\\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.4);\\r\\n transition: background-color 0.3s;\\r\\n margin: auto;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n max-height: 110px;\\r\\n max-width: 110px;\\r\\n}\\r\\n\\r\\n.circle-button:hover {\\r\\n background-color: #0fd1d7;\\r\\n }\\r\\n\\r\\n.section-2 {\\r\\n display: flex;\\r\\n }\\r\\n\\r\\n.lbl-mins {\\r\\n font-size: 40px;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZWV0aW5nLXJvb20vbWVldGluZy1yb29tLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0NBQWtDO0VBQ2xDLGtDQUFrQztFQUNsQyxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxrQ0FBa0M7QUFDcEM7O0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQiwwQkFBMEI7RUFDMUIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLFVBQVU7RUFDVixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLFFBQVE7RUFDUixtQkFBbUI7RUFDbkIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsVUFBVTtFQUNWLGNBQWM7RUFDZCxZQUFZO0VBQ1osV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIsMEJBQTBCO0VBQzFCLGtCQUFrQjtFQUNsQixlQUFlO0FBQ2pCOztBQUVFO0lBQ0UsMkJBQTJCO0VBQzdCOztBQUlGO0VBQ0UsZ0JBQWdCO0VBQ2hCLHFCQUFxQjtFQUNyQixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsc0JBQW1CO0tBQW5CLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQiwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsNEJBQTRCO0VBQzVCLDZCQUE2QjtBQUMvQjs7QUFFRTtJQUNFLFlBQVk7SUFDWix1QkFBdUI7SUFDdkIsV0FBVztJQUNYLGtCQUFrQjtFQUNwQjs7QUFFRTtNQUNFLHlCQUF5QjtNQUN6QixZQUFZO01BQ1osa0JBQWtCO01BQ2xCLGVBQWU7SUFDakI7O0FBRUE7TUFDRSx5QkFBeUI7TUFDekIsZUFBZTtJQUNqQjs7QUFFRjtJQUNFLDJCQUEyQjtJQUMzQixZQUFZO0lBQ1osV0FBVztJQUNYLGtCQUFrQjtFQUNwQjs7QUFFRjtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGFBQWE7RUFDYixZQUFZO0VBQ1osWUFBWTtBQUNkOztBQUNBO0VBQ0U7QUFDRjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsWUFBWTtBQUNkOztBQUVBO0VBQ0UsV0FBVztFQUNYLFdBQVc7QUFDYjs7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGVBQWU7RUFDZixPQUFPO0VBQ1AsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQix5Q0FBeUM7RUFDekMsaUNBQWlDO0VBQ2pDLFlBQVk7RUFDWixZQUFZO0VBQ1osV0FBVztFQUNYLGlCQUFpQjtFQUNqQixnQkFBZ0I7QUFDbEI7O0FBRUU7SUFDRSx5QkFBeUI7RUFDM0I7O0FBRUE7SUFDRSxhQUFhO0VBQ2Y7O0FBRUY7RUFDRSxlQUFlO0VBQ2YsY0FBYztBQUNoQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVldGluZy1yb29tL21lZXRpbmctcm9vbS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNpZGUtbWVudSB7XHJcbiAgbWluLXdpZHRoOiAxMjBweDtcclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG5baGlkZGVuXSB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jdGVtcGxhdGVfZWRpdG9yX2NvbnRhaW5lciB7XHJcbiAgbWluLWhlaWdodDogMzAwcHg7XHJcbiAgaGVpZ2h0OiAzMDBweDtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuI3N0YWdlLXBhcmVudCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2sgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG59XHJcblxyXG5jYW52YXMge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jbG9zZS1wcm9wZXJ0aWVzIHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICBmb250LXNpemU6IHNtYWxsO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLnByb3BlcnRpZXMge1xyXG4gIHdpZHRoOiAyNSU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvcmRlcjogc29saWQgMXB4O1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQ6ICNkYWRhZGE7XHJcbiAgY29sb3I6ICNhOTE2MmU7XHJcbn1cclxuXHJcbi5wcm9wZXJ0aWVzLWhhbmRsZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMTBweDtcclxuICBsZWZ0OiAzMHB4O1xyXG4gIGNvbG9yOiAjOTY5Njk2O1xyXG4gIGN1cnNvcjogbW92ZTtcclxuICB3aWR0aDogMjRweDtcclxuICBoZWlnaHQ6IDI0cHg7XHJcbn1cclxuXHJcbi5maWVsZF9uYW1lX2xhYmVsIHtcclxuICBtYXJnaW46IDNweCA4cHggYXV0byAwO1xyXG4gIGNvbG9yOiByZ2JhKDAsMCwwLC41NCk7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcbi5maWVsZF9uYW1lX3NlbGVjdCB7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG4udG9vbHMtY29udGFpbmVyIGJ1dHRvbiB7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDtcclxuICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAzMHB4O1xyXG59XHJcblxyXG4gIC50b29scy1jb250YWluZXIgYnV0dG9uOmZpcnN0LWNoaWxkIHtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzAwMDtcclxuICB9XHJcblxyXG5cclxuXHJcbi5wcmV2aWV3LWNvbnRhaW5lciB7XHJcbiAgbWF4LXdpZHRoOiAxMDB2dztcclxuICAvKm1heC13aWR0aDogMTMwNHB4OyovXHJcbiAgLypvdmVyZmxvdzogaGlkZGVuOyovXHJcbn1cclxuXHJcbmltZyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcclxufVxyXG5cclxuLmNvbnRhaW5lci1mbHVpZCB7XHJcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubGVmdC1wYW5lbCB7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBsYXduZ3JlZW47XHJcbn1cclxuXHJcbi5yaWdodC1wYW5lbCB7XHJcbiAgcGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcclxuICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuICAucmlnaHQtcGFuZWwgLnNlY3Rpb24tMSB7XHJcbiAgICBoZWlnaHQ6IDc1dmg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgcGFkZGluZzogNDBweCAzMHB4O1xyXG4gIH1cclxuXHJcbiAgICAucmlnaHQtcGFuZWwgLnNlY3Rpb24tMSAubG9jYXRpb24tbmFtZSBzcGFue1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgICAgZm9udC1zaXplOiAzNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5yaWdodC1wYW5lbCAuc2VjdGlvbi0xIC5zdGF0dXMgc3BhbntcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgZm9udC1zaXplOiA4MHB4O1xyXG4gICAgfVxyXG5cclxuICAucmlnaHQtcGFuZWwgLnNlY3Rpb24tMiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjYWRldGJsdWU7XHJcbiAgICBoZWlnaHQ6IDI1dmg7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICAgIHBhZGRpbmc6IDIwcHggMzBweDtcclxuICB9XHJcblxyXG4ubmV4dC1tZWV0aW5nLXNlY3Rpb24ge1xyXG4gIGZsZXgtZ3JvdzogMTtcclxufVxyXG5cclxuLmJvb2stYnRuLWdyb3VwLXNlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1ncm93OiAwO1xyXG4gIHdpZHRoOiA0MDBweDtcclxufVxyXG4uZmFjaWxpdHktY29udGFpbmVyIHtcclxuICBwYWRkaW5nLXRvcDogMjBweFxyXG59XHJcblxyXG4uZmFjaWxpdHkge1xyXG4gIGhlaWdodDogMTAwcHg7XHJcbn1cclxuXHJcbi5jYXBhY2l0eXtcclxuICBmb250LXNpemU6IDUwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGhlaWdodDogODBweDtcclxufVxyXG5cclxuLmZhY2lsaXR5LWljb24gaW1ne1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDo4MHB4O1xyXG59XHJcbi5mYWNpbGl0eS1uYW1lIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG4ubmV4dC1tZWV0aW5nLWRldGFpbHN7XHJcbiAgZm9udC1zaXplOiAyNXB4O1xyXG59XHJcblxyXG4uZm9udC1yZWR7XHJcbiAgY29sb3I6IHJlZDtcclxufVxyXG5cclxuLmZvbnQtd2hpdGUge1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLm5leHQtbWVldGluZy1vcmdhbmlzZXIge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5uZXh0LW1lZXRpbmctbGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogNDBweDtcclxufVxyXG5cclxuLmNpcmNsZS1idXR0b24ge1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGZsZXg6IDE7XHJcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgZm9udC1zaXplOiAxLjJlbTtcclxuICBib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtaGVpZ2h0OiAxMTBweDtcclxuICBtYXgtd2lkdGg6IDExMHB4O1xyXG59XHJcblxyXG4gIC5jaXJjbGUtYnV0dG9uOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwZmQxZDc7XHJcbiAgfVxyXG5cclxuICAuc2VjdGlvbi0yIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfVxyXG5cclxuLmxibC1taW5zIHtcclxuICBmb250LXNpemU6IDQwcHg7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuIl19 */\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n

SCAN TO BOOK

\\r\\n \\r\\n
\\r\\n\\r\\n Server Time:{{server_time}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{detail.location_name}}\\r\\n
\\r\\n
\\r\\n {{detail.current_reservation_status}}\\r\\n
\\r\\n

{{detail.current_reservation_description}}

\\r\\n
\\r\\n

{{detail.current_reservation_time_display}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{facility.value}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
{{facility.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Next Meeting\\r\\n
\\r\\n
\\r\\n
\\r\\n {{detail.next_reservation_description}} BY: {{detail.next_reservation_organiser}}\\r\\n
\\r\\n
\\r\\n {{getNextEventDate(detail.next_reservation_start_time)}}\\r\\n {{detail.next_reservation_time_display}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
-
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\"","///// \r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from \"@angular/material\";\r\nimport { Component, Inject, OnInit, AfterViewInit, ChangeDetectorRef, HostListener, OnDestroy, ViewEncapsulation } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { PIBTemplate } from \"src/app/models/department.model\";\r\nimport { AlertService, DialogType, MessageSeverity } from \"src/app/services/alert.service\";\r\nimport { ShapeService } from \"src/app/services/shape.service\";\r\nimport { TextNodeService } from \"src/app/services/text-node.service\";\r\nimport { AuthService } from \"src/app/services/auth.service\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { Utilities } from \"src/app/services/utilities\";\r\nimport { Subscription } from \"rxjs\";\r\nimport * as signalR from '@aspnet/signalr';\r\nimport { DeviceService } from \"src/app/services/device.service\";\r\nimport { Reservation } from \"src/app/models/reservation.model\";\r\nimport { ReservationService } from \"src/app/services/reservation.service\";\r\nimport { ConfigurationService } from \"src/app/services/configuration.service\";\r\nimport { ApplicationSettingService } from \"src/app/services/application-setting.service\";\r\n\r\n@Component({\r\n selector: 'meeting-room-display',\r\n templateUrl: './meeting-room.component.html',\r\n styleUrls: ['./meeting-room.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class MeetingRoomDisplayComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n private connection: signalR.HubConnection;\r\n mac_address: string;\r\n server: string;\r\n detail: any;\r\n nextTimeRun: number;\r\n facilities: any[];\r\n server_time: string;\r\n time: Date;\r\n prevNowPlaying: any;\r\n isSignalRManuallyStopped = false;\r\n original_module_path: string = '';\r\n location_id: string;\r\n institution_id: string;\r\n meetingLoginUrl: string;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n private pibSignalRCoreconnection: signalR.HubConnection;\r\n constructor(\r\n private configurationService: ConfigurationService,\r\n private deviceService: DeviceService,\r\n private reservationService: ReservationService,\r\n private alertService: AlertService,\r\n private route: ActivatedRoute,\r\n private authService: AuthService,\r\n private accountService: AccountService,\r\n private applicationSetting: ApplicationSettingService,\r\n private configurations: ConfigurationService,\r\n private router: Router,\r\n private domSanitizer: DomSanitizer,\r\n private cd: ChangeDetectorRef,\r\n private dialog: MatDialog) {\r\n this.isSignalRManuallyStopped = false;\r\n this.configurationService.loadConfig();\r\n\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n this.route.params.subscribe(queryParams => {\r\n this.server = queryParams[\"server\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n if (!this.server) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.server = queryParams[\"server\"];\r\n });\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.meetingLoginUrl = this.configurationService.meetingLoginUrl;\r\n \r\n\r\n if (this.router.url.indexOf('/meetingroom') > -1) {\r\n this.authService.reLoginDelegate = () => null;\r\n if (this.mac_address) {\r\n this.alertService.startLoadingMessage(\"Updating display...\");\r\n if (this.server) {\r\n this.subscription.add(this.applicationSetting.getApplicationSettingByKey(null, 'URL_PIB_SERVER').subscribe(res => {\r\n if (res) {\r\n this.subscription.add(this.deviceService.getDeviceById(null, this.mac_address, false, res.value + '/api/pib/get/device').subscribe(result => {\r\n this.alertService.stopLoadingMessage();\r\n if (result && result.data) {\r\n let device = result.data;\r\n this.original_module_path = device.module_path;\r\n this.location_id = device.location_id;\r\n this.institution_id = device.institutionId;\r\n this.getCurrentDetail(device.location_id);\r\n //if (this.original_module_path != device.module_path) {\r\n // if (device.module_path && !(device.module_path.indexOf('/meetingroom') > -1 && device.module_path.indexOf('/signagedisplay') > -1)) {\r\n // window.location.href = res.value + device.module_path;\r\n // } else {\r\n // location.replace(device.module_path);\r\n // }\r\n\r\n \r\n\r\n //} else {\r\n // this.getCurrentDetail(device.location_id);\r\n //}\r\n\r\n //this.original_module_path = device.module_path;\r\n //if (!device.module_path_value) {\r\n // location.replace(device.module_path);\r\n //}\r\n \r\n\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurations.baseUrl + \"/hub/meetingroom?location_id=\" + device.location_id, true);\r\n if (this.signalRCoreconnection != null) {\r\n\r\n this.signalRCoreconnection.onclose(async () => {\r\n setTimeout(() => {\r\n if (!this.isSignalRManuallyStopped) {\r\n console.log(\"reconnecting\");\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurations.baseUrl + \"/hub/meetingroom?location_id=\" + device.location_id, true);\r\n }\r\n }, 5000);\r\n });\r\n\r\n this.signalRCoreconnection.on(\"RefreshDisplay\", (locationId) => {\r\n console.log('Refreshing Device Display');\r\n //if (locationId && locationId > 0 && locationId != device.location_id) {\r\n // device = deviceVM;\r\n //}\r\n this.location_id = locationId;\r\n this.getCurrentDetail(locationId);\r\n });\r\n }\r\n\r\n this.pibSignalRCoreconnection = this.authService.signalRConnection(res.value + \"/hub/pibdevice?device_id=\" + device.id, true);\r\n if (this.pibSignalRCoreconnection != null) {\r\n this.pibSignalRCoreconnection.onclose(async () => {\r\n setTimeout(() => {\r\n if (!this.isSignalRManuallyStopped) {\r\n console.log(\"reconnecting\");\r\n this.signalRCoreconnection = this.authService.signalRConnection(res.value + \"/hub/pibdevice?device_id=\" + device.id, true);\r\n }\r\n }, 5000);\r\n });\r\n\r\n this.pibSignalRCoreconnection.on(\"RefreshDeviceData\", (device) => {\r\n console.log('Refreshing Device Display');\r\n //if (locationId && locationId > 0 && locationId != device.location_id) {\r\n // device = deviceVM;\r\n //}\r\n if (device) {\r\n this.institution_id = device.institutionId;\r\n this.location_id = device.location_id;\r\n\r\n if (this.original_module_path != device.module_path) {\r\n this.original_module_path = device.module_path;\r\n location.replace(res.value + '/Display/' + device.mac_address);\r\n } else {\r\n this.getCurrentDetail(device.location_id);\r\n }\r\n \r\n }\r\n \r\n });\r\n }\r\n\r\n }\r\n\r\n }, error => { }));\r\n\r\n }\r\n }, error => function (error) {\r\n this.alertService.stopLoadingMessage();\r\n console.log(error);\r\n }));\r\n\r\n \r\n } else {\r\n this.subscription.add(this.deviceService.getDeviceById(null, this.mac_address).subscribe(result => {\r\n this.alertService.stopLoadingMessage();\r\n if (result && result.data) {\r\n let device = result.data;\r\n console.log(device);\r\n this.location_id = device.location_id;\r\n this.institution_id = device.institutionId;\r\n if (!device.module_path_value) {\r\n location.replace(device.module_path);\r\n }\r\n this.getCurrentDetail(device.locationId);\r\n\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurations.baseUrl + \"/hub/frsdevice?device_id=\" + device.id, true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"RefreshDeviceData\", (deviceVM) => {\r\n console.log('Refreshing Device Display');\r\n if (this.original_module_path != device.module_path) {\r\n this.original_module_path = device.module_path;\r\n location.replace(this.configurations.baseUrl + '/Display/' + device.macAddress);\r\n } else {\r\n this.getCurrentDetail(device.location_id);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n }, error => { }));\r\n }\r\n }\r\n }\r\n }\r\n\r\n getCurrentDetail(locationId) {\r\n this.location_id = locationId;\r\n this.subscription.add(this.reservationService.getCurrentLocationDetail(locationId, null, null)\r\n .subscribe(results => {\r\n this.detail = results;\r\n if (this.detail) {\r\n //compute next run time (next meeting if available)\r\n // create Date object for current location\r\n this.deviceService.getServerTime().subscribe(results => {\r\n var currentTime = new Date(results);\r\n console.log(currentTime);\r\n // convert to msec, add local time zone offsetand get UTC time in msec\r\n //var utc = d.getTime() + (d.getTimezoneOffset() * 60000);\r\n\r\n // create new Date object with supplied offset\r\n //var currentTime = new Date(utc + (3600000 * 8));\r\n //get current date time, you can set your own Date() over here\r\n var stationdate = new Date(results);\r\n\r\n //clear Interval, it's my system requirement\r\n if (this.prevNowPlaying) {\r\n clearInterval(this.prevNowPlaying);\r\n }\r\n this.server_time = stationdate.toLocaleString();\r\n // set clock and Interval\r\n this.prevNowPlaying = setInterval(() => {\r\n stationdate = new Date(stationdate.setSeconds(stationdate.getSeconds() + 1));\r\n this.time = stationdate;\r\n this.server_time = this.time.toLocaleString();\r\n }, 1000);\r\n\r\n // return time as a string\r\n //this.server_time = currentTime.toLocaleString();\r\n //console.log(\"The Server time is \" + currentTime.toLocaleString());\r\n\r\n if (this.detail.current_reservation_start_time) {\r\n var currentResStartTime = new Date(this.detail.current_reservation_start_time);\r\n var currentResEndTime = new Date(this.detail.current_reservation_end_time);\r\n console.log(currentTime);\r\n console.log(currentResStartTime);\r\n this.nextTimeRun = currentResStartTime.getTime() - currentTime.getTime();\r\n if (this.nextTimeRun <= 0) {\r\n this.nextTimeRun = currentResEndTime.getTime() - currentTime.getTime();\r\n }\r\n console.log(this.nextTimeRun);\r\n if (this.nextTimeRun > 0) {\r\n var timerId = setTimeout(() =>\r\n this.getCurrentDetail(locationId), this.nextTimeRun + 2000);\r\n //clearTimeout(timerId);\r\n }\r\n } else if (this.detail.next_reservation_start_time) {\r\n var nextResStartTime = new Date(this.detail.next_reservation_start_time);\r\n var nextResEndTime = new Date(this.detail.next_reservation_end_time);\r\n console.log(currentTime);\r\n console.log(currentResStartTime);\r\n this.nextTimeRun = nextResStartTime.getTime() - currentTime.getTime();\r\n if (this.nextTimeRun <= 0) {\r\n this.nextTimeRun = nextResEndTime.getTime() - currentTime.getTime();\r\n }\r\n console.log(this.nextTimeRun);\r\n if (this.nextTimeRun > 0) {\r\n var timerId = setTimeout(() =>\r\n this.getCurrentDetail(locationId), this.nextTimeRun + 2000);\r\n //clearTimeout(timerId);\r\n }\r\n }\r\n\r\n this.facilities = [];\r\n this.facilities.push({ name: 'Max Capacity', value: this.detail.location_capacity });\r\n if (this.detail.facilities && this.detail.facilities) {\r\n this.detail.facilities.forEach((facility, index, facilities) => {\r\n let fullPath = this.configurationService.baseUrl + '/' + facility.path.replace(/\\\\/g, '/');\r\n this.facilities.push({ name: facility.name, path: fullPath });\r\n });\r\n }\r\n },\r\n error => { });\r\n }\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving the information.\\r\\n\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getNextEventDate(d: string) {\r\n var date1 = new Date(),\r\n date2 = new Date(d);\r\n date1.setHours(0, 0, 0, 0);\r\n date2.setHours(0, 0, 0, 0);\r\n\r\n return date1.getTime() === date2.getTime() ? \"\" : date2.toLocaleDateString();\r\n }\r\n\r\n createBooking(mins: number): void {\r\n this.reservationService.validateBookingByMinutes(this.location_id, mins)\r\n .subscribe(result => {\r\n if (result) {\r\n this.showDialog(mins);\r\n }\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n //this.alertService.showStickyMessage(\"Error\", `An error occured while booking.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // MessageSeverity.error);\r\n });\r\n\r\n \r\n }\r\n\r\n showDialog(mins: number): void {\r\n this.alertService.showDialog('Description:', DialogType.prompt, (val) => this.configure(mins, val), () => {});\r\n }\r\n\r\n configure(mins: number, val: string) {\r\n\r\n if (!val) return;\r\n this.reservationService.createBookingByMinutes(this.location_id, mins, val, this.institution_id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Success\", `Meeting Created`, MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Error\", `An error occured while booking.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n ngOnDestroy() {\r\n //this.accountService.disconnectSignalRConnection(this.connection);\r\n this.isSignalRManuallyStopped = true;\r\n this.signalRCoreconnection.stop();\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n/*.nav-pills > li > a {\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.dropdown-submenu {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n .dropdown-submenu > .dropdown-menu {\\r\\n top: 0;\\r\\n left: 100%;\\r\\n margin-top: -6px;\\r\\n margin-left: -1px;\\r\\n -webkit-border-radius: 0 6px 6px 6px;\\r\\n -moz-border-radius: 0 6px 6px;\\r\\n border-radius: 0 6px 6px 6px;\\r\\n }\\r\\n\\r\\n .dropdown-submenu:hover > .dropdown-menu {\\r\\n display: block;\\r\\n }\\r\\n\\r\\n .dropdown-submenu > a:after {\\r\\n display: block;\\r\\n content: \\\" \\\";\\r\\n float: right;\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-color: transparent;\\r\\n border-style: solid;\\r\\n border-width: 5px 0 5px 5px;\\r\\n border-left-color: #ccc;\\r\\n margin-top: 5px;\\r\\n margin-right: -10px;\\r\\n }\\r\\n\\r\\n .dropdown-submenu:hover > a:after {\\r\\n border-left-color: #fff;\\r\\n }\\r\\n\\r\\n .dropdown-submenu.pull-left {\\r\\n float: none;\\r\\n }\\r\\n\\r\\n .dropdown-submenu.pull-left > .dropdown-menu {\\r\\n left: -100%;\\r\\n margin-left: 10px;\\r\\n -webkit-border-radius: 6px 0 6px 6px;\\r\\n -moz-border-radius: 6px 0 6px 6px;\\r\\n border-radius: 6px 0 6px 6px;\\r\\n }\\r\\n */\\r\\n\\r\\n.nav .open > a, .nav .open > a:focus, .nav .open > a:hover {\\r\\n background-color: #0b9c97;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.navbar .nav li a:hover, .navbar.nav li.toolbaritem a:hover, .nav.nav-tabsNOTUSE li a:hover {\\r\\n color: #007f7b !important;\\r\\n}\\r\\n\\r\\n.dropdown-menu > app-sub-menu-panel > li > a {\\r\\n display: block;\\r\\n padding: 3px 20px;\\r\\n clear: both;\\r\\n font-weight: 400;\\r\\n line-height: 1.42857143;\\r\\n color: #333;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n.dropdown-menu {\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.menu-icon{\\r\\n padding-right:5px;\\r\\n}\\r\\n\\r\\n@media (max-width: 1148px) {\\r\\n .menu-label {\\r\\n display:none !important;\\r\\n }\\r\\n}\\r\\n\\r\\n@media (max-width: 767px) {\\r\\n .menu-label {\\r\\n display: inline-block !important;\\r\\n }\\r\\n\\r\\n .navbar-nav .open .dropdown-menu {\\r\\n background: white !important;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZW51L21lbnUtcGFuZWwvbWVudS1wYW5lbC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1ERzs7QUFFSDtFQUNFLHlCQUF5QjtFQUN6QixjQUFjO0FBQ2hCOztBQUdBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtFQUN2QixXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCOztBQUdBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0U7SUFDRSx1QkFBdUI7RUFDekI7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsZ0NBQWdDO0VBQ2xDOztFQUVBO0lBQ0UsNEJBQTRCO0VBQzlCO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lbnUvbWVudS1wYW5lbC9tZW51LXBhbmVsLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbi8qLm5hdi1waWxscyA+IGxpID4gYSB7XHJcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG59XHJcblxyXG4uZHJvcGRvd24tc3VibWVudSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4gIC5kcm9wZG93bi1zdWJtZW51ID4gLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMTAwJTtcclxuICAgIG1hcmdpbi10b3A6IC02cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMCA2cHggNnB4IDZweDtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czogMCA2cHggNnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMCA2cHggNnB4IDZweDtcclxuICB9XHJcblxyXG4gIC5kcm9wZG93bi1zdWJtZW51OmhvdmVyID4gLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24tc3VibWVudSA+IGE6YWZ0ZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBjb250ZW50OiBcIiBcIjtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6IDVweCAwIDVweCA1cHg7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogI2NjYztcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24tc3VibWVudTpob3ZlciA+IGE6YWZ0ZXIge1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24tc3VibWVudS5wdWxsLWxlZnQge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAgIC5kcm9wZG93bi1zdWJtZW51LnB1bGwtbGVmdCA+IC5kcm9wZG93bi1tZW51IHtcclxuICAgICAgbGVmdDogLTEwMCU7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDZweCAwIDZweCA2cHg7XHJcbiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogNnB4IDAgNnB4IDZweDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogNnB4IDAgNnB4IDZweDtcclxuICAgIH1cclxuICAqL1xyXG5cclxuLm5hdiAub3BlbiA+IGEsIC5uYXYgLm9wZW4gPiBhOmZvY3VzLCAubmF2IC5vcGVuID4gYTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBiOWM5NztcclxuICBjb2xvcjogI2ZmZmZmZjtcclxufVxyXG5cclxuXHJcbi5uYXZiYXIgLm5hdiBsaSBhOmhvdmVyLCAubmF2YmFyLm5hdiBsaS50b29sYmFyaXRlbSBhOmhvdmVyLCAubmF2Lm5hdi10YWJzTk9UVVNFIGxpIGE6aG92ZXIge1xyXG4gIGNvbG9yOiAjMDA3ZjdiICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1tZW51ID4gYXBwLXN1Yi1tZW51LXBhbmVsID4gbGkgPiBhIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nOiAzcHggMjBweDtcclxuICBjbGVhcjogYm90aDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xyXG4gIGNvbG9yOiAjMzMzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcblxyXG4uZHJvcGRvd24tbWVudSB7XHJcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG59XHJcblxyXG4ubWVudS1pY29ue1xyXG4gIHBhZGRpbmctcmlnaHQ6NXB4O1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogMTE0OHB4KSB7XHJcbiAgLm1lbnUtbGFiZWwge1xyXG4gICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAubWVudS1sYWJlbCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IHtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","import { Component, OnInit, ViewChild, Input, EventEmitter, Output, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatMenu } from \"@angular/material\";\r\nimport { Menu } from \"src/app/models/menu.model\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\n\r\n@Component({\r\n selector: \"app-menu-panel\",\r\n templateUrl: \"./menu-panel.component.html\",\r\n styleUrls: [\"./menu-panel.component.css\"]\r\n})\r\nexport class MenuPanelComponent implements OnInit {\r\n @ViewChild(\"menu\") menu: MatMenu;\r\n @Input() item: Menu;\r\n @Output('selectMenu')\r\n submit: EventEmitter = new EventEmitter();\r\n @Input() selectedMenu: Menu;\r\n\r\n constructor(private accountService: AccountService) { }\r\n\r\n ngOnInit() { }\r\n\r\n selectMenu(menu: Menu) {\r\n //console.log(this.menu);\r\n //this.selectedMenu = menu;\r\n this.submit.emit(menu);\r\n }\r\n\r\n triggerSelect(menu) {\r\n //console.log(this.selectedMenu);\r\n this.submit.emit(menu);\r\n }\r\n\r\n isAccessAllowed(menu: Menu) {\r\n return this.accountService.userHasPermissions(menu.permissions);\r\n }\r\n}\r\n","module.exports = \"\\r\\n.nav-pills > li > a {\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.dropdown-submenu {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.dropdown-submenu > .dropdown-menu {\\r\\n top: 0;\\r\\n left: 100%;\\r\\n margin-top: -6px;\\r\\n margin-left: -1px;\\r\\n border-radius: 2px;\\r\\n }\\r\\n\\r\\n.dropdown-submenu:hover > .dropdown-menu, .dropdown-submenu:active > .dropdown-menu {\\r\\n display: block;\\r\\n }\\r\\n\\r\\n.dropdown-submenu > a:after {\\r\\n display: block;\\r\\n content: \\\" \\\";\\r\\n float: right;\\r\\n width: 0;\\r\\n height: 0;\\r\\n border-color: transparent;\\r\\n border-style: solid;\\r\\n border-width: 5px 0 5px 5px;\\r\\n border-left-color: #ccc;\\r\\n margin-top: 5px;\\r\\n margin-right: -10px;\\r\\n }\\r\\n\\r\\n.dropdown-submenu:hover > a:after {\\r\\n border-left-color: #fff;\\r\\n }\\r\\n\\r\\n.dropdown-submenu.pull-left {\\r\\n float: none;\\r\\n }\\r\\n\\r\\n.dropdown-submenu.pull-left > .dropdown-menu {\\r\\n left: -100%;\\r\\n margin-left: 10px;\\r\\n border-radius: 6px 0 6px 6px;\\r\\n }\\r\\n\\r\\n.nav .open > a, .nav .open > a:focus, .nav .open > a:hover {\\r\\n background-color: #0b9c97;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.navbar .nav li a:hover, .navbar.nav li.toolbaritem a:hover, .nav.nav-tabsNOTUSE li a:hover {\\r\\n color: #007f7b !important;\\r\\n}\\r\\n\\r\\n.dropdown-menu > app-sub-menu-panel > li > a {\\r\\n display: block;\\r\\n padding: 3px 20px;\\r\\n clear: both;\\r\\n font-weight: 400;\\r\\n line-height: 1.42857143;\\r\\n color: #333;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n.dropdown-menu {\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n.sub-menu-icon {\\r\\n padding-right: 5px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZW51L3N1Yi1tZW51LXBhbmVsL3N1Yi1tZW51LXBhbmVsLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVFO0lBQ0UsTUFBTTtJQUNOLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBR2pCLGtCQUFrQjtFQUNwQjs7QUFFQTtJQUNFLGNBQWM7RUFDaEI7O0FBRUE7SUFDRSxjQUFjO0lBQ2QsWUFBWTtJQUNaLFlBQVk7SUFDWixRQUFRO0lBQ1IsU0FBUztJQUNULHlCQUF5QjtJQUN6QixtQkFBbUI7SUFDbkIsMkJBQTJCO0lBQzNCLHVCQUF1QjtJQUN2QixlQUFlO0lBQ2YsbUJBQW1CO0VBQ3JCOztBQUVBO0lBQ0UsdUJBQXVCO0VBQ3pCOztBQUVBO0lBQ0UsV0FBVztFQUNiOztBQUVFO01BQ0UsV0FBVztNQUNYLGlCQUFpQjtNQUdqQiw0QkFBNEI7SUFDOUI7O0FBR0o7RUFDRSx5QkFBeUI7RUFDekIsY0FBYztBQUNoQjs7QUFHQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsV0FBVztFQUNYLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsV0FBVztFQUNYLG1CQUFtQjtBQUNyQjs7QUFHQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVudS9zdWItbWVudS1wYW5lbC9zdWItbWVudS1wYW5lbC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5uYXYtcGlsbHMgPiBsaSA+IGEge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxufVxyXG5cclxuLmRyb3Bkb3duLXN1Ym1lbnUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuICAuZHJvcGRvd24tc3VibWVudSA+IC5kcm9wZG93bi1tZW51IHtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDEwMCU7XHJcbiAgICBtYXJnaW4tdG9wOiAtNnB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XHJcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gIH1cclxuXHJcbiAgLmRyb3Bkb3duLXN1Ym1lbnU6aG92ZXIgPiAuZHJvcGRvd24tbWVudSwgLmRyb3Bkb3duLXN1Ym1lbnU6YWN0aXZlID4gLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24tc3VibWVudSA+IGE6YWZ0ZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBjb250ZW50OiBcIiBcIjtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6IDVweCAwIDVweCA1cHg7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogI2NjYztcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24tc3VibWVudTpob3ZlciA+IGE6YWZ0ZXIge1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24tc3VibWVudS5wdWxsLWxlZnQge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAgIC5kcm9wZG93bi1zdWJtZW51LnB1bGwtbGVmdCA+IC5kcm9wZG93bi1tZW51IHtcclxuICAgICAgbGVmdDogLTEwMCU7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDZweCAwIDZweCA2cHg7XHJcbiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogNnB4IDAgNnB4IDZweDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogNnB4IDAgNnB4IDZweDtcclxuICAgIH1cclxuXHJcblxyXG4ubmF2IC5vcGVuID4gYSwgLm5hdiAub3BlbiA+IGE6Zm9jdXMsIC5uYXYgLm9wZW4gPiBhOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGI5Yzk3O1xyXG4gIGNvbG9yOiAjZmZmZmZmO1xyXG59XHJcblxyXG5cclxuLm5hdmJhciAubmF2IGxpIGE6aG92ZXIsIC5uYXZiYXIubmF2IGxpLnRvb2xiYXJpdGVtIGE6aG92ZXIsIC5uYXYubmF2LXRhYnNOT1RVU0UgbGkgYTpob3ZlciB7XHJcbiAgY29sb3I6ICMwMDdmN2IgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmRyb3Bkb3duLW1lbnUgPiBhcHAtc3ViLW1lbnUtcGFuZWwgPiBsaSA+IGEge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmc6IDNweCAyMHB4O1xyXG4gIGNsZWFyOiBib3RoO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XHJcbiAgY29sb3I6ICMzMzM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuXHJcbi5kcm9wZG93bi1tZW51IHtcclxuICBib3JkZXItcmFkaXVzOiAycHg7XHJcbn1cclxuLnN1Yi1tZW51LWljb24ge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcclxufVxyXG4iXX0= */\"","module.exports = \"
  • \\r\\n \\r\\n \\r\\n {{item.label}}\\r\\n \\r\\n \\r\\n
  • \\r\\n\"","import { Component, OnInit, ViewChild, Input, EventEmitter, Output, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatMenu } from \"@angular/material\";\r\nimport { Menu } from \"src/app/models/menu.model\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\n\r\n@Component({\r\n selector: \"app-sub-menu-panel\",\r\n templateUrl: \"./sub-menu-panel.component.html\",\r\n styleUrls: [\"./sub-menu-panel.component.css\"]\r\n})\r\nexport class SubMenuPanelComponent implements OnInit {\r\n @ViewChild(\"menu\") menu: MatMenu;\r\n @Input() item: Menu;\r\n @Output('selectMenu')\r\n submit: EventEmitter = new EventEmitter();\r\n @Input() selectedMenu: Menu;\r\n\r\n constructor(private accountService: AccountService) { }\r\n\r\n ngOnInit() { }\r\n\r\n selectMenu(menu: Menu) {\r\n //console.log(this.menu);\r\n //this.selectedMenu = menu;\r\n this.submit.emit(menu);\r\n }\r\n\r\n triggerSelect(menu) {\r\n //console.log(this.selectedMenu);\r\n this.submit.emit(menu);\r\n }\r\n\r\n isAccessAllowed(menu: Menu) {\r\n return this.accountService.userHasPermissions(menu.permissions);\r\n }\r\n}\r\n","module.exports = \"\\r\\n#mainContent.app-component {\\r\\n position: relative;\\r\\n padding-top: 50px;\\r\\n padding-bottom: 50px;\\r\\n}\\r\\n\\r\\n\\r\\n.appTitle.app-component {\\r\\n line-height: 50px;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-fixed-top.app-component,\\r\\n.navbar-fixed-bottom.app-component {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-brand.app-component {\\r\\n float: none;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-brand.app-component > img {\\r\\n display: inline;\\r\\n height: 35px;\\r\\n }\\r\\n\\r\\n\\r\\nnav {\\r\\n background-color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-inner.app-component {\\r\\n padding-left: 0px;\\r\\n border-radius: 0px;\\r\\n box-shadow: none;\\r\\n background-color: #007f7b;\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-inner.toolbar.app-component {\\r\\n background-color: #fafafa;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar.app-component .nav > .active > a,\\r\\n.navbar.app-component .nav > .active > a:hover,\\r\\n.navbar.app-component .nav > .active > a:focus {\\r\\n background-color: #ffffff;\\r\\n box-shadow: none;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar.app-component .nav > li {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar.app-component .nav > li > a {\\r\\n color: white;\\r\\n font-weight: bold;\\r\\n -webkit-text-shadow: none;\\r\\n text-shadow: none;\\r\\n height: 30px;\\r\\n padding-top: 6px;\\r\\n padding-bottom: 0px;\\r\\n }\\r\\n\\r\\n\\r\\n.navbar-fixed-top.app-component .navbar-inner.app-component,\\r\\n.navbar-static-top.app-component .navbar-inner.app-component {\\r\\n box-shadow: 0 1px 00px rgba(0, 0, 0, 0);\\r\\n}\\r\\n\\r\\n\\r\\n.nav.navBarPadding.app-component {\\r\\n margin-left: 5px;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n\\r\\np.navbar-text.app-component {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n\\r\\np.navbar-text.app-component a {\\r\\n color: #fff;\\r\\n }\\r\\n\\r\\n\\r\\n.navbar.app-component .brand {\\r\\n margin-top: 2px;\\r\\n color: #fff;\\r\\n -webkit-text-shadow: none;\\r\\n text-shadow: none;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-toggle.app-component {\\r\\n border: 1px solid white;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-toggle.app-component .icon-bar {\\r\\n background-color: white;\\r\\n }\\r\\n\\r\\n\\r\\n@media screen and (max-width: 992px) {\\r\\n #mainContent.app-component {\\r\\n /*padding-top: 200px;*/\\r\\n }\\r\\n\\r\\n .navbar-brand.app-component {\\r\\n font-size: 12pt;\\r\\n }\\r\\n\\r\\n /*.nav.navBarPadding.app-component {\\r\\n margin-left: -10px;\\r\\n }*/\\r\\n\\r\\n .nav.app-component > li > a {\\r\\n padding-right: 5px;\\r\\n padding-left: 5px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media screen and (max-width: 768px) {\\r\\n .nav-pills.app-component > li {\\r\\n float: none;\\r\\n margin: 0;\\r\\n }\\r\\n\\r\\n .nav-pills.app-component > li + li {\\r\\n margin-left: 0;\\r\\n margin-top: 1px;\\r\\n }\\r\\n\\r\\n .navbar-collapse.app-component {\\r\\n padding-right: 30px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media (min-width: 768px) {\\r\\n a.user-name.app-component {\\r\\n max-width: 45px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .navbar-toggle.app-component {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n a.user-name.app-component {\\r\\n max-width: 100px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media (min-width: 1200px) {\\r\\n a.user-name.app-component {\\r\\n max-width: 250px;\\r\\n }\\r\\n\\r\\n .container {\\r\\n width: 100% !important;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\na.user-name.app-component {\\r\\n display: inline-block;\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\r\\n vertical-align: bottom;\\r\\n}\\r\\n\\r\\n\\r\\n/*footer.app-component {\\r\\n margin-top: 10px;\\r\\n font-weight: bold;\\r\\n}*/\\r\\n\\r\\n\\r\\n.navbar-inner.footer.app-component {\\r\\n background-color: #f5f5f5;\\r\\n box-shadow: none;\\r\\n height: 40px;\\r\\n}\\r\\n\\r\\n\\r\\n.vcenter_text.app-component {\\r\\n line-height: 40px;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.prebootShow.app-component {\\r\\n opacity: 1 !important;\\r\\n}\\r\\n\\r\\n\\r\\n.prebootStep.app-component {\\r\\n opacity: 0;\\r\\n transition: .5s ease-in-out all;\\r\\n}\\r\\n\\r\\n\\r\\n/*.menuItemsContainer, .navbar-collapse.collapse, .navbar-collapse {\\r\\n overflow-x: hidden !important;\\r\\n}*/\\r\\n\\r\\n\\r\\n.nav-pills > li > a {\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9uby1uYXZpZ2F0aW9uX2FwcC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsb0JBQW9CO0FBQ3RCOzs7QUFHQTtFQUNFLGlCQUFpQjtBQUNuQjs7O0FBR0E7O0VBRUUsYUFBYTtBQUNmOzs7QUFHQTtFQUNFLFdBQVc7RUFDWCxXQUFXO0FBQ2I7OztBQUVFO0lBQ0UsZUFBZTtJQUNmLFlBQVk7RUFDZDs7O0FBRUY7RUFDRSx5QkFBeUI7QUFDM0I7OztBQUVBO0VBQ0UsaUJBQWlCO0VBRWpCLGtCQUFrQjtFQUdsQixnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLHNCQUFzQjtBQUN4Qjs7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7OztBQUdBOzs7RUFHRSx5QkFBeUI7RUFFekIsZ0JBQWdCO0VBQ2hCLGNBQWM7QUFDaEI7OztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7O0FBRUU7SUFDRSxZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLHlCQUF5QjtJQUN6QixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixtQkFBbUI7RUFDckI7OztBQUdGOztFQUlFLHVDQUF1QztBQUN6Qzs7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0FBQ2xCOzs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7O0FBRUU7SUFDRSxXQUFXO0VBQ2I7OztBQUVGO0VBQ0UsZUFBZTtFQUNmLFdBQVc7RUFDWCx5QkFBeUI7RUFDekIsaUJBQWlCO0FBQ25COzs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7O0FBRUU7SUFDRSx1QkFBdUI7RUFDekI7OztBQU1GO0VBQ0U7SUFDRSxzQkFBc0I7RUFDeEI7O0VBRUE7SUFDRSxlQUFlO0VBQ2pCOztFQUVBOztNQUVJOztFQUVKO0lBQ0Usa0JBQWtCO0lBQ2xCLGlCQUFpQjtFQUNuQjtBQUNGOzs7QUFHQTtFQUNFO0lBQ0UsV0FBVztJQUNYLFNBQVM7RUFDWDs7SUFFRTtNQUNFLGNBQWM7TUFDZCxlQUFlO0lBQ2pCOztFQUVGO0lBQ0UsbUJBQW1CO0VBQ3JCO0FBQ0Y7OztBQUdBO0VBQ0U7SUFDRSxlQUFlO0VBQ2pCO0FBQ0Y7OztBQUdBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxnQkFBZ0I7RUFDbEI7QUFDRjs7O0FBRUE7RUFDRTtJQUNFLGdCQUFnQjtFQUNsQjs7RUFFQTtJQUNFLHNCQUFzQjtFQUN4QjtBQUNGOzs7QUFHQTtFQUNFLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixzQkFBc0I7QUFDeEI7OztBQUlBOzs7RUFHRTs7O0FBR0Y7RUFDRSx5QkFBeUI7RUFHekIsZ0JBQWdCO0VBQ2hCLFlBQVk7QUFDZDs7O0FBSUE7RUFDRSxpQkFBaUI7RUFDakIsc0JBQXNCO0FBQ3hCOzs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsK0JBQStCO0FBQ2pDOzs7QUFFQTs7RUFFRTs7O0FBR0Y7RUFDRSxrQkFBa0I7QUFDcEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL25vLW5hdmlnYXRpb25fYXBwLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuI21haW5Db250ZW50LmFwcC1jb21wb25lbnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nLXRvcDogNTBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxufVxyXG5cclxuXHJcbi5hcHBUaXRsZS5hcHAtY29tcG9uZW50IHtcclxuICBsaW5lLWhlaWdodDogNTBweDtcclxufVxyXG5cclxuXHJcbi5uYXZiYXItZml4ZWQtdG9wLmFwcC1jb21wb25lbnQsXHJcbi5uYXZiYXItZml4ZWQtYm90dG9tLmFwcC1jb21wb25lbnQge1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcblxyXG4ubmF2YmFyLWJyYW5kLmFwcC1jb21wb25lbnQge1xyXG4gIGZsb2F0OiBub25lO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4gIC5uYXZiYXItYnJhbmQuYXBwLWNvbXBvbmVudCA+IGltZyB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgfVxyXG5cclxubmF2IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcblxyXG4ubmF2YmFyLWlubmVyLmFwcC1jb21wb25lbnQge1xyXG4gIHBhZGRpbmctbGVmdDogMHB4O1xyXG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XHJcbiAgLW1vei1ib3gtc2hhZG93OiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2Y3YjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG59XHJcblxyXG4ubmF2YmFyLWlubmVyLnRvb2xiYXIuYXBwLWNvbXBvbmVudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcclxufVxyXG5cclxuXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gLmFjdGl2ZSA+IGEsXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gbGkge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuICAubmF2YmFyLmFwcC1jb21wb25lbnQgLm5hdiA+IGxpID4gYSB7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIC13ZWJraXQtdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIHBhZGRpbmctdG9wOiA2cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG4gIH1cclxuXHJcblxyXG4ubmF2YmFyLWZpeGVkLXRvcC5hcHAtY29tcG9uZW50IC5uYXZiYXItaW5uZXIuYXBwLWNvbXBvbmVudCxcclxuLm5hdmJhci1zdGF0aWMtdG9wLmFwcC1jb21wb25lbnQgLm5hdmJhci1pbm5lci5hcHAtY29tcG9uZW50IHtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDAwcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDAwcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBib3gtc2hhZG93OiAwIDFweCAwMHB4IHJnYmEoMCwgMCwgMCwgMCk7XHJcbn1cclxuXHJcbi5uYXYubmF2QmFyUGFkZGluZy5hcHAtY29tcG9uZW50IHtcclxuICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbn1cclxuXHJcbnAubmF2YmFyLXRleHQuYXBwLWNvbXBvbmVudCB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbiAgcC5uYXZiYXItdGV4dC5hcHAtY29tcG9uZW50IGEge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgfVxyXG5cclxuLm5hdmJhci5hcHAtY29tcG9uZW50IC5icmFuZCB7XHJcbiAgbWFyZ2luLXRvcDogMnB4O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIC13ZWJraXQtdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5uYXZiYXItdG9nZ2xlLmFwcC1jb21wb25lbnQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xyXG59XHJcblxyXG4gIC5uYXZiYXItdG9nZ2xlLmFwcC1jb21wb25lbnQgLmljb24tYmFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICNtYWluQ29udGVudC5hcHAtY29tcG9uZW50IHtcclxuICAgIC8qcGFkZGluZy10b3A6IDIwMHB4OyovXHJcbiAgfVxyXG5cclxuICAubmF2YmFyLWJyYW5kLmFwcC1jb21wb25lbnQge1xyXG4gICAgZm9udC1zaXplOiAxMnB0O1xyXG4gIH1cclxuXHJcbiAgLyoubmF2Lm5hdkJhclBhZGRpbmcuYXBwLWNvbXBvbmVudCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xyXG4gICAgfSovXHJcblxyXG4gIC5uYXYuYXBwLWNvbXBvbmVudCA+IGxpID4gYSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5uYXYtcGlsbHMuYXBwLWNvbXBvbmVudCA+IGxpIHtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgICAubmF2LXBpbGxzLmFwcC1jb21wb25lbnQgPiBsaSArIGxpIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbi10b3A6IDFweDtcclxuICAgIH1cclxuXHJcbiAgLm5hdmJhci1jb2xsYXBzZS5hcHAtY29tcG9uZW50IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgYS51c2VyLW5hbWUuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBtYXgtd2lkdGg6IDQ1cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgLm5hdmJhci10b2dnbGUuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgYS51c2VyLW5hbWUuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMHB4O1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gIGEudXNlci1uYW1lLmFwcC1jb21wb25lbnQge1xyXG4gICAgbWF4LXdpZHRoOiAyNTBweDtcclxuICB9XHJcblxyXG4gIC5jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5hLnVzZXItbmFtZS5hcHAtY29tcG9uZW50IHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbn1cclxuXHJcblxyXG5cclxuLypmb290ZXIuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn0qL1xyXG5cclxuXHJcbi5uYXZiYXItaW5uZXIuZm9vdGVyLmFwcC1jb21wb25lbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xyXG4gIC1tb3otYm94LXNoYWRvdzogbm9uZTtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIGhlaWdodDogNDBweDtcclxufVxyXG5cclxuXHJcblxyXG4udmNlbnRlcl90ZXh0LmFwcC1jb21wb25lbnQge1xyXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5wcmVib290U2hvdy5hcHAtY29tcG9uZW50IHtcclxuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wcmVib290U3RlcC5hcHAtY29tcG9uZW50IHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHRyYW5zaXRpb246IC41cyBlYXNlLWluLW91dCBhbGw7XHJcbn1cclxuXHJcbi8qLm1lbnVJdGVtc0NvbnRhaW5lciwgLm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZSwgLm5hdmJhci1jb2xsYXBzZSB7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbn0qL1xyXG5cclxuXHJcbi5uYXYtcGlsbHMgPiBsaSA+IGEge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxufVxyXG4iXX0= */\"","module.exports = \"
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewEncapsulation, OnInit, OnDestroy, ViewChildren, AfterViewInit, QueryList, ElementRef } from \"@angular/core\";\r\nimport { Router, NavigationStart, NavigationEnd, ActivatedRoute } from '@angular/router';\r\nimport { ToastaService, ToastaConfig, ToastOptions, ToastData } from 'ngx-toasta';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport 'rxjs/add/operator/skip';\r\nimport 'rxjs/add/operator/debounceTime';\r\n\r\nimport { AlertService, AlertDialog, DialogType, AlertMessage, MessageSeverity } from '../services/alert.service';\r\nimport { NotificationService } from \"../services/notification.service\";\r\nimport { AppTranslationService } from \"../services/app-translation.service\";\r\nimport { AccountService } from '../services/account.service';\r\nimport { LocalStoreManager } from '../services/local-store-manager.service';\r\nimport { AppTitleService } from '../services/app-title.service';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { ConfigurationService } from '../services/configuration.service';\r\nimport { Permission } from '../models/permission.model';\r\nimport { LoginComponent } from \"../components/login/login.component\";\r\nimport { ExternalLoginComponent } from \"./login/external-login.component\";\r\nvar alertify: any = require('../assets/scripts/alertify.js');\r\n\r\n@Component({\r\n selector: \"no-nav-app-root\",\r\n templateUrl: './no_navigation_app.component.html',\r\n styleUrls: ['./no-navigation_app.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NoNavigationAppComponent {\r\n stickyToasties: number[] = [];\r\n messageSubscription: any;\r\n stickMessageSubscription: any;\r\n dialogSubscription: any;\r\n\r\n constructor(public configurations: ConfigurationService,\r\n private alertService: AlertService, private translationService: AppTranslationService, private toastaService: ToastaService,\r\n private toastaConfig: ToastaConfig) { }\r\n\r\n ngOnInit() {\r\n this.ngOnDestroy();\r\n\r\n this.translationService.addLanguages([\"en\", \"fr\", \"de\", \"pt\", \"ar\", \"ko\"]);\r\n this.translationService.setDefaultLanguage('en');\r\n\r\n\r\n this.toastaConfig.theme = 'bootstrap';\r\n this.toastaConfig.position = 'top-right';\r\n this.toastaConfig.limit = 100;\r\n this.toastaConfig.showClose = true;\r\n\r\n this.dialogSubscription = this.alertService.getDialogEvent().subscribe(alert => this.showDialog(alert));\r\n this.messageSubscription = this.alertService.getMessageEvent().subscribe(message => this.showToast(message, false));\r\n this.stickMessageSubscription = this.alertService.getStickyMessageEvent().subscribe(message => this.showToast(message, true));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.messageSubscription)\r\n this.messageSubscription.unsubscribe();\r\n if (this.stickMessageSubscription)\r\n this.stickMessageSubscription.unsubscribe();\r\n if (this.dialogSubscription)\r\n this.dialogSubscription.unsubscribe();\r\n }\r\n\r\n showToast(message: AlertMessage, isSticky: boolean) {\r\n\r\n if (message == null) {\r\n for (let id of this.stickyToasties.slice(0)) {\r\n this.toastaService.clear(id);\r\n }\r\n\r\n return;\r\n }\r\n\r\n let toastOptions: ToastOptions = {\r\n title: message.summary,\r\n msg: message.detail,\r\n timeout: isSticky ? 0 : 4000\r\n };\r\n\r\n\r\n if (isSticky) {\r\n toastOptions.onAdd = (toast: ToastData) => this.stickyToasties.push(toast.id);\r\n\r\n toastOptions.onRemove = (toast: ToastData) => {\r\n let index = this.stickyToasties.indexOf(toast.id, 0);\r\n\r\n if (index > -1) {\r\n this.stickyToasties.splice(index, 1);\r\n }\r\n\r\n toast.onAdd = null;\r\n toast.onRemove = null;\r\n };\r\n }\r\n\r\n\r\n switch (message.severity) {\r\n case MessageSeverity.default: this.toastaService.default(toastOptions); break;\r\n case MessageSeverity.info: this.toastaService.info(toastOptions); break;\r\n case MessageSeverity.success: this.toastaService.success(toastOptions); break;\r\n case MessageSeverity.error: this.toastaService.error(toastOptions); break;\r\n case MessageSeverity.warn: this.toastaService.warning(toastOptions); break;\r\n case MessageSeverity.wait: this.toastaService.wait(toastOptions); break;\r\n }\r\n }\r\n\r\n\r\n showDialog(dialog: AlertDialog) {\r\n\r\n alertify.set({\r\n labels: {\r\n ok: dialog.okLabel || \"OK\",\r\n cancel: dialog.cancelLabel || \"Cancel\"\r\n }\r\n });\r\n\r\n switch (dialog.type) {\r\n case DialogType.alert:\r\n alertify.alert(dialog.message);\r\n\r\n break\r\n case DialogType.confirm:\r\n alertify\r\n .confirm(dialog.message, (e) => {\r\n if (e) {\r\n dialog.okCallback();\r\n }\r\n else {\r\n if (dialog.cancelCallback)\r\n dialog.cancelCallback();\r\n }\r\n });\r\n\r\n break;\r\n case DialogType.prompt:\r\n alertify\r\n .prompt(dialog.message, (e, val) => {\r\n if (e) {\r\n dialog.okCallback(val);\r\n }\r\n else {\r\n if (dialog.cancelCallback)\r\n dialog.cancelCallback();\r\n }\r\n }, dialog.defaultValue);\r\n\r\n break;\r\n }\r\n }\r\n}\r\n","module.exports = \".vertical-center-flex {\\r\\n min-height: 60vh;\\r\\n}\\r\\n\\r\\n.icon-container {\\r\\n font-size: 5em;\\r\\n}\\r\\n\\r\\n.error-description {\\r\\n font-size: 1.5em;\\r\\n padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ub3QtZm91bmQvbm90LWZvdW5kLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLG9CQUFvQjtBQUN4QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnZlcnRpY2FsLWNlbnRlci1mbGV4IHtcclxuICAgIG1pbi1oZWlnaHQ6IDYwdmg7XHJcbn1cclxuXHJcbi5pY29uLWNvbnRhaW5lciB7XHJcbiAgICBmb250LXNpemU6IDVlbTtcclxufVxyXG5cclxuLmVycm9yLWRlc2NyaXB0aW9uIHtcclxuICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxufVxyXG4iXX0= */\"","module.exports = \"
    \\r\\n
    \\r\\n

    {{'pageHeader.NotFound' | translate}}

    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    {{'notFound.404' | translate}}
    \\r\\n
    {{'notFound.pageNotFound' | translate}}
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\n@Component({\r\n selector: 'not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class NotFoundComponent {\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvb2NjdXBhbmN5LWxvZy9vY2N1cGFuY3ktbG9nLWVkaXRvci5jb21wb25lbnQuY3NzIn0= */\"","module.exports = \"

    {{'pageHeader.OccupancyLogs' | translate}}

    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n {{'occupancyLogs.editor.DeviceIdRequired' | translate}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{'occupancyLogs.editor.SensorIdRequired' | translate}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{'occupancyLogs.editor.StatusRequired' | 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\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { OccupancyLog } from 'src/app/models/occupancy-log.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { OccupancyLogService } from 'src/app/services/occupancy-log.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'occupancy-log-editor',\r\n templateUrl: './occupancy-log-editor.component.html',\r\n styleUrls: ['./occupancy-log-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class OccupancyLogEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewOccupancyLog = false;\r\n private originalOccupancyLog: OccupancyLog = new OccupancyLog();\r\n private occupancyLogEdit: OccupancyLog = new OccupancyLog();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false};\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private occupancyLogService: OccupancyLogService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.occupancyLog) != typeof (undefined)) {\r\n if (data.occupancyLog.id) {\r\n this.editOccupancyLog(data.occupancyLog);\r\n } else {\r\n this.newOccupancyLog();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n if (!this.occupancyLogEdit.id) {\r\n this.occupancyLogService.newOccupancyLog(this.occupancyLogEdit).subscribe(occupancyLog => this.saveSuccessHelper(occupancyLog), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.occupancyLogService.updateOccupancyLog(this.occupancyLogEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(occupancyLog?: OccupancyLog) {\r\n if (occupancyLog)\r\n Object.assign(this.occupancyLogEdit, occupancyLog);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewOccupancyLog) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.occupancyLogEdit.datetime}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.occupancyLogEdit.datetime}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.occupancyLogEdit = new OccupancyLog();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newOccupancyLog() {\r\n this.showValidationErrors = true;\r\n this.isNewOccupancyLog = true;\r\n this.occupancyLogEdit = new OccupancyLog();\r\n return this.occupancyLogEdit;\r\n }\r\n\r\n editOccupancyLog(occupancyLog: OccupancyLog) {\r\n if (occupancyLog) {\r\n this.isNewOccupancyLog = false;\r\n this.showValidationErrors = true;\r\n this.originalOccupancyLog = occupancyLog;\r\n this.occupancyLogEdit = new OccupancyLog();\r\n Object.assign(this.occupancyLogEdit, occupancyLog);\r\n\r\n return this.occupancyLogEdit;\r\n }\r\n else {\r\n return this.newOccupancyLog();\r\n }\r\n }\r\n\r\n get canManageOccupancyLogs() {\r\n return true;//this.accountService.userHasPermission(Permission.manageOccupancyLogPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9vY2N1cGFuY3ktbG9nL29jY3VwYW5jeS1sb2dzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL29jY3VwYW5jeS1sb2cvb2NjdXBhbmN5LWxvZ3MtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
    \\r\\n
    \\r\\n

    Occupancy Logs

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n If no data shown, change start time value.\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { OccupancyLogService } from 'src/app/services/occupancy-log.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { OccupancyLog } from 'src/app/models/occupancy-log.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { OccupancyLogEditorComponent } from './occupancy-log-editor.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'occupancy-logs-management',\r\n templateUrl: './occupancy-logs-management.component.html',\r\n styleUrls: ['./occupancy-logs-management.component.css']\r\n})\r\nexport class OccupancyLogsManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: OccupancyLog[] = [];\r\n rowsCache: OccupancyLog[] = [];\r\n allPermissions: Permission[] = [];\r\n editedOccupancyLog: OccupancyLog;\r\n sourceOccupancyLog: OccupancyLog;\r\n editingOccupancyLogName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('occupancyLogEditor')\r\n occupancyLogEditor: OccupancyLogEditorComponent;\r\n header: string;\r\n deviceId: string;\r\n sensorId: string;\r\n status: string;\r\n startTime: string;\r\n endTime: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private occupancyLogService: OccupancyLogService, public dialog: MatDialog, private ref: ChangeDetectorRef) {\r\n\r\n \r\n }\r\n\r\n openDialog(occupancyLog: OccupancyLog): void {\r\n const dialogRef = this.dialog.open(OccupancyLogEditorComponent, {\r\n data: { header: this.header, occupancyLog: occupancyLog },\r\n width: '400px',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n getDateStr(m: Date) {\r\n if (!m) return '';\r\n return m.getFullYear() + \"-\" +\r\n (\"0\" + (m.getMonth() + 1)).slice(-2) + \"-\" +\r\n (\"0\" + m.getDate()).slice(-2)\r\n + \"T\" + \"00:00\";\r\n }\r\n\r\n ngOnInit() {\r\n this.startTime = this.getDateStr(new Date());\r\n //this.startTime.setHours(0, 0, 0, 0);\r\n\r\n let d = new Date();\r\n d.setDate(d.getDate() + 1);\r\n\r\n this.endTime = this.getDateStr(d);\r\n \r\n\r\n this.ref.detectChanges();\r\n this.ref.markForCheck();\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'datetime', name: gT('occupancyLogs.management.Datetime') },\r\n { prop: 'deviceId', name: gT('occupancyLogs.management.DeviceId') },\r\n { prop: 'sensorId', name: gT('occupancyLogs.management.SensorId') },\r\n { prop: 'status', name: gT('occupancyLogs.management.Status') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.occupancyLogEditor.changesSavedCallback = () => {\r\n this.addNewOccupancyLogToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.occupancyLogEditor.changesCancelledCallback = () => {\r\n this.editedOccupancyLog = null;\r\n this.sourceOccupancyLog = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewOccupancyLogToList() {\r\n if (this.sourceOccupancyLog) {\r\n Object.assign(this.sourceOccupancyLog, this.editedOccupancyLog);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceOccupancyLog, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceOccupancyLog, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedOccupancyLog = null;\r\n this.sourceOccupancyLog = null;\r\n }\r\n else {\r\n let occupancyLog = new OccupancyLog();\r\n Object.assign(occupancyLog, this.editedOccupancyLog);\r\n this.editedOccupancyLog = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (occupancyLog).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, occupancyLog);\r\n this.rows.splice(0, 0, occupancyLog);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.occupancyLogService.getOccupancyLogFilter(this.deviceId, this.sensorId, this.status, this.startTime, this.endTime)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let occupancyLogs = results[0];\r\n let permissions = results[1];\r\n\r\n occupancyLogs.forEach((occupancyLog, index, occupancyLogs) => {\r\n (occupancyLog).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...occupancyLogs];\r\n this.rows = occupancyLogs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.datetime, r.deviceId, r.sensorId, r.status));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingOccupancyLogName = null;\r\n this.occupancyLogEditor.resetForm(true);\r\n }\r\n\r\n\r\n newOccupancyLog() {\r\n this.editingOccupancyLogName = null;\r\n this.sourceOccupancyLog = null;\r\n this.editedOccupancyLog = this.occupancyLogEditor.newOccupancyLog();\r\n this.header = 'New';\r\n this.openDialog(this.editedOccupancyLog);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editOccupancyLog(row: OccupancyLog) {\r\n this.editingOccupancyLogName = { key: row.datetime.toString() };\r\n this.sourceOccupancyLog = row;\r\n this.editedOccupancyLog = this.occupancyLogEditor.editOccupancyLog(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedOccupancyLog);\r\n }\r\n\r\n deleteOccupancyLog(row: OccupancyLog) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.datetime + '\\\"?', DialogType.confirm, () => this.deleteOccupancyLogHelper(row));\r\n }\r\n\r\n\r\n deleteOccupancyLogHelper(row: OccupancyLog) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.occupancyLogService.deleteOccupancyLog(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManageOccupancyLogs() {\r\n return true;//this.accountService.userHasPermission(Permission.manageOccupancyLogPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n

    {{'pageHeader.DeviceManager' | translate}}

    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{'settings.header.UnknownDevice' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n

    {{'settings.header.ApproveDevice' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from \"../../directives/bootstrap-tab.directive\";\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Permission } from '../../models/permission.model';\r\nimport { PIBDevicesManagementComponent } from './pib-unknown-device/pib-devices-management.component';\r\n\r\n\r\n@Component({\r\n selector: 'pib-device-manager',\r\n templateUrl: './pib-device-manager.component.html',\r\n styleUrls: ['./pib-device-manager.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class PIBDeviceManagerComponent implements OnInit, OnDestroy {\r\n\r\n\r\n @ViewChild('pibDeviceManagement')\r\n pibDeviceManagement: PIBDevicesManagementComponent;\r\n\r\n\r\n isUnknownPIBDevice = true;\r\n isApprovePIBDevice = false;\r\n\r\n fragmentSubscription: any;\r\n\r\n readonly unknownPIBDeviceTab = \"unknownPIBDevice\";\r\n readonly approvePIBDeviceTab = \"approvePIBDevice\";\r\n\r\n @ViewChild(\"tab\")\r\n tab: BootstrapTabDirective;\r\n\r\n\r\n constructor(private route: ActivatedRoute, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n\r\n showContent(anchor: string) {\r\n if ((this.isFragmentEquals(anchor, this.unknownPIBDeviceTab) && !this.canViewPIBDevices) ||\r\n (this.isFragmentEquals(anchor, this.approvePIBDeviceTab) && !this.canViewPIBDevices))\r\n return;\r\n\r\n this.tab.show(`#${anchor || this.unknownPIBDeviceTab}Tab`);\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null)\r\n fragment1 = \"\";\r\n\r\n if (fragment2 == null)\r\n fragment2 = \"\";\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n let activeTab = event.target.hash.split(\"#\", 2).pop();\r\n\r\n this.isUnknownPIBDevice = activeTab == this.unknownPIBDeviceTab;\r\n this.isApprovePIBDevice = activeTab == this.approvePIBDeviceTab;\r\n this.pibDeviceManagement.isApproval = this.isApprovePIBDevice;\r\n \r\n }\r\n\r\n setIsApproval(isApproval: boolean) {\r\n this.pibDeviceManagement.isApproval = this.isApprovePIBDevice;\r\n }\r\n\r\n get canViewPIBDevices() {\r\n return true;//this.accountService.userHasPermission(Permission.viewPIBDevicesPermission);\r\n }\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9waWItZGV2aWNlLW1hbmFnZXIvcGliLWRldmljZS1tYW5hZ2VyLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0FBQ2YiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3BpYi1kZXZpY2UtbWFuYWdlci9waWItZGV2aWNlLW1hbmFnZXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNpZGUtbWVudSB7XHJcbiAgbWluLXdpZHRoOiAxMjBweDtcclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG5baGlkZGVuXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG4iXX0= */\"","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9waWItZGV2aWNlLW1hbmFnZXIvcGliLXVua25vd24tZGV2aWNlL3BpYi1kZXZpY2UtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBR0E7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcGliLWRldmljZS1tYW5hZ2VyL3BpYi11bmtub3duLWRldmljZS9waWItZGV2aWNlLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"\\r\\n

    {{data.header}}

    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{location.ancestor_alias}} - {{location.alias}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Input, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Location } from '../../../models/location.model';\r\nimport { Institution } from '../../../models/institution.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { LocType } from 'src/app/models/enums';\r\nimport { LocationService } from 'src/app/services/location.service';\r\nimport { PIBDevice, PIBTemplate, PIBTemplateLocation } from 'src/app/models/department.model';\r\nimport { PIBService } from 'src/app/services/pib.service';\r\n\r\n@Component({\r\n selector: 'pib-device-editor',\r\n templateUrl: './pib-device-editor.component.html',\r\n styleUrls: ['./pib-device-editor.component.css']\r\n})\r\nexport class PIBDeviceEditorComponent {\r\n\r\n private isEditMode = false;\r\n private isNewPIBDevice = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingPIBDeviceCode: string;\r\n private pibDeviceEdit: PIBDevice = new PIBDevice();\r\n private allLocations: PIBTemplateLocation[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n fcLocation = new FormControl('', [Validators.required] );\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('locations')\r\n private locations;\r\n\r\n @ViewChild('locationsSelector')\r\n private locationsSelector;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private pibDeviceService: PIBService, private locationService: LocationService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.pibDevice) != typeof (undefined)) {\r\n\r\n if (!data.locations || data.locations.length == 0) {\r\n this.getLocations(true);\r\n }\r\n\r\n if (data.pibDevice.id) {\r\n this.editPIBDevice(data.pibDevice, data.locations);\r\n } else {\r\n this.newPIBDevice(data.locations);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n private save() {\r\n if (this.form.form.valid && this.fcLocation.valid) {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n var locations = this.allLocations.filter(f => f.location_id == this.pibDeviceEdit.location_id);\r\n if (locations && locations.length > 0) {\r\n this.pibDeviceEdit.location_code = locations[0].code;\r\n }\r\n if (this.isNewPIBDevice) {\r\n this.pibDeviceService.newPIBDevice(this.pibDeviceEdit).subscribe(pibDevice => this.saveSuccessHelper(pibDevice), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.pibDeviceService.updatePIBDevice(this.pibDeviceEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(pibDevice?: PIBDevice) {\r\n if (pibDevice)\r\n Object.assign(this.pibDeviceEdit, pibDevice);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewPIBDevice)\r\n this.alertService.showMessage(\"Success\", `PIBDevice \\\"${this.pibDeviceEdit.device_code}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to pibDevice \\\"${this.pibDeviceEdit.device_code}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.pibDeviceEdit = new PIBDevice();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewPIBDevice && this.accountService.currentUser.pibDevices.some(r => r == this.editingPIBDeviceCode))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n //this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.pibDeviceEdit = new PIBDevice();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newPIBDevice(allLocations: PIBTemplateLocation[]) {\r\n this.isEditMode = true;\r\n this.isNewPIBDevice = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingPIBDeviceCode = null;\r\n this.allLocations = allLocations;\r\n this.selectedValues = {};\r\n this.pibDeviceEdit = new PIBDevice();\r\n return this.pibDeviceEdit;\r\n }\r\n\r\n editPIBDevice(pibDevice: PIBDevice, allLocations: PIBTemplateLocation[]) {\r\n this.isEditMode = true;\r\n this.allLocations = allLocations;\r\n if (pibDevice) {\r\n this.isNewPIBDevice = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingPIBDeviceCode = pibDevice.device_code;\r\n this.selectedValues = {};\r\n this.pibDeviceEdit = new PIBDevice();\r\n Object.assign(this.pibDeviceEdit, pibDevice);\r\n\r\n return this.pibDeviceEdit;\r\n }\r\n else {\r\n return this.newPIBDevice(allLocations);\r\n }\r\n }\r\n\r\n getLocations(isShowMessage: boolean) {\r\n if (isShowMessage) {\r\n this.alertService.startLoadingMessage(\"Loading locations...\");\r\n }\r\n this.pibDeviceService.getLocations()\r\n .subscribe(results => {\r\n this.allLocations = results[0];\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n get canManagePIBDevices() {\r\n return true; //this.accountService.userHasPermission(Permission.managePIBDevicesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.status_offline {\\r\\n font-size: 20px;\\r\\n color: #f72626 !important;\\r\\n}\\r\\n\\r\\n.status_online {\\r\\n font-size: 20px;\\r\\n color: #08ca08;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9waWItZGV2aWNlLW1hbmFnZXIvcGliLXVua25vd24tZGV2aWNlL3BpYi1kZXZpY2VzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0o7O0FBRUE7RUFDRSxlQUFlO0VBQ2YseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3BpYi1kZXZpY2UtbWFuYWdlci9waWItdW5rbm93bi1kZXZpY2UvcGliLWRldmljZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG5cclxuLnN0YXR1c19vZmZsaW5lIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgY29sb3I6ICNmNzI2MjYgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnN0YXR1c19vbmxpbmUge1xyXG4gIGZvbnQtc2l6ZTogMjBweDtcclxuICBjb2xvcjogIzA4Y2EwODtcclxufVxyXG4iXX0= */\"","module.exports = \"
    \\r\\n
    \\r\\n

    PIB Device Management

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n >\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n \\r\\n fiber_manual_record\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{'devices.management.Edit' | translate}}\\r\\n \\r\\n {{'devices.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, ChangeDetectorRef, NgModule, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Location } from '../../../models/location.model';\r\nimport { Institution } from '../../../models/institution.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { MatDialog } from '@angular/material';\r\nimport { PIBTemplate, PIBDevice, PIBTemplateLocation } from 'src/app/models/department.model';\r\nimport { PIBDeviceEditorComponent } from './pib-device-editor.component';\r\nimport { PIBService } from 'src/app/services/pib.service';\r\nimport * as signalRCore from '@aspnet/signalr';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\n//var oldSignalR: any = require('../../../assets/scripts/jquery.signalR-2.3.0.min.js');\r\n//let $: JQueryStatic = (window as any)[\"jQuery\"];\r\n\r\n//import { SignalRModule } from 'ng2-signalr';\r\n//import { IConnectionOptions, SignalR } from 'ng2-signalr';\r\n\r\n\r\nexport interface DialogData {\r\n header: string;\r\n pibDevice: PIBDevice;\r\n locations: Location[];\r\n institutions: Institution[];\r\n isApproval: boolean,\r\n data: any\r\n}\r\n\r\n@Component({\r\n selector: 'pib-devices-management',\r\n templateUrl: './pib-devices-management.component.html',\r\n styleUrls: ['./pib-devices-management.component.css']\r\n})\r\nexport class PIBDevicesManagementComponent implements OnInit, AfterViewInit, OnDestroy {\r\n columns: any[] = [];\r\n rows: PIBDevice[] = [];\r\n rowsCache: PIBDevice[] = [];\r\n allLocations: PIBTemplateLocation[] = [];\r\n allInstitutions: Institution[] = [];\r\n editedPIBDevice: PIBDevice;\r\n sourcePIBDevice: PIBDevice;\r\n editingPIBDeviceCode: { code: string };\r\n loadingIndicator: boolean;\r\n\r\n @Input()\r\n isApproval: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('statusTemplate')\r\n statusTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('pibDeviceEditor')\r\n pibDeviceEditor: PIBDeviceEditorComponent;\r\n\r\n _route: ActivatedRoute;\r\n header: string;\r\n private connection: signalRCore.HubConnection;\r\n\r\n deviceInterval: any;\r\n locationInterval: any;\r\n ////signalR connection reference\r\n //private pibConnection: SignalR;\r\n\r\n ////signalR proxy reference\r\n //private proxy: SignalR.Hub.Proxy;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private pibDeviceService: PIBService, private route: ActivatedRoute, public dialog: MatDialog, private cd: ChangeDetectorRef,\r\n private configurationService: ConfigurationService ) {\r\n this._route = route;\r\n\r\n //this.pibConnection.hub.start().done(function () {\r\n // console.log(\"Connected, transport = \" + $.connection.hub.transport.name);\r\n //});\r\n\r\n //initialize connection\r\n //this.pibConnection = $.connection;\r\n //this.pibConnection.hub.url = 'http://119.73.206.36:89/signalr';\r\n\r\n ////to create proxy give your hub class name as parameter. IMPORTANT: notice that I followed camel casing in giving class name\r\n //this.proxy = this.pibConnection.hub.createHubProxy('patientHub');\r\n ////$.connection.hub.qs = { \"identifier\": 1 };\r\n ////$.connection.hub.qs = { \"bed\": bed };\r\n //this.pibConnection.hub.start()\r\n // .done(function () {\r\n // console.log(\"Connected, connection ID = \" + this.pibConnection.hub.id + \", transport = \" + this.pibConnection.hub.transport.name);\r\n // })\r\n // .fail(function () {\r\n // console.log(\"Could not connect!\");\r\n // });\r\n\r\n //define a callback method for proxy\r\n //this.proxy.on('newPatientUpdate', (obj) => console.log(obj));\r\n\r\n //this.connection = new signalRCore.HubConnectionBuilder()\r\n // .withUrl(\"/hub/frs\")\r\n // .build();\r\n this.connection = this.accountService.signalRConnection(this.configurationService.baseUrl + \"/hub/frs\", true);\r\n if (this.connection != null) {\r\n this.connection.on(\"RefreshPIBDeviceList\", (device: PIBDevice) => {\r\n console.log(device);\r\n\r\n //this.loadData();\r\n if (!this.rows) {\r\n this.rows = [];\r\n }\r\n\r\n //find the device id; add/update\r\n let isNew = true;\r\n this.rows.forEach((pibdevice, index, devices) => {\r\n if (device.id == pibdevice.id) {\r\n pibdevice = device;\r\n this.rows[index] = device;\r\n isNew = false;\r\n }\r\n });\r\n\r\n if (isNew) {\r\n this.rows.push(device);\r\n }\r\n\r\n this.rows = [...this.rows]\r\n\r\n //this.rows = [];\r\n //this.rowsCache = [];\r\n //rows.push(device);\r\n //this.rows = rows;\r\n this.rowsCache = [...this.rows];\r\n //this.cd.detectChanges();\r\n\r\n });\r\n }\r\n\r\n //this.connection.start().catch(err => {\r\n // console.log(err);\r\n //});\r\n }\r\n\r\n openDialog(pibDevice: PIBDevice, isApproval?: boolean): void {\r\n const dialogRef = this.dialog.open(PIBDeviceEditorComponent, {\r\n data: { header: this.header, pibDevice: pibDevice, locations: this.allLocations, institutions: this.allInstitutions, isApproval: isApproval},\r\n width: '600px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n });\r\n }\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'device_code', name: gT('devices.management.Code') },\r\n { prop: 'device_label', name: gT('devices.management.Label') },\r\n { prop: 'ip_address', name: gT('devices.management.IpAddress') },\r\n { prop: 'location_code', name: gT('devices.management.Location') },\r\n { prop: 'mac_address', name: gT('devices.management.MacAddress') },\r\n //{ prop: 'status_display', name: gT('devices.management.Status'), width: 80 },\r\n { name: gT('devices.management.Status'), code: '', width: 50, cellTemplate: this.statusTemplate, resizeable: false, canAutoResize: true, sortable: false, draggable: false },\r\n { code: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: true, sortable: false, draggable: false }\r\n ];\r\n var component = this;\r\n this.deviceInterval = setInterval(() => { component.loadData(); }, 60000);\r\n this.locationInterval = setInterval(() => { component.getLocations(false); }, 60000);\r\n this.loadData();\r\n this.getLocations(true);\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.pibDeviceEditor.changesSavedCallback = () => {\r\n this.addNewPIBDeviceToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.pibDeviceEditor.changesCancelledCallback = () => {\r\n this.editedPIBDevice = null;\r\n this.sourcePIBDevice = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n clearInterval(this.locationInterval);\r\n clearInterval(this.deviceInterval);\r\n }\r\n addNewPIBDeviceToList() {\r\n if (this.sourcePIBDevice) {\r\n Object.assign(this.sourcePIBDevice, this.editedPIBDevice);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourcePIBDevice, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourcePIBDevice, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedPIBDevice = null;\r\n this.sourcePIBDevice = null;\r\n }\r\n else {\r\n let pibDevice = new PIBDevice();\r\n Object.assign(pibDevice, this.editedPIBDevice);\r\n this.editedPIBDevice = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (pibDevice).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, pibDevice);\r\n this.rows.splice(0, 0, pibDevice);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n syncLocations() {\r\n this.alertService.startLoadingMessage(\"Synchronizing locations...\");\r\n this.loadingIndicator = true;\r\n\r\n this.pibDeviceService.syncLocations()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n console.log(results);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to sync locations from the server.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getLocations(isShowMessage: boolean) {\r\n if (isShowMessage) {\r\n this.alertService.startLoadingMessage(\"Loading locations...\");\r\n }\r\n this.pibDeviceService.getLocations()\r\n .subscribe(results => {\r\n this.allLocations = results[0];\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.pibDeviceService.getDevices()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let pibDevices = results[0];\r\n\r\n pibDevices.forEach((pibDevice, index, pibDevices) => {\r\n (pibDevice).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...pibDevices];\r\n this.rows = pibDevices;\r\n\r\n \r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve pib devices from the server.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.device_code, r.device_label, r.mac_address, r.location_code, r.ip_address));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingPIBDeviceCode = null;\r\n this.pibDeviceEditor.resetForm(true);\r\n }\r\n\r\n\r\n newPIBDevice() {\r\n this.editingPIBDeviceCode = null;\r\n this.sourcePIBDevice = null;\r\n this.editedPIBDevice = this.pibDeviceEditor.newPIBDevice(this.allLocations);\r\n this.header = 'New PIB Device';\r\n this.openDialog(this.editedPIBDevice, false);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editPIBDevice(row: PIBDevice, isApproval?: boolean) {\r\n this.editingPIBDeviceCode = { code: row.device_code };\r\n this.sourcePIBDevice = row;\r\n this.editedPIBDevice = this.pibDeviceEditor.editPIBDevice(row, this.allLocations);\r\n this.header = 'View PIB Device';//row.device_status == 'Approved' ? 'View PIBDevice' : 'Edit PIBDevice';\r\n this.openDialog(this.editedPIBDevice, isApproval);\r\n //this.editorModal.show();\r\n }\r\n\r\n deletePIBDevice(row: PIBDevice) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.device_label + '\\\" pib device?', DialogType.confirm, () => this.deletePIBDeviceHelper(row));\r\n }\r\n\r\n\r\n deletePIBDeviceHelper(row: PIBDevice) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.pibDeviceService.deletePIBDevice(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the pib device.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManagePIBDevices() {\r\n return true; //this.accountService.userHasPermission(Permission.managePIBDevicesPermission)\r\n }\r\n}\r\n","module.exports = \"img {\\r\\n max-height: 200px;\\r\\n max-width: 200px;\\r\\n}\\r\\n\\r\\nvideo {\\r\\n max-height: 200px;\\r\\n max-width: 200px;\\r\\n}\\r\\n\\r\\n.example-list {\\r\\n width: 500px;\\r\\n max-width: 100%;\\r\\n border: solid 1px #ccc;\\r\\n min-height: 60px;\\r\\n display: block;\\r\\n background: white;\\r\\n border-radius: 4px;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.example-box {\\r\\n padding: 20px 10px;\\r\\n border-bottom: solid 1px #ccc;\\r\\n color: rgba(0, 0, 0, 0.87);\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n align-items: center;\\r\\n justify-content: space-between;\\r\\n box-sizing: border-box;\\r\\n cursor: move;\\r\\n background: white;\\r\\n font-size: 14px;\\r\\n}\\r\\n\\r\\n.cdk-drag-preview {\\r\\n box-sizing: border-box;\\r\\n border-radius: 4px;\\r\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\r\\n}\\r\\n\\r\\n.cdk-drag-placeholder {\\r\\n opacity: 0;\\r\\n}\\r\\n\\r\\n.cdk-drag-animating {\\r\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\r\\n}\\r\\n\\r\\n.example-box:last-child {\\r\\n border: none;\\r\\n}\\r\\n\\r\\n.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder) {\\r\\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wbGF5bGlzdENyZWF0b3IvcGxheWxpc3QtY3JlYXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osZUFBZTtFQUNmLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLDZCQUE2QjtFQUM3QiwwQkFBMEI7RUFDMUIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsOEJBQThCO0VBQzlCLHNCQUFzQjtFQUN0QixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLHFIQUFxSDtBQUN2SDs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLHNEQUFzRDtBQUN4RDs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHNEQUFzRDtBQUN4RCIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcGxheWxpc3RDcmVhdG9yL3BsYXlsaXN0LWNyZWF0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbImltZyB7XHJcbiAgbWF4LWhlaWdodDogMjAwcHg7XHJcbiAgbWF4LXdpZHRoOiAyMDBweDtcclxufVxyXG5cclxudmlkZW8ge1xyXG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xyXG4gIG1heC13aWR0aDogMjAwcHg7XHJcbn1cclxuXHJcbi5leGFtcGxlLWxpc3Qge1xyXG4gIHdpZHRoOiA1MDBweDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYztcclxuICBtaW4taGVpZ2h0OiA2MHB4O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uZXhhbXBsZS1ib3gge1xyXG4gIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2NjYztcclxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBjdXJzb3I6IG1vdmU7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG59XHJcblxyXG4uY2RrLWRyYWctcHJldmlldyB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG59XHJcblxyXG4uY2RrLWRyYWctcGxhY2Vob2xkZXIge1xyXG4gIG9wYWNpdHk6IDA7XHJcbn1cclxuXHJcbi5jZGstZHJhZy1hbmltYXRpbmcge1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcclxufVxyXG5cclxuLmV4YW1wbGUtYm94Omxhc3QtY2hpbGQge1xyXG4gIGJvcmRlcjogbm9uZTtcclxufVxyXG5cclxuLmV4YW1wbGUtbGlzdC5jZGstZHJvcC1saXN0LWRyYWdnaW5nIC5leGFtcGxlLWJveDpub3QoLmNkay1kcmFnLXBsYWNlaG9sZGVyKSB7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDI1MG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    Playlist

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Playlist Items
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Media Group\\r\\n \\r\\n \\r\\n -- Select Media Group --\\r\\n \\r\\n \\r\\n {{m.name}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
    0\\\" style=\\\"max-height: 75vh;overflow-y: auto;\\\" cdkDropList class=\\\"example-list\\\" (cdkDropListDropped)=\\\"drop($event)\\\">\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{image.title}}\\r\\n
    \\r\\n
    \\r\\n close\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
    • \\r\\n\\r\\n
    • \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n
    • \\r\\n\\r\\n
    • \\r\\n
      \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n
    • \\r\\n\\r\\n
    • \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
    • \\r\\n\\r\\n
    • \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n
    • \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{image.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\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject} from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { ImageFileService } from 'src/app/services/image-file.service';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Image } from '../../models/image.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { PlaylistService } from \"../../services/playlist.service\";\r\nimport { Playlist, imageIndex } from '../../models/playlist.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { UserSelectorComponent } from '../common/user-selector/user-selector.component';\r\nimport { MediaService } from '../../services/media.service';\r\nimport { Media } from '../../models/media.model';\r\nimport { MediaExtensionService } from '../../services/media-extension.service';\r\nimport { MediaExtension } from '../../models/media-extension.model';\r\nimport { UserGroupService } from '../../services/userGroup.service';\r\n\r\n\r\n@Component({\r\n selector: 'playlist-creator',\r\n templateUrl: './playlist-creator.component.html',\r\n styleUrls: ['./playlist-creator.component.css'],\r\n animations: [fadeInOut]\r\n})\r\n\r\nexport class PlaylistCreatorComponent implements OnInit {\r\n\r\n\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n private filePath: string;\r\n loadingIndicator: boolean;\r\n\r\n private isSaving: boolean;\r\n private isNewPlaylist: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingPlaylistName: string;\r\n public playlistEdit: Playlist = new Playlist();\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n private selectedImageList: Image[] = [];\r\n \r\n imagePage: Image[] = [];\r\n imageAll: Image[] = [];\r\n\r\n allMedias: Media[];\r\n allMediaExtensions: MediaExtension[];\r\n\r\n public formResetToggle = true;\r\n\r\n search: string;\r\n mediaGroup: string = '';\r\n sort: string = '';\r\n fileType: string = '';\r\n ext: string = '';\r\n asc: boolean;\r\n\r\n animations = ['top', 'left', 'right', 'bottom', 'zoom', 'fadein'];\r\n\r\n data = [];\r\n page = 0;\r\n size = 9;\r\n originalPlaylist: Playlist;\r\n length: number;\r\n\r\n filter: any = {};\r\n allUserGroups: any;\r\n\r\n constructor(private fileService: ImageFileService, private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n public dialog: MatDialog, private playlistService: PlaylistService, private mediaService: MediaService,\r\n public dialogRef: MatDialogRef, private userGroupService: UserGroupService, private mediaExtensionService: MediaExtensionService,\r\n @Inject(MAT_DIALOG_DATA) public dt: any) {\r\n if (typeof (dt.playlist) != typeof (undefined)) {\r\n if (dt.playlist.id) {\r\n this.editPlaylist(dt.playlist);\r\n } else {\r\n this.newPlaylist();\r\n }\r\n }\r\n\r\n this.mediaService.getMedias(null, null, null, this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.allMedias = results;\r\n },\r\n error => {\r\n });\r\n\r\n this.mediaExtensionService.getMediaExtensionByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allMediaExtensions = results[0];\r\n },\r\n error => {\r\n\r\n })\r\n\r\n this.filter.filters = '(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n this.userGroupService.getUserGroupsByFilter(this.filter)\r\n .subscribe(results => {\r\n\r\n this.allUserGroups = results.pagedData;\r\n\r\n },\r\n error => {\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.loadData();\r\n this.refresh();\r\n }\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.fileService.getImages(-1, -1, this.accountService.currentUser.institutionId, '', this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let result_data = results;\r\n\r\n result_data.forEach((image, index, result_data) => {\r\n (image).index = index + 1;\r\n });\r\n\r\n this.imageAll = result_data;\r\n\r\n this.refresh();\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve images from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n refresh() {\r\n this.page = 0;\r\n this.getData();\r\n }\r\n\r\n getData(obj?) {\r\n if (obj && !isNaN(obj.pageIndex) && !isNaN(obj.pageSize)) {\r\n this.page = obj.pageIndex;\r\n this.size = obj.pageSize;\r\n }\r\n\r\n let startingIndex = this.page * this.size;\r\n let endingIndex = startingIndex + this.size;\r\n\r\n this.imagePage = this.imageAll.slice(0);;\r\n\r\n if (this.search)\r\n this.imagePage = this.imagePage.filter(i => (i.title + ' ' + i.description + ' ' + i.tags).toLowerCase().includes(this.search.toLowerCase()));\r\n\r\n if (this.mediaGroup)\r\n this.imagePage = this.imagePage.filter(i => i.mediaId == this.mediaGroup);\r\n\r\n if (this.fileType)\r\n this.imagePage = this.imagePage.filter(i => this.fileType == '1' ? !i.isVideo : (this.fileType == '2' ? i.isVideo : true));\r\n\r\n if (this.ext) {\r\n this.imagePage = this.imagePage.filter(i => i.imageLocation.endsWith(this.ext));\r\n }\r\n\r\n if (this.sort)\r\n this.imagePage = this.imagePage.sort((a, b) => {\r\n let result = 0;\r\n\r\n if (this.sort == '1') result = 1;\r\n else if (this.sort == '2') result = b.title.localeCompare(a.title);\r\n else if (this.sort == '3') result = b.description.localeCompare(a.description);\r\n\r\n if (this.asc) result *= -1;\r\n\r\n return result;\r\n });\r\n\r\n this.length = this.imagePage.length;\r\n\r\n this.imagePage = this.imagePage.filter((img, i) => {\r\n return i >= startingIndex && i < endingIndex;\r\n });\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n this.filePath = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n drop(event: CdkDragDrop<{ id: number,title: string, url: string }[]>) {\r\n moveItemInArray(this.selectedImageList, event.previousIndex, event.currentIndex);\r\n console.log(\"urutan: \" + this.selectedImageList)\r\n }\r\n\r\n addImage(image) {\r\n image.animation = image.animation || '';\r\n this.selectedImageList.push(image);\r\n }\r\n\r\n removeImage(image) {\r\n var index = this.selectedImageList.indexOf(image);\r\n this.selectedImageList.splice(index, 1);\r\n }\r\n\r\n loadSelectedImages() {\r\n let localPE = this.playlistEdit;\r\n //get selected image from db according to index\r\n var selImage: Image[] = [];\r\n localPE.imageIds.sort((a, b) => a.imgIndex - b.imgIndex);\r\n console.log(\"the playlistEdit after sort: \", localPE.imageIds)\r\n\r\n this.fileService.getImages(-1, -1, this.accountService.currentUser.institutionId)\r\n .subscribe((results) => {\r\n localPE.imageIds.forEach((imgId, index) => {\r\n results.forEach((image, jndex) => {\r\n if (+image.id == imgId.imageId) {\r\n image.duration = imgId.duration;\r\n image.animation = imgId.animation || '';\r\n selImage.push(image)\r\n }\r\n });\r\n });\r\n this.selectedImageList = selImage;\r\n },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"getImages failed\", \"An error occured while trying to get images from the server\", MessageSeverity.error);\r\n });\r\n\r\n //this.fileService.getImages(-1, -1, this.accountService.currentUser.institutionId)\r\n // .subscribe((results) => {\r\n // this.selectedImageList = results.filter(function (image) {\r\n // var match = localPE.imageIds.indexOf(+image.id);\r\n // //console.log(\"playlistEdit: \", localPE.imageIds);\r\n // //console.log(\"image id: \" + image.id + \"indexof: \" + match);\r\n // return localPE.imageIds.indexOf(+image.id) !== -1;\r\n // });\r\n // },\r\n // error => {\r\n // this.alertService.resetStickyMessage();\r\n // this.alertService.showStickyMessage(\"getImages failed\", \"An error occured while trying to get images from the server\", MessageSeverity.error);\r\n // });\r\n \r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n var selectedImageIds: imageIndex[] = [];;\r\n this.selectedImageList.forEach((image, index, result_data) => {\r\n selectedImageIds.push(new imageIndex(+image.id, index, image.duration, image.animation));\r\n });\r\n console.log(\"image list saving: \", this.selectedImageList);\r\n this.playlistEdit.imageIds = selectedImageIds;\r\n console.log(\"image list id in object: \", this.playlistEdit.imageIds);\r\n\r\n //if (!this.playlistEdit.userGroupsArr || !this.playlistEdit.userGroupsArr[0]) {\r\n // this.alertService.showDialog('Please fill user group.', DialogType.alert);\r\n // return;\r\n //}\r\n\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n if (this.isNewPlaylist) {\r\n this.playlistService.newPlaylist(this.playlistEdit).subscribe(playlist => this.saveSuccessHelper(playlist), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.playlistService.updatePlaylist(this.playlistEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(playlist?: Playlist) {\r\n if (playlist)\r\n Object.assign(this.playlistEdit, playlist);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewPlaylist)\r\n this.alertService.showMessage(\"Success\", `Playlist \\\"${this.playlistEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to playlist \\\"${this.playlistEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n\r\n //this.playlistEdit = new Playlist();\r\n\r\n //if (!this.isNewContactGroup && this.accountService.currentUser.facilities.some(r => r == this.editingContactGroupName))\r\n // this.refreshLoggedInUser();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n }\r\n\r\n private cancel() {\r\n this.playlistEdit = new Playlist();\r\n\r\n this.showValidationErrors = false;\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n newPlaylist() {\r\n this.showValidationErrors = true;\r\n this.isNewPlaylist = true;\r\n this.playlistEdit = new Playlist();\r\n this.playlistEdit.institutionId = this.accountService.currentUser.institutionId;\r\n return this.playlistEdit;\r\n }\r\n\r\n editPlaylist(playlist: Playlist) {\r\n if (playlist) {\r\n this.isNewPlaylist = false;\r\n this.showValidationErrors = true;\r\n this.originalPlaylist = playlist;\r\n this.playlistEdit = new Playlist();\r\n Object.assign(this.playlistEdit, playlist);\r\n\r\n this.loadSelectedImages();\r\n\r\n return this.playlistEdit;\r\n }\r\n else {\r\n return this.newPlaylist();\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wbGF5bGlzdE1hbmFnZW1lbnQvcGxheWxpc3RzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxTQUFTO0FBQ2I7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3BsYXlsaXN0TWFuYWdlbWVudC9wbGF5bGlzdHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuICAgIC5hY3Rpb24tYm94IC50b29sYmFyaXRlbSBhIHtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcclxuICAgIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5hY3Rpb24tYm94IHtcclxuICAgICAgICBtYXJnaW46IDAgMTRweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"
    \\r\\n
    \\r\\n

    Playlists

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n >\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'playlists.management.Edit' | translate}}\\r\\n \\r\\n \\r\\n {{'playlists.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { PlaylistService } from 'src/app/services/playlist.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Playlist } from 'src/app/models/playlist.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { PlaylistCreatorComponent } from '../playlistCreator/playlist-creator.component';\r\n\r\n\r\n@Component({\r\n selector: 'playlists-management',\r\n templateUrl: './playlists-management.component.html',\r\n styleUrls: ['./playlists-management.component.css']\r\n})\r\nexport class PlaylistsManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: Playlist[] = [];\r\n rowsCache: Playlist[] = [];\r\n allPermissions: Permission[] = [];\r\n editedPlaylist: Playlist;\r\n sourcePlaylist: Playlist;\r\n editingPlaylistName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('playlistEditor')\r\n playlistEditor: PlaylistCreatorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private playlistService: PlaylistService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(playlist: Playlist): void {\r\n const dialogRef = this.dialog.open(PlaylistCreatorComponent, {\r\n data: { header: this.header, playlist: playlist },\r\n width: '80vw',\r\n height: '90vh',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('playlists.management.Name') },\r\n { prop: 'description', name: gT('playlists.management.Description') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.playlistEditor.changesSavedCallback = () => {\r\n this.addNewPlaylistToList();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.playlistEditor.changesCancelledCallback = () => {\r\n this.editedPlaylist = null;\r\n this.sourcePlaylist = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewPlaylistToList() {\r\n if (this.sourcePlaylist) {\r\n Object.assign(this.sourcePlaylist, this.editedPlaylist);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourcePlaylist, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourcePlaylist, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedPlaylist = null;\r\n this.sourcePlaylist = null;\r\n }\r\n else {\r\n let playlist = new Playlist();\r\n Object.assign(playlist, this.editedPlaylist);\r\n this.editedPlaylist = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (playlist).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, playlist);\r\n this.rows.splice(0, 0, playlist);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.playlistService.getPlaylists(-1, -1, this.accountService.currentUser.institutionId, this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let playlists = results;\r\n let permissions = results[1];\r\n\r\n playlists.forEach((playlist, index, playlists) => {\r\n (playlist).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...playlists];\r\n this.rows = playlists;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve playlist from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingPlaylistName = null;\r\n //this.playlistEditor.resetForm(true);\r\n }\r\n\r\n\r\n newPlaylist() {\r\n this.editingPlaylistName = null;\r\n this.sourcePlaylist = null;\r\n this.editedPlaylist = this.playlistEditor.newPlaylist();\r\n this.header = 'New Playlist';\r\n this.openDialog(this.editedPlaylist);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editPlaylist(row: Playlist) {\r\n this.editingPlaylistName = { key: row.name };\r\n this.sourcePlaylist = row;\r\n this.editedPlaylist = this.playlistEditor.editPlaylist(row);\r\n this.header = 'Edit Playlist';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedPlaylist);\r\n }\r\n\r\n deletePlaylist(row: Playlist) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" playlist?', DialogType.confirm, () => this.deletePlaylistHelper(row));\r\n }\r\n\r\n\r\n deletePlaylistHelper(row: Playlist) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.playlistService.deletePlaylist(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the playlist.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n get canManagePlaylists() {\r\n return this.accountService.userHasPermission(Permission.managePlaylistPermission);\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wdWJsaWMtaG9saWRheS9wdWJsaWMtaG9saWRheS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wdWJsaWMtaG9saWRheS9wdWJsaWMtaG9saWRheS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG4iXX0= */\"","module.exports = \"

    {{data.header}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Permission } from '../../models/permission.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { PublicHoliday } from 'src/app/models/public-holiday.model';\r\nimport { CalendarService } from 'src/app/services/calendar.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'public-holiday-editor',\r\n templateUrl: './public-holiday-editor.component.html',\r\n styleUrls: ['./public-holiday-editor.component.css']\r\n})\r\nexport class PublicHolidayEditorComponent {\r\n\r\n private isNewPublicHoliday = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingPublicHolidayName: string;\r\n private publicHolidayEdit: PublicHoliday = new PublicHoliday();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private calendarService: CalendarService, private accountService: AccountService,\r\n private fileService: FileService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.publicHoliday) != typeof (undefined)) {\r\n if (data.publicHoliday.id) {\r\n this.editPublicHoliday(data.publicHoliday);\r\n } else {\r\n this.newPublicHoliday();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.publicHolidayEdit.institutionId = this.accountService.currentUser.institutionId;\r\n if (this.isNewPublicHoliday) {\r\n this.calendarService.newPublicHoliday(this.publicHolidayEdit).subscribe(publicHoliday => this.saveSuccessHelper(publicHoliday), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.calendarService.updatePublicHoliday(this.publicHolidayEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(publicHoliday?: PublicHoliday) {\r\n if (publicHoliday)\r\n Object.assign(this.publicHolidayEdit, publicHoliday);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewPublicHoliday)\r\n this.alertService.showMessage(\"Success\", `Public Holiday \\\"${this.publicHolidayEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to public holiday \\\"${this.publicHolidayEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.publicHolidayEdit = new PublicHoliday();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewPublicHoliday && this.accountService.currentUser.facilities.some(r => r == this.editingPublicHolidayName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.publicHolidayEdit = new PublicHoliday();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newPublicHoliday() {\r\n this.isNewPublicHoliday = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingPublicHolidayName = null;\r\n this.selectedValues = {};\r\n this.publicHolidayEdit = new PublicHoliday();\r\n\r\n return this.publicHolidayEdit;\r\n }\r\n\r\n editPublicHoliday(publicHoliday: PublicHoliday) {\r\n if (publicHoliday) {\r\n this.isNewPublicHoliday = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingPublicHolidayName = publicHoliday.name;\r\n this.selectedValues = {};\r\n this.publicHolidayEdit = new PublicHoliday();\r\n Object.assign(this.publicHolidayEdit, publicHoliday);\r\n\r\n return this.publicHolidayEdit;\r\n }\r\n else {\r\n return this.newPublicHoliday();\r\n }\r\n }\r\n\r\n\r\n get canManagePublicHolidays() {\r\n return true;// this.accountService.userHasPermission(Permission.manageReservationsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wdWJsaWMtaG9saWRheS9wdWJsaWMtaG9saWRheXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHVibGljLWhvbGlkYXkvcHVibGljLWhvbGlkYXlzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
    \\r\\n
    \\r\\n

    Public Holidays

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n \\\"icon\\\"\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n \\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Filter, PagedResult } from '../../models/sieve-filter.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { PublicHoliday } from 'src/app/models/public-holiday.model';\r\nimport { PublicHolidayEditorComponent } from './public-holiday-editor.component';\r\nimport { CalendarService } from 'src/app/services/calendar.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'public-holidays-management',\r\n templateUrl: './public-holidays-management.component.html',\r\n styleUrls: ['./public-holidays-management.component.css']\r\n})\r\nexport class PublicHolidaysManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: PublicHoliday[] = [];\r\n rowsCache: PublicHoliday[] = [];\r\n allPermissions: Permission[] = [];\r\n editedPublicHoliday: PublicHoliday;\r\n sourcePublicHoliday: PublicHoliday;\r\n editingPublicHolidayName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('iconTemplate')\r\n iconTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('publicHolidayEditor')\r\n publicHolidayEditor: PublicHolidayEditorComponent;\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private fileService: FileService, private calendarService: CalendarService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(publicHoliday: PublicHoliday): void {\r\n const dialogRef = this.dialog.open(PublicHolidayEditorComponent, {\r\n data: { header: this.header, publicHoliday: publicHoliday },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n importClicked() {\r\n document.getElementById('file').click()\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n let importFile = event ? event.dbPath : null;\r\n\r\n var r = confirm(`Are you sure you want to import from selected file?\\nAny data with same name will be overwritten, and you cannot undo this action.`);\r\n if (r) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.calendarService.import(importFile)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n\r\n this.alertService.showMessage(\"Import Success\", \"Import Success\", MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to import to the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-date';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n \r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n\r\n { prop: 'date', name: 'Date', width: 200 },\r\n { prop: 'name', name: gT('common.Name'), width: 200 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword ;\r\n \r\n this.calendarService.getPublicHolidaysByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let publicHolidays = results.pagedData;\r\n\r\n publicHolidays.forEach((publicHoliday, index, publicHolidays) => {\r\n if (publicHoliday.date) {\r\n publicHoliday.dateObj = new Date(publicHoliday.date);\r\n publicHoliday.date = publicHoliday.date.split(\"T\")[0];\r\n }\r\n\r\n (publicHoliday).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...publicHolidays];\r\n this.rows = publicHolidays;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingPublicHolidayName = null;\r\n this.publicHolidayEditor.resetForm(true);\r\n }\r\n\r\n\r\n newPublicHoliday() {\r\n //this.editingPublicHolidayName = null;\r\n //this.sourcePublicHoliday = null;\r\n //this.editedPublicHoliday = this.publicHolidayEditor.newPublicHoliday();\r\n //this.editorModal.show();\r\n this.header = 'New Public Holiday';\r\n this.editedPublicHoliday = new PublicHoliday();\r\n this.openDialog(this.editedPublicHoliday);\r\n }\r\n\r\n\r\n editPublicHoliday(row: PublicHoliday) {\r\n //this.editingPublicHolidayName = { name: row.name };\r\n //this.sourcePublicHoliday = row;\r\n this.editedPublicHoliday = row; //this.publicHolidayEditor.editPublicHoliday(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Public Holiday';\r\n this.openDialog(this.editedPublicHoliday);\r\n }\r\n\r\n deletePublicHoliday(row: PublicHoliday) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" public holiday?', DialogType.confirm, () => this.deletePublicHolidayHelper(row));\r\n }\r\n\r\n\r\n deletePublicHolidayHelper(row: PublicHoliday) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.calendarService.deletePublicHoliday(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the public holiday.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManagePublicHolidays() {\r\n return true;// this.accountService.userHasPermission(Permission.managePublicHolidaysPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcXVldWUtdGFibGUtbWFwL3F1ZXVlLXRhYmxlLW1hcC1lZGl0b3IuY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"

    {{'pageHeader.QueueTableMaps' | translate}}

    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n {{'queueTableMaps.editor.QueueIdRequired' | translate}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n

    Device List

    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n Device Id\\r\\n \\r\\n Device Label\\r\\n \\r\\n Pair Id / Component Id (FIFO)\\r\\n \\r\\n
    \\r\\n {{l.deviceId}}\\r\\n \\r\\n {{getLabel(l.deviceId)}}\\r\\n \\r\\n \\r\\n \\r\\n Remove\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n None\\r\\n \\r\\n {{(d.code || '') + ' - ' + (d.device_label || '') + ' - ' + (d.macAddress || '') + ' - ' + (d.serialNumber || '')}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Add\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { QueueTableMap } from 'src/app/models/queue-table-map.model';\r\nimport { InstitutionService } from 'src/app/services/institution.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Institution } from 'src/app/models/institution.model';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { QueueTableMapService } from 'src/app/services/queue-table-map.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { QueueTableMapGroup } from '../../models/queue-table-map-group.model';\r\nimport { JsonHubProtocol } from '@aspnet/signalr';\r\nimport { DeviceService } from '../../services/device.service';\r\nimport { Device } from '../../models/device.model';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'queue-table-map-editor',\r\n templateUrl: './queue-table-map-editor.component.html',\r\n styleUrls: ['./queue-table-map-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class QueueTableMapEditorComponent implements OnInit, OnDestroy{\r\n private subscription: Subscription = new Subscription();\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n public formResetToggle = true;\r\n private loadingIndicator = false;\r\n private isNewQueueTableMap = false;\r\n private originalQueueTableMap: QueueTableMapGroup = new QueueTableMapGroup();\r\n private queueTableMapEdit: QueueTableMapGroup = new QueueTableMapGroup();\r\n private allInstitutions: Institution[] = [];\r\n private validation = { code: false, label: false};\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n /** control for the MatSelect filter keyword */\r\n public searchDevice: FormControl = new FormControl();\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('code')\r\n private code;\r\n\r\n @ViewChild('label')\r\n private label;\r\n devices: any;\r\n selectedDevice: Device = null;\r\n selectedPairId: any = null;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private institutionService: InstitutionService,\r\n private queueTableMapService: QueueTableMapService, private deviceService: DeviceService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.queueTableMap) != typeof (undefined)) {\r\n if (data.queueTableMap.id) {\r\n this.editQueueTableMap(data.queueTableMap);\r\n } else {\r\n this.newQueueTableMap();\r\n }\r\n }\r\n\r\n this.deviceService.getDevicesLocationsInstitutions(-1, -1, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.devices = results[0];\r\n },\r\n error => {\r\n \r\n });\r\n }\r\n\r\n getLabel(code) {\r\n if (!this.devices) return;\r\n\r\n let d = this.devices.find(d => d.code == code);\r\n\r\n if (!d) return;\r\n\r\n return d.device_label;\r\n }\r\n\r\n add() {\r\n if (!this.selectedDevice) return;\r\n\r\n if (!this.queueTableMapEdit.list) this.queueTableMapEdit.list = [];\r\n\r\n let n: any = {\r\n deviceId: this.selectedDevice.code,\r\n deviceIdentifier: this.selectedDevice.id,\r\n stationId: this.selectedPairId,\r\n isActive: true\r\n }\r\n\r\n this.queueTableMapEdit.list.push(n);\r\n\r\n this.selectedDevice = null;\r\n this.selectedPairId = null;\r\n }\r\n\r\n getObjStr(obj) {\r\n return JSON.stringify(obj);\r\n }\r\n\r\n ngOnInit() {\r\n this.alertService.resetStickyMessage();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n\r\n for (let q of this.queueTableMapEdit.list) {\r\n q.queueId = this.queueTableMapEdit.queueId;\r\n q.roomName = this.queueTableMapEdit.roomName;\r\n if (!q.id) {\r\n this.queueTableMapService.newQueueTableMap(q).subscribe(queueTableMap => this.saveSuccessHelper(queueTableMap), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.queueTableMapService.updateQueueTableMap(q).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n }\r\n\r\n private saveSuccessHelper(queueTableMap?: QueueTableMap) {\r\n if (queueTableMap)\r\n Object.assign(this.queueTableMapEdit, queueTableMap);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewQueueTableMap) {\r\n this.alertService.showMessage(\"Success\", `Data \\\"${this.queueTableMapEdit.queueId}\\\" was created successfully`, MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showMessage(\"Success\", `Changes to data \\\"${this.queueTableMapEdit.queueId}\\\" was saved successfully`, MessageSeverity.success);\r\n }\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.queueTableMapEdit = new QueueTableMapGroup();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n loadInstitutions() {\r\n this.institutionService.getInstitutions()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.allInstitutions = results[0];\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve institutions from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n newQueueTableMap() {\r\n this.showValidationErrors = true;\r\n this.isNewQueueTableMap = true;\r\n this.queueTableMapEdit = new QueueTableMapGroup();\r\n return this.queueTableMapEdit;\r\n }\r\n\r\n editQueueTableMap(queueTableMapGroup: QueueTableMapGroup) {\r\n if (queueTableMapGroup) {\r\n this.isNewQueueTableMap = false;\r\n this.showValidationErrors = true;\r\n this.originalQueueTableMap = queueTableMapGroup;\r\n this.queueTableMapEdit = new QueueTableMapGroup();\r\n Object.assign(this.queueTableMapEdit, queueTableMapGroup);\r\n\r\n return this.queueTableMapEdit;\r\n }\r\n else {\r\n return this.newQueueTableMap();\r\n }\r\n }\r\n\r\n get canManageQueueTableMaps() {\r\n return true;//this.accountService.userHasPermission(Permission.manageQueueTableMapPermission);\r\n }\r\n\r\n}\r\n","module.exports = \"

    Simulator

    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    Need Token To Call Queue
    \\r\\n \\r\\n Username\\r\\n \\r\\n \\r\\n \\r\\n Password\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n Intitutionid\\r\\n \\r\\n \\r\\n \\r\\n Station Id/Queue Id\\r\\n \\r\\n \\r\\n \\r\\n RoomInfo\\r\\n \\r\\n \\r\\n \\r\\n ServingInfo\\r\\n \\r\\n \\r\\n \\r\\n QueueNo\\r\\n \\r\\n \\r\\n \\r\\n DoctorInfo\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n AssistantInfo\\r\\n \\r\\n \\r\\n
    \\r\\n Beep\\r\\n
    \\r\\n
    \\r\\n Flash\\r\\n
    \\r\\n \\r\\n CallAction\\r\\n \\r\\n \\r\\n Call\\r\\n \\r\\n \\r\\n Clear\\r\\n \\r\\n \\r\\n Missed Queue\\r\\n \\r\\n \\r\\n Silent Call\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Timestamp\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\ntd div {\\r\\n padding: 5px;border-bottom: solid 1px;\\r\\n}\\r\\n\\r\\nhr {\\r\\n margin-top: 5px !important;\\r\\n margin-bottom: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9xdWV1ZS10YWJsZS1tYXAvcXVldWUtdGFibGUtbWFwcy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsU0FBUztBQUNYOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7QUFDZjs7QUFFRTtJQUNFLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0VBQ2xCOztBQUdGO0VBQ0U7SUFDRSxjQUFjO0VBQ2hCO0FBQ0Y7O0FBRUE7RUFDRSxZQUFZLENBQUMsd0JBQXdCO0FBQ3ZDOztBQUVBO0VBQ0UsMEJBQTBCO0VBQzFCLDZCQUE2QjtBQUMvQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcXVldWUtdGFibGUtbWFwL3F1ZXVlLXRhYmxlLW1hcHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gIH1cclxuXHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAuYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgMTRweDtcclxuICB9XHJcbn1cclxuXHJcbnRkIGRpdiB7XHJcbiAgcGFkZGluZzogNXB4O2JvcmRlci1ib3R0b206IHNvbGlkIDFweDtcclxufVxyXG5cclxuaHIge1xyXG4gIG1hcmdpbi10b3A6IDVweCAhaW1wb3J0YW50O1xyXG4gIG1hcmdpbi1ib3R0b206IDVweCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n
    \\r\\n

    Queue Monitor

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n >\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'queueTableMaps.management.Edit' | translate}}\\r\\n {{'queueTableMaps.management.Simulator' | translate}}\\r\\n {{'queueTableMaps.management.Details' | translate}}\\r\\n \\r\\n {{'queueTableMaps.management.Delete' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { QueueTableMapService } from 'src/app/services/queue-table-map.service';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { QueueTableMap } from 'src/app/models/queue-table-map.model';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { QueueTableMapEditorComponent } from './queue-table-map-editor.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { QueueTableMapGroup } from '../../models/queue-table-map-group.model';\r\n\r\n\r\n@Component({\r\n selector: 'queue-table-maps-management',\r\n templateUrl: './queue-table-maps-management.component.html',\r\n styleUrls: ['./queue-table-maps-management.component.css']\r\n})\r\nexport class QueueTableMapsManagementComponent implements OnInit, OnDestroy, AfterViewInit {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: QueueTableMapGroup[] = [];\r\n rowsCache: QueueTableMapGroup[] = [];\r\n allPermissions: Permission[] = [];\r\n editedQueueTableMap: QueueTableMap;\r\n sourceQueueTableMap: QueueTableMap;\r\n editingQueueTableMapName: { key: string };\r\n loadingIndicator: boolean;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('queueTableMapEditor')\r\n queueTableMapEditor: QueueTableMapEditorComponent;\r\n header: string;\r\n groups: QueueTableMapGroup[];\r\n editedQueueTableMapGroup: QueueTableMapGroup;\r\n sourceQueueTableMapGroup: QueueTableMapGroup;\r\n token: any;\r\n expire: any;\r\n keyword: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private queueTableMapService: QueueTableMapService, public dialog: MatDialog, private authService: AuthService,\r\n private configurationService: ConfigurationService) {\r\n }\r\n\r\n openDialog(queueTableMap: QueueTableMapGroup): void {\r\n const dialogRef = this.dialog.open(QueueTableMapEditorComponent, {\r\n data: { header: this.header, queueTableMap: queueTableMap },\r\n width: '80vw',\r\n disableClose: true\r\n });\r\n\r\n this.subscription.add(dialogRef.afterClosed().subscribe(result => {\r\n this.loadData();\r\n }));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'queueId', name: gT('queueTableMaps.management.QueueId'), },\r\n { prop: 'roomName', name: 'Room Name', },\r\n { prop: 'devices', name: 'Device Id', },\r\n { prop: 'sts', name: 'Pair Id', },\r\n\r\n { prop: 'cds', name: 'Current Display', },\r\n { prop: 'lcs', name: 'Last Call', },\r\n { prop: 'lrs', name: 'Last Return', },\r\n //{ prop: 'stationId', name: gT('queueTableMaps.management.StationId'), width: 200 },\r\n //{ prop: 'currentDisplay', name: gT('queueTableMaps.management.CurrentDisplay'), width: 200 },\r\n //{ prop: 'lastCall', name: gT('queueTableMaps.management.LastCall'), width: 200 },\r\n //{ prop: 'lastReturn', name: gT('queueTableMaps.management.LastReturn'), width: 200 },\r\n\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: true, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurationService.baseUrl + \"/hub/queue?device_id=\" + \"MonitoringTable\", true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"RefreshTable\", () => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.queueTableMapEditor.changesSavedCallback = () => {\r\n this.loadData();\r\n //this.editorModal.hide();\r\n };\r\n\r\n this.queueTableMapEditor.changesCancelledCallback = () => {\r\n this.editedQueueTableMap = null;\r\n this.sourceQueueTableMap = null;\r\n //this.editorModal.hide();\r\n };\r\n }\r\n\r\n\r\n //addNewQueueTableMapToList() {\r\n // if (this.sourceQueueTableMap) {\r\n // Object.assign(this.sourceQueueTableMap, this.editedQueueTableMap);\r\n\r\n // let sourceIndex = this.rowsCache.indexOf(this.sourceQueueTableMap, 0);\r\n // if (sourceIndex > -1)\r\n // Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n // sourceIndex = this.rows.indexOf(this.sourceQueueTableMap, 0);\r\n // if (sourceIndex > -1)\r\n // Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n // this.editedQueueTableMap = null;\r\n // this.sourceQueueTableMap = null;\r\n // }\r\n // else {\r\n // let queueTableMap = new QueueTableMap();\r\n // Object.assign(queueTableMap, this.editedQueueTableMap);\r\n // this.editedQueueTableMap = null;\r\n\r\n // let maxIndex = 0;\r\n // for (let r of this.rowsCache) {\r\n // if ((r).index > maxIndex)\r\n // maxIndex = (r).index;\r\n // }\r\n\r\n // (queueTableMap).index = maxIndex + 1;\r\n\r\n // this.rowsCache.splice(0, 0, queueTableMap);\r\n // this.rows.splice(0, 0, queueTableMap);\r\n // this.rows = [...this.rows];\r\n // }\r\n //}\r\n\r\n\r\n\r\n\r\n loadData() {\r\n //this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.queueTableMapService.getQueueTableMapByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let queueTableMaps = results[0];\r\n let permissions = results[1];\r\n\r\n queueTableMaps.forEach((queueTableMap, index, queueTableMaps) => {\r\n (queueTableMap).index = index + 1;\r\n });\r\n\r\n this.groups = this.getGroups(queueTableMaps);\r\n\r\n\r\n this.rowsCache = [...this.groups];\r\n this.rows = this.groups;\r\n\r\n this.onSearchChanged(this.keyword);\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getGroups(queueTableMaps: QueueTableMap[]): QueueTableMapGroup[] {\r\n let result: QueueTableMapGroup[] = [];\r\n\r\n const unique = [...new Set(queueTableMaps.map(item => item.queueId))];\r\n\r\n for (let [index, q] of unique.entries()) {\r\n let r: any = {\r\n index: index + 1,\r\n queueId: q,\r\n id: q,\r\n list: queueTableMaps.filter(item => item.queueId == q)\r\n }\r\n\r\n r.roomName = r.list && r.list[0] ? r.list[0].roomName : '';\r\n\r\n r.devices = r.list.map(function (elem) {\r\n return elem.deviceId || \"-\";\r\n }).join(`
    `);\r\n\r\n r.sts = r.list.map(function (elem) {\r\n return elem.stationId || \"-\";\r\n }).join(\"
    \");\r\n\r\n r.cds = r.list.map(function (elem) {\r\n return elem.currentDisplay || \"-\";\r\n }).join(\"
    \");\r\n\r\n r.cds = r.list.map(function (elem) {\r\n return elem.currentDisplay || \"-\";\r\n }).join(\"
    \");\r\n\r\n r.lcs = r.list.map(function (elem) {\r\n return elem.lastCall || \"-\";\r\n }).join(\"
    \");\r\n\r\n r.lrs = r.list.map(function (elem) {\r\n return elem.lastReturn || \"-\";\r\n }).join(\"
    \");\r\n\r\n result.push(r);\r\n }\r\n\r\n\r\n return result;\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.queueId, r.devices));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingQueueTableMapName = null;\r\n this.queueTableMapEditor.resetForm(true);\r\n }\r\n\r\n\r\n newQueueTableMap() {\r\n this.editingQueueTableMapName = null;\r\n this.sourceQueueTableMapGroup = null;\r\n this.editedQueueTableMapGroup = this.queueTableMapEditor.newQueueTableMap();\r\n this.header = 'New';\r\n this.openDialog(this.editedQueueTableMapGroup);\r\n //this.editorModal.show();\r\n }\r\n\r\n\r\n editQueueTableMap(row: QueueTableMapGroup) {\r\n this.editingQueueTableMapName = { key: row.queueId };\r\n this.sourceQueueTableMapGroup = row;\r\n this.editedQueueTableMapGroup = this.queueTableMapEditor.editQueueTableMap(row);\r\n this.header = 'Edit';\r\n //this.editorModal.show();\r\n this.openDialog(this.editedQueueTableMapGroup);\r\n }\r\n\r\n deleteQueueTableMap(row: QueueTableMapGroup) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.queueId + '\\\"?', DialogType.confirm, () => this.deleteQueueTableMapHelper(row));\r\n }\r\n\r\n\r\n deleteQueueTableMapHelper(row: QueueTableMapGroup) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n for (let q of row.list) {\r\n this.subscription.add(this.queueTableMapService.deleteQueueTableMap(q.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the data.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n }\r\n\r\n openSimulator(queueTableMap: QueueTableMap): void {\r\n const dialogRef = this.dialog.open(QueueTableMapSimulator, {\r\n width: '80vw',\r\n data: { Queueid: queueTableMap.queueId, token: this.token, expire: this.expire }\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.token = result.token;\r\n this.expire = result.expire;\r\n if (!result || !result.Queueid) return;\r\n\r\n this.queueTableMapService.sendQueueSimulator(result)\r\n .subscribe(r => {\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Error\", `${Utilities.getHttpResponseMessage(error)}`,\r\n MessageSeverity.error);\r\n });\r\n });\r\n }\r\n\r\n\r\n get canManageQueueTableMaps() {\r\n return true;//this.accountService.userHasPermission(Permission.manageQueueTableMapPermission);\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'queue-table-map-simulator',\r\n templateUrl: 'queue-table-map-simulator.html',\r\n})\r\nexport class QueueTableMapSimulator {\r\n\r\n token: any;\r\n password: any;\r\n username: any;\r\n expire: any;\r\n\r\n \r\n\r\n constructor(private alertService: AlertService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any, private queueTableMapService: QueueTableMapService) {\r\n\r\n data.RoomInfo = data.RoomInfo || \"RoomInfo\";\r\n data.ServingInfo = data.ServingInfo || \"ServingInfo\";\r\n data.QueueNo = data.QueueNo || \"A1234\";\r\n data.DoctorInfo = data.DoctorInfo || \"DoctorInfo\";\r\n data.AssistantInfo = data.AssistantInfo || \"AssistantInfo\";\r\n data.CallAction = data.CallAction || \"call\";\r\n data.Timestamp = data.Timestamp || new Date().toLocaleString('sv-SE').replace(' ', 'T');\r\n this.token = data.token;\r\n this.expire = data.expire;\r\n }\r\n\r\n ngOnInit() {\r\n this.token = \"not-needed\";\r\n }\r\n\r\n getToken(username, password) {\r\n this.queueTableMapService.getToken(username, password)\r\n .subscribe(r => {\r\n this.token = r.token;\r\n this.expire = r.expire;\r\n if (!this.data) this.data = {};\r\n\r\n this.data.token = r.token;\r\n this.data.expire = r.expire;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Error\", `${Utilities.getHttpResponseMessage(error)}`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close({ token: this.data.token, expire: this.data.expire });\r\n }\r\n\r\n}\r\n","module.exports = \".boxshadow {\\r\\n position: relative;\\r\\n box-shadow: 1px 2px 4px rgba(0, 0, 0, .5);\\r\\n padding: 10px;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n\\r\\n .boxshadow::after {\\r\\n content: '';\\r\\n position: absolute;\\r\\n z-index: -1; /* hide shadow behind image */\\r\\n box-shadow: 0 15px 20px rgba(0, 0, 0, 0.3);\\r\\n width: 70%;\\r\\n left: 15%; /* one half of the remaining 30% */\\r\\n height: 100px;\\r\\n bottom: 0;\\r\\n }\\r\\n\\r\\n\\r\\n .cardshadow {\\r\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\\r\\n}\\r\\n\\r\\n\\r\\n .separator-hr {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n\\r\\n .last-control-group {\\r\\n margin-bottom: -25px;\\r\\n}\\r\\n\\r\\n\\r\\n @media (min-width: 768px) {\\r\\n .login-container {\\r\\n width: 700px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n /*@media (min-width: 992px) {\\r\\n .login-container {\\r\\n width: 700px;\\r\\n }\\r\\n}*/\\r\\n\\r\\n\\r\\n @media (min-width: 1200px) {\\r\\n .login-container {\\r\\n width: 730px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n .row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n\\r\\n .separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n\\r\\n .edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n\\r\\n .last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n .edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n\\r\\n .password-separator-hr {\\r\\n margin: 5px;\\r\\n border-style: none;\\r\\n}\\r\\n\\r\\n\\r\\n .form-group {\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n\\r\\n input.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n .password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n\\r\\n .hint-sm {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n\\r\\n .checkbox.user-enabled {\\r\\n display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\n .unblock-user {\\r\\n margin-left: 34px;\\r\\n}\\r\\n\\r\\n\\r\\n @media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n .center-content{\\r\\n margin: 70px auto;\\r\\n width: 50%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksa0JBQWtCO0lBR2xCLHlDQUF5QztJQUN6QyxhQUFhO0lBQ2IsaUJBQWlCO0FBQ3JCOzs7SUFHSTtRQUNJLFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIsV0FBVyxFQUFFLDZCQUE2QjtRQUcxQywwQ0FBMEM7UUFDMUMsVUFBVTtRQUNWLFNBQVMsRUFBRSxrQ0FBa0M7UUFDN0MsYUFBYTtRQUNiLFNBQVM7SUFDYjs7O0lBR0o7SUFDSSw0RUFBNEU7QUFDaEY7OztJQUdBO0lBQ0ksU0FBUztBQUNiOzs7SUFFQTtJQUNJLG9CQUFvQjtBQUN4Qjs7O0lBSUE7SUFDSTtRQUNJLFlBQVk7SUFDaEI7QUFDSjs7O0lBRUE7Ozs7RUFJRTs7O0lBRUY7SUFDSTtRQUNJLFlBQVk7SUFDaEI7QUFDSjs7O0lBRUE7RUFDRSxpQ0FBaUM7QUFDbkM7OztJQUVBO0VBQ0UsYUFBYTtFQUNiLHdCQUF3QjtBQUMxQjs7O0lBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsd0JBQXdCO0FBQzFCOzs7SUFFQTtFQUNFLGVBQWU7QUFDakI7OztJQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOzs7SUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7QUFDcEI7OztJQUdBO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7O0lBRUE7RUFDRSxzQkFBc0I7QUFDeEI7OztJQUdBO0VBQ0UsZ0JBQWdCO0FBQ2xCOzs7SUFFQTtFQUNFLGNBQWM7QUFDaEI7OztJQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCOzs7SUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7O0lBRUE7RUFDRTtJQUNFLGlCQUFpQjtFQUNuQjtBQUNGOzs7SUFFQTtFQUNFLGlCQUFpQjtFQUNqQixVQUFVO0FBQ1oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYm94c2hhZG93IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC1tb3otYm94LXNoYWRvdzogMXB4IDJweCA0cHggcmdiYSgwLCAwLCAwLDAuNSk7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDFweCAycHggNHB4IHJnYmEoMCwgMCwgMCwgLjUpO1xyXG4gICAgYm94LXNoYWRvdzogMXB4IDJweCA0cHggcmdiYSgwLCAwLCAwLCAuNSk7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbn1cclxuXHJcblxyXG4gICAgLmJveHNoYWRvdzo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB6LWluZGV4OiAtMTsgLyogaGlkZSBzaGFkb3cgYmVoaW5kIGltYWdlICovXHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDE1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDE1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICAgICAgbGVmdDogMTUlOyAvKiBvbmUgaGFsZiBvZiB0aGUgcmVtYWluaW5nIDMwJSAqL1xyXG4gICAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgfVxyXG5cclxuXHJcbi5jYXJkc2hhZG93IHtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA2cHggMjBweCAwIHJnYmEoMCwgMCwgMCwgMC4xOSk7XHJcbn1cclxuXHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmxhc3QtY29udHJvbC1ncm91cCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtMjVweDtcclxufVxyXG5cclxuXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgIC5sb2dpbi1jb250YWluZXIge1xyXG4gICAgICAgIHdpZHRoOiA3MDBweDtcclxuICAgIH1cclxufVxyXG5cclxuLypAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC5sb2dpbi1jb250YWluZXIge1xyXG4gICAgICAgIHdpZHRoOiA3MDBweDtcclxuICAgIH1cclxufSovXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAubG9naW4tY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogNzMwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDAgNXB4O1xyXG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDEwcHggNXB4O1xyXG4gIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG4ucGFzc3dvcmQtc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW46IDVweDtcclxuICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcblxyXG4uZm9ybS1ncm91cCB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmhpbnQtc20ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uY2hlY2tib3gudXNlci1lbmFibGVkIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi51bmJsb2NrLXVzZXIge1xyXG4gIG1hcmdpbi1sZWZ0OiAzNHB4O1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAudXNlci1lbmFibGVkIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmNlbnRlci1jb250ZW50e1xyXG4gIG1hcmdpbjogNzBweCBhdXRvO1xyXG4gIHdpZHRoOiA1MCU7XHJcbn1cclxuIl19 */\"","module.exports = \"
    \\r\\n

    Register

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{'users.editor.InstitutionRequired' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{'users.editor.DepartmentRequired' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{department.name}} - {{department.description}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{'users.editor.PinRequired' | translate}}\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n {{'users.editor.EmailRequired' | translate}}\\r\\n {{'users.editor.InvalidEmail' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{'users.editor.NewPasswordRequired' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{'users.editor.ConfirmationPasswordRequired' | translate}}\\r\\n {{'users.editor.PasswordMismatch' | 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 {{'users.editor.FullNameRequired' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{'users.editor.PhoneNumberRequired' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Scan QR Code below to download the Android application
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, OnInit, OnDestroy, Input, ViewChild } from \"@angular/core\";\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { User } from \"src/app/models/user.model\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\nimport { UserEdit } from \"src/app/models/user-edit.model\";\r\nimport { ActivatedRoute, NavigationStart, Router, NavigationEnd } from \"@angular/router\";\r\nimport { Department } from \"src/app/models/department.model\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { DepartmentService } from \"src/app/services/department.service\";\r\n\r\n@Component({\r\n selector: \"app-register\",\r\n templateUrl: './register.component.html',\r\n styleUrls: ['./register.component.css']\r\n})\r\n\r\nexport class RegisterComponent implements OnInit, OnDestroy {\r\n\r\n user = new User();\r\n private userEdit: UserEdit;\r\n public formResetToggle = true;\r\n showValidationErrors = true;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n private isNewUser = false;\r\n private isSaving = false;\r\n private qrCodeUrl = '';\r\n private isExternalLogin = false;\r\n private showDepartmentList = false;\r\n departmentList: Department[];\r\n fcDepartments = new FormControl();\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n //ViewChilds Required because ngIf hides template variables from global scope\r\n @ViewChild('userName')\r\n private userName;\r\n\r\n @ViewChild('userPassword')\r\n private userPassword;\r\n\r\n @ViewChild('email')\r\n private email;\r\n\r\n @ViewChild('currentPassword')\r\n private currentPassword;\r\n\r\n @ViewChild('newPassword')\r\n private newPassword;\r\n\r\n @ViewChild('confirmPassword')\r\n private confirmPassword;\r\n\r\n @ViewChild('roles')\r\n private roles;\r\n\r\n @ViewChild('rolesSelector')\r\n private rolesSelector;\r\n\r\n\r\n constructor(private alertService: AlertService, private authService: AuthService, private accountService: AccountService, private configurations: ConfigurationService,\r\n public router: Router, private route: ActivatedRoute, private departmentService: DepartmentService) {\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.isExternalLogin = false;\r\n this.userEdit = new UserEdit();\r\n this.qrCodeUrl = this.configurations.baseUrl + '';\r\n this.accountService.loadConfig().subscribe(config => {\r\n this.qrCodeUrl = config.androidQRUrl;\r\n },\r\n error => { });\r\n\r\n if (this.router.url.indexOf('/register') > -1) {\r\n this.isExternalLogin = false;\r\n this.showDepartmentList = false;\r\n var queryParams: string = '';\r\n var queryParamSection: string[] = [];\r\n if (this.router.url.indexOf('?') > -1) {\r\n queryParams = this.router.url.split('?')[1];\r\n queryParamSection = queryParams.split('&');\r\n }\r\n\r\n if (queryParamSection && queryParamSection.length > 0) {\r\n var queryStrings = Utilities.getQueryParamsFromString(queryParams);\r\n this.userEdit.institutionCode = queryStrings['institutioncode'];\r\n this.showDepartmentList = true;\r\n this.departmentService.getDepartments(-1, -1, null, this.userEdit.institutionCode)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.departmentList = results;\r\n this.showDepartmentList = this.departmentList && this.departmentList.length > 0;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve departments from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n\r\n if (queryStrings['provider'] != null && queryStrings['key'] != null) {\r\n this.isExternalLogin = true;\r\n this.userEdit.email = queryStrings['email'];\r\n this.userEdit.provider = queryStrings['provider'];\r\n this.userEdit.key = queryStrings['key'];\r\n this.userEdit.isExternal = true;\r\n }\r\n }\r\n }\r\n\r\n //this.router.events.subscribe(event => {\r\n // if (event instanceof NavigationStart) {\r\n // let url = (event).url;\r\n // if (url.toLowerCase().indexOf('/register') > -1) {\r\n // debugger;\r\n // var queryParamSection = url.split('?')[1];\r\n // this.userEdit.email = queryParamSection.split('=')[1];\r\n // }\r\n // }\r\n\r\n // if (event instanceof NavigationEnd) {\r\n // let url = (event).url;\r\n // if (url.toLowerCase().indexOf('/register') > -1) {\r\n // debugger;\r\n // var queryParamSection = url.split('?')[1];\r\n // this.userEdit.email = queryParamSection.split('=')[1];\r\n // }\r\n // }\r\n //});\r\n\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.accountService.registerUser(this.userEdit).subscribe(user => this.saveSuccessHelper(user), error => this.saveFailedHelper(error));\r\n }\r\n\r\n\r\n private saveSuccessHelper(user?: User) {\r\n let isExternalLogin = this.userEdit.newPassword == null;\r\n if (user)\r\n Object.assign(this.userEdit, user);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n Object.assign(this.user, this.userEdit);\r\n this.userEdit = new UserEdit();\r\n this.resetForm();\r\n\r\n let message = isExternalLogin ? 'You have successfully registered.' : 'You have successfully registered. Please confirm the link sent to your email.';\r\n this.alertService.showMessage(\"Success\", message, MessageSeverity.success);\r\n\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n console.log(JSON.stringify(error));\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes\" , MessageSeverity.error);\r\n this.alertService.showStickyMessage(JSON.stringify(error.error), null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n resetForm(replace = false) {\r\n this.isExternalLogin = false;\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"mat-form-field {\\r\\n margin-right: 12px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb250YWluZXIvcmVwb3J0LWNvbnRhaW5lci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3JlcG9ydC1jb250YWluZXIvcmVwb3J0LWNvbnRhaW5lci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsibWF0LWZvcm0tZmllbGQge1xyXG4gIG1hcmdpbi1yaWdodDogMTJweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbn1cclxuIl19 */\"","module.exports = \"
    \\r\\n
    \\r\\n

    {{'mainMenu.Reports' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n Report Type\\r\\n \\r\\n \\r\\n {{t}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, OnInit, OnDestroy, TemplateRef, ViewChild, Input, AfterViewInit, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { DashboardService } from \"../../../services/dashboard.service\";\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { Permission } from '../../../models/permission.model';\r\n\r\n\r\n@Component({\r\n selector: 'report-container',\r\n templateUrl: './report-container.component.html',\r\n styleUrls: ['./report-container.component.css']\r\n})\r\nexport class ReportContainerComponent implements OnInit, AfterViewInit {\r\n private RESERVATION = 'Reservation Report';\r\n private VEHICLE_LOG = 'Vehicle';\r\n private reportType: string = this.RESERVATION;\r\n private types = [this.RESERVATION, this.VEHICLE_LOG];\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n get canViewReports() {\r\n return this.accountService.userHasPermission(Permission.viewReportsPermission)\r\n }\r\n}\r\n","module.exports = \"mat-form-field {\\r\\n margin-right: 12px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3Jlc2VydmF0aW9ucy9yZXNlcnZhdGlvbnMuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVwb3J0cy9yZXNlcnZhdGlvbnMvcmVzZXJ2YXRpb25zLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJtYXQtZm9ybS1maWVsZCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxufVxyXG4iXX0= */\"","module.exports = \"
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n >\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { ReservationService } from '../../../services/reservation.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Reservation, CalendarFilter } from '../../../models/reservation.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Facility } from '../../../models/facility.model';\r\n\r\nimport { Location } from '../../../models/location.model';\r\nimport { fadeInOut } from '../../../services/animations';\r\n\r\nimport { DateTimeOnlyPipe } from '../../../pipes/datetime.pipe';\r\nimport { DateOnlyPipe } from '../../../pipes/datetime.pipe';\r\nimport { CalendarEvent } from 'calendar-utils';\r\nimport { ReservationTime } from 'src/app/models/reservationtime.model';\r\nimport { MatDialog, MatDatepickerInputEvent } from '@angular/material';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { take } from 'rxjs/operators';\r\nimport { Subscription } from 'rxjs';\r\n@Component({\r\n selector: 'reports-reservation-list',\r\n templateUrl: './reservations.component.html',\r\n styleUrls: ['./reservations.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ReportsReservationListComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: Reservation[] = [];\r\n rowsCache: Reservation[] = [];\r\n allFacilities: Facility[] = [];\r\n allLocations: Location[] = [];\r\n editedReservation: Reservation;\r\n sourceReservation: Reservation;\r\n editingReservationName: { shortDescription: string };\r\n loadingIndicator: boolean;\r\n //@Input() viewDate: Date;\r\n filteredReservations: Reservation[];\r\n filter: CalendarFilter;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private reservationService: ReservationService, private configurationService: ConfigurationService, public dialog: MatDialog) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.filter = new CalendarFilter();\r\n if (!this.filter.start) {\r\n this.filter.start = new Date();\r\n }\r\n\r\n if (!this.filter.end) {\r\n this.filter.end = new Date();\r\n }\r\n\r\n this.loadingIndicator = false;\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'shortDescription', name: gT('reservations.management.ShortDescription') },\r\n { prop: 'longDescription', name: gT('reservations.management.LongDescription') },\r\n { prop: 'startDateTime', name: 'Date', pipe: new DateOnlyPipe('en-SG') },\r\n //{ prop: 'endDateTime', name: gT('reservations.management.EndDateTime'), pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'locationName', name: gT('reservations.management.LocationName') },\r\n //{ prop: 'isAllDayYesNo', name: gT('reservations.management.IsAllDay') },\r\n { prop: 'status', name: gT('reservations.management.Status') },\r\n { prop: 'bookedBy', name: gT('reservations.management.BookedBy') },\r\n { prop: 'repeatType', name: gT('reservations.management.RepeatType') },\r\n { prop: 'repeatEndDateTime', name: gT('reservations.management.RepeatEndDateTime'), pipe: new DateOnlyPipe('en-SG') },\r\n { name: 'Attendance', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: true, sortable: false, draggable: false }\r\n\r\n ];\r\n\r\n //this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n loadData(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.filter.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.filter.end = new Date(event.value);\r\n }\r\n\r\n this.loadingIndicator = true;\r\n this.filter.start = new Date(this.filter.start.setHours(0, 0, 0, 0));\r\n this.filter.end = new Date(this.filter.end.setHours(23, 59, 59, 0));\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n\r\n this.subscription.add(this.reservationService.getReservationsWithFilter(this.filter)\r\n .subscribe(results => {\r\n\r\n let reservations = results;\r\n\r\n reservations.forEach((reservation, index, reservations) => {\r\n (reservation).index = index + 1;\r\n });\r\n\r\n\r\n if (reservations) {\r\n this.filteredReservations = reservations;\r\n }\r\n this.filteredReservations.forEach((reservation, index, reservations) => {\r\n (reservation).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...this.filteredReservations];\r\n this.rows = this.filteredReservations;\r\n this.loadingIndicator = false;\r\n \r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve reservations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.shortDescription, r.longDescription, r.repeatType, r.status, r.locationName, r.bookedBy));\r\n }\r\n\r\n get canManageReservations() {\r\n return this.accountService.userHasPermission(Permission.viewReportsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3VzZXItYWNjb3VudC91c2VyLWFjY291bnRzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvdXNlci1hY2NvdW50L3VzZXItYWNjb3VudHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n
    \\r\\n

    User Accounts

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{t.name}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{t.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 \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n Enabled\\r\\n Deactivated\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{value}}\\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Filter, PagedResult } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { AuthLog } from 'src/app/models/auth-log.model';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchBoxComponent } from '../../controls/search-box.component';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\nimport { DepartmentService } from 'src/app/services/department.service';\r\nimport { UserGroupService } from 'src/app/services/userGroup.service';\r\nimport { UserReportFilter } from 'src/app/models/user.model';\r\n\r\n\r\n@Component({\r\n selector: 'user-accounts-report-management',\r\n templateUrl: './user-accounts-management.component.html',\r\n styleUrls: ['./user-accounts-management.component.css']\r\n})\r\nexport class UserAccountsReportManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: AuthLog[] = [];\r\n rowsCache: AuthLog[] = [];\r\n userGroups = [];\r\n departments = [];\r\n editingAuthLogName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n reportFilter = new UserReportFilter();\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('userReportTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private departmentService: DepartmentService, private userGroupService: UserGroupService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n loadUserGroups() {\r\n let filter = new Filter(-1, -1);\r\n filter.filters = '(IsActive)==true,(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n\r\n this.subscription.add(this.userGroupService.getUserGroupsByFilter(filter)\r\n .subscribe(results => {\r\n this.userGroups = results.pagedData;\r\n\r\n },\r\n error => {\r\n this.alertService.showMessage(\"Load Error\", \"Loading user groups from the server failed!\", MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n }));\r\n }\r\n\r\n loadDepartments() {\r\n this.subscription.add(this.departmentService.getDepartments(null, null, this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.departments = results;\r\n },\r\n error => {\r\n this.alertService.showMessage(\"Load Error\", \"Loading departments from the server failed!\", MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n }));\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-lastLoginTime';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'userName', name: 'User Name', width: 150, canAutoResize: false },\r\n { prop: 'designation', name: 'Designation' },\r\n { prop: 'department', name: 'Department' },\r\n { prop: 'userGroup', name: 'User Group', sortable: false },\r\n { prop: 'createdDate', name: 'Created On', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'lastLoginTime', name: 'Last Login On', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'inactiveDuration', name: 'Inactive Duration', sortable: false },\r\n { prop: 'deletedDate', name: 'Deactivated On', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'status', name: 'Status' },\r\n \r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.loadDepartments();\r\n this.loadUserGroups();\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(UserName|JobTitle)@=' + this.keyword;\r\n\r\n if (this.reportFilter.createdStart && !isNaN(this.reportFilter.createdStart.getTime()) &&\r\n this.reportFilter.createdEnd && !isNaN(this.reportFilter.createdEnd.getTime())) {\r\n this.filter.filters += ',(UserByCreateDateRange)==' + this.reportFilter.createdStart.toDateString() + '|' + this.reportFilter.createdEnd.toDateString();\r\n } else {\r\n if (this.reportFilter.createdStart && !isNaN(this.reportFilter.createdStart.getTime())) {\r\n this.filter.filters += ',(UserByCreateDateRange)==' + this.reportFilter.createdStart.toDateString();\r\n }\r\n\r\n if (this.reportFilter.createdEnd && !isNaN(this.reportFilter.createdEnd.getTime())) {\r\n this.filter.filters += ',(UserByCreateDateRange)==1901-01-01|' + this.reportFilter.createdEnd.toDateString();\r\n }\r\n }\r\n\r\n //last login\r\n if (this.reportFilter.lastLoginStart && !isNaN(this.reportFilter.lastLoginStart.getTime()) &&\r\n this.reportFilter.lastLoginEnd && !isNaN(this.reportFilter.lastLoginEnd.getTime())) {\r\n this.filter.filters += ',(UserByLastLoginDateRange)==' + this.reportFilter.lastLoginStart.toDateString() + '|' + this.reportFilter.lastLoginEnd.toDateString();\r\n } else {\r\n if (this.reportFilter.lastLoginStart && !isNaN(this.reportFilter.lastLoginStart.getTime())) {\r\n this.filter.filters += ',(UserByLastLoginDateRange)==' + this.reportFilter.lastLoginStart.toDateString();\r\n }\r\n\r\n if (this.reportFilter.lastLoginEnd && !isNaN(this.reportFilter.lastLoginEnd.getTime())) {\r\n this.filter.filters += ',(UserByLastLoginDateRange)==1901-01-01|' + this.reportFilter.lastLoginEnd.toDateString();\r\n }\r\n }\r\n\r\n //department\r\n if (this.reportFilter.departmentId) {\r\n this.filter.filters += ',(DepartmentId)==' + this.reportFilter.departmentId;\r\n }\r\n\r\n //user group\r\n if (this.reportFilter.userGroupId) {\r\n this.filter.filters += ',(UserByUserGroupId)==' + this.reportFilter.userGroupId;\r\n }\r\n\r\n //deleted date\r\n if (this.reportFilter.deletedDate && !isNaN(this.reportFilter.deletedDate.getTime())) {\r\n this.filter.filters += ',(DeletedDate)==' + this.reportFilter.deletedDate.toDateString();\r\n }\r\n\r\n //status\r\n if (typeof this.reportFilter.status != 'undefined') {\r\n this.filter.filters += ',(IsActive)==' + this.reportFilter.status;\r\n }\r\n\r\n this.accountService.getUserReportByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n console.log(this.pagedResult);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let authLogs = results.pagedData;\r\n\r\n authLogs.forEach((authLog, index, authLogs) => {\r\n (authLog).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...authLogs];\r\n this.rows = authLogs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'createdstart') {\r\n this.reportFilter.createdStart = new Date(event.value);\r\n }\r\n\r\n if (type == 'createdend') {\r\n this.reportFilter.createdEnd = new Date(event.value);\r\n }\r\n\r\n if (type == 'loginstart') {\r\n this.reportFilter.lastLoginStart = new Date(event.value);\r\n }\r\n\r\n if (type == 'loginend') {\r\n this.reportFilter.lastLoginEnd = new Date(event.value);\r\n }\r\n\r\n if (type == 'deleteddatepicker') {\r\n this.reportFilter.deletedDate = new Date(event.value);\r\n }\r\n\r\n //this.loadData();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.reportFilter = new UserReportFilter();\r\n this.reportFilter.createdStart = null;\r\n this.reportFilter.createdEnd = null;\r\n this.reportFilter.lastLoginStart = null;\r\n this.reportFilter.lastLoginEnd = null;\r\n this.reportFilter.deletedDate = null;\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n downloadResults() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_UserReport.xlsx';\r\n\r\n this.accountService.downloadUserReport(this.filter).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n get canManageUserAccountReports() {\r\n return true; //this.accountService.userHasPermission(Permission.viewAuthLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3VzZXItcm9sZS91c2VyLXJvbGVzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxrQkFBa0I7QUFDdEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsYUFBYTtBQUNqQjs7QUFFSTtRQUNJLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsZ0JBQWdCO0lBQ3BCOztBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3JlcG9ydHMvdXNlci1yb2xlL3VzZXItcm9sZXMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n
    \\r\\n

    User Group Roles

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{t.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{t.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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{value}}\\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { CommonFilter, Filter, PagedResult, RoleReportFilter } from '../../../models/sieve-filter.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { AuthLog } from 'src/app/models/auth-log.model';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { DateOnlyPipe, DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SearchBoxComponent } from '../../controls/search-box.component';\r\nimport { saveAs } from 'file-saver';\r\nimport * as moment from 'moment';\r\nimport { DepartmentService } from 'src/app/services/department.service';\r\nimport { UserGroupService } from 'src/app/services/userGroup.service';\r\nimport { UserReportFilter, UserRoleReportFilter } from 'src/app/models/user.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\n\r\n\r\n@Component({\r\n selector: 'user-roles-report-management',\r\n templateUrl: './user-roles-management.component.html',\r\n styleUrls: ['./user-roles-management.component.css']\r\n})\r\nexport class UserRolesReportManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns = [];\r\n rows = [];\r\n rowsCache = [];\r\n userRoles = [];\r\n permissions = [];\r\n editingAuthLogName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: RoleReportFilter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n reportFilter = new UserRoleReportFilter();\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('userReportTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private departmentService: DepartmentService, private userGroupService: UserGroupService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n loadUserGroups() {\r\n let filter = new CommonFilter(-1, -1);\r\n filter.filters = '(IsActive)==true,(InstitutionId)==' + this.accountService.currentUser.institutionId;\r\n\r\n this.subscription.add(this.accountService.getRolesAndPermissionListByFilters(filter)\r\n .subscribe(results => {\r\n let pagedResult = results[0];\r\n this.permissions = results[1];\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n this.userRoles = pagedResult.pagedData;\r\n },\r\n error => {\r\n this.alertService.showMessage(\"Load Error\", \"Loading user roles from the server failed!\", MessageSeverity.warn);\r\n this.alertService.logError(error);\r\n }));\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new RoleReportFilter(1, 10);\r\n this.filter.sorts = 'name';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: 'S/N', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'roleName', name: 'Role', width: 150, canAutoResize: false },\r\n { prop: 'permissions', name: 'Functions', sortable: false },\r\n { prop: 'createdDate', name: 'Created Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'lastUpdatedDate', name: 'Last Updated Date', pipe: new DateOnlyPipe('en-SG') } \r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.loadUserGroups();\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(IsActive)==true,(Name)@=' + this.keyword + \",(InstitutionId)==\" + this.accountService.currentUser.institutionId;\r\n\r\n if (this.reportFilter.createdStart && !isNaN(this.reportFilter.createdStart.getTime()) &&\r\n this.reportFilter.createdEnd && !isNaN(this.reportFilter.createdEnd.getTime())) {\r\n this.filter.filters += ',(RoleByCreatedDateRange)==' + this.reportFilter.createdStart.toDateString() + '|' + this.reportFilter.createdEnd.toDateString();\r\n } else {\r\n if (this.reportFilter.createdStart && !isNaN(this.reportFilter.createdStart.getTime())) {\r\n this.filter.filters += ',(RoleByCreatedDateRange)==' + this.reportFilter.createdStart.toDateString();\r\n }\r\n\r\n if (this.reportFilter.createdEnd && !isNaN(this.reportFilter.createdEnd.getTime())) {\r\n this.filter.filters += ',(RoleByCreatedDateRange)==1901-01-01|' + this.reportFilter.createdEnd.toDateString();\r\n }\r\n }\r\n\r\n if (this.reportFilter.lastUpdatedStart && !isNaN(this.reportFilter.lastUpdatedStart.getTime()) &&\r\n this.reportFilter.lastUpdatedEnd && !isNaN(this.reportFilter.lastUpdatedEnd.getTime())) {\r\n this.filter.filters += ',(RoleByLastUpdatedDateRange)==' + this.reportFilter.lastUpdatedStart.toDateString() + '|' + this.reportFilter.lastUpdatedEnd.toDateString();\r\n } else {\r\n if (this.reportFilter.lastUpdatedStart && !isNaN(this.reportFilter.lastUpdatedStart.getTime())) {\r\n this.filter.filters += ',(RoleByLastUpdatedDateRange)==' + this.reportFilter.lastUpdatedStart.toDateString();\r\n }\r\n\r\n if (this.reportFilter.lastUpdatedEnd && !isNaN(this.reportFilter.lastUpdatedEnd.getTime())) {\r\n this.filter.filters += ',(RoleByLastUpdatedDateRange)==1901-01-01|' + this.reportFilter.lastUpdatedEnd.toDateString();\r\n }\r\n }\r\n\r\n //user role\r\n if (this.reportFilter.roleId) {\r\n this.filter.filters += ',(RoleById)==' + this.reportFilter.roleId;\r\n }\r\n\r\n if (!this.reportFilter.permissions) this.reportFilter.permissions = [];\r\n\r\n this.filter.permissions = this.reportFilter.permissions;\r\n this.accountService.getUserRoleReportByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n console.log(this.pagedResult);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let rows = results.pagedData;\r\n\r\n rows.forEach((row, index, rows) => {\r\n (row).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...rows];\r\n this.rows = rows;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'createdstart') {\r\n this.reportFilter.createdStart = new Date(event.value);\r\n }\r\n\r\n if (type == 'createdend') {\r\n this.reportFilter.createdEnd = new Date(event.value);\r\n }\r\n\r\n if (type == 'lastupdatedstart') {\r\n this.reportFilter.lastUpdatedStart = new Date(event.value);\r\n }\r\n\r\n if (type == 'lastupdatedend') {\r\n this.reportFilter.lastUpdatedEnd = new Date(event.value);\r\n }\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.reportFilter = new UserRoleReportFilter();\r\n this.reportFilter.createdStart = null;\r\n this.reportFilter.createdEnd = null;\r\n this.reportFilter.lastUpdatedStart = null;\r\n this.reportFilter.lastUpdatedEnd = null;\r\n this.reportFilter.permissions = [];\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n downloadResults() {\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_RoleReport.xlsx';\r\n\r\n let f = new Filter(-1, -1);\r\n f.filters = this.filter.filters;\r\n f.sorts = this.filter.sorts;\r\n f.page = -1;\r\n this.accountService.downloadUserRoleReport(f).subscribe(\r\n data => {\r\n console.log(data);\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n alert(\"Problem while downloading the file.\");\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n get canManageUserRoleReports() {\r\n return true; //this.accountService.userHasPermission(Permission.viewAuthLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"mat-form-field {\\r\\n margin-right: 12px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXBvcnRzL3ZlaGljbGUtbG9ncy92ZWhpY2xlLWxvZ3MuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVwb3J0cy92ZWhpY2xlLWxvZ3MvdmVoaWNsZS1sb2dzLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJtYXQtZm9ybS1maWVsZCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxufVxyXG4iXX0= */\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { ReservationService } from '../../../services/reservation.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { Reservation, CalendarFilter, VehicleLogFilter } from '../../../models/reservation.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { Facility } from '../../../models/facility.model';\r\n\r\nimport { Location } from '../../../models/location.model';\r\nimport { fadeInOut } from '../../../services/animations';\r\n\r\nimport { DateTimeOnlyPipe } from '../../../pipes/datetime.pipe';\r\nimport { DateOnlyPipe } from '../../../pipes/datetime.pipe';\r\nimport { CalendarEvent } from 'calendar-utils';\r\nimport { ReservationTime } from 'src/app/models/reservationtime.model';\r\nimport { MatDialog, MatDatepickerInputEvent } from '@angular/material';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { take } from 'rxjs/operators';\r\nimport { VMSVehicleLog } from 'src/app/models/uservehicle.model';\r\nimport { Subscription } from 'rxjs';\r\n@Component({\r\n selector: 'reports-vehicle-log-list',\r\n templateUrl: './vehicle-logs.component.html',\r\n styleUrls: ['./vehicle-logs.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ReportsVehicleLogListComponent implements OnInit, AfterViewInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: VMSVehicleLog[] = [];\r\n rowsCache: VMSVehicleLog[] = [];\r\n filter: VehicleLogFilter;\r\n loadingIndicator: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private reservationService: ReservationService, private configurationService: ConfigurationService, public dialog: MatDialog) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.filter = new CalendarFilter();\r\n if (!this.filter.start) {\r\n this.filter.start = new Date();\r\n }\r\n\r\n if (!this.filter.end) {\r\n this.filter.end = new Date();\r\n }\r\n\r\n this.loadingIndicator = false;\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'personName', name: gT('userVehicles.management.Owner') },\r\n { prop: 'cardType', name: gT('userVehicles.management.CardType') },\r\n { prop: 'vehicle', name: gT('userVehicles.management.PlateNumber') },\r\n { prop: 'type', name: 'Type' },\r\n { prop: 'timestamp', name: 'Timestamp', pipe: new DateTimeOnlyPipe('en-SG') },\r\n { prop: 'bookingDescription', name: gT('userVehicles.management.BookingDescription') }\r\n //{ prop: 'entryDate', name: 'Entry Date', pipe: new DateTimeOnlyPipe('en-SG') },\r\n //{ prop: 'exitDate', name: 'Exit Date', pipe: new DateTimeOnlyPipe('en-SG') }\r\n ];\r\n\r\n //this.loadData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n loadData(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.filter.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.filter.end = new Date(event.value);\r\n }\r\n\r\n this.loadingIndicator = true;\r\n this.filter.start = new Date(this.filter.start.setHours(0, 0, 0, 0));\r\n this.filter.end = new Date(this.filter.end.setHours(23, 59, 59, 0));\r\n\r\n this.subscription.add(this.reservationService.getVehicleLogs(this.filter)\r\n .subscribe(results => {\r\n\r\n let logs = results;\r\n\r\n logs.forEach((log, index, logs) => {\r\n (log).index = index + 1;\r\n });\r\n\r\n this.rowsCache = [...logs];\r\n this.rows = logs;\r\n this.loadingIndicator = false;\r\n \r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve logs from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n console.log(this.rowsCache);\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.bookingDescription, r.personName, r.cardType, r.vehicle));\r\n }\r\n\r\n get canManageReservations() {\r\n return this.accountService.userHasPermission(Permission.viewReportsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*.cdk-overlay-container, .cdk-global-overlay-wrapper {\\r\\n z-index: 1051 !important;\\r\\n}*/\\r\\n\\r\\n.cdk-overlay-connected-position-bounding-box {\\r\\n z-index: 1051 !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXNlcnZhdGlvbnMvcGljdHVyZS1lZGl0b3IvcGljdHVyZS1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUlBOztFQUVFOztBQUVGO0VBQ0Usd0JBQXdCO0FBQzFCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9yZXNlcnZhdGlvbnMvcGljdHVyZS1lZGl0b3IvcGljdHVyZS1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlUeXBlRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG4vKi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XHJcbiAgei1pbmRleDogMTA1MSAhaW1wb3J0YW50O1xyXG59Ki9cclxuXHJcbi5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcclxuICB6LWluZGV4OiAxMDUxICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"

    {{data.header}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\\"icon\\\"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Inject, ViewEncapsulation, OnDestroy } from '@angular/core';\r\n\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { Reservation, ReservationPicture } from 'src/app/models/reservation.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { UserCardId } from 'src/app/models/usercardid.model';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Subscription } from 'rxjs';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\n\r\n@Component({\r\n selector: 'picture-editor',\r\n templateUrl: './picture-editor.component.html',\r\n styleUrls: ['./picture-editor.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PictureEditorComponent implements OnDestroy{\r\n private isNewUserCardId = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private pictureEdit: ReservationPicture = new ReservationPicture();\r\n private allPermissions: Permission[] = [];\r\n private allUsers: User[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public isUserInfo = true;\r\n private loadingIndicator: boolean;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private fileService: FileService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.reservationPicture) != typeof (undefined)) {\r\n this.pictureEdit = data.reservationPicture;\r\n if (data.reservationPicture) {\r\n this.editPicture(this.pictureEdit);\r\n } else {\r\n this.newPicture();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n //if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n //}\r\n }\r\n\r\n //loadUsers() {\r\n // this.alertService.startLoadingMessage();\r\n // this.loadingIndicator = true;\r\n\r\n // this.subscription.add(this.accountService.getUsers(null, null, this.accountService.currentUser.institutionId)\r\n // .subscribe(results => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // this.allUsers = results;\r\n // },\r\n // error => {\r\n // this.alertService.stopLoadingMessage();\r\n // this.loadingIndicator = false;\r\n\r\n // this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve users from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n // MessageSeverity.error);\r\n // }));\r\n //}\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n\r\n if (this.isUserInfo) {\r\n this.dialogRef.close(this.pictureEdit);\r\n } else {\r\n this.dialogRef.close(this.pictureEdit);\r\n }\r\n }\r\n\r\n private saveSuccessHelper(cardid: UserCardId) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showMessage(\"Success\", `Picture has been saved!`, MessageSeverity.success);\r\n this.dialogRef.close(this.pictureEdit);\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n }\r\n\r\n\r\n private cancel() {\r\n this.pictureEdit = new ReservationPicture();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n }\r\n\r\n\r\n newPicture() {\r\n this.isNewUserCardId = true;\r\n this.showValidationErrors = true;\r\n this.selectedValues = {};\r\n this.pictureEdit = new ReservationPicture();\r\n return this.pictureEdit;\r\n }\r\n\r\n editPicture(picture: ReservationPicture) {\r\n if (ReservationPicture) {\r\n this.isNewUserCardId = false;\r\n this.showValidationErrors = true;\r\n\r\n this.selectedValues = {};\r\n this.pictureEdit = new ReservationPicture();\r\n Object.assign(this.pictureEdit, picture);\r\n return this.pictureEdit;\r\n }\r\n else {\r\n return this.newPicture();\r\n }\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n console.log(\"finish uploading... \", event)\r\n this.fileUploadResponse = event;\r\n this.pictureEdit.pictureUrl = this.fileUploadResponse ? this.fileUploadResponse.dbPath : null;\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.no-padding-top{\\r\\n padding-top: 0px !important;\\r\\n}\\r\\n\\r\\n.font-unbold {\\r\\n font-weight: 100 !important;\\r\\n}\\r\\n\\r\\n.padding-right-10 {\\r\\n padding-right: 10px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXNlcnZhdGlvbnMvcmVzZXJ2YXRpb24tZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7SUFDSSxhQUFhO0lBQ2Isd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBR0E7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLDhCQUE4QjtBQUNoQyIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVzZXJ2YXRpb25zL3Jlc2VydmF0aW9uLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uZmFjaWxpdHlFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubm8tcGFkZGluZy10b3B7XHJcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9udC11bmJvbGQge1xyXG4gIGZvbnQtd2VpZ2h0OiAxMDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnBhZGRpbmctcmlnaHQtMTAge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHggIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{'reservations.editor.ReservationShortDescriptionRequired' | 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\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n

    \\r\\n \\r\\n {{reservationEdit.locationName}}\\r\\n \\r\\n

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{'reservations.editor.LocationRequired' | 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 Start Time is required\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n End Time is required\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Input } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { ReservationService } from '../../services/reservation.service';\r\nimport { Reservation } from '../../models/reservation.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { Facility } from '../../models/facility.model';\r\nimport { Location } from '../../models/location.model';\r\nimport { ReservationTime } from '../../models/reservationtime.model';\r\n\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\n\r\n@Component({\r\n selector: 'reservation-editor',\r\n templateUrl: './reservation-editor.component.html',\r\n styleUrls: ['./reservation-editor.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ReservationEditorComponent {\r\n\r\n private isEditMode = false;\r\n private isNewReservation = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingReservationName: string;\r\n private reservationEdit: Reservation = new Reservation();\r\n private allFacilities: Facility[] = [];\r\n private allLocations: Location[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n private allStartTimes: ReservationTime[] = [];\r\n private allEndTimes: ReservationTime[] = [];\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public disabledTime = false;\r\n\r\n selectedStartTime: string;\r\n selectedEndTime: string;\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('facilities')\r\n private facilities;\r\n\r\n @ViewChild('locationsSelector')\r\n private locationsSelector;\r\n\r\n //@ViewChild('allStartTimesSelector')\r\n //private allStartTimesSelector;\r\n\r\n //@ViewChild('allEndTimesSelector')\r\n //private allEndTimesSelector;\r\n\r\n @ViewChild('startTime')\r\n private startTime;\r\n\r\n @ViewChild('endTime')\r\n private endTime;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n constructor(private alertService: AlertService, private accountService: AccountService, private reservationService: ReservationService, private authService: AuthService) {\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n\r\n if (!this.reservationEdit.isAllDay) {\r\n //if (this.reservationEdit.startTime == null) {\r\n // this.startTime.valid = false;\r\n //}\r\n\r\n //if (this.reservationEdit.endTime == null) {\r\n // this.endTime.valid = false;\r\n //}\r\n\r\n //if (!this.startTime.valid || !this.endTime.valid) return;\r\n }\r\n\r\n if (!this.selectedStartTime || !this.selectedEndTime) {\r\n alert(\"Please select start and end time\");\r\n return;\r\n }\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n //this.reservationEdit.startTime = this.getReservationTimeBy(this.reservationEdit.startTime.id);\r\n //this.reservationEdit.endTime = this.getReservationTimeBy(this.reservationEdit.endTime.id);\r\n //var startDateTime = new Date(this.reservationEdit.startDate);\r\n\r\n //startDateTime.setHours(this.reservationEdit.startTime.hour);\r\n //startDateTime.setMinutes(this.reservationEdit.startTime.minutes);\r\n //this.reservationEdit.startDateTime = startDateTime;\r\n\r\n //var endDateTime = new Date(this.reservationEdit.endDate);\r\n\r\n //endDateTime.setHours(this.reservationEdit.endTime.hour);\r\n //endDateTime.setMinutes(this.reservationEdit.endTime.minutes);\r\n //this.reservationEdit.endDateTime = endDateTime;\r\n\r\n\r\n this.reservationEdit.repeatEndDateTime = new Date(this.reservationEdit.repeatEndDate);\r\n\r\n var startDateTime = new Date(this.reservationEdit.startDate ? this.reservationEdit.startDate : this.reservationEdit.startDateTime);\r\n\r\n //startDateTime.setHours(this.reservationEdit.startTime.hour);\r\n //startDateTime.setMinutes(this.reservationEdit.startTime.minute);\r\n var startTime = this.selectedStartTime.split(':');\r\n var endTime = this.selectedEndTime.split(':');\r\n this.reservationEdit.startDateTime = new Date(startDateTime);\r\n this.reservationEdit.startDateTime.setHours(parseInt(startTime[0]), parseInt(startTime[1]));\r\n\r\n this.reservationEdit.endDateTime = new Date(this.reservationEdit.endDate || startDateTime);\r\n\r\n this.reservationEdit.endDateTime.setHours(parseInt(endTime[0]), parseInt(endTime[1]));\r\n\r\n if (this.isNewReservation) {\r\n this.reservationService.newReservation(this.reservationEdit).subscribe(reservation => this.saveSuccessHelper(reservation), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.reservationService.updateReservation(this.reservationEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(reservation?: Reservation) {\r\n if (reservation) {\r\n Object.assign(this.reservationEdit, reservation);\r\n }\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewReservation)\r\n this.alertService.showMessage(\"Success\", `Reservation \\\"${this.reservationEdit.shortDescription}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to reservation \\\"${this.reservationEdit.shortDescription}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.reservationEdit = new Reservation();\r\n //this.resetForm();\r\n\r\n\r\n //if (!this.isNewReservation && this.accountService.currentUser.reservations.some(r => r == this.editingReservationName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.reservationEdit = new Reservation();\r\n\r\n this.showValidationErrors = false;\r\n //this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n }\r\n\r\n private getAllTimes(): ReservationTime[] {\r\n let times: ReservationTime[] =\r\n [new ReservationTime(1, \"00:00\", \"00:00\", 0, 0),\r\n new ReservationTime(2, \"00:30\", \"00:29\", 0, 29),\r\n new ReservationTime(3, \"01:00\", \"01:00\", 1, 59),\r\n new ReservationTime(4, \"01:30\", \"02:29\", 1, 29),\r\n new ReservationTime(5, \"02:00\", \"02:00\", 2, 59),\r\n new ReservationTime(6, \"02:30\", \"03:29\", 2, 29),\r\n new ReservationTime(7, \"03:00\", \"03:00\", 3, 59),\r\n new ReservationTime(8, \"03:30\", \"04:29\", 3, 29),\r\n new ReservationTime(9, \"04:00\", \"04:00\", 4, 59),\r\n new ReservationTime(10, \"04:30\", \"05:29\", 4, 29),\r\n new ReservationTime(11, \"05:00\", \"05:00\", 5, 59),\r\n new ReservationTime(12, \"05:30\", \"06:29\", 5, 29),\r\n new ReservationTime(13, \"06:00\", \"06:00\", 6, 59),\r\n new ReservationTime(14, \"06:30\", \"07:29\", 6, 29),\r\n new ReservationTime(15, \"07:00\", \"07:00\", 7, 59),\r\n new ReservationTime(16, \"07:30\", \"08:29\", 7, 29),\r\n new ReservationTime(17, \"08:00\", \"08:00\", 8, 59),\r\n new ReservationTime(18, \"08:30\", \"09:29\", 8, 29),\r\n new ReservationTime(19, \"09:00\", \"09:00\", 9, 59),\r\n new ReservationTime(20, \"09:30\", \"10:29\", 9, 29),\r\n new ReservationTime(21, \"10:00\", \"10:00\", 10, 59),\r\n new ReservationTime(22, \"10:30\", \"11:29\", 11, 29),\r\n new ReservationTime(23, \"11:00\", \"11:00\", 10, 59),\r\n new ReservationTime(24, \"11:30\", \"12:29\", 11, 29),\r\n new ReservationTime(25, \"12:00\", \"12:00\", 12, 59),\r\n new ReservationTime(26, \"12:30\", \"13:29\", 12, 29),\r\n new ReservationTime(27, \"13:00\", \"13:00\", 13, 59),\r\n new ReservationTime(28, \"13:30\", \"14:29\", 13, 29),\r\n new ReservationTime(29, \"14:00\", \"14:00\", 14, 59),\r\n new ReservationTime(29, \"14:30\", \"15:29\", 14, 29),\r\n new ReservationTime(30, \"15:00\", \"15:00\", 15, 59),\r\n new ReservationTime(32, \"15:30\", \"16:29\", 15, 29),\r\n new ReservationTime(33, \"16:00\", \"16:00\", 16, 59),\r\n new ReservationTime(34, \"16:30\", \"17:29\", 16, 29),\r\n new ReservationTime(35, \"17:00\", \"17:00\", 17, 59),\r\n new ReservationTime(36, \"17:30\", \"18:29\", 17, 29),\r\n new ReservationTime(37, \"18:00\", \"18:00\", 18, 59),\r\n new ReservationTime(38, \"18:30\", \"19:29\", 18, 29),\r\n new ReservationTime(39, \"19:00\", \"19:00\", 19, 59),\r\n new ReservationTime(40, \"19:30\", \"20:29\", 19, 29),\r\n new ReservationTime(41, \"20:00\", \"20:00\", 20, 59),\r\n new ReservationTime(42, \"20:30\", \"21:29\", 20, 29),\r\n new ReservationTime(43, \"21:00\", \"21:00\", 21, 59),\r\n new ReservationTime(44, \"21:30\", \"22:29\", 21, 29),\r\n new ReservationTime(45, \"22:00\", \"22:00\", 22, 59),\r\n new ReservationTime(46, \"22:30\", \"23:29\", 22, 29),\r\n new ReservationTime(47, \"23:00\", \"23:00\", 22, 59),\r\n new ReservationTime(48, \"23:30\", \"23:29\", 23, 29),\r\n new ReservationTime(49, \"24:00\", \"23:59\", 23, 59)];\r\n return times;\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n public toggleTime() {\r\n this.disabledTime = !this.reservationEdit.isAllDay;\r\n //setTimeout(() => this.allStartTimesSelector.refresh());\r\n //setTimeout(() => this.allEndTimesSelector.refresh());\r\n }\r\n public changeEndTime(id) {\r\n if (this.reservationEdit.startTime != null && this.reservationEdit.startTime.id != null && this.reservationEdit.startTime.id.toString() != \"\") {\r\n var allTimes = this.getAllTimes();\r\n var startTime = this.reservationEdit.startTime;\r\n this.reservationEdit.startTime = this.getReservationTimeBy(this.reservationEdit.startTime.id);\r\n var $this = this;\r\n this.allEndTimes = allTimes.filter(function (p, index, array) {\r\n if (new Date(new Date(p.value).setSeconds(0)) > new Date(startTime.value)) {\r\n p.description = p.description + \" (\" + $this.getHourDifferenceDescription(p) + \" hours)\";\r\n return p;\r\n }\r\n });\r\n\r\n //setTimeout(() => this.allEndTimesSelector.refresh());\r\n }\r\n }\r\n\r\n public getHourDifferenceDescription(endTime: ReservationTime): string {\r\n var diff = new Date(new Date(endTime.value).setSeconds(0)).valueOf() - new Date(new Date(this.reservationEdit.startTime.value).setSeconds(0)).valueOf();\r\n var diffHours = diff / (1000.0 * 3600.0);\r\n\r\n return diffHours.toFixed(1).toString();\r\n }\r\n\r\n private getReservationTimeBy(id?: any, hour?: number, minute?: number): ReservationTime {\r\n var allTimes = this.getAllTimes();\r\n var time: ReservationTime;\r\n if (id != null) {\r\n time = allTimes.filter(f => f.id == id)[0];\r\n } else {\r\n var t = allTimes.filter(f => f.hour == hour && f.minutes == minute);\r\n time = t != null && t.length > 0 ? t[0] : allTimes[0];\r\n }\r\n return time;\r\n }\r\n\r\n newReservation(allLocations: Location[]) {\r\n this.isEditMode = true;\r\n this.isNewReservation = true;\r\n this.showValidationErrors = true;\r\n this.disabledTime = false;\r\n this.editingReservationName = null;\r\n this.allLocations = allLocations;\r\n this.selectedValues = {};\r\n this.reservationEdit = new Reservation();\r\n this.reservationEdit.repeatType = \"None\";\r\n this.reservationEdit.startDate = new Date();\r\n this.reservationEdit.endDate = new Date();\r\n this.reservationEdit.institutionId = this.authService.currentUser.institutionId;\r\n\r\n this.allStartTimes = this.getAllTimes();\r\n this.reservationEdit.startTime = this.allStartTimes[0];\r\n this.reservationEdit.endTime = this.allStartTimes[47];\r\n //this.allEndTimes = this.getAllTimes();\r\n //setTimeout(() => this.allStartTimesSelector.refresh());\r\n //setTimeout(() => this.allEndTimesSelector.refresh());\r\n return this.reservationEdit;\r\n }\r\n\r\n editReservation(reservation: Reservation, allLocations: Location[]) {\r\n this.isEditMode = true;\r\n if (reservation) {\r\n this.isNewReservation = false;\r\n this.showValidationErrors = true;\r\n var allT = this.getAllTimes();\r\n this.allStartTimes = allT;\r\n this.allEndTimes = allT;\r\n\r\n \r\n //setTimeout(() => {\r\n // try { this.allStartTimesSelector.refresh() } catch (ex) { }\r\n //});\r\n\r\n this.editingReservationName = reservation.shortDescription;\r\n this.selectedValues = {};\r\n this.setReservationTypes(reservation, allLocations);\r\n this.reservationEdit = new Reservation();\r\n Object.assign(this.reservationEdit, reservation);\r\n this.disabledTime = this.reservationEdit.isAllDay;\r\n this.reservationEdit.repeatEndDate = new Date(reservation.repeatEndDateTime);\r\n var startTime = new Date(reservation.startDateTime);\r\n var endTime = new Date(reservation.endDateTime);\r\n\r\n this.reservationEdit.startDate = new Date(startTime);\r\n this.reservationEdit.endDate = new Date(endTime);\r\n\r\n //this.reservationEdit.startTime = this.getReservationTimeBy(null, startTime.getHours(), startTime.getMinutes());\r\n //this.reservationEdit.endTime = this.getReservationTimeBy(null, endTime.getHours(), endTime.getMinutes());\r\n\r\n this.selectedStartTime = Utilities.printTimeOnly(this.reservationEdit.startDate ? this.reservationEdit.startDate : this.reservationEdit.startDateTime, true);\r\n this.selectedEndTime = Utilities.printTimeOnly(this.reservationEdit.endDate ? this.reservationEdit.endDate : this.reservationEdit.endDateTime, true);\r\n\r\n return this.reservationEdit;\r\n }\r\n else {\r\n return this.newReservation(allLocations);\r\n }\r\n }\r\n\r\n private setReservationTypes(reservation: Reservation, allLocations?: Location[]) {\r\n\r\n this.allLocations = allLocations ? [...allLocations] : [];\r\n\r\n if (allLocations == null || this.allLocations.length != allLocations.length)\r\n setTimeout(() => this.locationsSelector.refresh());\r\n }\r\n\r\n get canManageReservations() {\r\n return this.accountService.userHasPermission(Permission.manageReservationsPermission)\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.no-padding-top{\\r\\n padding-top: 0px !important;\\r\\n}\\r\\n\\r\\n.font-unbold {\\r\\n font-weight: 100 !important;\\r\\n}\\r\\n\\r\\n.padding-right-10 {\\r\\n padding-right: 10px !important;\\r\\n}\\r\\n\\r\\n.modal {\\r\\n z-index: 1000 !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXNlcnZhdGlvbnMvcmVzZXJ2YXRpb24tcGljdHVyZS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUdBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSw4QkFBOEI7QUFDaEM7O0FBRUE7RUFDRSx3QkFBd0I7QUFDMUIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3Jlc2VydmF0aW9ucy9yZXNlcnZhdGlvbi1waWN0dXJlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5uby1wYWRkaW5nLXRvcHtcclxuICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mb250LXVuYm9sZCB7XHJcbiAgZm9udC13ZWlnaHQ6IDEwMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ucGFkZGluZy1yaWdodC0xMCB7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubW9kYWwge1xyXG4gIHotaW5kZXg6IDEwMDAgIWltcG9ydGFudDtcclxufVxyXG4iXX0= */\"","module.exports = \"
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n

    Picture List

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Picture
    \\r\\n \\\"icon\\\"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
    • \\r\\n\\r\\n
    • \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n
    • \\r\\n\\r\\n
    • \\r\\n
      \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n
    • \\r\\n\\r\\n
    • \\r\\n
      \\r\\n \\r\\n
      \\r\\n\\r\\n
    • \\r\\n\\r\\n
    • \\r\\n
      \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
      \\r\\n\\r\\n
    • \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{image.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
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Input, Inject } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\nimport { Image } from '../../models/image.model';\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { ReservationService } from '../../services/reservation.service';\r\nimport { Reservation, ReservationPicture } from '../../models/reservation.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { Facility } from '../../models/facility.model';\r\nimport { Location } from '../../models/location.model';\r\nimport { ReservationTime } from '../../models/reservationtime.model';\r\nimport { PictureEditorComponent } from './picture-editor/picture-editor.component';\r\n\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { FileService } from 'src/app/services/file.service';\r\n\r\nimport { ImageFileService } from 'src/app/services/image-file.service';\r\n\r\nimport { MediaService } from '../../services/media.service';\r\nimport { Media } from '../../models/media.model';\r\nimport { MediaExtensionService } from '../../services/media-extension.service';\r\nimport { MediaExtension } from '../../models/media-extension.model';\r\nimport { ImageUploadsComponent } from '../imageUpload/image-upload.component';\r\n\r\n@Component({\r\n selector: 'reservation-picture',\r\n templateUrl: './reservation-picture.component.html',\r\n styleUrls: ['./reservation-picture.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ReservationPictureComponent {\r\n\r\n private isEditMode = false;\r\n private isNewReservation = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingReservationName: string;\r\n private reservationEdit: Reservation = new Reservation();\r\n private allFacilities: Facility[] = [];\r\n private allLocations: Location[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n private allStartTimes: ReservationTime[] = [];\r\n private allEndTimes: ReservationTime[] = [];\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n public disabledTime = false;\r\n\r\n selectedStartTime: string;\r\n selectedEndTime: string;\r\n\r\n imagePage: Image[] = [];\r\n imageAll: Image[] = [];\r\n\r\n search: string;\r\n mediaGroup: string = '';\r\n sort: string = '';\r\n fileType: string = '';\r\n ext: string = '';\r\n asc: boolean;\r\n\r\n page = 0;\r\n size = 9;\r\n length: number;\r\n\r\n allMedias: Media[];\r\n allMediaExtensions: MediaExtension[];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('facilities')\r\n private facilities;\r\n\r\n @ViewChild('locationsSelector')\r\n private locationsSelector;\r\n\r\n //@ViewChild('allStartTimesSelector')\r\n //private allStartTimesSelector;\r\n\r\n //@ViewChild('allEndTimesSelector')\r\n //private allEndTimesSelector;\r\n\r\n @ViewChild('startTime')\r\n private startTime;\r\n\r\n @ViewChild('endTime')\r\n private endTime;\r\n\r\n @Input()\r\n isViewOnly: boolean;\r\n\r\n constructor(private imageService: ImageFileService, private alertService: AlertService, private accountService: AccountService, private reservationService: ReservationService,\r\n public dialogRef: MatDialogRef, public dialog: MatDialog, private fileService: FileService,\r\n @Inject(MAT_DIALOG_DATA) public data: any, private mediaService: MediaService, private mediaExtensionService: MediaExtensionService) {\r\n\r\n this.loadImage();\r\n\r\n this.mediaService.getMedias()\r\n .subscribe(results => {\r\n this.allMedias = results;\r\n },\r\n error => {\r\n });\r\n\r\n this.mediaExtensionService.getMediaExtensionByInstitutionId(this.accountService.currentUser.institutionId)\r\n .subscribe(results => {\r\n this.allMediaExtensions = results[0];\r\n },\r\n error => {\r\n\r\n })\r\n }\r\n\r\n loadImage() {\r\n this.imageService.getImages(-1, -1, this.accountService.currentUser.institutionId, '', this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n let result_data = results;\r\n\r\n result_data.forEach((image, index, result_data) => {\r\n (image).index = index + 1;\r\n });\r\n\r\n this.imageAll = result_data;\r\n\r\n this.refresh();\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve images from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n refresh() {\r\n this.page = 0;\r\n this.getData();\r\n }\r\n\r\n newImage() {\r\n //this.editingDepartmentName = null;\r\n //this.sourceDepartment = null;\r\n //this.editedDepartment = this.departmentEditor.newDepartment();\r\n ////this.editorModal.show();\r\n //this.header = 'New Department';\r\n this.openDialog({});\r\n }\r\n\r\n openDialog(data): void {\r\n const dialogRef = this.dialog.open(ImageUploadsComponent, {\r\n data: data,\r\n width: '80vw',\r\n height: '90vh',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadImage();\r\n });\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n\r\n if (!this.reservationEdit.isAllDay) {\r\n //if (this.reservationEdit.startTime == null) {\r\n // this.startTime.valid = false;\r\n //}\r\n\r\n //if (this.reservationEdit.endTime == null) {\r\n // this.endTime.valid = false;\r\n //}\r\n\r\n //if (!this.startTime.valid || !this.endTime.valid) return;\r\n }\r\n\r\n if (!this.selectedStartTime || !this.selectedEndTime) {\r\n alert(\"Please select start and end time\");\r\n return;\r\n }\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n //this.reservationEdit.startTime = this.getReservationTimeBy(this.reservationEdit.startTime.id);\r\n //this.reservationEdit.endTime = this.getReservationTimeBy(this.reservationEdit.endTime.id);\r\n //var startDateTime = new Date(this.reservationEdit.startDate);\r\n\r\n //startDateTime.setHours(this.reservationEdit.startTime.hour);\r\n //startDateTime.setMinutes(this.reservationEdit.startTime.minutes);\r\n //this.reservationEdit.startDateTime = startDateTime;\r\n\r\n //var endDateTime = new Date(this.reservationEdit.endDate);\r\n\r\n //endDateTime.setHours(this.reservationEdit.endTime.hour);\r\n //endDateTime.setMinutes(this.reservationEdit.endTime.minutes);\r\n //this.reservationEdit.endDateTime = endDateTime;\r\n\r\n\r\n //this.reservationEdit.repeatEndDateTime = new Date(this.reservationEdit.repeatEndDate);\r\n\r\n //var startDateTime = new Date(this.reservationEdit.startDate ? this.reservationEdit.startDate : this.reservationEdit.startDateTime);\r\n\r\n //startDateTime.setHours(this.reservationEdit.startTime.hour);\r\n //startDateTime.setMinutes(this.reservationEdit.startTime.minute);\r\n //var startTime = this.selectedStartTime.split(':');\r\n //var endTime = this.selectedEndTime.split(':');\r\n //this.reservationEdit.startDateTime = new Date(startDateTime);\r\n //this.reservationEdit.startDateTime.setHours(parseInt(startTime[0]), parseInt(startTime[1]));\r\n\r\n\r\n this.reservationEdit.startDateTime = new Date(this.reservationEdit.startDateTime);\r\n this.reservationEdit.endDateTime = new Date(this.reservationEdit.endDateTime);\r\n\r\n //this.reservationEdit.endDateTime.setHours(parseInt(endTime[0]), parseInt(endTime[1]));\r\n\r\n if (this.isNewReservation) {\r\n this.reservationService.newReservation(this.reservationEdit).subscribe(reservation => this.saveSuccessHelper(reservation), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.reservationService.updateReservation(this.reservationEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(reservation?: Reservation) {\r\n if (reservation) {\r\n Object.assign(this.reservationEdit, reservation);\r\n }\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewReservation)\r\n this.alertService.showMessage(\"Success\", `Reservation \\\"${this.reservationEdit.shortDescription}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to reservation \\\"${this.reservationEdit.shortDescription}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.reservationEdit = new Reservation();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewReservation && this.accountService.currentUser.reservations.some(r => r == this.editingReservationName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n }\r\n\r\n\r\n private refreshLoggedInUser() {\r\n this.accountService.refreshLoggedInUser()\r\n .subscribe(user => { },\r\n error => {\r\n this.alertService.resetStickyMessage();\r\n this.alertService.showStickyMessage(\"Refresh failed\", \"An error occured while refreshing logged in user information from the server\", MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.reservationEdit = new Reservation();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n }\r\n\r\n private getAllTimes(): ReservationTime[] {\r\n let times: ReservationTime[] =\r\n [new ReservationTime(1, \"00:00\", \"00:00\", 0, 0),\r\n new ReservationTime(2, \"00:30\", \"00:29\", 0, 29),\r\n new ReservationTime(3, \"01:00\", \"01:00\", 1, 59),\r\n new ReservationTime(4, \"01:30\", \"02:29\", 1, 29),\r\n new ReservationTime(5, \"02:00\", \"02:00\", 2, 59),\r\n new ReservationTime(6, \"02:30\", \"03:29\", 2, 29),\r\n new ReservationTime(7, \"03:00\", \"03:00\", 3, 59),\r\n new ReservationTime(8, \"03:30\", \"04:29\", 3, 29),\r\n new ReservationTime(9, \"04:00\", \"04:00\", 4, 59),\r\n new ReservationTime(10, \"04:30\", \"05:29\", 4, 29),\r\n new ReservationTime(11, \"05:00\", \"05:00\", 5, 59),\r\n new ReservationTime(12, \"05:30\", \"06:29\", 5, 29),\r\n new ReservationTime(13, \"06:00\", \"06:00\", 6, 59),\r\n new ReservationTime(14, \"06:30\", \"07:29\", 6, 29),\r\n new ReservationTime(15, \"07:00\", \"07:00\", 7, 59),\r\n new ReservationTime(16, \"07:30\", \"08:29\", 7, 29),\r\n new ReservationTime(17, \"08:00\", \"08:00\", 8, 59),\r\n new ReservationTime(18, \"08:30\", \"09:29\", 8, 29),\r\n new ReservationTime(19, \"09:00\", \"09:00\", 9, 59),\r\n new ReservationTime(20, \"09:30\", \"10:29\", 9, 29),\r\n new ReservationTime(21, \"10:00\", \"10:00\", 10, 59),\r\n new ReservationTime(22, \"10:30\", \"11:29\", 11, 29),\r\n new ReservationTime(23, \"11:00\", \"11:00\", 10, 59),\r\n new ReservationTime(24, \"11:30\", \"12:29\", 11, 29),\r\n new ReservationTime(25, \"12:00\", \"12:00\", 12, 59),\r\n new ReservationTime(26, \"12:30\", \"13:29\", 12, 29),\r\n new ReservationTime(27, \"13:00\", \"13:00\", 13, 59),\r\n new ReservationTime(28, \"13:30\", \"14:29\", 13, 29),\r\n new ReservationTime(29, \"14:00\", \"14:00\", 14, 59),\r\n new ReservationTime(29, \"14:30\", \"15:29\", 14, 29),\r\n new ReservationTime(30, \"15:00\", \"15:00\", 15, 59),\r\n new ReservationTime(32, \"15:30\", \"16:29\", 15, 29),\r\n new ReservationTime(33, \"16:00\", \"16:00\", 16, 59),\r\n new ReservationTime(34, \"16:30\", \"17:29\", 16, 29),\r\n new ReservationTime(35, \"17:00\", \"17:00\", 17, 59),\r\n new ReservationTime(36, \"17:30\", \"18:29\", 17, 29),\r\n new ReservationTime(37, \"18:00\", \"18:00\", 18, 59),\r\n new ReservationTime(38, \"18:30\", \"19:29\", 18, 29),\r\n new ReservationTime(39, \"19:00\", \"19:00\", 19, 59),\r\n new ReservationTime(40, \"19:30\", \"20:29\", 19, 29),\r\n new ReservationTime(41, \"20:00\", \"20:00\", 20, 59),\r\n new ReservationTime(42, \"20:30\", \"21:29\", 20, 29),\r\n new ReservationTime(43, \"21:00\", \"21:00\", 21, 59),\r\n new ReservationTime(44, \"21:30\", \"22:29\", 21, 29),\r\n new ReservationTime(45, \"22:00\", \"22:00\", 22, 59),\r\n new ReservationTime(46, \"22:30\", \"23:29\", 22, 29),\r\n new ReservationTime(47, \"23:00\", \"23:00\", 22, 59),\r\n new ReservationTime(48, \"23:30\", \"23:29\", 23, 29),\r\n new ReservationTime(49, \"24:00\", \"23:59\", 23, 59)];\r\n return times;\r\n }\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n //public toggleTime() {\r\n // this.disabledTime = !this.reservationEdit.isAllDay;\r\n // setTimeout(() => this.allStartTimesSelector.refresh());\r\n // setTimeout(() => this.allEndTimesSelector.refresh());\r\n //}\r\n //public changeEndTime(id) {\r\n // if (this.reservationEdit.startTime != null && this.reservationEdit.startTime.id != null && this.reservationEdit.startTime.id.toString() != \"\") {\r\n // var allTimes = this.getAllTimes();\r\n // var startTime = this.reservationEdit.startTime;\r\n // this.reservationEdit.startTime = this.getReservationTimeBy(this.reservationEdit.startTime.id);\r\n // var $this = this;\r\n // this.allEndTimes = allTimes.filter(function (p, index, array) {\r\n // if (new Date(new Date(p.value).setSeconds(0)) > new Date(startTime.value)) {\r\n // p.description = p.description + \" (\" + $this.getHourDifferenceDescription(p) + \" hours)\";\r\n // return p;\r\n // }\r\n // });\r\n\r\n // setTimeout(() => this.allEndTimesSelector.refresh());\r\n // }\r\n //}\r\n\r\n public getHourDifferenceDescription(endTime: ReservationTime): string {\r\n var diff = new Date(new Date(endTime.value).setSeconds(0)).valueOf() - new Date(new Date(this.reservationEdit.startTime.value).setSeconds(0)).valueOf();\r\n var diffHours = diff / (1000.0 * 3600.0);\r\n\r\n return diffHours.toFixed(1).toString();\r\n }\r\n\r\n private getReservationTimeBy(id?: any, hour?: number, minute?: number): ReservationTime {\r\n var allTimes = this.getAllTimes();\r\n var time: ReservationTime;\r\n if (id != null) {\r\n time = allTimes.filter(f => f.id == id)[0];\r\n } else {\r\n var t = allTimes.filter(f => f.hour == hour && f.minutes == minute);\r\n time = t != null && t.length > 0 ? t[0] : allTimes[0];\r\n }\r\n return time;\r\n }\r\n\r\n newReservation(allLocations: Location[]) {\r\n this.isEditMode = true;\r\n this.isNewReservation = true;\r\n this.showValidationErrors = true;\r\n this.disabledTime = false;\r\n this.editingReservationName = null;\r\n this.allLocations = allLocations;\r\n this.selectedValues = {};\r\n this.reservationEdit = new Reservation();\r\n this.reservationEdit.repeatType = \"None\";\r\n this.reservationEdit.startDate = new Date();\r\n this.reservationEdit.endDate = new Date();\r\n\r\n this.allStartTimes = this.getAllTimes();\r\n this.reservationEdit.startTime = this.allStartTimes[0];\r\n this.reservationEdit.endTime = this.allStartTimes[47];\r\n //this.allEndTimes = this.getAllTimes();\r\n //setTimeout(() => this.allStartTimesSelector.refresh());\r\n //setTimeout(() => this.allEndTimesSelector.refresh());\r\n return this.reservationEdit;\r\n }\r\n\r\n editReservation(reservation: Reservation, allLocations: Location[]) {\r\n this.isEditMode = true;\r\n if (reservation) {\r\n this.isNewReservation = false;\r\n this.showValidationErrors = true;\r\n var allT = this.getAllTimes();\r\n this.allStartTimes = allT;\r\n this.allEndTimes = allT;\r\n //setTimeout(() => this.allStartTimesSelector.refresh());\r\n this.editingReservationName = reservation.shortDescription;\r\n this.selectedValues = {};\r\n this.setReservationTypes(reservation, allLocations);\r\n this.reservationEdit = new Reservation();\r\n Object.assign(this.reservationEdit, reservation);\r\n this.disabledTime = this.reservationEdit.isAllDay;\r\n this.reservationEdit.repeatEndDate = new Date(reservation.repeatEndDateTime);\r\n var startTime = new Date(reservation.startDateTime);\r\n var endTime = new Date(reservation.endDateTime);\r\n\r\n this.reservationEdit.startDate = new Date(startTime);\r\n this.reservationEdit.endDate = new Date(endTime);\r\n\r\n //this.reservationEdit.startTime = this.getReservationTimeBy(null, startTime.getHours(), startTime.getMinutes());\r\n //this.reservationEdit.endTime = this.getReservationTimeBy(null, endTime.getHours(), endTime.getMinutes());\r\n\r\n this.selectedStartTime = Utilities.printTimeOnly(this.reservationEdit.startDate ? this.reservationEdit.startDate : this.reservationEdit.startDateTime, true);\r\n this.selectedEndTime = Utilities.printTimeOnly(this.reservationEdit.endDate ? this.reservationEdit.endDate : this.reservationEdit.endDateTime, true);\r\n\r\n return this.reservationEdit;\r\n }\r\n else {\r\n return this.newReservation(allLocations);\r\n }\r\n }\r\n\r\n private setReservationTypes(reservation: Reservation, allLocations?: Location[]) {\r\n\r\n this.allLocations = allLocations ? [...allLocations] : [];\r\n\r\n if (allLocations == null || this.allLocations.length != allLocations.length)\r\n setTimeout(() => this.locationsSelector.refresh());\r\n }\r\n\r\n addPicture() {\r\n var dialog = this.dialog.open(PictureEditorComponent, {\r\n data: { header: \"New Picture\",isUserInfo: true },\r\n width: '600px',\r\n disableClose: true\r\n });\r\n\r\n dialog.afterClosed().subscribe(result => {\r\n console.log(\"resulting data: \", result)\r\n if (result && result.pictureUrl) {\r\n if (typeof (this.reservationEdit) == typeof (undefined)) {\r\n this.reservationEdit = new Reservation();\r\n }\r\n\r\n if (typeof (this.reservationEdit.reservationPictures) == typeof (undefined)) {\r\n this.reservationEdit.reservationPictures = [];\r\n }\r\n\r\n result.reservationId = this.reservationEdit.id;\r\n this.reservationEdit.reservationPictures.push(result);\r\n }\r\n });\r\n }\r\n\r\n deletePicture(row: ReservationPicture) {\r\n this.alertService.showDialog('Are you sure you want to delete this picture ?', DialogType.confirm, () => this.deletePictureHelper(row));\r\n }\r\n\r\n deletePictureHelper(row: ReservationPicture) {\r\n\r\n this.reservationEdit.reservationPictures = this.reservationEdit.reservationPictures.filter(item => item !== row);\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageReservations() {\r\n return this.accountService.userHasPermission(Permission.manageReservationsPermission)\r\n }\r\n\r\n getData(obj?) {\r\n if (obj && !isNaN(obj.pageIndex) && !isNaN(obj.pageSize)) {\r\n this.page = obj.pageIndex;\r\n this.size = obj.pageSize;\r\n }\r\n\r\n let startingIndex = this.page * this.size;\r\n let endingIndex = startingIndex + this.size;\r\n\r\n this.imagePage = this.imageAll.slice(0);;\r\n\r\n if (this.search)\r\n this.imagePage = this.imagePage.filter(i => (i.title + ' ' + i.description + ' ' + i.tags).toLowerCase().includes(this.search.toLowerCase()));\r\n\r\n if (this.mediaGroup)\r\n this.imagePage = this.imagePage.filter(i => i.mediaId == this.mediaGroup);\r\n\r\n if (this.fileType)\r\n this.imagePage = this.imagePage.filter(i => this.fileType == '1' ? !i.isVideo : (this.fileType == '2' ? i.isVideo : true));\r\n\r\n if (this.ext) {\r\n this.imagePage = this.imagePage.filter(i => i.imageLocation.endsWith(this.ext));\r\n }\r\n\r\n if (this.sort)\r\n this.imagePage = this.imagePage.sort((a, b) => {\r\n let result = 0;\r\n\r\n if (this.sort == '1') result = 1;\r\n else if (this.sort == '2') result = b.title.localeCompare(a.title);\r\n else if (this.sort == '3') result = b.description.localeCompare(a.description);\r\n\r\n if (this.asc) result *= -1;\r\n\r\n return result;\r\n });\r\n\r\n this.length = this.imagePage.length;\r\n\r\n this.imagePage = this.imagePage.filter((img, i) => {\r\n return i >= startingIndex && i < endingIndex;\r\n });\r\n }\r\n\r\n addImage(image) {\r\n\r\n let pict = new ReservationPicture();\r\n pict.reservationId = this.reservationEdit.id;\r\n pict.pictureUrl = image.imageLocation;\r\n\r\n this.reservationEdit.reservationPictures.push(pict);\r\n }\r\n}\r\n","module.exports = \".modal {\\r\\n z-index: 1000 !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXNlcnZhdGlvbnMvcmVzZXJ2YXRpb25zLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx3QkFBd0I7QUFDMUIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3Jlc2VydmF0aW9ucy9yZXNlcnZhdGlvbnMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tb2RhbCB7XHJcbiAgei1pbmRleDogMTAwMCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n
    \\r\\n

    {{'pageHeader.Reservations' | 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 {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{'reservations.management.ReservationDetails' | translate:editingReservationName}}

    \\r\\n

    {{editingReservationName ? ('reservations.management.EditReservation' | translate:editingReservationName) : ('reservations.management.NewReservation' | 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

    {{'reservations.management.ReservationDetails' | translate:editingReservationName}}

    \\r\\n

    Edit Picture

    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { AccountService } from '../../services/account.service';\r\nimport { ReservationService } from '../../services/reservation.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Reservation, CalendarFilter } from '../../models/reservation.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { ReservationEditorComponent } from \"./reservation-editor.component\";\r\nimport { ReservationPictureComponent } from \"./reservation-picture.component\";\r\nimport { Facility } from '../../models/facility.model';\r\n\r\nimport { Location } from '../../models/location.model';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\nimport { DateTimeOnlyPipe } from '../../pipes/datetime.pipe';\r\nimport { DateOnlyPipe } from '../../pipes/datetime.pipe';\r\nimport { TimeOnlyPipe } from '../../pipes/datetime.pipe';\r\n\r\nimport { CalendarEvent, CalendarEventTitleFormatter, CalendarView, CalendarEventTimesChangedEvent, CalendarEventAction } from 'angular-calendar';\r\nimport {\r\n isSameMonth,\r\n isSameDay,\r\n startOfMonth,\r\n endOfMonth,\r\n startOfWeek,\r\n endOfWeek,\r\n startOfDay,\r\n endOfDay,\r\n format,\r\n addHours, addDays, addMinutes\r\n} from 'date-fns';\r\n@Component({\r\n selector: 'reservations',\r\n templateUrl: './reservations.component.html',\r\n styleUrls: ['./reservations.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class ReservationsComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: Reservation[] = [];\r\n rowsCache: Reservation[] = [];\r\n allFacilities: Facility[] = [];\r\n allLocations: Location[] = [];\r\n editedReservation: Reservation;\r\n sourceReservation: Reservation;\r\n editingReservationName: { shortDescription: string };\r\n loadingIndicator: boolean;\r\n filter: CalendarFilter = new CalendarFilter();\r\n\r\n @Input()\r\n viewDate: Date;\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('pictureModal')\r\n pictureModal: ModalDirective;\r\n\r\n @ViewChild('reservationEditor')\r\n reservationEditor: ReservationEditorComponent;\r\n\r\n @ViewChild('reservationPictureEditor')\r\n reservationPictureEditor: ReservationPictureComponent;\r\n\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private reservationService: ReservationService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'shortDescription', name: gT('reservations.management.ShortDescription') },\r\n { prop: 'longDescription', name: gT('reservations.management.LongDescription')},\r\n { prop: 'startDateTime', name: 'Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'startDateTime', name: 'Start Time', pipe: new TimeOnlyPipe('en-SG') },\r\n { prop: 'endDateTime', name: 'End Time', pipe: new TimeOnlyPipe('en-SG') },\r\n { prop: 'locationName', name: gT('reservations.management.LocationName')},\r\n //{ prop: 'isAllDayYesNo', name: gT('reservations.management.IsAllDay') },\r\n { prop: 'status', name: gT('reservations.management.Status') },\r\n { prop: 'repeatType', name: gT('reservations.management.RepeatType') },\r\n //{ prop: 'repeatEndDateTime', name: gT('reservations.management.RepeatEndDateTime'), pipe: new DateOnlyPipe('en-SG')},\r\n { name: '', width: 100, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: true, sortable: false, draggable: false }\r\n \r\n ];\r\n\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.reservationEditor.changesSavedCallback = () => {\r\n //this.addNewReservationToList();\r\n this.editorModal.hide();\r\n this.loadData();\r\n };\r\n\r\n this.reservationPictureEditor.changesSavedCallback = () => {\r\n //this.addNewReservationToList();\r\n this.pictureModal.hide();\r\n this.loadData();\r\n };\r\n\r\n this.reservationEditor.changesCancelledCallback = () => {\r\n this.editedReservation = null;\r\n this.sourceReservation = null;\r\n this.editorModal.hide();\r\n };\r\n\r\n this.reservationPictureEditor.changesCancelledCallback = () => {\r\n this.editedReservation = null;\r\n this.sourceReservation = null;\r\n this.pictureModal.hide();\r\n };\r\n }\r\n\r\n\r\n addNewReservationToList() {\r\n if (this.sourceReservation) {\r\n Object.assign(this.sourceReservation, this.editedReservation);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceReservation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceReservation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedReservation = null;\r\n this.sourceReservation = null;\r\n }\r\n else {\r\n let reservation = new Reservation();\r\n Object.assign(reservation, this.editedReservation);\r\n this.editedReservation = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (reservation).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, reservation);\r\n this.rows.splice(0, 0, reservation);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n if (this.filter == null) {\r\n this.filter = new CalendarFilter();\r\n }\r\n\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n\r\n this.reservationService.getReservationsLocationsFacilities(null, null, this.filter)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let reservations = results[0];\r\n let locations = results[2];\r\n\r\n reservations.forEach((reservation, index, reservations) => {\r\n (reservation).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...reservations];\r\n this.rows = reservations;\r\n\r\n this.allLocations = locations;\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve reservations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.shortDescription, r.longDescription));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingReservationName = null;\r\n this.reservationEditor.resetForm(true);\r\n }\r\n\r\n onPictureEditorModalHidden() {\r\n this.editingReservationName = null;\r\n this.reservationPictureEditor.resetForm(true);\r\n }\r\n\r\n\r\n newReservation() {\r\n this.editingReservationName = null;\r\n this.sourceReservation = null;\r\n this.editedReservation = this.reservationEditor.newReservation(this.allLocations);\r\n this.editorModal.show();\r\n }\r\n\r\n\r\n editReservation(row: Reservation) {\r\n this.editingReservationName = { shortDescription: row.shortDescription };\r\n this.sourceReservation = row;\r\n this.editedReservation = this.reservationEditor.editReservation(row, this.allLocations);\r\n this.editorModal.show();\r\n }\r\n\r\n reservationPicture(row: Reservation) {\r\n this.editingReservationName = { shortDescription: row.shortDescription };\r\n this.sourceReservation = row;\r\n this.editedReservation = this.reservationPictureEditor.editReservation(row, this.allLocations);\r\n this.pictureModal.show();\r\n }\r\n\r\n deleteReservation(row: Reservation) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.shortDescription + '\\\" reservation?', DialogType.confirm, () => this.deleteReservationHelper(row));\r\n }\r\n\r\n\r\n deleteReservationHelper(row: Reservation) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.reservationService.deleteReservation(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the reservation.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canManageReservations() {\r\n return this.accountService.userHasPermission(Permission.manageReservationsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".boxshadow {\\r\\n position: relative;\\r\\n box-shadow: 1px 2px 4px rgba(0, 0, 0, .5);\\r\\n padding: 10px;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n\\r\\n .boxshadow::after {\\r\\n content: '';\\r\\n position: absolute;\\r\\n z-index: -1; /* hide shadow behind image */\\r\\n box-shadow: 0 15px 20px rgba(0, 0, 0, 0.3);\\r\\n width: 70%;\\r\\n left: 15%; /* one half of the remaining 30% */\\r\\n height: 100px;\\r\\n bottom: 0;\\r\\n }\\r\\n\\r\\n\\r\\n .cardshadow {\\r\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\\r\\n}\\r\\n\\r\\n\\r\\n .separator-hr {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n\\r\\n .last-control-group {\\r\\n margin-bottom: -25px;\\r\\n}\\r\\n\\r\\n\\r\\n .login-container .panel-primary > .panel-heading {\\r\\n color: #fff;\\r\\n background-color: #007f7b;\\r\\n border-color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n .login-container .btn-primary {\\r\\n color: #fff;\\r\\n background-color: #007f7b;\\r\\n border-color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n @media (min-width: 768px) {\\r\\n .login-container {\\r\\n width: 700px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n /*@media (min-width: 992px) {\\r\\n .login-container {\\r\\n width: 700px;\\r\\n }\\r\\n}*/\\r\\n\\r\\n\\r\\n @media (min-width: 1200px) {\\r\\n .login-container {\\r\\n width: 730px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksa0JBQWtCO0lBR2xCLHlDQUF5QztJQUN6QyxhQUFhO0lBQ2IsaUJBQWlCO0FBQ3JCOzs7SUFHSTtRQUNJLFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIsV0FBVyxFQUFFLDZCQUE2QjtRQUcxQywwQ0FBMEM7UUFDMUMsVUFBVTtRQUNWLFNBQVMsRUFBRSxrQ0FBa0M7UUFDN0MsYUFBYTtRQUNiLFNBQVM7SUFDYjs7O0lBR0o7SUFDSSw0RUFBNEU7QUFDaEY7OztJQUdBO0lBQ0ksU0FBUztBQUNiOzs7SUFFQTtJQUNJLG9CQUFvQjtBQUN4Qjs7O0lBRUE7RUFDRSxXQUFXO0VBQ1gseUJBQXlCO0VBQ3pCLHFCQUFxQjtBQUN2Qjs7O0lBRUE7RUFDRSxXQUFXO0VBQ1gseUJBQXlCO0VBQ3pCLHFCQUFxQjtBQUN2Qjs7O0lBRUE7RUFDRTtRQUNNLFlBQVk7SUFDaEI7QUFDSjs7O0lBRUE7Ozs7RUFJRTs7O0lBRUY7SUFDSTtRQUNJLFlBQVk7SUFDaEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVzZXQtcGFzc3dvcmQvcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5ib3hzaGFkb3cge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgLW1vei1ib3gtc2hhZG93OiAxcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsMC41KTtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDJweCA0cHggcmdiYSgwLCAwLCAwLCAuNSk7XHJcbiAgICBib3gtc2hhZG93OiAxcHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIC41KTtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxufVxyXG5cclxuXHJcbiAgICAuYm94c2hhZG93OjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHotaW5kZXg6IC0xOyAvKiBoaWRlIHNoYWRvdyBiZWhpbmQgaW1hZ2UgKi9cclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgMTVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDE1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICAgICAgd2lkdGg6IDcwJTtcclxuICAgICAgICBsZWZ0OiAxNSU7IC8qIG9uZSBoYWxmIG9mIHRoZSByZW1haW5pbmcgMzAlICovXHJcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICB9XHJcblxyXG5cclxuLmNhcmRzaGFkb3cge1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDZweCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE5KTtcclxufVxyXG5cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4ubGFzdC1jb250cm9sLWdyb3VwIHtcclxuICAgIG1hcmdpbi1ib3R0b206IC0yNXB4O1xyXG59XHJcblxyXG4ubG9naW4tY29udGFpbmVyIC5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcge1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdmN2I7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcblxyXG4ubG9naW4tY29udGFpbmVyIC5idG4tcHJpbWFyeSB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2Y3YjtcclxuICBib3JkZXItY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gIC5sb2dpbi1jb250YWluZXIge1xyXG4gICAgICAgIHdpZHRoOiA3MDBweDtcclxuICAgIH1cclxufVxyXG5cclxuLypAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC5sb2dpbi1jb250YWluZXIge1xyXG4gICAgICAgIHdpZHRoOiA3MDBweDtcclxuICAgIH1cclxufSovXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAubG9naW4tY29udGFpbmVyIHtcclxuICAgICAgICB3aWR0aDogNzMwcHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Reset Password\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.NewPasswordRequired' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{'users.editor.ConfirmationPasswordRequired' | translate}}\\r\\n \\r\\n \\r\\n {{'users.editor.PasswordMismatch' | 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\"","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\n\r\nimport { AlertService, MessageSeverity, DialogType } from '../../services/alert.service';\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { ConfigurationService } from '../../services/configuration.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { ResetPassword } from '../../models/user-login.model';\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { LocalStoreManager } from \"src/app/services/local-store-manager.service\";\r\nimport { window } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"app-reset-password\",\r\n templateUrl: './reset-password.component.html',\r\n styleUrls: ['./reset-password.component.css']\r\n})\r\n\r\nexport class ResetPasswordComponent implements OnInit, OnDestroy {\r\n\r\n userLogin = new ResetPassword();\r\n isLoading = false;\r\n formResetToggle = true;\r\n resetUrl = '';\r\n @Input()\r\n userId: string;\r\n\r\n @Input()\r\n code: string;\r\n\r\n constructor(private alertService: AlertService, private authService: AuthService, private configurations: ConfigurationService,\r\n private route: ActivatedRoute, private storeManager: LocalStoreManager) {\r\n this.resetUrl = storeManager.getData('resetUrl');\r\n var id = this.route.snapshot.queryParamMap.get(\"userId\");\r\n this.route.queryParamMap.subscribe(queryParams => {\r\n id = queryParams.get(\"userId\");\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.authService.reLoginDelegate = () => null;\r\n this.route.paramMap.subscribe(params => {\r\n this.userLogin.code = params.get(\"code\");\r\n this.userLogin.userId = params.get(\"userId\");\r\n })\r\n \r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n\r\n }\r\n\r\n\r\n\r\n\r\n showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n resetPassword() {\r\n if (!this.resetUrl) {\r\n this.resetUrl = location.href;\r\n }\r\n\r\n this.isLoading = true;\r\n this.alertService.startLoadingMessage(\"\", \"Submitting...\");\r\n var queryParamSection = this.resetUrl.split('?')[1];\r\n var params = queryParamSection.split('&');\r\n this.userLogin.userId = params[0].split('=')[1];\r\n this.userLogin.code = params[1].split('=')[1];\r\n this.authService.resetPassword(this.userLogin)\r\n .subscribe(\r\n response => {\r\n setTimeout(() => {\r\n this.alertService.stopLoadingMessage();\r\n this.isLoading = false;\r\n if (response.isSuccess) {\r\n this.alertService.showMessage(\"Success\", response.message, MessageSeverity.success);\r\n setTimeout(() => {\r\n location.replace('/login');\r\n //this.userLogin = new ResetPassword(); \r\n }, 2000);\r\n } else {\r\n this.alertService.showStickyMessage(\"Unable to reset password\", response.message, MessageSeverity.error);\r\n }\r\n \r\n }, 500);\r\n },\r\n error => {\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Unable to reset password\", \"An error occured while resetting password, please try again later.\\nError: \" + Utilities.getResponseBody(error), MessageSeverity.error);\r\n\r\n\r\n setTimeout(() => {\r\n this.isLoading = false;\r\n }, 500);\r\n });\r\n }\r\n\r\n\r\n reset() {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n}\r\n","module.exports = \"\\r\\n#mainContent.app-component {\\r\\n position: relative;\\r\\n padding-top: 50px;\\r\\n padding-bottom: 50px;\\r\\n}\\r\\n\\r\\n\\r\\n.appTitle.app-component {\\r\\n line-height: 50px;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-fixed-top.app-component,\\r\\n.navbar-fixed-bottom.app-component {\\r\\n z-index: 1000;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-brand.app-component {\\r\\n float: none;\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-brand.app-component > img {\\r\\n display: inline;\\r\\n height: 35px;\\r\\n }\\r\\n\\r\\n\\r\\nnav {\\r\\n background-color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-inner.app-component {\\r\\n padding-left: 0px;\\r\\n border-radius: 0px;\\r\\n box-shadow: none;\\r\\n background-color: #007f7b;\\r\\n background-image: none;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-inner.toolbar.app-component {\\r\\n background-color: #fafafa;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar.app-component .nav > .active > a,\\r\\n.navbar.app-component .nav > .active > a:hover,\\r\\n.navbar.app-component .nav > .active > a:focus {\\r\\n background-color: #ffffff;\\r\\n box-shadow: none;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar.app-component .nav > li {\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar.app-component .nav > li > a {\\r\\n color: white;\\r\\n font-weight: bold;\\r\\n -webkit-text-shadow: none;\\r\\n text-shadow: none;\\r\\n height: 30px;\\r\\n padding-top: 6px;\\r\\n padding-bottom: 0px;\\r\\n }\\r\\n\\r\\n\\r\\n.navbar-fixed-top.app-component .navbar-inner.app-component,\\r\\n.navbar-static-top.app-component .navbar-inner.app-component {\\r\\n box-shadow: 0 1px 00px rgba(0, 0, 0, 0);\\r\\n}\\r\\n\\r\\n\\r\\n.nav.navBarPadding.app-component {\\r\\n margin-left: 5px;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n\\r\\np.navbar-text.app-component {\\r\\n color: #fff;\\r\\n}\\r\\n\\r\\n\\r\\np.navbar-text.app-component a {\\r\\n color: #fff;\\r\\n }\\r\\n\\r\\n\\r\\n.navbar.app-component .brand {\\r\\n margin-top: 2px;\\r\\n color: #fff;\\r\\n -webkit-text-shadow: none;\\r\\n text-shadow: none;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-toggle.app-component {\\r\\n border: 1px solid white;\\r\\n}\\r\\n\\r\\n\\r\\n.navbar-toggle.app-component .icon-bar {\\r\\n background-color: white;\\r\\n }\\r\\n\\r\\n\\r\\n@media screen and (max-width: 992px) {\\r\\n #mainContent.app-component {\\r\\n /*padding-top: 200px;*/\\r\\n }\\r\\n\\r\\n .navbar-brand.app-component {\\r\\n font-size: 12pt;\\r\\n }\\r\\n\\r\\n /*.nav.navBarPadding.app-component {\\r\\n margin-left: -10px;\\r\\n }*/\\r\\n\\r\\n .nav.app-component > li > a {\\r\\n padding-right: 5px;\\r\\n padding-left: 5px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media screen and (max-width: 768px) {\\r\\n .nav-pills.app-component > li {\\r\\n float: none;\\r\\n margin: 0;\\r\\n }\\r\\n\\r\\n .nav-pills.app-component > li + li {\\r\\n margin-left: 0;\\r\\n margin-top: 1px;\\r\\n }\\r\\n\\r\\n .navbar-collapse.app-component {\\r\\n padding-right: 30px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media (min-width: 768px) {\\r\\n a.user-name.app-component {\\r\\n max-width: 45px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .navbar-toggle.app-component {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n a.user-name.app-component {\\r\\n max-width: 100px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media (min-width: 1200px) {\\r\\n a.user-name.app-component {\\r\\n max-width: 250px;\\r\\n }\\r\\n\\r\\n .container {\\r\\n width: 100% !important;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\na.user-name.app-component {\\r\\n display: inline-block;\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\r\\n vertical-align: bottom;\\r\\n}\\r\\n\\r\\n\\r\\n/*footer.app-component {\\r\\n margin-top: 10px;\\r\\n font-weight: bold;\\r\\n}*/\\r\\n\\r\\n\\r\\n.navbar-inner.footer.app-component {\\r\\n background-color: #f5f5f5;\\r\\n box-shadow: none;\\r\\n height: 40px;\\r\\n}\\r\\n\\r\\n\\r\\n.vcenter_text.app-component {\\r\\n line-height: 40px;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.prebootShow.app-component {\\r\\n opacity: 1 !important;\\r\\n}\\r\\n\\r\\n\\r\\n.prebootStep.app-component {\\r\\n opacity: 0;\\r\\n transition: .5s ease-in-out all;\\r\\n}\\r\\n\\r\\n\\r\\n/*.menuItemsContainer, .navbar-collapse.collapse, .navbar-collapse {\\r\\n overflow-x: hidden !important;\\r\\n}*/\\r\\n\\r\\n\\r\\n.nav-pills > li > a {\\r\\n border-radius: 2px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yb290LWFwcC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsb0JBQW9CO0FBQ3RCOzs7QUFHQTtFQUNFLGlCQUFpQjtBQUNuQjs7O0FBR0E7O0VBRUUsYUFBYTtBQUNmOzs7QUFHQTtFQUNFLFdBQVc7RUFDWCxXQUFXO0FBQ2I7OztBQUVFO0lBQ0UsZUFBZTtJQUNmLFlBQVk7RUFDZDs7O0FBRUY7RUFDRSx5QkFBeUI7QUFDM0I7OztBQUVBO0VBQ0UsaUJBQWlCO0VBRWpCLGtCQUFrQjtFQUdsQixnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLHNCQUFzQjtBQUN4Qjs7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7OztBQUdBOzs7RUFHRSx5QkFBeUI7RUFFekIsZ0JBQWdCO0VBQ2hCLGNBQWM7QUFDaEI7OztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7O0FBRUU7SUFDRSxZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLHlCQUF5QjtJQUN6QixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixtQkFBbUI7RUFDckI7OztBQUdGOztFQUlFLHVDQUF1QztBQUN6Qzs7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0FBQ2xCOzs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7O0FBRUU7SUFDRSxXQUFXO0VBQ2I7OztBQUVGO0VBQ0UsZUFBZTtFQUNmLFdBQVc7RUFDWCx5QkFBeUI7RUFDekIsaUJBQWlCO0FBQ25COzs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7O0FBRUU7SUFDRSx1QkFBdUI7RUFDekI7OztBQU1GO0VBQ0U7SUFDRSxzQkFBc0I7RUFDeEI7O0VBRUE7SUFDRSxlQUFlO0VBQ2pCOztFQUVBOztNQUVJOztFQUVKO0lBQ0Usa0JBQWtCO0lBQ2xCLGlCQUFpQjtFQUNuQjtBQUNGOzs7QUFHQTtFQUNFO0lBQ0UsV0FBVztJQUNYLFNBQVM7RUFDWDs7SUFFRTtNQUNFLGNBQWM7TUFDZCxlQUFlO0lBQ2pCOztFQUVGO0lBQ0UsbUJBQW1CO0VBQ3JCO0FBQ0Y7OztBQUdBO0VBQ0U7SUFDRSxlQUFlO0VBQ2pCO0FBQ0Y7OztBQUdBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxnQkFBZ0I7RUFDbEI7QUFDRjs7O0FBRUE7RUFDRTtJQUNFLGdCQUFnQjtFQUNsQjs7RUFFQTtJQUNFLHNCQUFzQjtFQUN4QjtBQUNGOzs7QUFHQTtFQUNFLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixzQkFBc0I7QUFDeEI7OztBQUlBOzs7RUFHRTs7O0FBR0Y7RUFDRSx5QkFBeUI7RUFHekIsZ0JBQWdCO0VBQ2hCLFlBQVk7QUFDZDs7O0FBSUE7RUFDRSxpQkFBaUI7RUFDakIsc0JBQXNCO0FBQ3hCOzs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsK0JBQStCO0FBQ2pDOzs7QUFFQTs7RUFFRTs7O0FBRUY7RUFDRSxrQkFBa0I7QUFDcEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3Jvb3QtYXBwLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuI21haW5Db250ZW50LmFwcC1jb21wb25lbnQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nLXRvcDogNTBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxufVxyXG5cclxuXHJcbi5hcHBUaXRsZS5hcHAtY29tcG9uZW50IHtcclxuICBsaW5lLWhlaWdodDogNTBweDtcclxufVxyXG5cclxuXHJcbi5uYXZiYXItZml4ZWQtdG9wLmFwcC1jb21wb25lbnQsXHJcbi5uYXZiYXItZml4ZWQtYm90dG9tLmFwcC1jb21wb25lbnQge1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcblxyXG4ubmF2YmFyLWJyYW5kLmFwcC1jb21wb25lbnQge1xyXG4gIGZsb2F0OiBub25lO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4gIC5uYXZiYXItYnJhbmQuYXBwLWNvbXBvbmVudCA+IGltZyB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgfVxyXG5cclxubmF2IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcblxyXG4ubmF2YmFyLWlubmVyLmFwcC1jb21wb25lbnQge1xyXG4gIHBhZGRpbmctbGVmdDogMHB4O1xyXG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XHJcbiAgLW1vei1ib3gtc2hhZG93OiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2Y3YjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG59XHJcblxyXG4ubmF2YmFyLWlubmVyLnRvb2xiYXIuYXBwLWNvbXBvbmVudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcclxufVxyXG5cclxuXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gLmFjdGl2ZSA+IGEsXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gLmFjdGl2ZSA+IGE6aG92ZXIsXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuXHJcbi5uYXZiYXIuYXBwLWNvbXBvbmVudCAubmF2ID4gbGkge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuICAubmF2YmFyLmFwcC1jb21wb25lbnQgLm5hdiA+IGxpID4gYSB7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIC13ZWJraXQtdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIHBhZGRpbmctdG9wOiA2cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xyXG4gIH1cclxuXHJcblxyXG4ubmF2YmFyLWZpeGVkLXRvcC5hcHAtY29tcG9uZW50IC5uYXZiYXItaW5uZXIuYXBwLWNvbXBvbmVudCxcclxuLm5hdmJhci1zdGF0aWMtdG9wLmFwcC1jb21wb25lbnQgLm5hdmJhci1pbm5lci5hcHAtY29tcG9uZW50IHtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDAwcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDAwcHggcmdiYSgwLCAwLCAwLCAwKTtcclxuICBib3gtc2hhZG93OiAwIDFweCAwMHB4IHJnYmEoMCwgMCwgMCwgMCk7XHJcbn1cclxuXHJcbi5uYXYubmF2QmFyUGFkZGluZy5hcHAtY29tcG9uZW50IHtcclxuICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbn1cclxuXHJcbnAubmF2YmFyLXRleHQuYXBwLWNvbXBvbmVudCB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbiAgcC5uYXZiYXItdGV4dC5hcHAtY29tcG9uZW50IGEge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgfVxyXG5cclxuLm5hdmJhci5hcHAtY29tcG9uZW50IC5icmFuZCB7XHJcbiAgbWFyZ2luLXRvcDogMnB4O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIC13ZWJraXQtdGV4dC1zaGFkb3c6IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5uYXZiYXItdG9nZ2xlLmFwcC1jb21wb25lbnQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xyXG59XHJcblxyXG4gIC5uYXZiYXItdG9nZ2xlLmFwcC1jb21wb25lbnQgLmljb24tYmFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICNtYWluQ29udGVudC5hcHAtY29tcG9uZW50IHtcclxuICAgIC8qcGFkZGluZy10b3A6IDIwMHB4OyovXHJcbiAgfVxyXG5cclxuICAubmF2YmFyLWJyYW5kLmFwcC1jb21wb25lbnQge1xyXG4gICAgZm9udC1zaXplOiAxMnB0O1xyXG4gIH1cclxuXHJcbiAgLyoubmF2Lm5hdkJhclBhZGRpbmcuYXBwLWNvbXBvbmVudCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xyXG4gICAgfSovXHJcblxyXG4gIC5uYXYuYXBwLWNvbXBvbmVudCA+IGxpID4gYSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gIC5uYXYtcGlsbHMuYXBwLWNvbXBvbmVudCA+IGxpIHtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgICAubmF2LXBpbGxzLmFwcC1jb21wb25lbnQgPiBsaSArIGxpIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbi10b3A6IDFweDtcclxuICAgIH1cclxuXHJcbiAgLm5hdmJhci1jb2xsYXBzZS5hcHAtY29tcG9uZW50IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgYS51c2VyLW5hbWUuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBtYXgtd2lkdGg6IDQ1cHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgLm5hdmJhci10b2dnbGUuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgYS51c2VyLW5hbWUuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMHB4O1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xyXG4gIGEudXNlci1uYW1lLmFwcC1jb21wb25lbnQge1xyXG4gICAgbWF4LXdpZHRoOiAyNTBweDtcclxuICB9XHJcblxyXG4gIC5jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcblxyXG5hLnVzZXItbmFtZS5hcHAtY29tcG9uZW50IHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbn1cclxuXHJcblxyXG5cclxuLypmb290ZXIuYXBwLWNvbXBvbmVudCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn0qL1xyXG5cclxuXHJcbi5uYXZiYXItaW5uZXIuZm9vdGVyLmFwcC1jb21wb25lbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xyXG4gIC1tb3otYm94LXNoYWRvdzogbm9uZTtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIGhlaWdodDogNDBweDtcclxufVxyXG5cclxuXHJcblxyXG4udmNlbnRlcl90ZXh0LmFwcC1jb21wb25lbnQge1xyXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5wcmVib290U2hvdy5hcHAtY29tcG9uZW50IHtcclxuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wcmVib290U3RlcC5hcHAtY29tcG9uZW50IHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHRyYW5zaXRpb246IC41cyBlYXNlLWluLW91dCBhbGw7XHJcbn1cclxuXHJcbi8qLm1lbnVJdGVtc0NvbnRhaW5lciwgLm5hdmJhci1jb2xsYXBzZS5jb2xsYXBzZSwgLm5hdmJhci1jb2xsYXBzZSB7XHJcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbn0qL1xyXG5cclxuLm5hdi1waWxscyA+IGxpID4gYSB7XHJcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"\\r\\n\"","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: \"my-root\",\r\n templateUrl: './root-app.component.html',\r\n styleUrls: ['./root-app.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RootAppComponent {\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.bottom-space {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityTypeErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXJ2aWNlLWNvbnRyYWN0L3NlcnZpY2UtY29udHJhY3QtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQ0FBaUM7QUFDckM7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isd0JBQXdCO0FBQzFCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxjQUFjO0FBQ2xCOztBQUdBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2VydmljZS1jb250cmFjdC9zZXJ2aWNlLWNvbnRyYWN0LWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLmJvdHRvbS1zcGFjZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luOiAwIDVweDtcclxuICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLmZhY2lsaXR5VHlwZUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"

    {{data.header}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{t}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n days from Start Date\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    Assets

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Serial No.ModelAsset TypePurchase DateWarranty StartWarranty End
    {{ir.serialNumber}}{{ir.assetModelName}}{{ir.assetTypeName}}{{ir.purchaseDate | date:\\\"dd/MM/yyyy\\\"}}{{ir.warrantyStart | date:\\\"dd/MM/yyyy\\\"}}{{ir.warrantyEnd | date:\\\"dd/MM/yyyy\\\"}}
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../services/alert.service';\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Permission } from '../../models/permission.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { ServiceContract } from 'src/app/models/service-contract.model';\r\nimport { ServiceContractService } from 'src/app/services/service-contract.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { AssetSelectorComponent } from '../common/asset-selector/asset-selector.component';\r\n\r\n\r\n@Component({\r\n selector: 'service-contract-editor',\r\n templateUrl: './service-contract-editor.component.html',\r\n styleUrls: ['./service-contract-editor.component.css']\r\n})\r\nexport class ServiceContractEditorComponent {\r\n\r\n private isNewServiceContract = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingServiceContractName: string;\r\n private serviceContractEdit: ServiceContract = new ServiceContract();\r\n private allPermissions: Permission[] = [];\r\n private alerts = [7, 30, 60];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n public fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n\r\n\r\n constructor(private alertService: AlertService, private serviceContractService: ServiceContractService, private accountService: AccountService,\r\n private fileService: FileService,\r\n public dialogRef: MatDialogRef, public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n if (typeof (data.serviceContract) != typeof (undefined)) {\r\n if (data.serviceContract.id) {\r\n this.editServiceContract(data.serviceContract);\r\n } else {\r\n this.newServiceContract();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n if (this.isNewServiceContract) {\r\n this.serviceContractService.newServiceContract(this.serviceContractEdit).subscribe(serviceContract => this.saveSuccessHelper(serviceContract), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.serviceContractService.updateServiceContract(this.serviceContractEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(serviceContract?: ServiceContract) {\r\n if (serviceContract)\r\n Object.assign(this.serviceContractEdit, serviceContract);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewServiceContract)\r\n this.alertService.showMessage(\"Success\", `Service Contract \\\"${this.serviceContractEdit.identifier}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to \\\"${this.serviceContractEdit.identifier}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.serviceContractEdit = new ServiceContract();\r\n this.resetForm();\r\n\r\n\r\n //if (!this.isNewServiceContract && this.accountService.currentUser.facilities.some(r => r == this.editingServiceContractName))\r\n // this.refreshLoggedInUser();\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.serviceContractEdit = new ServiceContract();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newServiceContract() {\r\n this.isNewServiceContract = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingServiceContractName = null;\r\n this.selectedValues = {};\r\n this.serviceContractEdit = new ServiceContract();\r\n this.serviceContractEdit.renewalAlert = 7;\r\n this.serviceContractEdit.startDate = this.serviceContractEdit.endDate = new Date();\r\n this.serviceContractEdit.serviceContractAssets = [];\r\n return this.serviceContractEdit;\r\n }\r\n\r\n editServiceContract(serviceContract: ServiceContract) {\r\n if (serviceContract) {\r\n this.isNewServiceContract = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingServiceContractName = serviceContract.identifier;\r\n this.selectedValues = {};\r\n this.serviceContractEdit = new ServiceContract();\r\n Object.assign(this.serviceContractEdit, serviceContract);\r\n\r\n return this.serviceContractEdit;\r\n }\r\n else {\r\n return this.newServiceContract();\r\n }\r\n }\r\n\r\n\r\n\r\n addAssetFromSelector() {\r\n let assets = [];\r\n this.serviceContractEdit.serviceContractAssets.forEach((ir, index, l) => {\r\n ir.assetId = ir.assetId;\r\n ir.serviceContractId = this.serviceContractEdit.id;\r\n assets.push(ir);\r\n });\r\n\r\n const dialogRef = this.dialog.open(AssetSelectorComponent, {\r\n data: { header: \"Assets\", assets: assets },\r\n disableClose: true,\r\n width: '800px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (!result.isCancel) {\r\n console.log(result.selectedAssets);\r\n let assets = [];\r\n if (result.selectedAssets) {\r\n result.selectedAssets.forEach((ir, index, l) => {\r\n ir.assetId = ir.assetId;\r\n ir.serviceContractId = this.serviceContractEdit.id;\r\n ir.id = 0;\r\n assets.push(ir);\r\n });\r\n }\r\n this.serviceContractEdit.serviceContractAssets = assets;\r\n }\r\n });\r\n }\r\n\r\n get canManageServiceContracts() {\r\n return this.accountService.userHasPermission(Permission.manageServiceContractsPermission)\r\n }\r\n}\r\n","module.exports = \".filter-section {\\r\\n padding-top:10px;\\r\\n}\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n.search-box {\\r\\n margin-top: 10px;\\r\\n}\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXJ2aWNlLWNvbnRyYWN0L3NlcnZpY2UtY29udHJhY3RzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCO0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCO0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjtBQUdKO0lBQ0k7UUFDSSxjQUFjO0lBQ2xCO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NlcnZpY2UtY29udHJhY3Qvc2VydmljZS1jb250cmFjdHMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZpbHRlci1zZWN0aW9uIHtcclxuICBwYWRkaW5nLXRvcDoxMHB4O1xyXG59XHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n
    \\r\\n

    Service Contracts

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n \\\"icon\\\"\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n {{'common.RowAction.Edit' | translate}}\\r\\n {{'common.RowAction.Details' | translate}}\\r\\n \\r\\n {{'common.RowAction.Delete' | translate}}\\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Filter, PagedResult, ServiceContractFilter } from '../../models/sieve-filter.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { MatDatepickerInputEvent, MatDialog } from '@angular/material';\r\nimport { ServiceContract } from 'src/app/models/service-contract.model';\r\nimport { ServiceContractEditorComponent } from './service-contract-editor.component';\r\nimport { ServiceContractService } from 'src/app/services/service-contract.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { AssetSelectorComponent } from '../common/asset-selector/asset-selector.component';\r\nimport { DateOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { SearchBoxComponent } from '../controls/search-box.component';\r\nimport * as moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\n\r\n@Component({\r\n selector: 'service-contracts-management',\r\n templateUrl: './service-contracts-management.component.html',\r\n styleUrls: ['./service-contracts-management.component.css']\r\n})\r\nexport class ServiceContractsManagementComponent implements OnInit {\r\n columns: any[] = [];\r\n rows: ServiceContract[] = [];\r\n rowsCache: ServiceContract[] = [];\r\n allPermissions: Permission[] = [];\r\n editedServiceContract: ServiceContract;\r\n sourceServiceContract: ServiceContract;\r\n editingServiceContractName: { name: string };\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n start = new Date();\r\n end = new Date();\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('serviceContractEditor')\r\n serviceContractEditor: ServiceContractEditorComponent;\r\n\r\n @ViewChild('searchbox') searchbox: SearchBoxComponent;\r\n\r\n @ViewChild('serviceContractTable') table: any;\r\n\r\n header: string;\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private fileService: FileService, private serviceContractService: ServiceContractService, public dialog: MatDialog) {\r\n }\r\n\r\n openDialog(serviceContract: ServiceContract): void {\r\n const dialogRef = this.dialog.open(ServiceContractEditorComponent, {\r\n data: { header: this.header, serviceContract: serviceContract },\r\n width: '800px',\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadData(null);\r\n });\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = 'identifier';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n\r\n this.end.setDate(this.start.getDate() + 7);\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: 'identifier', name: 'Contract No.', width: 200 },\r\n { prop: 'reference', name: 'Reference' },\r\n { prop: 'coverage', name: 'Coverage' },\r\n { prop: 'startDate', name: 'Start Date', pipe: new DateOnlyPipe('en-SG') },\r\n { prop: 'endDate', name: 'End Date', pipe: new DateOnlyPipe('en-SG') },\r\n //{ prop: 'details', name: 'Details' },\r\n { prop: 'renewalAlert', name: 'Renewal Alert (in Days)' },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n //let re = /\\(/gi;\r\n //let updatedKeyword = this.keyword.replace(/[(),|]/g, \"\");\r\n\r\n //console.log(updatedKeyword);\r\n this.filter.filters = '(IsActive)==true,(Identifier|Reference|Coverage|Details)@=' + this.keyword + ',(ServiceContractDateRange)==' + this.start.toDateString() + '|' + this.end.toDateString();\r\n \r\n this.serviceContractService.getServiceContractsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let serviceContracts = results.pagedData;\r\n\r\n serviceContracts.forEach((serviceContract, index, serviceContracts) => {\r\n (serviceContract).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...serviceContracts];\r\n this.rows = serviceContracts;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve records from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onChangeDate(type: string, event: MatDatepickerInputEvent) {\r\n if (type == 'start') {\r\n this.start = new Date(event.value);\r\n }\r\n\r\n if (type == 'end') {\r\n this.end = new Date(event.value);\r\n }\r\n\r\n this.loadData();\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n clearFilters() {\r\n this.start = new Date();\r\n this.end = new Date();\r\n this.keyword = '';\r\n this.clearFilterAndPagedResult();\r\n this.searchbox.clear();\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n this.loadData(null);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingServiceContractName = null;\r\n this.serviceContractEditor.resetForm(true);\r\n }\r\n\r\n\r\n newServiceContract() {\r\n //this.editingServiceContractName = null;\r\n //this.sourceServiceContract = null;\r\n //this.editedServiceContract = this.serviceContractEditor.newServiceContract();\r\n //this.editorModal.show();\r\n this.header = 'New Service Contract';\r\n this.editedServiceContract = new ServiceContract();\r\n this.editedServiceContract.renewalAlert = 7;\r\n this.editedServiceContract.serviceContractAssets = [];\r\n this.openDialog(this.editedServiceContract);\r\n }\r\n\r\n\r\n editServiceContract(row: ServiceContract) {\r\n //this.editingServiceContractName = { name: row.name };\r\n //this.sourceServiceContract = row;\r\n this.editedServiceContract = row; //this.serviceContractEditor.editServiceContract(row);\r\n //this.editorModal.show();\r\n\r\n this.header = 'Edit Service Contract';\r\n this.openDialog(this.editedServiceContract);\r\n }\r\n\r\n deleteServiceContract(row: ServiceContract) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.identifier + '\\\" service contract?', DialogType.confirm, () => this.deleteServiceContractHelper(row));\r\n }\r\n\r\n\r\n deleteServiceContractHelper(row: ServiceContract) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.serviceContractService.deleteServiceContract(row.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n //this.rows = this.rows.filter(item => item !== row)\r\n this.loadData();\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the service contract.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n downloadResults() {\r\n this.alertService.showDialog('Do you want to include the list of assets?', DialogType.confirm, () => this.proceedExport(true), () => this.proceedExport(false), 'Yes', 'No');\r\n\r\n \r\n }\r\n\r\n proceedExport(includeAssets) {\r\n this.alertService.startLoadingMessage(\"Exporting...\");\r\n const fileName = moment().format('DDMMYYYY_hhmmss') + '_ServiceContracts.xlsx';\r\n let f = new Filter();\r\n f.page = 1;\r\n f.filters = this.filter.filters;\r\n f.sorts = this.filter.sorts;\r\n let serviceContractFilter = new ServiceContractFilter(includeAssets, f);\r\n this.serviceContractService.downloadServiceContractReport(serviceContractFilter).subscribe(\r\n data => {\r\n console.log(data);\r\n this.alertService.stopLoadingMessage();\r\n saveAs(data, fileName);\r\n },\r\n err => {\r\n this.alertService.stopLoadingMessage();\r\n alert(\"Problem while downloading the file.\");\r\n\r\n console.error(err);\r\n }\r\n );\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n get canManageServiceContracts() {\r\n return this.accountService.userHasPermission(Permission.manageServiceContractsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.tab-content > .tab-pane {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGNBQWM7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NldHRpbmdzL3NldHRpbmdzLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2lkZS1tZW51IHtcclxuICBtaW4td2lkdGg6IDEyMHB4O1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbltoaWRkZW5dIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4udGFiLWNvbnRlbnQgPiAudGFiLXBhbmUge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{'pageHeader.Settings' | 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

    {{'settings.header.UserPreferences' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n

    {{'settings.header.UsersManagements' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n

    {{'settings.header.UserGroupsManagements' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n

    {{'settings.header.RolesManagement' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{'settings.header.LocationsManagement' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{'settings.header.LocationsManagement' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{'settings.header.FacilitiesManagement' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{'settings.header.FacilityTypesManagement' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{'settings.header.InstitutionsManagement' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{'settings.header.DepartmentsManagement' | 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

    Media Upload

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n

    Playlist

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n

    Neo App Setting

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    Kiosk Settings

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n\r\nimport { fadeInOut } from '../../services/animations';\r\nimport { BootstrapTabDirective } from \"../../directives/bootstrap-tab.directive\";\r\nimport { AccountService } from \"../../services/account.service\";\r\nimport { Permission } from '../../models/permission.model';\r\n\r\n\r\n@Component({\r\n selector: 'settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class SettingsComponent implements OnInit, OnDestroy {\r\n\r\n isProfileActivated = true;\r\n isPhonebookActivated = false;\r\n isPreferencesActivated = false;\r\n isUsersActivated = false;\r\n isUserGroupsActivated = false;\r\n isRolesActivated = false;\r\n isFacilitiesActivated = false;\r\n isFacilityTypesActivated = false;\r\n isLocationsActivated = false;\r\n isLocationsTreeActivated = false;\r\n isInstitutionsActivated = false;\r\n isDepartmentsActivated = false;\r\n isApplicationSettingActivated = false;\r\n isMediaActivated = false;\r\n isUploadImagesActivated = false;\r\n isPlaylistsActivated = false;\r\n isContactGroupsActivated = false;\r\n isEpaperTemplatesActivated = false;\r\n isEpaperDevicesActivated = false;\r\n isDirectoryListingCategoryActivated = false;\r\n isEmployeeDesignationActivated = false;\r\n isEmployeeScheduleActivated = false;\r\n isEmployeeDataActivated = false;\r\n isOccupancyLogActivated = false;\r\n isDirectoryListingActivated = false;\r\n isBuildingActivated = false;\r\n isFloorActivated = false;\r\n fragmentSubscription: any;\r\n isMapActivated = false;\r\n isModulesActivated = false;\r\n isKioskSettingsActivated = false;\r\n isEmsActivated = false;\r\n isEmsProfileActivated = false;\r\n isEmsScheduleActivated = false;\r\n\r\n readonly profileTab = \"profile\";\r\n readonly phonebookTab = \"phonebook\";\r\n readonly preferencesTab = \"preferences\";\r\n readonly usersTab = \"users\";\r\n readonly userGroupsTab = \"userGroups\";\r\n readonly rolesTab = \"roles\";\r\n readonly facilitiesTab = \"facilities\";\r\n readonly facilityTypesTab = \"facilityTypes\";\r\n readonly locationsTab = \"locations\";\r\n readonly locationsTreeTab = \"locationsTree\";\r\n readonly institutionsTab = \"institutions\";\r\n readonly departmentsTab = \"departments\";\r\n readonly applicationSettingTab = \"applicationSetting\";\r\n readonly mediaTab = \"medias\";\r\n readonly imageUploadsTab = \"imageUploads\";\r\n readonly playlistsTab = \"playlists\";\r\n readonly contactGroupsTab = \"contactGroups\";\r\n readonly epaperTemplatesTab = \"epaperTemplates\";\r\n readonly epaperDevicesTab = \"epaperDevices\";\r\n readonly directoryListingCategoryTab = \"directoryListingCategory\";\r\n readonly employeeDesignationTab = \"employeeDesignation\";\r\n readonly employeeScheduleTab = \"employeeSchedule\";\r\n readonly employeeDataTab = \"employeeData\";\r\n readonly occupancyLogTab = \"occupancyLog\";\r\n readonly directoryListingTab = \"directoryListing\";\r\n readonly buildingTab = \"building\";\r\n readonly floorTab = \"floor\";\r\n readonly mapTab = \"map\";\r\n readonly moduleTab = \"modules\";\r\n readonly kioskSettingsTab = \"kioskSettings\";\r\n readonly emsTab = \"emses\";\r\n readonly emsProfileTab = \"emsProfile\";\r\n readonly emsScheduleTab = \"emsSchedule\";\r\n\r\n @ViewChild(\"tab\")\r\n tab: BootstrapTabDirective;\r\n isSignageComponentsActivated: boolean;\r\n signageComponentsTab: any = \"signageComponents\";\r\n isSignageCompilationsActivated: boolean;\r\n signageCompilationsTab: any = \"signageCompilations\";\r\n isSignagePublicationsActivated: boolean;\r\n signagePublicationsTab: any = \"signagePublications\";\r\n\r\n\r\n constructor(private route: ActivatedRoute, private accountService: AccountService) {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.fragmentSubscription = this.route.fragment.subscribe(anchor => this.showContent(anchor));\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this.fragmentSubscription) {\r\n this.fragmentSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n showContent(anchor: string) {\r\n if ((this.isFragmentEquals(anchor, this.usersTab) && !this.canViewUsers) ||\r\n (this.isFragmentEquals(anchor, this.rolesTab) && !this.canViewRoles))\r\n return;\r\n\r\n this.tab.show(`#${anchor || this.profileTab}Tab`);\r\n }\r\n\r\n\r\n isFragmentEquals(fragment1: string, fragment2: string) {\r\n\r\n if (fragment1 == null)\r\n fragment1 = \"\";\r\n\r\n if (fragment2 == null)\r\n fragment2 = \"\";\r\n\r\n return fragment1.toLowerCase() == fragment2.toLowerCase();\r\n }\r\n\r\n\r\n onShowTab(event) {\r\n let activeTab = event.target.hash.split(\"#\", 2).pop();\r\n\r\n this.isProfileActivated = activeTab == this.profileTab;\r\n this.isPhonebookActivated = activeTab == this.phonebookTab;\r\n this.isPreferencesActivated = activeTab == this.preferencesTab;\r\n this.isUsersActivated = activeTab == this.usersTab;\r\n this.isUserGroupsActivated = activeTab == this.userGroupsTab;\r\n this.isRolesActivated = activeTab == this.rolesTab;\r\n this.isFacilitiesActivated = activeTab == this.facilitiesTab;\r\n this.isFacilityTypesActivated = activeTab == this.facilityTypesTab;\r\n this.isLocationsActivated = activeTab == this.locationsTab;\r\n this.isLocationsTreeActivated = activeTab == this.locationsTreeTab;\r\n this.isInstitutionsActivated = activeTab == this.institutionsTab;\r\n this.isDepartmentsActivated = activeTab == this.departmentsTab;\r\n this.isApplicationSettingActivated = activeTab == this.applicationSettingTab;\r\n this.isMediaActivated = activeTab == this.mediaTab;\r\n this.isUploadImagesActivated = activeTab == this.imageUploadsTab;\r\n this.isPlaylistsActivated = activeTab == this.playlistsTab;\r\n this.isContactGroupsActivated = activeTab == this.contactGroupsTab;\r\n this.isEpaperDevicesActivated = activeTab == this.epaperDevicesTab;\r\n this.isEpaperTemplatesActivated = activeTab == this.epaperTemplatesTab;\r\n this.isSignageComponentsActivated = activeTab == this.signageComponentsTab;\r\n this.isSignageCompilationsActivated = activeTab == this.signageCompilationsTab;\r\n this.isSignagePublicationsActivated = activeTab == this.signagePublicationsTab;\r\n this.isDirectoryListingCategoryActivated = activeTab == this.directoryListingCategoryTab;\r\n this.isEmployeeDesignationActivated = activeTab == this.employeeDesignationTab;\r\n this.isEmployeeScheduleActivated = activeTab == this.employeeScheduleTab;\r\n this.isEmployeeDataActivated = activeTab == this.employeeDataTab;\r\n this.isOccupancyLogActivated = activeTab == this.occupancyLogTab;\r\n this.isDirectoryListingActivated = activeTab == this.directoryListingTab;\r\n this.isBuildingActivated = activeTab == this.buildingTab;\r\n this.isFloorActivated = activeTab == this.floorTab;\r\n this.isMapActivated = activeTab == this.mapTab;\r\n this.isModulesActivated = activeTab == this.moduleTab;\r\n this.isKioskSettingsActivated = activeTab == this.kioskSettingsTab;\r\n this.isEmsActivated = activeTab == this.emsTab;\r\n this.isEmsProfileActivated = activeTab == this.emsProfileTab;\r\n this.isEmsScheduleActivated = activeTab == this.emsScheduleTab;\r\n }\r\n\r\n\r\n get canViewUsers() {\r\n return this.accountService.userHasPermission(Permission.viewUsersPermission);\r\n }\r\n\r\n get canViewRoles() {\r\n return this.accountService.userHasPermission(Permission.viewRolesPermission);\r\n }\r\n\r\n get canViewFacilities() {\r\n return this.accountService.userHasPermission(Permission.viewFacilitiesPermission);\r\n }\r\n\r\n get canViewLocations() {\r\n return this.accountService.userHasPermission(Permission.viewLocationsPermission);\r\n }\r\n\r\n get canViewFacilityTypes() {\r\n return this.accountService.userHasPermission(Permission.viewFacilityTypesPermission);\r\n }\r\n\r\n get canManageApplicationSettings() {\r\n return true;//this.accountService.userHasPermission(Permission.manageApplicationSettingPermission)\r\n }\r\n\r\n get canManageMedias() {\r\n return true; //this.accountService.userHasPermission(Permission.manageApplicationSettingPermission)\r\n }\r\n\r\n get canViewInstitutions() {\r\n return this.accountService.userHasPermission(Permission.viewInstitutionsPermission);\r\n }\r\n\r\n get canManageDepartments() {\r\n return this.accountService.userHasPermission(Permission.manageDepartmentsPermission);\r\n }\r\n\r\n get canManageContactGroups() {\r\n return this.accountService.userHasPermission(Permission.manageContactGroupsPermission);\r\n }\r\n\r\n get canManagePhonebooks() {\r\n return this.accountService.userHasPermission(Permission.manageUserPhonebooksPermission);\r\n }\r\n\r\n get canManageEpaperTemplates() {\r\n return this.accountService.userHasPermission(Permission.manageEpaperTemplatesPermission)\r\n }\r\n\r\n get canManageEpaperDevices() {\r\n return this.accountService.userHasPermission(Permission.manageEpaperDevicesPermission)\r\n }\r\n\r\n get canManageSignageComponents() {\r\n return true;// this.accountService.userHasPermission(Permission.manageSignageComponentsPermission)\r\n }\r\n\r\n get canManageSignageCompilations() {\r\n return true;// this.accountService.userHasPermission(Permission.manageSignageCompilationsPermission)\r\n }\r\n\r\n get canManageSignagePublications() {\r\n return true;// this.accountService.userHasPermission(Permission.manageSignagePublicationsPermission)\r\n }\r\n\r\n get canManageDirectoryListingCategorys() {\r\n return true;//this.accountService.userHasPermission(Permission.manageDirectoryListingCategoryPermission)\r\n }\r\n\r\n get canManageEmployeeDesignations() {\r\n return true;//this.accountService.userHasPermission(Permission.manageDirectoryListingCategoryPermission)\r\n }\r\n\r\n get canManageEmployeeSchedules() {\r\n return true;//this.accountService.userHasPermission(Permission.manageDirectoryListingCategoryPermission)\r\n }\r\n\r\n get canManageEmployeeDatas() {\r\n return true;//this.accountService.userHasPermission(Permission.manageDirectoryListingCategoryPermission)\r\n }\r\n\r\n get canManageDirectoryListings() {\r\n return true;//this.accountService.userHasPermission(Permission.manageDirectoryListingPermission)\r\n }\r\n\r\n get canManageOccupancyLogs() {\r\n return true;//this.accountService.userHasPermission(Permission.manageOccupancyLogPermission)\r\n }\r\n\r\n get canManageBuildings() {\r\n return true;//this.accountService.userHasPermission(Permission.manageBuildingPermission)\r\n }\r\n\r\n get canManageFloors() {\r\n return true;//this.accountService.userHasPermission(Permission.manageFloorPermission)\r\n }\r\n\r\n get canManageMaps() {\r\n return true;//this.accountService.userHasPermission(Permission.manageMapPermission)\r\n }\r\n\r\n get canManageModules() {\r\n return true;\r\n }\r\n\r\n get canViewUserGroups() {\r\n return this.accountService.userHasPermission(Permission.viewUserGroupsPermission);\r\n }\r\n \r\n get canManageEmses() {\r\n return true; //this.accountService.userHasPermission(Permission.manageApplicationSettingPermission)\r\n }\r\n\r\n get canManageEmsProfiles() {\r\n return true;\r\n }\r\n\r\n get canManageEmsSchedules() {\r\n return true;\r\n }\r\n\r\n get canManageKioskSettings() {\r\n return true;//this.accountService.userHasPermission(Permission.maanageKioskSettingsPermission)\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.signageCompilationErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.example-box {\\r\\n padding: 10px;\\r\\n box-sizing: border-box;\\r\\n border: solid 1px #ccc;\\r\\n color: rgba(0, 0, 0, 0.87);\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n align-items: center;\\r\\n text-align: center;\\r\\n background: #fff;\\r\\n border-radius: 4px;\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n transition: box-shadow 200ms cubic-bezier(0, 0, 0.2, 1);\\r\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\r\\n //resize: both;\\r\\n //overflow: hidden;\\r\\n}\\r\\n\\r\\n.example-box:active {\\r\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\r\\n }\\r\\n\\r\\n.example-handle {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n right: 10px;\\r\\n color: #ccc;\\r\\n cursor: move;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n}\\r\\n\\r\\n.example-boundary {\\r\\n width: 400px;\\r\\n height: 400px;\\r\\n max-width: 100%;\\r\\n border: dotted #ccc 2px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtY29tcGlsYXRpb24vc2lnbmFnZS1jb21waWxhdGlvbi1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsMEJBQTBCO0VBQzFCLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsdURBQXVEO0VBQ3ZELCtHQUErRztFQUMvRyxjQUFjO0VBQ2Qsa0JBQWtCO0FBQ3BCOztBQUVFO0lBQ0UscUhBQXFIO0VBQ3ZIOztBQUVGO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxXQUFXO0VBQ1gsV0FBVztFQUNYLFlBQVk7RUFDWixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixlQUFlO0VBQ2YsdUJBQXVCO0FBQ3pCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtY29tcGlsYXRpb24vc2lnbmFnZS1jb21waWxhdGlvbi1lZGl0b3IuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yb3c6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAvKmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOyovXHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAwIDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmVkaXQtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5lZGl0LWxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuXHJcbmlucHV0LmZvcm0tY29udHJvbCB7XHJcbiAgICBib3JkZXItbGVmdC13aWR0aDogNXB4O1xyXG59XHJcblxyXG4uc2lnbmFnZUNvbXBpbGF0aW9uRXJyb3JNZXNzYWdlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNDb2x1bW4ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zUm93IHtcclxuICAgIG1hcmdpbjogMCAxNXB4O1xyXG59XHJcblxyXG5cclxuLnBhc3N3b3JkLXdlbGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgICAudXNlci1lbmFibGVkIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcclxuICAgIH1cclxufVxyXG5cclxuLmV4YW1wbGUtYm94IHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYztcclxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAxO1xyXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XHJcbiAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG4gIC8vcmVzaXplOiBib3RoO1xyXG4gIC8vb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuICAuZXhhbXBsZS1ib3g6YWN0aXZlIHtcclxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICB9XHJcblxyXG4uZXhhbXBsZS1oYW5kbGUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDEwcHg7XHJcbiAgcmlnaHQ6IDEwcHg7XHJcbiAgY29sb3I6ICNjY2M7XHJcbiAgY3Vyc29yOiBtb3ZlO1xyXG4gIHdpZHRoOiAyNHB4O1xyXG4gIGhlaWdodDogMjRweDtcclxufVxyXG5cclxuLmV4YW1wbGUtYm91bmRhcnkge1xyXG4gIHdpZHRoOiA0MDBweDtcclxuICBoZWlnaHQ6IDQwMHB4O1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBib3JkZXI6IGRvdHRlZCAjY2NjIDJweDtcclxufVxyXG4iXX0= */\"","module.exports = \"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Media Group\\r\\n \\r\\n \\r\\n -- Select Media Group --\\r\\n \\r\\n \\r\\n {{m.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 Background Image \\r\\n Remove\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n

    Layout

    \\r\\n
    \\r\\n
    \\r\\n {{c.name}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

     

    \\r\\n \\r\\n Select Components\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{sc.name}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Add\\r\\n
    \\r\\n
    \\r\\n Remove   {{c.name}}
    \\r\\n x \\r\\n\\r\\n y \\r\\n\\r\\n w \\r\\n\\r\\n h \\r\\n\\r\\n order \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Inject, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { SignageCompilationService } from \"../../../services/signage-compilation.service\";\r\nimport { SignageCompilation } from '../../../models/signage-compilation.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\r\nimport { SignageComponentService } from '../../../services/signage-component.service';\r\nimport { SignageComponent } from '../../../models/signage-component.model';\r\nimport { CdkDragEnd } from '@angular/cdk/drag-drop';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MediaService } from '../../../services/media.service';\r\n\r\n\r\n@Component({\r\n selector: 'signage-compilation-editor',\r\n templateUrl: './signage-compilation-editor.component.html',\r\n styleUrls: ['./signage-compilation-editor.component.css']\r\n})\r\nexport class SignageCompilationEditorComponent {\r\n\r\n private isNewSignageCompilation = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingSignageCompilationName: string;\r\n private signageCompilationEdit: SignageCompilation = new SignageCompilation();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n public searchForm: FormControl = new FormControl();\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('compilationContainer') elementView;\r\n\r\n scale: number;\r\n\r\n signageComponents: SignageComponent[];\r\n\r\n allMedias: any;\r\n\r\n constructor(private alertService: AlertService, private signageCompilationService: SignageCompilationService, private accountService: AccountService, private cdRef: ChangeDetectorRef, signageComponentService: SignageComponentService, private mediaService: MediaService\r\n //public dialogRef: MatDialogRef,\r\n ) {\r\n\r\n signageComponentService.getSignageComponents()\r\n .subscribe(results => {\r\n this.signageComponents = results[0];\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve signage components from the server.\\r\\nErrors:`,\r\n MessageSeverity.error);\r\n });\r\n\r\n this.mediaService.getMedias(null, null, null, this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.allMedias = results;\r\n },\r\n error => {\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n dragEnded(event, c, w, h) {\r\n console.log(event);\r\n\r\n // const transform = event.source.element.nativeElement.style.transform;\r\n\r\n // let regex = /translate3d\\(\\s?(?[-]?\\d*)px,\\s?(?[-]?\\d*)px,\\s?(?[-]?\\d*)px\\)/;\r\n //var values = regex.exec(transform);\r\n //console.log(transform);\r\n const offset = { x: event.offsetX, y: event.offsetY };\r\n\r\n const position: any = {};\r\n\r\n position.x = c.x + (offset.x / this.scale);\r\n position.y = c.y + (offset.y / this.scale);\r\n\r\n //console.log(position, { x: c.x, y: c.y }, offset);\r\n\r\n console.log(\"PAGE\", event.pageX, event.pageY)\r\n console.log(\"CLIENT\", event.clientX, event.clientY)\r\n\r\n //c.x = position.x;\r\n //c.y = position.y;\r\n //c.width = event.srcElement.offsetWidth / this.scale;\r\n //c.height = event.srcElement.offsetHeight / this.scale;\r\n\r\n //if (c.x + c.width > w) c.x = w - c.width;\r\n //if (c.y + c.height > h) c.y = h - c.height;\r\n\r\n //if (c.x < 0) c.x = 0;\r\n //if (c.y < 0) c.y = 0;\r\n\r\n //event.source.element.nativeElement.style.transform = \"translate3d(0, 0, 0)\";\r\n }\r\n\r\n add(selected: SignageComponent) {\r\n if (!selected) return;\r\n if (!this.signageCompilationEdit.components) this.signageCompilationEdit.components = [];\r\n\r\n let c = new SignageComponent();\r\n Object.assign(c, selected);\r\n c.x = 0;\r\n c.y = 0;\r\n c.width = 100;\r\n c.height = 100;\r\n c.order = 1;\r\n c.isActive = 1;\r\n\r\n if (this.signageCompilationEdit.components[0]) {\r\n let lastc = this.signageCompilationEdit.components[this.signageCompilationEdit.components.length - 1];\r\n c.order = lastc.order + 1;\r\n }\r\n\r\n c.componentId = c.id;\r\n c.id = \"0\";\r\n this.signageCompilationEdit.components.push(c);\r\n }\r\n\r\n getStr(obj: any) {\r\n return JSON.stringify(obj);\r\n }\r\n\r\n xChanged(event, c, w) {\r\n //if (c.x > w) c.x = w - c.width;\r\n //if (c.x + c.width > w) c.width = w - c.x;\r\n }\r\n\r\n yChanged(event, c, h) {\r\n //if (c.y > h) c.y = h - c.height;\r\n //if (c.y + c.height > h) c.height = h - c.y;\r\n }\r\n\r\n wChanged(event, c, w) {\r\n //if (c.width > w) c.width = w - c.x;\r\n //if (c.x + c.width > w) c.x = w - c.width;\r\n }\r\n\r\n hChanged(event, c, h) {\r\n //if (c.height > h) c.height = h - c.y;\r\n //if (c.y + c.height > h) c.y = h - c.height;\r\n }\r\n\r\n getHeight() {\r\n try {\r\n this.scale = this.elementView.nativeElement.offsetWidth / this.signageCompilationEdit.width;\r\n\r\n let h = this.elementView.nativeElement.offsetWidth / this.signageCompilationEdit.width * this.signageCompilationEdit.height;\r\n if (h) return h;\r\n } catch (ex) { }\r\n\r\n return 100;\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.signageCompilationEdit.backgroundImage = event ? event.dbPath : null;\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n for (let c of this.signageCompilationEdit.components || []) {\r\n c.x = c.x || 0;\r\n c.y = c.y || 0;\r\n c.width = c.width || 0;\r\n c.height = c.height || 0;\r\n c.order = c.order || 0;\r\n }\r\n\r\n\r\n if (this.isNewSignageCompilation) {\r\n this.signageCompilationService.newSignageCompilation(this.signageCompilationEdit).subscribe(signageCompilation => this.saveSuccessHelper(signageCompilation), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.signageCompilationService.updateSignageCompilation(this.signageCompilationEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(signageCompilation?: SignageCompilation) {\r\n if (signageCompilation)\r\n Object.assign(this.signageCompilationEdit, signageCompilation);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewSignageCompilation)\r\n this.alertService.showMessage(\"Success\", `Signage Compilation \\\"${this.signageCompilationEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to signage compilation \\\"${this.signageCompilationEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.signageCompilationEdit = new SignageCompilation();\r\n this.resetForm();\r\n\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.signageCompilationEdit = new SignageCompilation();\r\n\r\n\r\n this.showValidationErrors = false;\r\n //this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newSignageCompilation() {\r\n this.isNewSignageCompilation = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingSignageCompilationName = null;\r\n this.selectedValues = {};\r\n this.signageCompilationEdit = new SignageCompilation();\r\n return this.signageCompilationEdit;\r\n }\r\n\r\n editSignageCompilation(signageCompilation: SignageCompilation) {\r\n if (signageCompilation) {\r\n this.isNewSignageCompilation = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingSignageCompilationName = signageCompilation.name;\r\n this.selectedValues = {};\r\n this.signageCompilationEdit = new SignageCompilation();\r\n Object.assign(this.signageCompilationEdit, signageCompilation);\r\n\r\n return this.signageCompilationEdit;\r\n }\r\n else {\r\n return this.newSignageCompilation();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageSignageCompilations() {\r\n return true;//this.accountService.userHasPermission(Permission.manageSignageCompilationsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtY29tcGlsYXRpb24vc2lnbmFnZS1jb21waWxhdGlvbnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2lnbmFnZS9zaWduYWdlLWNvbXBpbGF0aW9uL3NpZ25hZ2UtY29tcGlsYXRpb25zLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
    \\r\\n
    \\r\\n

    Compilations

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n >\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{'signageCompilations.management.Edit' | translate}}\\r\\n \\r\\n \\r\\n {{'signageCompilations.management.Delete' | translate}}\\r\\n
    \\r\\n Add To Export\\r\\n Remove From Export\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{header}}

    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { SignageCompilation } from '../../../models/signage-compilation.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { SignageCompilationEditorComponent } from \"./signage-compilation-editor.component\";\r\nimport { SignageCompilationService } from 'src/app/services/signage-compilation.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { MediaService } from '../../../services/media.service';\r\n\r\n\r\n@Component({\r\n selector: 'signage-compilations-management',\r\n templateUrl: './signage-compilations-management.component.html',\r\n styleUrls: ['./signage-compilations-management.component.css']\r\n})\r\nexport class SignageCompilationsManagementComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: SignageCompilation[] = [];\r\n rowsCache: SignageCompilation[] = [];\r\n allPermissions: Permission[] = [];\r\n editedSignageCompilation: SignageCompilation;\r\n sourceSignageCompilation: SignageCompilation;\r\n editingSignageCompilationName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n exportList: any = {};\r\n\r\n showEditor: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('signageCompilationEditor')\r\n signageCompilationEditor: SignageCompilationEditorComponent;\r\n header: string;\r\n keyword: string;\r\n\r\n allMedias: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private signageCompilationService: SignageCompilationService, private mediaService: MediaService) {\r\n\r\n }\r\n\r\n //openDialog(signageCompilation: SignageCompilation): void {\r\n // const dialogRef = this.dialog.open(SignageCompilationEditorComponent, {\r\n // data: { header: this.header, signageCompilation: signageCompilation },\r\n // width: '400px'\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // this.loadData();\r\n // });\r\n //}\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('signageCompilations.management.Name') },\r\n { prop: 'description', name: gT('signageCompilations.management.Description') },\r\n { name: '', width: 200, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.signageCompilationEditor.changesSavedCallback = () => {\r\n //this.addNewSignageCompilationToList();\r\n //this.editorModal.hide();\r\n this.showEditor = false;\r\n this.loadData();\r\n };\r\n\r\n this.signageCompilationEditor.changesCancelledCallback = () => {\r\n this.editedSignageCompilation = null;\r\n this.sourceSignageCompilation = null;\r\n //this.editorModal.hide();\r\n this.showEditor = false;\r\n };\r\n }\r\n\r\n addToExport(row) {\r\n if (!this.exportList[row.id]) this.exportList[row.id] = {};\r\n\r\n this.exportList[row.id].included = true;\r\n this.exportList[row.id].id = row.id;\r\n }\r\n\r\n removeFromExport(row) {\r\n if (this.exportList[row.id]) {\r\n this.exportList[row.id].included = false;\r\n }\r\n }\r\n\r\n numberOfExports() {\r\n return (Object.values(this.exportList)).filter(i => i.included).length;\r\n }\r\n\r\n export() {\r\n let ids = (Object.values(this.exportList)).filter(i => i.included).map(i => i.id).join();\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.signageCompilationService.export(ids)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let comps = results[0];\r\n\r\n let filename = `CompilationExports-${new Date().toLocaleString('sv-SE').replace(/-|:| /g, '')}.json`;\r\n\r\n var blob = new Blob([JSON.stringify(comps, null, 4)], { type: 'text/plain;charset=utf-8;' });\r\n if ((navigator).msSaveBlob) { // IE 10+\r\n (navigator).msSaveBlob(blob, filename);\r\n } else {\r\n var link = document.createElement(\"a\");\r\n if (link.download !== undefined) { // feature detection\r\n // Browsers that support HTML5 download attribute\r\n var url = URL.createObjectURL(blob);\r\n link.setAttribute(\"href\", url);\r\n link.setAttribute(\"download\", filename);\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n }\r\n\r\n this.exportList = {};\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve signage compilations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n importClicked() {\r\n document.getElementById('file').click()\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n let importFile = event ? event.dbPath : null;\r\n\r\n var r = confirm(`Are you sure you want to import from selected file?\\nAny data with same name will be overwritten, and you cannot undo this action.`);\r\n if (r) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.signageCompilationService.import(importFile)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n\r\n this.alertService.showMessage(\"Import Success\", \"Import Success\", MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to import signage compilations to the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n }\r\n\r\n addNewSignageCompilationToList() {\r\n if (this.sourceSignageCompilation) {\r\n Object.assign(this.sourceSignageCompilation, this.editedSignageCompilation);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceSignageCompilation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceSignageCompilation, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedSignageCompilation = null;\r\n this.sourceSignageCompilation = null;\r\n }\r\n else {\r\n let signageCompilation = new SignageCompilation();\r\n Object.assign(signageCompilation, this.editedSignageCompilation);\r\n this.editedSignageCompilation = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (signageCompilation).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, signageCompilation);\r\n this.rows.splice(0, 0, signageCompilation);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.signageCompilationService.getSignageCompilationByInstitutionId(this.accountService.currentUser.institutionId, this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let signageCompilations = results[0];\r\n let permissions = results[1];\r\n\r\n signageCompilations.forEach((signageCompilation, index, signageCompilations) => {\r\n (signageCompilation).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...signageCompilations];\r\n this.rows = signageCompilations;\r\n\r\n this.onSearchChanged(this.keyword);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve signage compilations from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingSignageCompilationName = null;\r\n this.signageCompilationEditor.resetForm(true);\r\n }\r\n\r\n\r\n newSignageCompilation() {\r\n this.editingSignageCompilationName = null;\r\n this.sourceSignageCompilation = null;\r\n this.editedSignageCompilation = this.signageCompilationEditor.newSignageCompilation();\r\n this.header = 'New Signage Compilation';\r\n //this.openDialog(this.editedSignageCompilation);\r\n //this.editorModal.show();\r\n this.showEditor = true;\r\n }\r\n\r\n\r\n editSignageCompilation(row: SignageCompilation) {\r\n this.editingSignageCompilationName = { name: row.name };\r\n this.sourceSignageCompilation = row;\r\n this.editedSignageCompilation = this.signageCompilationEditor.editSignageCompilation(row);\r\n this.header = 'Edit Signage Compilation';\r\n //this.editorModal.show();\r\n //this.openDialog(this.editedSignageCompilation);\r\n this.showEditor = true;\r\n }\r\n\r\n deleteSignageCompilation(row: SignageCompilation) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" signage compilation?', DialogType.confirm, () => this.deleteSignageCompilationHelper(row));\r\n }\r\n\r\n\r\n deleteSignageCompilationHelper(row: SignageCompilation) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.signageCompilationService.deleteSignageCompilation(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the signage compilation.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canCreateSignageCompilations() {\r\n return this.accountService.userHasPermission(Permission.createCompilationsPermission)\r\n }\r\n\r\n get canUpdateSignageCompilations() {\r\n return this.accountService.userHasPermission(Permission.updateCompilationsPermission)\r\n }\r\n\r\n get canDeleteSignageCompilations() {\r\n return this.accountService.userHasPermission(Permission.deleteCompilationsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n Refresh Interval\\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Date Text\\r\\n
    \\r\\n\\r\\n \\r\\n Format\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Time Text\\r\\n
    \\r\\n\\r\\n \\r\\n Format\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Format ExampleOutput
    d-M-y h:m a15-6-2015 9:3 AM
    dd-MM-yyyy hh:mm aa15-06-2015 09:03 AM
    E, d MMM y h:m aMon, 15 Jun 2015 9:3 AM
    EEEE, d MMMM y h:mm aMonday, 15 June 2015 9:03 AM
    \\r\\n\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'clock-configuration',\r\n templateUrl: './clock-configuration.component.html'\r\n\r\n})\r\nexport class ClockConfiguration {\r\n @Input() configurations: any = {};\r\n\r\n ngOnInit() {\r\n this.configurations = this.configurations || {};\r\n this.configurations.text1 = this.configurations.text1 || {};\r\n this.configurations.text2 = this.configurations.text2 || {};\r\n }\r\n\r\n fonts = [\r\n 'American Typewriter',\r\n 'Andalé Mono',\r\n 'Arial Black',\r\n 'Arial',\r\n 'Bradley Hand',\r\n 'Brush Script MT',\r\n 'Comic Sans MS',\r\n 'Courier',\r\n 'Didot',\r\n 'Georgia',\r\n 'Impact',\r\n 'Lucida Console',\r\n 'Luminari',\r\n 'Monaco',\r\n 'Tahoma',\r\n 'Times New Roman',\r\n 'Trebuchet MS',\r\n 'Verdana',\r\n ];\r\n\r\n aligns = [\r\n 'left',\r\n 'center',\r\n 'right',\r\n 'justify'\r\n ]\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n}\r\n","import { formatDate } from '@angular/common';\r\nimport { Component, Input, ChangeDetectorRef } from '@angular/core'\r\nimport { SignageComponent } from '../../../../models/signage-component.model';\r\n\r\n@Component({\r\n selector: 'clock',\r\n template: `
    \r\n
    \r\n{{text1}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n{{text2}}\r\n
    \r\n
    `\r\n\r\n})\r\nexport class Clock {\r\n @Input() configurations: any;\r\n text1: string;\r\n text2: string;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n\r\n }\r\n\r\n start() {\r\n let now = new Date();\r\n\r\n const locale = 'en-SG';\r\n\r\n this.text1 = formatDate(now, this.configurations.configurationsObj.text1.format || 'dd-MM-yyyy', locale);\r\n this.text2 = formatDate(now, this.configurations.configurationsObj.text2.format || 'hh:mm aa', locale);\r\n\r\n setTimeout(() => {\r\n this.start();\r\n }, (this.configurations.configurationsObj.interval || 30) * 1000);\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n this.start();\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n Direction\\r\\n \\r\\n \\r\\n {{f}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n Time from start to end (in second) default 10\\r\\n \\r\\n\\r\\n\\r\\n To see scrolling effect change in preview, need to click Hard Reload button.\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Regular Message (Message 1, 2, 3)\\r\\n
    \\r\\n Enable Scrolling\\r\\n (To see scrolling effect change in preview, need to click Hard Reload button.)\\r\\n
    \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Hide Emergency Message (Message 4)\\r\\n
    \\r\\n \\r\\n Blink Speed (in seconds)\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Disable Blinking\\r\\n
    \\r\\n Enable Scrolling\\r\\n (To see scrolling effect change in preview, need to click Hard Reload button.)\\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'emergency-message-configuration',\r\n templateUrl: './emergency-message-configuration.component.html'\r\n\r\n})\r\nexport class EmergencyMessageConfiguration {\r\n @Input() configurations: any = {};\r\n\r\n\r\n ngOnInit() {\r\n this.configurations = this.configurations || {};\r\n this.configurations.textStyle = this.configurations.textStyle || {};\r\n this.configurations.emergencyStyle = this.configurations.emergencyStyle || {};\r\n }\r\n\r\n directions = [\r\n 'left',\r\n 'right',\r\n 'top',\r\n 'bottom',\r\n ];\r\n\r\n fonts = [\r\n 'American Typewriter',\r\n 'Andalé Mono',\r\n 'Arial Black',\r\n 'Arial',\r\n 'Bradley Hand',\r\n 'Brush Script MT',\r\n 'Comic Sans MS',\r\n 'Courier',\r\n 'Didot',\r\n 'Georgia',\r\n 'Impact',\r\n 'Lucida Console',\r\n 'Luminari',\r\n 'Monaco',\r\n 'Tahoma',\r\n 'Times New Roman',\r\n 'Trebuchet MS',\r\n 'Verdana',\r\n ];\r\n\r\n aligns = [\r\n 'left',\r\n 'center',\r\n 'right',\r\n 'justify'\r\n ]\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n}\r\n","import { Component, Input, ChangeDetectorRef, ElementRef, ViewChild } from '@angular/core'\r\nimport { SignageComponent } from '../../../../models/signage-component.model';\r\nimport { style, animate, AnimationBuilder, AnimationPlayer } from '@angular/animations';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DeviceService } from '../../../../services/device.service';\r\nimport { AccountService } from '../../../../services/account.service';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { ConfigurationService } from '../../../../services/configuration.service';\r\n\r\n@Component({\r\n selector: 'emergency-message',\r\n template: `\r\n \r\n
    Sample Message!
    {{message}}
    \r\n \r\n\r\n\r\n \r\n \r\n Emergency Message!\r\n \r\n \r\n {{message}}\r\n \r\n \r\n\r\n\r\n`\r\n\r\n})\r\nexport class EmergencyMessage {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n device: any;\r\n message: string;\r\n message1: string;\r\n message2: string;\r\n message3: string;\r\n message4: string;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n\r\n directionMap = {\r\n left: 'right',\r\n right: 'left',\r\n top: 'bottom',\r\n bottom: 'top'\r\n }\r\n\r\n regularstyle = {};\r\n regularanimStyle = {};\r\n\r\n regularleft: any;\r\n\r\n emergencystyle = {};\r\n emergencyanimStyle = {};\r\n\r\n emergencyleft: any;\r\n\r\n @ViewChild('el') el: ElementRef;\r\n @ViewChild('em') em: ElementRef;\r\n mac_address: any;\r\n started: any;\r\n to: NodeJS.Timer;\r\n locationName: any;\r\n locationColorTheme: any;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private builder: AnimationBuilder, private route: ActivatedRoute, private deviceService: DeviceService, private authService: AuthService,\r\n private configurationService: ConfigurationService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n if (this.configurations.configurationsObj.textStyle && this.configurations.configurationsObj.textStyle.enableScrolling) this.startAnimation();\r\n\r\n if (this.configurations.configurationsObj.emergencyStyle && this.configurations.configurationsObj.emergencyStyle.enableScrolling) this.startEmergencyAnimation();\r\n\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n console.log(\"MACS\", this.mac_address);\r\n\r\n this.startMessage();\r\n\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n\r\n this.message1 = this.device.emergencyMessage1;\r\n this.message2 = this.device.emergencyMessage2;\r\n this.message3 = this.device.emergencyMessage3;\r\n this.message4 = this.device.emergencyMessage4;\r\n\r\n if (this.to) clearTimeout(this.to);\r\n this.startMessage();\r\n\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurationService.baseUrl + \"/hub/frsdevice?device_id=\" + this.device.id + \"&source=server\", true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"RefreshDeviceData\", (deviceVM) => {\r\n console.log('Refreshing Device Display');\r\n\r\n this.message1 = deviceVM.emergencyMessage1;\r\n this.message2 = deviceVM.emergencyMessage2;\r\n this.message3 = deviceVM.emergencyMessage3;\r\n this.message4 = deviceVM.emergencyMessage4;\r\n\r\n if (this.to) clearTimeout(this.to);\r\n this.startMessage();\r\n });\r\n }\r\n }\r\n\r\n },\r\n error => {\r\n\r\n });\r\n }\r\n\r\n defaultDuration = 30;\r\n\r\n startMessage(queue?: number) {\r\n queue = queue || 1;\r\n if (queue > 3) queue = 1;\r\n\r\n if (this.message4) this.message = this.message4;\r\n else if (this.message1 || this.message2 || this.message3) {\r\n this.configurations.configurationsObj.message1Duration = this.configurations.configurationsObj.message1Duration || this.defaultDuration;\r\n this.configurations.configurationsObj.message2Duration = this.configurations.configurationsObj.message2Duration || this.defaultDuration;\r\n this.configurations.configurationsObj.message3Duration = this.configurations.configurationsObj.message3Duration || this.defaultDuration;\r\n\r\n if (queue == 1) {\r\n if (this.message1) {\r\n this.message = this.message1;\r\n }\r\n\r\n this.setDelay(queue, this.configurations.configurationsObj.message1Duration);\r\n return;\r\n }\r\n\r\n if (queue == 2) {\r\n if (this.message2) {\r\n this.message = this.message2;\r\n }\r\n\r\n this.setDelay(queue, this.configurations.configurationsObj.message2Duration);\r\n return;\r\n }\r\n\r\n if (queue == 3) {\r\n if (this.message3) {\r\n this.message = this.message3;\r\n }\r\n\r\n this.setDelay(queue, this.configurations.configurationsObj.message3Duration);\r\n return;\r\n }\r\n }\r\n\r\n this.setDelay(queue, this.defaultDuration);\r\n }\r\n\r\n setDelay(queue, duration) {\r\n this.to = setTimeout(() => this.startMessage(++queue), duration * 1000);\r\n }\r\n\r\n private regularfactory;\r\n private regularplayer;\r\n\r\n private emergencyfactory;\r\n private emergencyplayer;\r\n\r\n\r\n private startAnimation() {\r\n this.regularleft = this.el.nativeElement.offsetWidth;\r\n\r\n this.regularstyle[this.directionMap[this.configurations.configurationsObj.direction || 'left']] = `-${this.regularleft}px`;\r\n this.regularanimStyle[this.directionMap[this.configurations.configurationsObj.direction || 'left']] = '100%';\r\n\r\n let s = this.configurations.configurationsObj.speed || 10;\r\n\r\n let ss = s + (this.regularleft / (this.configurations.configurationsObj.width / s));\r\n\r\n this.regularfactory = this.builder.build([\r\n style(this.regularstyle),\r\n animate((ss || s) * 1000, style(this.regularanimStyle))\r\n ]);\r\n\r\n this.regularplayer = this.regularfactory.create(this.el.nativeElement, {});\r\n\r\n this.regularplayer.reset();\r\n\r\n this.regularplayer.onDone(() => {\r\n this.startAnimation();\r\n });\r\n\r\n this.regularplayer.play();\r\n }\r\n\r\n private startEmergencyAnimation() {\r\n this.emergencyleft = this.em.nativeElement.offsetWidth;\r\n\r\n this.emergencystyle[this.directionMap[this.configurations.configurationsObj.direction || 'left']] = `-${this.emergencyleft}px`;\r\n this.emergencyanimStyle[this.directionMap[this.configurations.configurationsObj.direction || 'left']] = '100%';\r\n\r\n let s = this.configurations.configurationsObj.speed || 10;\r\n\r\n let ss = s + (this.emergencyleft / (this.configurations.configurationsObj.width / s));\r\n\r\n this.emergencyfactory = this.builder.build([\r\n style(this.emergencystyle),\r\n animate((ss || s) * 1000, style(this.emergencyanimStyle))\r\n ]);\r\n\r\n this.emergencyplayer = this.emergencyfactory.create(this.em.nativeElement, {});\r\n\r\n this.emergencyplayer.reset();\r\n\r\n this.emergencyplayer.onDone(() => {\r\n this.startEmergencyAnimation();\r\n });\r\n\r\n this.emergencyplayer.play();\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'employee-name-configuration',\r\n templateUrl: './employee-name-configuration.component.html'\r\n\r\n})\r\nexport class EmployeeNameConfiguration {\r\n @Input() configurations: any;\r\n\r\n ngOnInit() {\r\n this.configurations = this.configurations || {};\r\n this.configurations.name = this.configurations.name || {};\r\n }\r\n\r\n fonts = [\r\n 'American Typewriter',\r\n 'Andalé Mono',\r\n 'Arial Black',\r\n 'Arial',\r\n 'Bradley Hand',\r\n 'Brush Script MT',\r\n 'Comic Sans MS',\r\n 'Courier',\r\n 'Didot',\r\n 'Georgia',\r\n 'Impact',\r\n 'Lucida Console',\r\n 'Luminari',\r\n 'Monaco',\r\n 'Tahoma',\r\n 'Times New Roman',\r\n 'Trebuchet MS',\r\n 'Verdana',\r\n ];\r\n\r\n aligns = [\r\n 'left',\r\n 'center',\r\n 'right',\r\n 'justify'\r\n ]\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n show(obj) {\r\n return JSON.stringify(obj);\r\n }\r\n\r\n}\r\n","import { Component, Input, ChangeDetectorRef } from '@angular/core'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { EmployeeData } from '../../../../models/employee-data.model';\r\nimport { SignageComponent } from '../../../../models/signage-component.model';\r\nimport { AccountService } from '../../../../services/account.service';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { ConfigurationService } from '../../../../services/configuration.service';\r\nimport { DeviceService } from '../../../../services/device.service';\r\nimport { EmployeeDataService } from '../../../../services/employee-data.service';\r\n\r\n@Component({\r\n selector: 'employee-name',\r\n template: `\r\n
    \r\nEmployee Name\r\n\r\n 0\"> | {{e.displayName || e.name}}\r\n\r\n
    \r\n`\r\n\r\n})\r\nexport class EmployeeName {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n\r\n mac_address: any;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n device: any;\r\n locationColorTheme: any;\r\n locationName: any;\r\n employees: EmployeeData[];\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private authService: AuthService, private route: ActivatedRoute, private deviceService: DeviceService, private employeeDataService: EmployeeDataService, private configurationService: ConfigurationService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n console.log('employee')\r\n\r\n if (!this.preview) {\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n this.getDeviceInfo();\r\n\r\n this.start();\r\n }\r\n }\r\n\r\n start() {\r\n this.getEmployeeName();\r\n \r\n setTimeout(() => {\r\n this.start();\r\n }, 5 * 60 * 1000);\r\n }\r\n\r\n getEmployeeName() {\r\n if (!this.device || !this.device.locationId) return;\r\n\r\n this.employeeDataService.getCurrentEmployeeDataByLocation(this.device.locationId)\r\n .subscribe(results => {\r\n this.employees = results;\r\n\r\n },\r\n error => {\r\n });\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n\r\n if (this.configurations.configurationsObj.roomInfoLocationName) this.configurations.configurationsObj.texts.roomInfo.value = this.locationName;\r\n\r\n this.getEmployeeName();\r\n\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurationService.baseUrl + \"/hub/employeeschedule?location_id=\" + this.device.locationId, true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"UpdateSchedule\", (param) => {\r\n this.getEmployeeName();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n Free HTML Input\\r\\n \\r\\n\\r\\n\"","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'free-html-configuration',\r\n templateUrl: './free-html-configuration.component.html'\r\n\r\n})\r\nexport class FreeHTMLConfiguration {\r\n @Input() configurations: any = {};\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core'\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'free-html',\r\n template: `
    `\r\n\r\n})\r\nexport class FreeHTML {\r\n @Input() configurations: any;\r\n safeHtml: any;\r\n\r\n constructor(private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n if (!this.configurations.configurationsObj.html) this.configurations.configurationsObj.html = \"\";\r\n\r\n this.safeHtml = this.sanitizer.bypassSecurityTrustHtml(this.configurations.configurationsObj.html);\r\n }\r\n\r\n getSafeHTML(html) {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n\r\n ngOnChanges(changes: any) {\r\n console.log(\"HTML Changes\");\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Free Text\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'free-text-configuration',\r\n templateUrl: './free-text-configuration.component.html'\r\n\r\n})\r\nexport class FreeTextConfiguration {\r\n @Input() configurations: any;\r\n\r\n ngOnInit() {\r\n this.configurations = this.configurations || {};\r\n this.configurations.name = this.configurations.name || {};\r\n this.configurations.group = this.configurations.group || {};\r\n }\r\n\r\n fonts = [\r\n 'American Typewriter',\r\n 'Andalé Mono',\r\n 'Arial Black',\r\n 'Arial',\r\n 'Bradley Hand',\r\n 'Brush Script MT',\r\n 'Comic Sans MS',\r\n 'Courier',\r\n 'Didot',\r\n 'Georgia',\r\n 'Impact',\r\n 'Lucida Console',\r\n 'Luminari',\r\n 'Monaco',\r\n 'Tahoma',\r\n 'Times New Roman',\r\n 'Trebuchet MS',\r\n 'Verdana',\r\n ];\r\n\r\n aligns = [\r\n 'left',\r\n 'center',\r\n 'right',\r\n 'justify'\r\n ]\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n show(obj) {\r\n return JSON.stringify(obj);\r\n }\r\n\r\n}\r\n","import { Component, Input, ChangeDetectorRef } from '@angular/core'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SignageComponent } from '../../../../models/signage-component.model';\r\nimport { AccountService } from '../../../../services/account.service';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { DeviceService } from '../../../../services/device.service';\r\n\r\n@Component({\r\n selector: 'free-text',\r\n template: `\r\n\r\n`\r\n\r\n})\r\nexport class FreeText {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n\r\n mac_address: any;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n device: any;\r\n locationColorTheme: any;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private authService: AuthService, private route: ActivatedRoute, private deviceService: DeviceService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n console.log('location')\r\n\r\n if (!this.preview) {\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n this.getDeviceInfo();\r\n }\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n Hide Location Name\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Location Group\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'location-name-configuration',\r\n templateUrl: './location-name-configuration.component.html'\r\n\r\n})\r\nexport class LocationNameConfiguration {\r\n @Input() configurations: any;\r\n\r\n ngOnInit() {\r\n this.configurations = this.configurations || {};\r\n this.configurations.name = this.configurations.name || {};\r\n this.configurations.group = this.configurations.group || {};\r\n }\r\n\r\n fonts = [\r\n 'American Typewriter',\r\n 'Andalé Mono',\r\n 'Arial Black',\r\n 'Arial',\r\n 'Bradley Hand',\r\n 'Brush Script MT',\r\n 'Comic Sans MS',\r\n 'Courier',\r\n 'Didot',\r\n 'Georgia',\r\n 'Impact',\r\n 'Lucida Console',\r\n 'Luminari',\r\n 'Monaco',\r\n 'Tahoma',\r\n 'Times New Roman',\r\n 'Trebuchet MS',\r\n 'Verdana',\r\n ];\r\n\r\n aligns = [\r\n 'left',\r\n 'center',\r\n 'right',\r\n 'justify'\r\n ]\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n show(obj) {\r\n return JSON.stringify(obj);\r\n }\r\n\r\n}\r\n","import { Component, Input, ChangeDetectorRef } from '@angular/core'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SignageComponent } from '../../../../models/signage-component.model';\r\nimport { AccountService } from '../../../../services/account.service';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { DeviceService } from '../../../../services/device.service';\r\n\r\n@Component({\r\n selector: 'location-name',\r\n template: `
    \r\n
    \r\n Location Name\r\n {{locationName}}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Location Group\r\n {{locationGroup}}\r\n \r\n
    \r\n
    \r\n`\r\n\r\n})\r\nexport class LocationName {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n\r\n mac_address: any;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n device: any;\r\n locationColorTheme: any;\r\n locationName: any;\r\n locationGroup: any;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private authService: AuthService, private route: ActivatedRoute, private deviceService: DeviceService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n console.log('location')\r\n\r\n if (!this.preview) {\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n this.getDeviceInfo();\r\n }\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n this.locationGroup = this.device.locationGroup;\r\n\r\n if (this.configurations.configurationsObj.roomInfoLocationName) this.configurations.configurationsObj.texts.roomInfo.value = this.locationName;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n \\r\\n \\r\\n \\r\\n Will auto add 1 row at the top for header\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Leave blank for header height auto fit content height\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Hide Header\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    Label Header
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    Second Label Header
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    Queue No
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'missed-queue-configuration',\r\n templateUrl: './missed-queue-configuration.component.html'\r\n\r\n})\r\nexport class MissedQueueConfiguration {\r\n @Input() configurations: any = {};\r\n\r\n duplicate: string;\r\n\r\n ngOnInit() {\r\n this.configurations = this.configurations || {};\r\n this.configurations.labelHeaderStyle = this.configurations.labelHeaderStyle || {};\r\n this.configurations.secondLabelHeaderStyle = this.configurations.secondLabelHeaderStyle || {};\r\n\r\n this.configurations.stationids = this.configurations.stationids || {};\r\n }\r\n\r\n checkDuplicate() {\r\n this.duplicate = null;\r\n let map = {}\r\n for (let sid in this.configurations.stationids) {\r\n let pid = this.configurations.stationids[sid];\r\n\r\n if (!pid) continue;\r\n\r\n if (map[pid]) {\r\n this.duplicate = `Duplicate pair id between row-column ${map[pid]} and row-column ${sid} value \"${pid}\"`;\r\n break;\r\n }\r\n\r\n map[pid] = sid;\r\n }\r\n }\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n getArrays(num) {\r\n if (num && num > 0)\r\n return new Array(num);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n {{configurations.configurationsObj.labelText || 'Missed Queue'}} configurations.configurationsObj.noOfRows * configurations.configurationsObj.noOfColumns\\\">{{\\\"(\\\" + (page + 1) + \\\" of \\\" + (math.ceil(data.length / (configurations.configurationsObj.noOfRows * configurations.configurationsObj.noOfColumns))) + \\\")\\\"}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n {{configurations.configurationsObj.secondLabelText || ''}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n A1234\\r\\n \\r\\n {{data[(page * configurations.configurationsObj.noOfRows * configurations.configurationsObj.noOfColumns) + (i * configurations.configurationsObj.noOfColumns) + j]?.queueNo || '‍'}}\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","import { Component, Input, ChangeDetectorRef } from '@angular/core'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { SignageComponent } from '../../../../models/signage-component.model';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { DeviceService } from '../../../../services/device.service';\r\n\r\n@Component({\r\n selector: 'missed-queue',\r\n templateUrl: './missed-queue.component.html'\r\n\r\n})\r\nexport class MissedQueue {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n\r\n mac_address: any;\r\n\r\n device: any;\r\n locationColorTheme: any;\r\n locationName: any;\r\n\r\n page: number = 0;\r\n\r\n math = Math;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n data: any = [];\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private route: ActivatedRoute, private authService: AuthService, private deviceService: DeviceService,\r\n private configurationService: ConfigurationService) {\r\n\r\n }\r\n\r\n start(first?) {\r\n if (!first) {\r\n this.page++;\r\n\r\n if (this.page * this.configurations.configurationsObj.noOfRows * this.configurations.configurationsObj.noOfColumns >= this.data.length) this.page = 0;\r\n }\r\n\r\n setTimeout(() => {\r\n this.start();\r\n }, (this.configurations.configurationsObj.interval || 5) * 1000);\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n if (!this.preview) {\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurationService.baseUrl + \"/hub/queue?device_id=\" + this.mac_address, true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"UpdateQueue\", (param) => {\r\n this.updateQueue(param);\r\n });\r\n }\r\n\r\n this.getDeviceInfo();\r\n\r\n this.start(true);\r\n }\r\n }\r\n\r\n updateQueue(param) {\r\n this.data = this.data.filter(d => d.queueNo != param.queueNo);\r\n\r\n if (param.callAction == \"missed queue\") {\r\n this.data.unshift(this.assign(param));\r\n }\r\n\r\n param.deviceId = this.mac_address;\r\n\r\n //this.signalRCoreconnection.send(\"queueReturn\", param);\r\n }\r\n\r\n assign(param) {\r\n let target: any = {};\r\n\r\n target.roomInfo = param.roomInfo;\r\n\r\n target.servingInfo = param.servingInfo;\r\n\r\n target.doctorInfo = param.doctorInfo;\r\n\r\n target.assistantInfo = param.assistantInfo;\r\n\r\n target.queueNo = param.queueNo;\r\n\r\n return target;\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n }\r\n });\r\n }\r\n }\r\n\r\n getArrays(num) {\r\n if (num && num > 0)\r\n return new Array(num);\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n Screen Off When No Event\\r\\n
    \\r\\n
    \\r\\n Screen On When Event\\r\\n
    \\r\\n

    \\r\\n
    \\r\\n Picture Playlist Mode\\r\\n
    \\r\\n
    \\r\\n \\r\\n Picture Playlist Interval (seconds)\\r\\n \\r\\n \\r\\n
    \\r\\n

    \\r\\n
    Location
    \\r\\n \\r\\n \\r\\n 0 ? 'none' : 'block' }\\\">No results.\\r\\n \\r\\n {{building.name}}\\r\\n {{location.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 \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Meeting Title\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Contact\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Location\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Time\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Description\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { Location } from 'src/app/models/location.model';\r\nimport { LocType } from 'src/app/models/enums';\r\nimport { CalendarFilter } from '../../../../models/reservation.model';\r\nimport { AccountService } from '../../../../services/account.service';\r\nimport { ReservationService } from '../../../../services/reservation.service';\r\n\r\n@Component({\r\n selector: 'multi-booking-configuration',\r\n templateUrl: './multi-booking-configuration.component.html'\r\n\r\n})\r\nexport class MultiBookingConfiguration {\r\n @Input() configurations: any;\r\n\r\n buildingList: Location[];\r\n locationList: Location[];\r\n locationListCopy: Location[];\r\n\r\n filter: CalendarFilter = new CalendarFilter();\r\n\r\n constructor(private accountService: AccountService, private reservationService: ReservationService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.configurations = this.configurations || {};\r\n this.configurations.contactNo = this.configurations.contactNo || {};\r\n this.configurations.description = this.configurations.description || {};\r\n this.configurations.location = this.configurations.location || {};\r\n this.configurations.time = this.configurations.time || {};\r\n this.configurations.meetingPurpose = this.configurations.meetingPurpose || {};\r\n\r\n this.getFilters();\r\n this.initFilter();\r\n }\r\n\r\n fonts = [\r\n 'American Typewriter',\r\n 'Andalé Mono',\r\n 'Arial Black',\r\n 'Arial',\r\n 'Bradley Hand',\r\n 'Brush Script MT',\r\n 'Comic Sans MS',\r\n 'Courier',\r\n 'Didot',\r\n 'Georgia',\r\n 'Impact',\r\n 'Lucida Console',\r\n 'Luminari',\r\n 'Monaco',\r\n 'Tahoma',\r\n 'Times New Roman',\r\n 'Trebuchet MS',\r\n 'Verdana',\r\n ];\r\n\r\n aligns = [\r\n 'left',\r\n 'center',\r\n 'right',\r\n 'justify'\r\n ]\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n show(obj) {\r\n return JSON.stringify(obj);\r\n }\r\n\r\n getRoomsByBuildingId(id, value) {\r\n let unsortedLocations = this.locationList.filter(r => r.parentLocationId == id && Utilities.searchArray(value, false, r.name, r.description))\r\n unsortedLocations.sort((a, b) => (a.name < b.name ? -1 : 1));\r\n\r\n return unsortedLocations;\r\n }\r\n\r\n initFilter() {\r\n this.filter = new CalendarFilter();\r\n this.filter.start = new Date();\r\n }\r\n\r\n getFilters() {\r\n if (this.filter == null) {\r\n this.filter = new CalendarFilter();\r\n }\r\n\r\n this.filter.institutionId = this.accountService.currentUser.institutionId;\r\n this.filter.isBooking = true;\r\n this.reservationService.getCalendarFilters(this.filter)\r\n .subscribe(results => {\r\n\r\n let facilities = results[0];\r\n let locations = results[1];\r\n\r\n //let parentLocations = new Map();\r\n\r\n //locations.forEach((location, index, locations) => {\r\n // (location).index = index + 1;\r\n // if (location.parentLocation && location.parentLocation.locationTypeName == LocType.Building) {\r\n // if (!parentLocations.has(location.parentLocationId)) {\r\n // parentLocations.set(location.parentLocationId, location.parentLocation);\r\n // }\r\n // }\r\n\r\n //});\r\n\r\n\r\n this.locationList = locations;\r\n this.locationListCopy = locations;\r\n this.getLocationsByBuild();\r\n },\r\n error => {\r\n });\r\n }\r\n\r\n getLocationsByBuild() {\r\n let parentLocations = new Map();\r\n\r\n this.locationListCopy.forEach((location, index, locations) => {\r\n (location).index = index + 1;\r\n if (location.parentLocation && location.parentLocation.locationTypeName == LocType.Building) {\r\n if (!parentLocations.has(location.parentLocationId)) {\r\n parentLocations.set(location.parentLocationId, location.parentLocation);\r\n }\r\n }\r\n\r\n });\r\n\r\n this.buildingList = Array.from(parentLocations.values());\r\n }\r\n\r\n locationSearchOnKeyUp(value) {\r\n this.locationListCopy = this.search(value);\r\n this.getLocationsByBuild();\r\n }\r\n\r\n search(value: string) {\r\n return this.locationList.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n  \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n Meeting Title\\r\\n \\r\\n \\r\\n {{\\r\\ncalendarEvents[\\r\\n (page * configurations.configurationsObj.noOfRows * configurations.configurationsObj.noOfColumns) +\\r\\n (i * configurations.configurationsObj.noOfColumns)\\r\\n + j\\r\\n ]?.meta?.reservation?.shortDescription\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Description\\r\\n \\r\\n \\r\\n {{\\r\\ncalendarEvents[\\r\\n (page * configurations.configurationsObj.noOfRows * configurations.configurationsObj.noOfColumns) +\\r\\n (i * configurations.configurationsObj.noOfColumns)\\r\\n + j\\r\\n ]?.meta?.reservation?.longDescription\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Location\\r\\n \\r\\n \\r\\n {{\\r\\ncalendarEvents[\\r\\n (page * configurations.configurationsObj.noOfRows * configurations.configurationsObj.noOfColumns) +\\r\\n (i * configurations.configurationsObj.noOfColumns)\\r\\n + j\\r\\n ]?.meta?.location?.name\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Time\\r\\n \\r\\n \\r\\n {{\\r\\ncalendarEvents[\\r\\n (page * configurations.configurationsObj.noOfRows * configurations.configurationsObj.noOfColumns) +\\r\\n (i * configurations.configurationsObj.noOfColumns)\\r\\n + j\\r\\n ]?.time\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Contact\\r\\n \\r\\n \\r\\n {{\\r\\ncalendarEvents[\\r\\n (page * configurations.configurationsObj.noOfRows * configurations.configurationsObj.noOfColumns) +\\r\\n (i * configurations.configurationsObj.noOfColumns)\\r\\n + j\\r\\n ]?.meta?.reservation?.createdByName\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, Input, ChangeDetectorRef } from '@angular/core'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CalendarEvent } from 'angular-calendar';\r\nimport { CalendarFilter } from '../../../../models/reservation.model';\r\nimport { SignageComponent } from '../../../../models/signage-component.model';\r\nimport { AccountService } from '../../../../services/account.service';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { ConfigurationService } from '../../../../services/configuration.service';\r\nimport { DeviceService } from '../../../../services/device.service';\r\nimport { ReservationService } from '../../../../services/reservation.service';\r\nimport { Utilities } from '../../../../services/utilities';\r\nimport { formatDate } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'multi-booking',\r\n templateUrl: './multi-booking.component.html'\r\n\r\n})\r\nexport class MultiBooking {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n\r\n mac_address: any;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n device: any;\r\n locationColorTheme: any;\r\n locationName: any;\r\n\r\n filter: CalendarFilter;\r\n calendarEvents: CalendarEvent[] = [];\r\n institutionId: any;\r\n time: any;\r\n\r\n medias = [];\r\n\r\n page: number = 0;\r\n\r\n current = 0;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private authService: AuthService, private route: ActivatedRoute, private deviceService: DeviceService, private reservationService: ReservationService, private configurationService: ConfigurationService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n console.log('employee')\r\n\r\n if (!this.preview) {\r\n this.configurations.configurationsObj.noOfRows = this.configurations.configurationsObj.noOfRows || 0;\r\n this.configurations.configurationsObj.noOfColumns = this.configurations.configurationsObj.noOfColumns || 0;\r\n\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n this.getDeviceInfo();\r\n\r\n this.start();\r\n\r\n this.switchPage(true);\r\n\r\n this.startPlaylist();\r\n }\r\n }\r\n\r\n switchPage(first?) {\r\n if (!first) {\r\n this.page++;\r\n\r\n if (this.page * this.configurations.configurationsObj.noOfRows * this.configurations.configurationsObj.noOfColumns >= this.calendarEvents.length) this.page = 0;\r\n }\r\n\r\n setTimeout(() => {\r\n this.switchPage();\r\n }, (this.configurations.configurationsObj.interval || 5) * 1000);\r\n }\r\n\r\n\r\n start() {\r\n this.getMultiBooking();\r\n\r\n setTimeout(() => {\r\n this.start();\r\n }, 5 * 60 * 1000);\r\n }\r\n\r\n getMultiBooking() {\r\n if (!this.device || !this.device.locationId) return;\r\n\r\n this.filter = new CalendarFilter();\r\n this.filter.institutionId = this.institutionId;\r\n this.filter.locationIds = this.configurations.configurationsObj.locationIds && this.configurations.configurationsObj.locationIds[0] ? this.configurations.configurationsObj.locationIds : null;\r\n this.filter.isBooking = true;\r\n this.filter.start = new Date();\r\n this.filter.start = new Date(this.filter.start.setHours(0, 0, 0, 0));\r\n this.filter.startTime = new Date(this.filter.start.setHours(0, 0, 0, 0));\r\n this.filter.endTime = new Date(this.filter.start.setHours(23, 59, 59, 0));\r\n\r\n const locale = 'en-SG';\r\n\r\n this.reservationService.getCalendarEvents(this.filter).subscribe(events => {\r\n this.calendarEvents = [];\r\n var currentTime = Utilities.getCurrentDate(true);\r\n this.medias = [];\r\n events.forEach((event, index, events) => {\r\n event.start = new Date(event.start);\r\n event.end = new Date(event.end);\r\n if (event.meta != null && event.meta.reservation != null && event.end >= currentTime) {\r\n\r\n let tempEvent: any = event;\r\n tempEvent.time = event.meta.reservation.displayTime || formatDate(event.start, 'hh:mm aa', locale) + \" - \" + formatDate(event.end, 'hh:mm aa', locale);\r\n this.calendarEvents.push(tempEvent);\r\n\r\n if (event.meta.reservation.reservationPictures && event.meta.reservation.reservationPictures[0]) {\r\n this.medias = [...this.medias, ...event.meta.reservation.reservationPictures.map(u => this.removeBackSlash(u))];\r\n\r\n console.log(\"MEMEDIA\", this.medias);\r\n }\r\n }\r\n });\r\n\r\n if (this.calendarEvents[0]) {\r\n if (this.configurations.configurationsObj.screenon) this.on();\r\n } else {\r\n if (this.configurations.configurationsObj.screenoff) this.off();\r\n }\r\n });\r\n }\r\n\r\n startPlaylist() {\r\n\r\n\r\n let duration = this.configurations.configurationsObj.pictureModeInterval || 5;\r\n\r\n\r\n if (this.medias && this.medias.length > 0) {\r\n this.current++;\r\n\r\n if (this.current >= this.medias.length) this.current = 0;\r\n }\r\n\r\n setTimeout(() => {\r\n this.startPlaylist();\r\n }, duration * 1000);\r\n }\r\n\r\n removeBackSlash(url) {\r\n url = url.replaceAll('\\\\', '/')\r\n url = escape(url);\r\n return url;\r\n }\r\n\r\n off() {\r\n if (!this.device) return;\r\n\r\n this.deviceService.off(this.device.id);\r\n }\r\n\r\n on() {\r\n if (!this.device) return;\r\n\r\n this.deviceService.on(this.device.id);\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n this.institutionId = this.device.institutionId;\r\n\r\n this.getMultiBooking();\r\n }\r\n });\r\n }\r\n }\r\n\r\n getArrays(num) {\r\n if (num && num > 0)\r\n return new Array(num);\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n FIFO Mode (First In First Out)\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Will auto add 1 row at the top for header\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n Will auto multiply by 2 for Queue Label\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Leave blank for header height auto fit content height\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n in percentage\\r\\n Hide Header\\r\\n  \\r\\n Swap Label and Queue No\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    Input Header Label
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Room Info as Labels\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    Input {{configurations.fifoMode ? 'Component' : 'Pair'}} Id
    \\r\\n {{duplicate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n  \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n Queue Sound\\r\\n\\r\\n
    \\r\\n No Sound\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n If no sound uploaded, default sound will be played
    \\r\\n Play\\r\\n Remove\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    Queue Label Header
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    Queue No Header
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    Queue Label
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    Queue No
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'multi-queue-configuration',\r\n templateUrl: './multi-queue-configuration.component.html'\r\n\r\n})\r\nexport class MultiQueueConfiguration {\r\n @Input() configurations: any = {};\r\n\r\n duplicate: string;\r\n\r\n ngOnInit() {\r\n this.configurations = this.configurations || {};\r\n this.configurations.labelHeaderStyle = this.configurations.labelHeaderStyle || { };\r\n this.configurations.queueNoHeaderStyle = this.configurations.queueNoHeaderStyle || {};\r\n\r\n this.configurations.stationids = this.configurations.stationids || {};\r\n this.configurations.stationlabels = this.configurations.stationlabels || {};\r\n\r\n this.configurations.headerlabels = this.configurations.headerlabels || {};\r\n this.configurations.queuenolabels = this.configurations.queuenolabels || {};\r\n }\r\n\r\n public uploadSoundFinished = (event) => {\r\n this.configurations.queueSound = event ? event.dbPath : null;\r\n\r\n if (this.configurations.queueSound) this.configurations.queueSound = this.configurations.queueSound.replace(/\\\\/g, '/');\r\n }\r\n\r\n play() {\r\n var audio = new Audio(this.configurations.queueSound || 'Resources/queue-bell.mp3')//this.configurations.queueSound);\r\n audio.play();\r\n }\r\n\r\n checkDuplicate() {\r\n this.duplicate = null;\r\n let map = {}\r\n for (let sid in this.configurations.stationids) {\r\n let pid = this.configurations.stationids[sid];\r\n\r\n if (!pid) continue;\r\n\r\n if (map[pid]) {\r\n this.duplicate = `Duplicate pair id between row-column ${map[pid]} and row-column ${sid} value \"${pid}\"`;\r\n break;\r\n }\r\n\r\n map[pid] = sid;\r\n }\r\n }\r\n\r\n rowColumnChanged() {\r\n if (!this.configurations.noOfRows || !this.configurations.noOfColumns) return;\r\n\r\n for (let i in this.configurations.stationids) {\r\n if (i) {\r\n let r = i.split(\"-\")[0];\r\n let c = i.split(\"-\")[1];\r\n\r\n if (r > (this.configurations.noOfRows - 1) + '' || c > (this.configurations.noOfColumns - 1) + '') this.configurations.stationids[i] = null;\r\n }\r\n }\r\n\r\n for (let i in this.configurations.stationlabels) {\r\n if (i) {\r\n let r = i.split(\"-\")[0];\r\n let c = i.split(\"-\")[1];\r\n\r\n if (r > (this.configurations.noOfRows - 1) + '' || c > (this.configurations.noOfColumns - 1) + '') this.configurations.stationlabels[i] = null;\r\n }\r\n }\r\n\r\n for (let i in this.configurations.headerlabels) { \r\n if (i > (this.configurations.noOfColumns - 1) + '') this.configurations.headerlabels[i] = null;\r\n }\r\n\r\n for (let i in this.configurations.queuenolabels) {\r\n if (i > (this.configurations.noOfColumns - 1) + '') this.configurations.queuenolabels[i] = null;\r\n }\r\n }\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n getArrays(num) {\r\n if (num && num > 0)\r\n return new Array(num);\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n {{configurations.configurationsObj.headerlabels[floor(j/2)] || 'Label'}}\\r\\n
    \\r\\n
    \\r\\n {{configurations.configurationsObj.queuenolabels[floor(j/2)] || 'Queue No'}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n {{data[i + '-' + (floor(j/2))]?.roomInfo}}\\r\\n {{configurations.configurationsObj.stationlabels[i + '-' + (floor(j/2))]}}\\r\\n \\r\\n \\r\\n {{'Room ' + (((floor(j/2)) * configurations.configurationsObj.noOfRows) + i + 1)}}\\r\\n \\r\\n \\r\\n {{dataFifo[idx]?.roomName}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n {{'A' + i + '-' + floor(j/2)}}\\r\\n \\r\\n {{data[i + '-' + floor(j/2)]?.queueNo || '‍'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{'Queue ' + (parseInteger(idx) + 1) }}\\r\\n \\r\\n {{dataFifo[idx]?.queueNo || '‍'}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\"","import { Component, Input, ChangeDetectorRef, Directive } from '@angular/core'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ConfigurationService } from '../../../../services/configuration.service';\r\nimport { SignageComponent } from '../../../../models/signage-component.model';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { DeviceService } from '../../../../services/device.service';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'multi-queue',\r\n templateUrl: './multi-queue.component.html',\r\n animations: [\r\n trigger(\"changeBodyColor\", [\r\n state('off', style({\r\n color: '{{default}}'\r\n }), { params: { default: 'black' } }),\r\n state('on', style({\r\n color: '{{color}}'\r\n }), { params: { color: 'red' } }),\r\n transition('off => on', animate('0.5s')),\r\n transition('on => off', animate('0.5s'))\r\n ])\r\n ]\r\n\r\n})\r\nexport class MultiQueue {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n\r\n mac_address: any;\r\n\r\n device: any;\r\n locationColorTheme: any;\r\n locationName: any;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n data: any = {};\r\n dataFifo: any = [];\r\n obj: any;\r\n\r\n swap = true;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private route: ActivatedRoute, private authService: AuthService, private deviceService: DeviceService,\r\n private configurationService: ConfigurationService) {\r\n\r\n }\r\n\r\n checkEven(j) {\r\n return (this.configurations.configurationsObj.swapLabel && j % 2 != 0) || (!this.configurations.configurationsObj.swapLabel && j % 2 == 0);\r\n }\r\n\r\n checkOdd(j) {\r\n return (this.configurations.configurationsObj.swapLabel && j % 2 == 0) || (!this.configurations.configurationsObj.swapLabel && j % 2 != 0);\r\n }\r\n\r\n floor(j) {\r\n return Math.floor(j);\r\n }\r\n\r\n parseInteger(str: string) {\r\n try {\r\n return parseInt(str);\r\n } catch (ex) {\r\n return str;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n this.configurations.configurationsObj.stationlabels = this.configurations.configurationsObj.stationlabels || {};\r\n\r\n this.configurations.configurationsObj.headerlabels = this.configurations.configurationsObj.headerlabels || {};\r\n this.configurations.configurationsObj.queuenolabels = this.configurations.configurationsObj.queuenolabels || {};\r\n\r\n this.obj = this.configurations.configurationsObj;\r\n\r\n if (!this.preview) {\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurationService.baseUrl + \"/hub/queue?device_id=\" + this.mac_address, true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"UpdateQueue\", (param) => {\r\n this.updateStationId(param);\r\n });\r\n }\r\n\r\n this.getDeviceInfo();\r\n }\r\n }\r\n\r\n updateStationId(param) {\r\n let dataidx = null;\r\n\r\n let idx = this.findStationId(param);\r\n\r\n if (!idx) return;\r\n\r\n if (!this.configurations.configurationsObj.fifoMode) {\r\n if (!this.data[idx]) this.data[idx] = {};\r\n\r\n dataidx = this.data[idx];\r\n } else {\r\n let exist = this.dataFifo.find((d) => d ? d.roomName === param.roomName : false);\r\n\r\n if (!exist) {\r\n this.dataFifo.unshift({});\r\n dataidx = this.dataFifo[0];\r\n\r\n this.dataFifo.length = this.configurations.configurationsObj.noOfRows * this.configurations.configurationsObj.noOfColumns;\r\n } else {\r\n dataidx = exist;\r\n }\r\n }\r\n\r\n if (!dataidx) return;\r\n\r\n dataidx.stationId = param.stationId;\r\n\r\n if (param.callAction == \"call\" || param.callAction == \"silent call\") {\r\n dataidx.roomName = param.roomName;\r\n\r\n dataidx.queueNo = param.queueNo;\r\n }\r\n\r\n if ((param.callAction == \"clear\" || param.callAction == \"missed queue\") && dataidx.queueNo === param.queueNo) {\r\n dataidx.roomName = '';\r\n\r\n dataidx.queueNo = '';\r\n }\r\n\r\n dataidx.roomInfo = param.roomInfo;\r\n\r\n dataidx.servingInfo = param.servingInfo;\r\n\r\n dataidx.doctorInfo = param.doctorInfo;\r\n\r\n dataidx.assistantInfo = param.assistantInfo;\r\n\r\n param.currentDisplay = dataidx.queueNo;\r\n param.deviceId = this.mac_address;\r\n\r\n if (dataidx.queueNo && !this.configurations.configurationsObj.noSound && param.callAction == \"call\") {\r\n let audio = new Audio(this.configurations.configurationsObj.queueSound || 'Resources/queue-bell.mp3') //this.configurations.configurationsObj.queueSound);\r\n audio.play();\r\n }\r\n\r\n if (dataidx.queueNo) {\r\n dataidx.isFlashing = true;\r\n dataidx.isOn = true;\r\n\r\n this.toggle(dataidx);\r\n\r\n setTimeout(() => dataidx.isFlashing = false, (this.configurations.configurationsObj.flashDuration || 7) * 1000);\r\n }\r\n\r\n this.signalRCoreconnection.send(\"queueReturn\", param);\r\n\r\n if (this.configurations.configurationsObj.fifoMode) this.dataFifo = this.dataFifo.filter(d => d.queueNo && d.roomName);\r\n }\r\n\r\n toggle(dataidx) {\r\n setTimeout(() => {\r\n dataidx.isOn = !dataidx.isOn;\r\n if (dataidx.isFlashing) this.toggle(dataidx);\r\n }, 500);\r\n }\r\n\r\n findStationId(param) {\r\n let stationids = this.configurations.configurationsObj.stationids;\r\n\r\n for (const key of Object.keys(stationids)) {\r\n if (stationids[key] == param.stationId) return key;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n }\r\n });\r\n }\r\n }\r\n\r\n getArrays(num) {\r\n if (num && num > 0)\r\n return new Array(num);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'ngInit',\r\n exportAs: 'ngInit'\r\n})\r\nexport class NgInit {\r\n @Input() values: any = {};\r\n\r\n @Input() ngInit;\r\n ngOnInit() {\r\n if (this.ngInit) { this.ngInit(); }\r\n }\r\n}\r\n","module.exports = \"\\r\\n Select Playlist\\r\\n \\r\\n \\r\\n {{p.name}}\\r\\n \\r\\n \\r\\n\\r\\n\"","import { Component, Input } from '@angular/core';\r\nimport { PlaylistService } from '../../../../services/playlist.service';\r\nimport { Playlist } from '../../../../models/playlist.model';\r\n\r\n@Component({\r\n selector: 'playlist-configuration',\r\n templateUrl: './playlist-configuration.component.html'\r\n\r\n})\r\nexport class SignagePlaylistConfiguration {\r\n @Input() configurations: any = {};\r\n allPlaylist: Playlist[];\r\n\r\n constructor(public playlistService: PlaylistService) { }\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n ngOnInit() {\r\n this.playlistService.getPlaylists(-1, -1, null)\r\n .subscribe(results => {\r\n\r\n\r\n this.allPlaylist = results;\r\n\r\n\r\n },\r\n error => { });\r\n }\r\n}\r\n","module.exports = \".w3-animate-fadein{\\r\\n -webkit-animation:opac 1.6s;\\r\\n animation:opac 1.6s}@-webkit-keyframes opac{from{opacity:0} to{opacity:1}}@keyframes opac{from{opacity:0} to{opacity:1}}.w3-animate-top{\\r\\n position:relative;-webkit-animation:animatetop 0.4s;animation:animatetop 0.4s}@-webkit-keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}.w3-animate-left{\\r\\n position:relative;-webkit-animation:animateleft 0.4s;animation:animateleft 0.4s}@-webkit-keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}.w3-animate-right{\\r\\n position:relative;-webkit-animation:animateright 0.4s;animation:animateright 0.4s}@-webkit-keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}.w3-animate-bottom{\\r\\n position:relative;-webkit-animation:animatebottom 0.4s;animation:animatebottom 0.4s}@-webkit-keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}.w3-animate-zoom {\\r\\n -webkit-animation:animatezoom 0.6s;\\r\\n animation:animatezoom 0.6s}@-webkit-keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtY29tcG9uZW50LXR5cGVzL3BsYXlsaXN0L3BsYXlsaXN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSwyQkFBa0I7WUFBbEIsbUJBQW1CLENBQUMsd0JBQWdCLEtBQUssU0FBUyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQTdDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUNyRTtJQUNJLGlCQUFpQixDQUFDLGlDQUF3QixDQUF4Qix5QkFBeUIsQ0FBQyw4QkFBc0IsS0FBSyxVQUFVLENBQUMsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFwRSxzQkFBc0IsS0FBSyxVQUFVLENBQUMsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUNwSDtJQUNJLGlCQUFpQixDQUFDLGtDQUF5QixDQUF6QiwwQkFBMEIsQ0FBQywrQkFBdUIsS0FBSyxXQUFXLENBQUMsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUF2RSx1QkFBdUIsS0FBSyxXQUFXLENBQUMsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUN4SDtJQUNJLGlCQUFpQixDQUFDLG1DQUEwQixDQUExQiwyQkFBMkIsQ0FBQyxnQ0FBd0IsS0FBSyxZQUFZLENBQUMsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUExRSx3QkFBd0IsS0FBSyxZQUFZLENBQUMsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUM1SDtJQUNJLGlCQUFpQixDQUFDLG9DQUEyQixDQUEzQiw0QkFBNEIsQ0FBQyxpQ0FBeUIsS0FBSyxhQUFhLENBQUMsU0FBUyxFQUFFLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUE3RSx5QkFBeUIsS0FBSyxhQUFhLENBQUMsU0FBUyxFQUFFLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUNoSTtJQUNJLGtDQUF5QjtZQUF6QiwwQkFBMEIsQ0FBQywrQkFBdUIsS0FBSyxrQkFBa0IsRUFBRSxHQUFHLGtCQUFrQixDQUFDLENBQXRFLHVCQUF1QixLQUFLLGtCQUFrQixFQUFFLEdBQUcsa0JBQWtCLENBQUMiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NpZ25hZ2Uvc2lnbmFnZS1jb21wb25lbnQtdHlwZXMvcGxheWxpc3QvcGxheWxpc3QuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi53My1hbmltYXRlLWZhZGVpbntcclxuICAgIGFuaW1hdGlvbjpvcGFjIDEuNnN9QGtleWZyYW1lcyBvcGFje2Zyb217b3BhY2l0eTowfSB0b3tvcGFjaXR5OjF9fVxyXG4udzMtYW5pbWF0ZS10b3B7XHJcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTthbmltYXRpb246YW5pbWF0ZXRvcCAwLjRzfUBrZXlmcmFtZXMgYW5pbWF0ZXRvcHtmcm9te3RvcDotMzAwcHg7b3BhY2l0eTowfSB0b3t0b3A6MDtvcGFjaXR5OjF9fVxyXG4udzMtYW5pbWF0ZS1sZWZ0e1xyXG4gICAgcG9zaXRpb246cmVsYXRpdmU7YW5pbWF0aW9uOmFuaW1hdGVsZWZ0IDAuNHN9QGtleWZyYW1lcyBhbmltYXRlbGVmdHtmcm9te2xlZnQ6LTMwMHB4O29wYWNpdHk6MH0gdG97bGVmdDowO29wYWNpdHk6MX19XHJcbi53My1hbmltYXRlLXJpZ2h0e1xyXG4gICAgcG9zaXRpb246cmVsYXRpdmU7YW5pbWF0aW9uOmFuaW1hdGVyaWdodCAwLjRzfUBrZXlmcmFtZXMgYW5pbWF0ZXJpZ2h0e2Zyb217cmlnaHQ6LTMwMHB4O29wYWNpdHk6MH0gdG97cmlnaHQ6MDtvcGFjaXR5OjF9fVxyXG4udzMtYW5pbWF0ZS1ib3R0b217XHJcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTthbmltYXRpb246YW5pbWF0ZWJvdHRvbSAwLjRzfUBrZXlmcmFtZXMgYW5pbWF0ZWJvdHRvbXtmcm9te2JvdHRvbTotMzAwcHg7b3BhY2l0eTowfSB0b3tib3R0b206MDtvcGFjaXR5OjF9fVxyXG4udzMtYW5pbWF0ZS16b29tIHtcclxuICAgIGFuaW1hdGlvbjphbmltYXRlem9vbSAwLjZzfUBrZXlmcmFtZXMgYW5pbWF0ZXpvb217ZnJvbXt0cmFuc2Zvcm06c2NhbGUoMCl9IHRve3RyYW5zZm9ybTpzY2FsZSgxKX19XHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","import { Component, Input } from '@angular/core'\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { PlaylistService } from '../../../../services/playlist.service';\r\n\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { ConfigurationService } from '../../../../services/configuration.service';\r\n\r\nimport { DeviceService } from '../../../../services/device.service';\r\n\r\n@Component({\r\n selector: 'signage-playlist',\r\n templateUrl: './playlist.component.html',\r\n styleUrls: ['./playlist.component.css']\r\n})\r\nexport class SignagePlaylist {\r\n @Input() configurations: any;\r\n\r\n @Input() preview: boolean;\r\n\r\n mac_address: any;\r\n device: any;\r\n locationColorTheme: any;\r\n locationName: any;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n defaultVolume: any = 0;\r\n\r\n medias;\r\n\r\n current = 0;\r\n\r\n even = false;\r\n\r\n url;\r\n isVideo;\r\n animation;\r\n changeVar: any;\r\n data: any;\r\n playlist: any;\r\n\r\n constructor(private sanitizer: DomSanitizer, private playlistService: PlaylistService, private route: ActivatedRoute, private authService: AuthService,\r\n private configurationService: ConfigurationService, private deviceService: DeviceService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"playlist on INIT\")\r\n\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n if (!this.preview) {\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n\r\n\r\n this.getDeviceInfo();\r\n }\r\n\r\n this.startPlaylist();\r\n }\r\n\r\n getData() {\r\n this.url = null;\r\n\r\n this.playlistService.getPlaylistById(this.configurations.configurationsObj.playlistId)\r\n .subscribe(result => {\r\n this.playlist = result;\r\n this.medias = result.images;\r\n\r\n if (this.medias) this.medias = this.medias.sort((a, b) => a.imageIndex - b.imageIndex);\r\n\r\n try {\r\n localStorage.setItem(\"playlist-\" + this.configurations.configurationsObj.playlistId, JSON.stringify(this.medias));\r\n } catch (ex) { }\r\n },\r\n error => { });\r\n }\r\n\r\n startPlaylist() {\r\n console.log(\"start playlist\", this.medias);\r\n\r\n try {\r\n if (!this.medias) {\r\n this.medias = JSON.parse(localStorage.getItem(\"playlist-\" + this.configurations.configurationsObj.playlistId));\r\n }\r\n } catch (ex) { }\r\n\r\n let duration = 5;\r\n\r\n if (!this.playlist || this.playlist.id != this.configurations.configurationsObj.playlistId) this.getData();\r\n\r\n if (this.medias && this.medias.length > 0) {\r\n if (this.current >= this.medias.length) this.current = 0;\r\n\r\n let m = this.medias[this.current];\r\n\r\n this.url = m.imageLocation;\r\n this.isVideo = m.isVideo;\r\n\r\n if (m.animation) this.animation = \"w3-animate-\" + m.animation;\r\n if (m.duration) duration = m.duration;\r\n\r\n this.even = !this.even;\r\n\r\n this.current++;\r\n }\r\n\r\n setTimeout(() => {\r\n this.startPlaylist();\r\n }, duration * 1000);\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n this.defaultVolume = this.device.defaultVolume || 0;\r\n\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurationService.baseUrl + \"/hub/frsdevice?device_id=\" + this.device.id + \"&source=server\", true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"RefreshDeviceData\", (deviceVM) => {\r\n console.log('Refreshing Device Display');\r\n this.defaultVolume = deviceVM.defaultVolume || 0;\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewChild, ComponentFactoryResolver, OnDestroy, Type, ComponentRef, EventEmitter, Output } from '@angular/core';\r\n\r\nimport { SignageComponentTypeDirective } from '../../../directives/signage-component-type.directive';\r\nimport { SignageComponentType } from '../../../models/signage-component-type.model';\r\n\r\n@Component({\r\n selector: 'signage-component-type-wrapper',\r\n template: ``\r\n})\r\nexport class SignageComponentTypeWrapperComponent implements OnInit, OnDestroy {\r\n componentRef: ComponentRef;\r\n\r\n @Input() type: Type;\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n @ViewChild(SignageComponentTypeDirective) componentTypeHost: SignageComponentTypeDirective;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver) { }\r\n\r\n ngOnInit() {\r\n this.loadComponent(this.type, this.configurations, this.preview);\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n\r\n loadComponent(type: Type, configurations: any, preview?: boolean) {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(type);\r\n\r\n const viewContainerRef = this.componentTypeHost.viewContainerRef;\r\n viewContainerRef.clear();\r\n\r\n this.componentRef = viewContainerRef.createComponent(componentFactory);\r\n this.componentRef.instance.configurations = configurations || {};\r\n this.componentRef.instance.preview = preview;\r\n }\r\n\r\n getConfigurations() {\r\n if (this.componentRef) return this.componentRef.instance.getConfigurations();\r\n }\r\n}\r\n\r\n\r\n/*\r\nCopyright Google LLC. All Rights Reserved.\r\nUse of this source code is governed by an MIT-style license that\r\ncan be found in the LICENSE file at https://angular.io/license\r\n*/\r\n","module.exports = \"
    \\r\\n
    \\r\\n Screen Off When No Event\\r\\n
    \\r\\n
    \\r\\n Screen On When Event\\r\\n
    \\r\\n

    \\r\\n
    \\r\\n Picture Playlist Mode\\r\\n
    \\r\\n
    \\r\\n \\r\\n Picture Playlist Interval (seconds)\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Hide Description\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Contact\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Location\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Time\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide Meeting Purpose\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'single-booking-configuration',\r\n templateUrl: './single-booking-configuration.component.html'\r\n\r\n})\r\nexport class SingleBookingConfiguration {\r\n @Input() configurations: any;\r\n\r\n ngOnInit() {\r\n this.configurations = this.configurations || {};\r\n this.configurations.contactNo = this.configurations.contactNo || {};\r\n this.configurations.description = this.configurations.description || {};\r\n this.configurations.location = this.configurations.location || {};\r\n this.configurations.time = this.configurations.time || {};\r\n this.configurations.meetingPurpose = this.configurations.meetingPurpose || {};\r\n }\r\n\r\n fonts = [\r\n 'American Typewriter',\r\n 'Andalé Mono',\r\n 'Arial Black',\r\n 'Arial',\r\n 'Bradley Hand',\r\n 'Brush Script MT',\r\n 'Comic Sans MS',\r\n 'Courier',\r\n 'Didot',\r\n 'Georgia',\r\n 'Impact',\r\n 'Lucida Console',\r\n 'Luminari',\r\n 'Monaco',\r\n 'Tahoma',\r\n 'Times New Roman',\r\n 'Trebuchet MS',\r\n 'Verdana',\r\n ];\r\n\r\n aligns = [\r\n 'left',\r\n 'center',\r\n 'right',\r\n 'justify'\r\n ]\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n show(obj) {\r\n return JSON.stringify(obj);\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, Input, ChangeDetectorRef } from '@angular/core'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CalendarEvent } from 'angular-calendar';\r\nimport { CalendarFilter } from '../../../../models/reservation.model';\r\nimport { SignageComponent } from '../../../../models/signage-component.model';\r\nimport { AccountService } from '../../../../services/account.service';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { ConfigurationService } from '../../../../services/configuration.service';\r\nimport { DeviceService } from '../../../../services/device.service';\r\nimport { ReservationService } from '../../../../services/reservation.service';\r\nimport { Utilities } from '../../../../services/utilities';\r\nimport { formatDate } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'single-booking',\r\n templateUrl: './single-booking.component.html'\r\n\r\n})\r\nexport class SingleBooking {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n\r\n mac_address: any;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n device: any;\r\n locationColorTheme: any;\r\n locationName: any;\r\n\r\n backgroundImage;\r\n\r\n medias;\r\n\r\n current = 0;\r\n\r\n filter: CalendarFilter;\r\n calendarEvents: CalendarEvent[];\r\n institutionId: any;\r\n reservation: any;\r\n time: any;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private authService: AuthService, private route: ActivatedRoute, private deviceService: DeviceService, private reservationService: ReservationService, private configurationService: ConfigurationService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n console.log('employee')\r\n\r\n if (!this.preview) {\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n this.getDeviceInfo();\r\n\r\n this.start();\r\n\r\n this.startPlaylist();\r\n }\r\n }\r\n\r\n start() {\r\n this.getSingleBooking();\r\n \r\n setTimeout(() => {\r\n this.start();\r\n }, 5 * 60 * 1000);\r\n }\r\n\r\n getSingleBooking() {\r\n if (!this.device || !this.device.locationId) return;\r\n\r\n this.filter = new CalendarFilter();\r\n this.filter.institutionId = this.institutionId;\r\n this.filter.locationIds = [this.device.locationId];\r\n this.filter.isBooking = true;\r\n this.filter.start = new Date();\r\n this.filter.start = new Date(this.filter.start.setHours(0, 0, 0, 0));\r\n this.filter.startTime = new Date(this.filter.start.setHours(0, 0, 0, 0));\r\n this.filter.endTime = new Date(this.filter.start.setHours(23, 59, 59, 0));\r\n\r\n this.reservationService.getCalendarEvents(this.filter).subscribe(events => {\r\n this.calendarEvents = [];\r\n var currentTime = Utilities.getCurrentDate(true);\r\n events.forEach((event, index, events) => {\r\n let startObj = new Date(event.start);\r\n let endObj = new Date(event.end);\r\n\r\n if (event.meta != null && event.meta.reservation != null && startObj <= currentTime\r\n && endObj >= currentTime) {\r\n this.calendarEvents.push(event);\r\n }\r\n });\r\n\r\n this.reservation = null;\r\n this.time = null;\r\n if (this.calendarEvents[0]) {\r\n this.reservation = this.calendarEvents[0];\r\n\r\n const locale = 'en-SG';\r\n this.time = this.reservation.meta && this.reservation.meta.reservation && this.reservation.meta.reservation.displayTime ? this.reservation.meta.reservation.displayTime : formatDate(this.reservation.start, 'hh:mm aa', locale) + \" - \" + formatDate(this.reservation.end, 'hh:mm aa', locale);\r\n\r\n if (this.reservation.meta && this.reservation.meta.reservation && this.reservation.meta.reservation.reservationPictures && this.reservation.meta.reservation.reservationPictures[0]) {\r\n this.medias = this.reservation.meta.reservation.reservationPictures.map(u => this.removeBackSlash(u));\r\n\r\n console.log(\"MEMEDIA\", this.medias);\r\n }\r\n\r\n if (this.configurations.configurationsObj.screenon) this.on();\r\n } else {\r\n if (this.configurations.configurationsObj.screenoff) this.off();\r\n }\r\n });\r\n }\r\n\r\n removeBackSlash(url) {\r\n url = url.replaceAll('\\\\', '/')\r\n url = escape(url);\r\n return url;\r\n }\r\n\r\n startPlaylist() {\r\n \r\n\r\n let duration = this.configurations.configurationsObj.pictureModeInterval || 5;\r\n\r\n\r\n if (this.medias && this.medias.length > 0) {\r\n this.current++;\r\n\r\n if (this.current >= this.medias.length) this.current = 0;\r\n }\r\n\r\n setTimeout(() => {\r\n this.startPlaylist();\r\n }, duration * 1000);\r\n }\r\n\r\n off() {\r\n if (!this.device) return;\r\n\r\n this.deviceService.off(this.device.id).subscribe(results => { });;\r\n }\r\n\r\n on() {\r\n if (!this.device) return;\r\n\r\n this.deviceService.on(this.device.id).subscribe(results => { });;\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n this.institutionId = this.device.institutionId;\r\n\r\n this.getSingleBooking();\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n Room Info based on Location Name\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Hide {{t.value.label}}\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'single-queue-configuration',\r\n templateUrl: './single-queue-configuration.component.html'\r\n\r\n})\r\nexport class SingleQueueConfiguration {\r\n @Input() configurations: any;\r\n\r\n ngOnInit() {\r\n this.configurations = this.configurations || {};\r\n this.configurations.texts = this.configurations.texts || {};\r\n this.configurations.texts.queueNo = this.configurations.texts.queueNo || { label: 'Queue No' };\r\n this.configurations.texts.roomInfo = this.configurations.texts.roomInfo || { label: 'Room Info' };\r\n this.configurations.texts.servingInfo = this.configurations.texts.servingInfo || { label: 'Serving Info' };\r\n this.configurations.texts.doctorInfo = this.configurations.texts.doctorInfo || { label: 'Doctor Info' };\r\n this.configurations.texts.assistantInfo = this.configurations.texts.assistantInfo || { label: 'Assistant Info' };\r\n }\r\n\r\n fonts = [\r\n 'American Typewriter',\r\n 'Andalé Mono',\r\n 'Arial Black',\r\n 'Arial',\r\n 'Bradley Hand',\r\n 'Brush Script MT',\r\n 'Comic Sans MS',\r\n 'Courier',\r\n 'Didot',\r\n 'Georgia',\r\n 'Impact',\r\n 'Lucida Console',\r\n 'Luminari',\r\n 'Monaco',\r\n 'Tahoma',\r\n 'Times New Roman',\r\n 'Trebuchet MS',\r\n 'Verdana',\r\n ];\r\n\r\n aligns = [\r\n 'left',\r\n 'center',\r\n 'right',\r\n 'justify'\r\n ]\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n\r\n show(obj) {\r\n return JSON.stringify(obj);\r\n }\r\n\r\n}\r\n","import { Component, Input, ChangeDetectorRef } from '@angular/core'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ConfigurationService } from '../../../../services/configuration.service';\r\nimport { SignageComponent } from '../../../../models/signage-component.model';\r\nimport { AccountService } from '../../../../services/account.service';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { DeviceService } from '../../../../services/device.service';\r\n\r\n@Component({\r\n selector: 'single-queue',\r\n template: `
    \r\n
    \r\n{{t.value.label}}\r\n{{t.value.value}}\r\n
    \r\n
    `\r\n\r\n})\r\nexport class SingleQueue {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n\r\n mac_address: any;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n device: any;\r\n locationColorTheme: any;\r\n locationName: any;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private authService: AuthService, private route: ActivatedRoute, private deviceService: DeviceService,\r\n private configurationService: ConfigurationService ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n console.log(\"initqueue\");\r\n\r\n if (!this.preview) {\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurationService.baseUrl + \"/hub/queue?device_id=\" + this.mac_address, true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"UpdateQueue\", (param) => {\r\n this.configurations.configurationsObj.texts.queueNo.value = param.callAction == \"call\" || param.callAction == \"silent call\" ? param.queueNo : '';\r\n\r\n if (!this.configurations.configurationsObj.roomInfoLocationName) this.configurations.configurationsObj.texts.roomInfo.value = param.roomInfo;\r\n\r\n this.configurations.configurationsObj.texts.servingInfo.value = param.servingInfo;\r\n\r\n this.configurations.configurationsObj.texts.doctorInfo.value = param.doctorInfo;\r\n\r\n this.configurations.configurationsObj.texts.assistantInfo.value = param.assistantInfo;\r\n\r\n param.currentDisplay = this.configurations.configurationsObj.texts.queueNo.value;\r\n param.deviceId = this.mac_address;\r\n\r\n this.signalRCoreconnection.send(\"queueReturn\", param);\r\n });\r\n }\r\n\r\n this.getDeviceInfo();\r\n }\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n\r\n if (this.configurations.configurationsObj.roomInfoLocationName) this.configurations.configurationsObj.texts.roomInfo.value = this.locationName;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n Font\\r\\n \\r\\n \\r\\n {{f}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n Text Align\\r\\n \\r\\n \\r\\n {{a}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n Vertical Align\\r\\n \\r\\n \\r\\n {{a}}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n X\\r\\n \\r\\n\\r\\n\\r\\n Y\\r\\n \\r\\n\\r\\n\\r\\n Width\\r\\n \\r\\n\\r\\n\\r\\n Height\\r\\n \\r\\n\\r\\n\\r\\n\\r\\nBold \\r\\nItalic \\r\\nUnderline \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n\\r\\nField Color Follow Location Theme \\r\\n\\r\\n\"","import { Component, Input, EventEmitter, Output, SimpleChanges, OnChanges, OnInit, ChangeDetectorRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'text-configuration',\r\n templateUrl: './text-configuration.component.html'\r\n\r\n})\r\nexport class TextConfiguration {\r\n @Input() configurations: any = {};\r\n @Input() hidePosSize: boolean;\r\n @Output() configurationsChange = new EventEmitter();\r\n\r\n ngOnInit() {\r\n this.setConfiguration(this.configurations);\r\n }\r\n\r\n setConfiguration(configurations?) {\r\n this.configurations = configurations || {};\r\n this.configurationsChange.emit(this.configurations);\r\n\r\n this.configurations.vAlign = this.configurations.vAlign || 'middle';\r\n }\r\n\r\n fonts = [\r\n 'American Typewriter',\r\n 'Andalé Mono',\r\n 'Arial Black',\r\n 'Arial',\r\n 'Avenir Next',\r\n 'Bradley Hand',\r\n 'Brush Script MT',\r\n 'Comic Sans MS',\r\n 'Courier',\r\n 'Didot',\r\n 'Franklin Gothic',\r\n 'Georgia',\r\n 'Impact',\r\n 'Lucida Console',\r\n 'Luminari',\r\n 'Monaco',\r\n 'Tahoma',\r\n 'Times New Roman',\r\n 'Trebuchet MS',\r\n 'Verdana',\r\n ];\r\n\r\n aligns = [\r\n 'left',\r\n 'center',\r\n 'right',\r\n 'justify'\r\n ]\r\n\r\n valigns = [\r\n 'top',\r\n 'middle',\r\n 'bottom',\r\n ]\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n}\r\n","import { Component, Input, ChangeDetectorRef } from '@angular/core'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DeviceService } from '../../../services/device.service';\r\n\r\n@Component({\r\n selector: 'text-display',\r\n template: `\r\n
    \r\n{{previewText}}\r\n\r\n {{actualText}}\r\n\r\n
    \r\n`\r\n\r\n})\r\nexport class TextDisplay {\r\n //@Input() configurations: any;\r\n @Input() preview: boolean;\r\n @Input() textStyle: any;\r\n @Input() previewText: string;\r\n @Input() actualText: string;\r\n\r\n mac_address: any;\r\n\r\n device: any;\r\n locationColorTheme: any;\r\n locationName: any;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private route: ActivatedRoute, private deviceService: DeviceService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n /* if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);*/\r\n\r\n if (!this.preview) {\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n this.getDeviceInfo();\r\n }\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n\r\n /* if (this.configurations.configurationsObj.roomInfoLocationName) this.configurations.configurationsObj.texts.roomInfo.value = this.locationName;*/\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\"","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'video-configuration',\r\n templateUrl: './video-configuration.component.html'\r\n\r\n})\r\nexport class VideoConfiguration {\r\n @Input() configurations: any = {};\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core'\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AuthService } from '../../../../services/auth.service';\r\nimport { ConfigurationService } from '../../../../services/configuration.service';\r\n\r\nimport { DeviceService } from '../../../../services/device.service';\r\n\r\n@Component({\r\n selector: 'signage-video',\r\n template: ``\r\n\r\n})\r\nexport class Video {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n\r\n mac_address: any;\r\n device: any;\r\n locationColorTheme: any;\r\n locationName: any;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n defaultVolume: any = 0;\r\n\r\n constructor(private sanitizer: DomSanitizer, private route: ActivatedRoute, private authService: AuthService,\r\n private configurationService: ConfigurationService, private deviceService: DeviceService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n\r\n\r\n if (!this.preview) {\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n \r\n\r\n this.getDeviceInfo();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: any) {\r\n console.log(\"HTML Changes\");\r\n }\r\n\r\n getDeviceInfo() {\r\n if (this.mac_address) {\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n if (this.device) {\r\n this.locationColorTheme = this.device.locationColorTheme;\r\n this.locationName = this.device.locationName;\r\n this.defaultVolume = this.device.defaultVolume || 0;\r\n\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurationService.baseUrl + \"/hub/frsdevice?device_id=\" + this.device.id + \"&source=server\", true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"RefreshDeviceData\", (deviceVM) => {\r\n console.log('Refreshing Device Display');\r\n this.defaultVolume = deviceVM.defaultVolume || 0;\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \"@charset \\\"UTF-8\\\";\\n.vjs-modal-dialog .vjs-modal-dialog-content, .video-js .vjs-modal-dialog, .vjs-button > .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.vjs-button > .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {\\n text-align: center;\\n}\\n@font-face {\\n font-family: VideoJS;\\n src: url(data:application/font-woff;charset=utf-8;base64,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) format(\\\"woff\\\");\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-play, .video-js .vjs-play-control .vjs-icon-placeholder, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-play:before, .video-js .vjs-play-control .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {\\n content: \\\"\\\\f101\\\";\\n}\\n.vjs-icon-play-circle {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-play-circle:before {\\n content: \\\"\\\\f102\\\";\\n}\\n.vjs-icon-pause, .video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-pause:before, .video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before {\\n content: \\\"\\\\f103\\\";\\n}\\n.vjs-icon-volume-mute, .video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-volume-mute:before, .video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before {\\n content: \\\"\\\\f104\\\";\\n}\\n.vjs-icon-volume-low, .video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-volume-low:before, .video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before {\\n content: \\\"\\\\f105\\\";\\n}\\n.vjs-icon-volume-mid, .video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-volume-mid:before, .video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before {\\n content: \\\"\\\\f106\\\";\\n}\\n.vjs-icon-volume-high, .video-js .vjs-mute-control .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-volume-high:before, .video-js .vjs-mute-control .vjs-icon-placeholder:before {\\n content: \\\"\\\\f107\\\";\\n}\\n.vjs-icon-fullscreen-enter, .video-js .vjs-fullscreen-control .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-fullscreen-enter:before, .video-js .vjs-fullscreen-control .vjs-icon-placeholder:before {\\n content: \\\"\\\\f108\\\";\\n}\\n.vjs-icon-fullscreen-exit, .video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-fullscreen-exit:before, .video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before {\\n content: \\\"\\\\f109\\\";\\n}\\n.vjs-icon-square {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-square:before {\\n content: \\\"\\\\f10a\\\";\\n}\\n.vjs-icon-spinner {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-spinner:before {\\n content: \\\"\\\\f10b\\\";\\n}\\n.vjs-icon-subtitles, .video-js .vjs-subs-caps-button .vjs-icon-placeholder,\\n.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,\\n.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,\\n.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,\\n.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js .vjs-subtitles-button .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-subtitles:before, .video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,\\n.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,\\n.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,\\n.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,\\n.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js .vjs-subtitles-button .vjs-icon-placeholder:before {\\n content: \\\"\\\\f10c\\\";\\n}\\n.vjs-icon-captions, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,\\n.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js .vjs-captions-button .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-captions:before, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,\\n.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js .vjs-captions-button .vjs-icon-placeholder:before {\\n content: \\\"\\\\f10d\\\";\\n}\\n.vjs-icon-chapters, .video-js .vjs-chapters-button .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-chapters:before, .video-js .vjs-chapters-button .vjs-icon-placeholder:before {\\n content: \\\"\\\\f10e\\\";\\n}\\n.vjs-icon-share {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-share:before {\\n content: \\\"\\\\f10f\\\";\\n}\\n.vjs-icon-cog {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-cog:before {\\n content: \\\"\\\\f110\\\";\\n}\\n.vjs-icon-circle, .vjs-seek-to-live-control .vjs-icon-placeholder, .video-js .vjs-volume-level, .video-js .vjs-play-progress {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-circle:before, .vjs-seek-to-live-control .vjs-icon-placeholder:before, .video-js .vjs-volume-level:before, .video-js .vjs-play-progress:before {\\n content: \\\"\\\\f111\\\";\\n}\\n.vjs-icon-circle-outline {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-circle-outline:before {\\n content: \\\"\\\\f112\\\";\\n}\\n.vjs-icon-circle-inner-circle {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-circle-inner-circle:before {\\n content: \\\"\\\\f113\\\";\\n}\\n.vjs-icon-hd {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-hd:before {\\n content: \\\"\\\\f114\\\";\\n}\\n.vjs-icon-cancel, .video-js .vjs-control.vjs-close-button .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-cancel:before, .video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before {\\n content: \\\"\\\\f115\\\";\\n}\\n.vjs-icon-replay, .video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-replay:before, .video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before {\\n content: \\\"\\\\f116\\\";\\n}\\n.vjs-icon-facebook {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-facebook:before {\\n content: \\\"\\\\f117\\\";\\n}\\n.vjs-icon-gplus {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-gplus:before {\\n content: \\\"\\\\f118\\\";\\n}\\n.vjs-icon-linkedin {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-linkedin:before {\\n content: \\\"\\\\f119\\\";\\n}\\n.vjs-icon-twitter {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-twitter:before {\\n content: \\\"\\\\f11a\\\";\\n}\\n.vjs-icon-tumblr {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-tumblr:before {\\n content: \\\"\\\\f11b\\\";\\n}\\n.vjs-icon-pinterest {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-pinterest:before {\\n content: \\\"\\\\f11c\\\";\\n}\\n.vjs-icon-audio-description, .video-js .vjs-descriptions-button .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-audio-description:before, .video-js .vjs-descriptions-button .vjs-icon-placeholder:before {\\n content: \\\"\\\\f11d\\\";\\n}\\n.vjs-icon-audio, .video-js .vjs-audio-button .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-audio:before, .video-js .vjs-audio-button .vjs-icon-placeholder:before {\\n content: \\\"\\\\f11e\\\";\\n}\\n.vjs-icon-next-item {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-next-item:before {\\n content: \\\"\\\\f11f\\\";\\n}\\n.vjs-icon-previous-item {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-previous-item:before {\\n content: \\\"\\\\f120\\\";\\n}\\n.vjs-icon-picture-in-picture-enter, .video-js .vjs-picture-in-picture-control .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-picture-in-picture-enter:before, .video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before {\\n content: \\\"\\\\f121\\\";\\n}\\n.vjs-icon-picture-in-picture-exit, .video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder {\\n font-family: VideoJS;\\n font-weight: normal;\\n font-style: normal;\\n}\\n.vjs-icon-picture-in-picture-exit:before, .video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before {\\n content: \\\"\\\\f122\\\";\\n}\\n.video-js {\\n display: block;\\n vertical-align: top;\\n box-sizing: border-box;\\n color: #fff;\\n background-color: #000;\\n position: relative;\\n padding: 0;\\n font-size: 10px;\\n line-height: 1;\\n font-weight: normal;\\n font-style: normal;\\n font-family: Arial, Helvetica, sans-serif;\\n word-break: initial;\\n}\\n.video-js:-moz-full-screen {\\n position: absolute;\\n}\\n.video-js:-webkit-full-screen {\\n width: 100% !important;\\n height: 100% !important;\\n}\\n.video-js[tabindex=\\\"-1\\\"] {\\n outline: none;\\n}\\n.video-js *,\\n.video-js *:before,\\n.video-js *:after {\\n box-sizing: inherit;\\n}\\n.video-js ul {\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit;\\n list-style-position: outside;\\n margin-left: 0;\\n margin-right: 0;\\n margin-top: 0;\\n margin-bottom: 0;\\n}\\n.video-js.vjs-fluid,\\n.video-js.vjs-16-9,\\n.video-js.vjs-4-3 {\\n width: 100%;\\n max-width: 100%;\\n height: 0;\\n}\\n.video-js.vjs-16-9 {\\n padding-top: 56.25%;\\n}\\n.video-js.vjs-4-3 {\\n padding-top: 75%;\\n}\\n.video-js.vjs-fill {\\n width: 100%;\\n height: 100%;\\n}\\n.video-js .vjs-tech {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\nbody.vjs-full-window {\\n padding: 0;\\n margin: 0;\\n height: 100%;\\n}\\n.vjs-full-window .video-js.vjs-fullscreen {\\n position: fixed;\\n overflow: hidden;\\n z-index: 1000;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n right: 0;\\n}\\n.video-js.vjs-fullscreen:not(.vjs-ios-native-fs) {\\n width: 100% !important;\\n height: 100% !important;\\n padding-top: 0 !important;\\n}\\n.video-js.vjs-fullscreen.vjs-user-inactive {\\n cursor: none;\\n}\\n.vjs-hidden {\\n display: none !important;\\n}\\n.vjs-disabled {\\n opacity: 0.5;\\n cursor: default;\\n}\\n.video-js .vjs-offscreen {\\n height: 1px;\\n left: -9999px;\\n position: absolute;\\n top: 0;\\n width: 1px;\\n}\\n.vjs-lock-showing {\\n display: block !important;\\n opacity: 1;\\n visibility: visible;\\n}\\n.vjs-no-js {\\n padding: 20px;\\n color: #fff;\\n background-color: #000;\\n font-size: 18px;\\n font-family: Arial, Helvetica, sans-serif;\\n text-align: center;\\n width: 300px;\\n height: 150px;\\n margin: 0px auto;\\n}\\n.vjs-no-js a,\\n.vjs-no-js a:visited {\\n color: #66A8CC;\\n}\\n.video-js .vjs-big-play-button {\\n font-size: 3em;\\n line-height: 1.5em;\\n height: 1.63332em;\\n width: 3em;\\n display: block;\\n position: absolute;\\n top: 10px;\\n left: 10px;\\n padding: 0;\\n cursor: pointer;\\n opacity: 1;\\n border: 0.06666em solid #fff;\\n background-color: #2B333F;\\n background-color: rgba(43, 51, 63, 0.7);\\n border-radius: 0.3em;\\n transition: all 0.4s;\\n}\\n.vjs-big-play-centered .vjs-big-play-button {\\n top: 50%;\\n left: 50%;\\n margin-top: -0.81666em;\\n margin-left: -1.5em;\\n}\\n.video-js:hover .vjs-big-play-button,\\n.video-js .vjs-big-play-button:focus {\\n border-color: #fff;\\n background-color: #73859f;\\n background-color: rgba(115, 133, 159, 0.5);\\n transition: all 0s;\\n}\\n.vjs-controls-disabled .vjs-big-play-button,\\n.vjs-has-started .vjs-big-play-button,\\n.vjs-using-native-controls .vjs-big-play-button,\\n.vjs-error .vjs-big-play-button {\\n display: none;\\n}\\n.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button {\\n display: block;\\n}\\n.video-js button {\\n background: none;\\n border: none;\\n color: inherit;\\n display: inline-block;\\n font-size: inherit;\\n line-height: inherit;\\n text-transform: none;\\n text-decoration: none;\\n transition: none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n}\\n.vjs-control .vjs-button {\\n width: 100%;\\n height: 100%;\\n}\\n.video-js .vjs-control.vjs-close-button {\\n cursor: pointer;\\n height: 3em;\\n position: absolute;\\n right: 0;\\n top: 0.5em;\\n z-index: 2;\\n}\\n.video-js .vjs-modal-dialog {\\n background: rgba(0, 0, 0, 0.8);\\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(255, 255, 255, 0));\\n overflow: auto;\\n}\\n.video-js .vjs-modal-dialog > * {\\n box-sizing: border-box;\\n}\\n.vjs-modal-dialog .vjs-modal-dialog-content {\\n font-size: 1.2em;\\n line-height: 1.5;\\n padding: 20px 24px;\\n z-index: 1;\\n}\\n.vjs-menu-button {\\n cursor: pointer;\\n}\\n.vjs-menu-button.vjs-disabled {\\n cursor: default;\\n}\\n.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu {\\n display: none;\\n}\\n.vjs-menu .vjs-menu-content {\\n display: block;\\n padding: 0;\\n margin: 0;\\n font-family: Arial, Helvetica, sans-serif;\\n overflow: auto;\\n}\\n.vjs-menu .vjs-menu-content > * {\\n box-sizing: border-box;\\n}\\n.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu {\\n display: none;\\n}\\n.vjs-menu li {\\n list-style: none;\\n margin: 0;\\n padding: 0.2em 0;\\n line-height: 1.4em;\\n font-size: 1.2em;\\n text-align: center;\\n text-transform: lowercase;\\n}\\n.vjs-menu li.vjs-menu-item:focus,\\n.vjs-menu li.vjs-menu-item:hover,\\n.js-focus-visible .vjs-menu li.vjs-menu-item:hover {\\n background-color: #73859f;\\n background-color: rgba(115, 133, 159, 0.5);\\n}\\n.vjs-menu li.vjs-selected,\\n.vjs-menu li.vjs-selected:focus,\\n.vjs-menu li.vjs-selected:hover,\\n.js-focus-visible .vjs-menu li.vjs-selected:hover {\\n background-color: #fff;\\n color: #2B333F;\\n}\\n.vjs-menu li.vjs-menu-title {\\n text-align: center;\\n text-transform: uppercase;\\n font-size: 1em;\\n line-height: 2em;\\n padding: 0;\\n margin: 0 0 0.3em 0;\\n font-weight: bold;\\n cursor: default;\\n}\\n.vjs-menu-button-popup .vjs-menu {\\n display: none;\\n position: absolute;\\n bottom: 0;\\n width: 10em;\\n left: -3em;\\n height: 0em;\\n margin-bottom: 1.5em;\\n border-top-color: rgba(43, 51, 63, 0.7);\\n}\\n.vjs-menu-button-popup .vjs-menu .vjs-menu-content {\\n background-color: #2B333F;\\n background-color: rgba(43, 51, 63, 0.7);\\n position: absolute;\\n width: 100%;\\n bottom: 1.5em;\\n max-height: 15em;\\n}\\n.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,\\n.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content {\\n max-height: 5em;\\n}\\n.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content {\\n max-height: 10em;\\n}\\n.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content {\\n max-height: 14em;\\n}\\n.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,\\n.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,\\n.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content {\\n max-height: 25em;\\n}\\n.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu,\\n.vjs-menu-button-popup .vjs-menu.vjs-lock-showing {\\n display: block;\\n}\\n.video-js .vjs-menu-button-inline {\\n transition: all 0.4s;\\n overflow: hidden;\\n}\\n.video-js .vjs-menu-button-inline:before {\\n width: 2.222222222em;\\n}\\n.video-js .vjs-menu-button-inline:hover,\\n.video-js .vjs-menu-button-inline:focus,\\n.video-js .vjs-menu-button-inline.vjs-slider-active,\\n.video-js.vjs-no-flex .vjs-menu-button-inline {\\n width: 12em;\\n}\\n.vjs-menu-button-inline .vjs-menu {\\n opacity: 0;\\n height: 100%;\\n width: auto;\\n position: absolute;\\n left: 4em;\\n top: 0;\\n padding: 0;\\n margin: 0;\\n transition: all 0.4s;\\n}\\n.vjs-menu-button-inline:hover .vjs-menu,\\n.vjs-menu-button-inline:focus .vjs-menu,\\n.vjs-menu-button-inline.vjs-slider-active .vjs-menu {\\n display: block;\\n opacity: 1;\\n}\\n.vjs-no-flex .vjs-menu-button-inline .vjs-menu {\\n display: block;\\n opacity: 1;\\n position: relative;\\n width: auto;\\n}\\n.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu,\\n.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,\\n.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu {\\n width: auto;\\n}\\n.vjs-menu-button-inline .vjs-menu-content {\\n width: auto;\\n height: 100%;\\n margin: 0;\\n overflow: hidden;\\n}\\n.video-js .vjs-control-bar {\\n display: none;\\n width: 100%;\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n height: 3em;\\n background-color: #2B333F;\\n background-color: rgba(43, 51, 63, 0.7);\\n}\\n.vjs-has-started .vjs-control-bar {\\n display: flex;\\n visibility: visible;\\n opacity: 1;\\n transition: visibility 0.1s, opacity 0.1s;\\n}\\n.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {\\n visibility: visible;\\n opacity: 0;\\n transition: visibility 1s, opacity 1s;\\n}\\n.vjs-controls-disabled .vjs-control-bar,\\n.vjs-using-native-controls .vjs-control-bar,\\n.vjs-error .vjs-control-bar {\\n display: none !important;\\n}\\n.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {\\n opacity: 1;\\n visibility: visible;\\n}\\n.vjs-has-started.vjs-no-flex .vjs-control-bar {\\n display: table;\\n}\\n.video-js .vjs-control {\\n position: relative;\\n text-align: center;\\n margin: 0;\\n padding: 0;\\n height: 100%;\\n width: 4em;\\n flex: none;\\n}\\n.vjs-button > .vjs-icon-placeholder:before {\\n font-size: 1.8em;\\n line-height: 1.67;\\n}\\n.video-js .vjs-control:focus:before,\\n.video-js .vjs-control:hover:before,\\n.video-js .vjs-control:focus {\\n text-shadow: 0em 0em 1em white;\\n}\\n.video-js .vjs-control-text {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n.vjs-no-flex .vjs-control {\\n display: table-cell;\\n vertical-align: middle;\\n}\\n.video-js .vjs-custom-control-spacer {\\n display: none;\\n}\\n.video-js .vjs-progress-control {\\n cursor: pointer;\\n flex: auto;\\n display: flex;\\n align-items: center;\\n min-width: 4em;\\n touch-action: none;\\n}\\n.video-js .vjs-progress-control.disabled {\\n cursor: default;\\n}\\n.vjs-live .vjs-progress-control {\\n display: none;\\n}\\n.vjs-liveui .vjs-progress-control {\\n display: flex;\\n align-items: center;\\n}\\n.vjs-no-flex .vjs-progress-control {\\n width: auto;\\n}\\n.video-js .vjs-progress-holder {\\n flex: auto;\\n transition: all 0.2s;\\n height: 0.3em;\\n}\\n.video-js .vjs-progress-control .vjs-progress-holder {\\n margin: 0 10px;\\n}\\n.video-js .vjs-progress-control:hover .vjs-progress-holder {\\n font-size: 1.6666666667em;\\n}\\n.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled {\\n font-size: 1em;\\n}\\n.video-js .vjs-progress-holder .vjs-play-progress,\\n.video-js .vjs-progress-holder .vjs-load-progress,\\n.video-js .vjs-progress-holder .vjs-load-progress div {\\n position: absolute;\\n display: block;\\n height: 100%;\\n margin: 0;\\n padding: 0;\\n width: 0;\\n}\\n.video-js .vjs-play-progress {\\n background-color: #fff;\\n}\\n.video-js .vjs-play-progress:before {\\n font-size: 0.9em;\\n position: absolute;\\n right: -0.5em;\\n top: -0.3333333333em;\\n z-index: 1;\\n}\\n.video-js .vjs-load-progress {\\n background: rgba(115, 133, 159, 0.5);\\n}\\n.video-js .vjs-load-progress div {\\n background: rgba(115, 133, 159, 0.75);\\n}\\n.video-js .vjs-time-tooltip {\\n background-color: #fff;\\n background-color: rgba(255, 255, 255, 0.8);\\n border-radius: 0.3em;\\n color: #000;\\n float: right;\\n font-family: Arial, Helvetica, sans-serif;\\n font-size: 1em;\\n padding: 6px 8px 8px 8px;\\n pointer-events: none;\\n position: absolute;\\n top: -3.4em;\\n visibility: hidden;\\n z-index: 1;\\n}\\n.video-js .vjs-progress-holder:focus .vjs-time-tooltip {\\n display: none;\\n}\\n.video-js .vjs-progress-control:hover .vjs-time-tooltip,\\n.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip {\\n display: block;\\n font-size: 0.6em;\\n visibility: visible;\\n}\\n.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip {\\n font-size: 1em;\\n}\\n.video-js .vjs-progress-control .vjs-mouse-display {\\n display: none;\\n position: absolute;\\n width: 1px;\\n height: 100%;\\n background-color: #000;\\n z-index: 1;\\n}\\n.vjs-no-flex .vjs-progress-control .vjs-mouse-display {\\n z-index: 0;\\n}\\n.video-js .vjs-progress-control:hover .vjs-mouse-display {\\n display: block;\\n}\\n.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display {\\n visibility: hidden;\\n opacity: 0;\\n transition: visibility 1s, opacity 1s;\\n}\\n.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display {\\n display: none;\\n}\\n.vjs-mouse-display .vjs-time-tooltip {\\n color: #fff;\\n background-color: #000;\\n background-color: rgba(0, 0, 0, 0.8);\\n}\\n.video-js .vjs-slider {\\n position: relative;\\n cursor: pointer;\\n padding: 0;\\n margin: 0 0.45em 0 0.45em;\\n /* iOS Safari */\\n -webkit-touch-callout: none;\\n /* Safari */\\n -webkit-user-select: none;\\n /* Konqueror HTML */\\n /* Firefox */\\n -moz-user-select: none;\\n /* Internet Explorer/Edge */\\n /* Non-prefixed version, currently supported by Chrome and Opera */\\n user-select: none;\\n background-color: #73859f;\\n background-color: rgba(115, 133, 159, 0.5);\\n}\\n.video-js .vjs-slider.disabled {\\n cursor: default;\\n}\\n.video-js .vjs-slider:focus {\\n text-shadow: 0em 0em 1em white;\\n box-shadow: 0 0 1em #fff;\\n}\\n.video-js .vjs-mute-control {\\n cursor: pointer;\\n flex: none;\\n}\\n.video-js .vjs-volume-control {\\n cursor: pointer;\\n margin-right: 1em;\\n display: flex;\\n}\\n.video-js .vjs-volume-control.vjs-volume-horizontal {\\n width: 5em;\\n}\\n.video-js .vjs-volume-panel .vjs-volume-control {\\n visibility: visible;\\n opacity: 0;\\n width: 1px;\\n height: 1px;\\n margin-left: -1px;\\n}\\n.video-js .vjs-volume-panel {\\n transition: width 1s;\\n}\\n.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control, .video-js .vjs-volume-panel:active .vjs-volume-control, .video-js .vjs-volume-panel:focus .vjs-volume-control, .video-js .vjs-volume-panel .vjs-volume-control:active, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active {\\n visibility: visible;\\n opacity: 1;\\n position: relative;\\n transition: visibility 0.1s, opacity 0.1s, height 0.1s, width 0.1s, left 0s, top 0s;\\n}\\n.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal {\\n width: 5em;\\n height: 3em;\\n margin-right: 0;\\n}\\n.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical {\\n left: -3.5em;\\n transition: left 0s;\\n}\\n.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active {\\n width: 10em;\\n transition: width 0.1s;\\n}\\n.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only {\\n width: 4em;\\n}\\n.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {\\n height: 8em;\\n width: 3em;\\n left: -3000em;\\n transition: visibility 1s, opacity 1s, height 1s 1s, width 1s 1s, left 1s 1s, top 1s 1s;\\n}\\n.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {\\n transition: visibility 1s, opacity 1s, height 1s 1s, width 1s, left 1s 1s, top 1s 1s;\\n}\\n.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {\\n width: 5em;\\n height: 3em;\\n visibility: visible;\\n opacity: 1;\\n position: relative;\\n transition: none;\\n}\\n.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical,\\n.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {\\n position: absolute;\\n bottom: 3em;\\n left: 0.5em;\\n}\\n.video-js .vjs-volume-panel {\\n display: flex;\\n}\\n.video-js .vjs-volume-bar {\\n margin: 1.35em 0.45em;\\n}\\n.vjs-volume-bar.vjs-slider-horizontal {\\n width: 5em;\\n height: 0.3em;\\n}\\n.vjs-volume-bar.vjs-slider-vertical {\\n width: 0.3em;\\n height: 5em;\\n margin: 1.35em auto;\\n}\\n.video-js .vjs-volume-level {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n background-color: #fff;\\n}\\n.video-js .vjs-volume-level:before {\\n position: absolute;\\n font-size: 0.9em;\\n}\\n.vjs-slider-vertical .vjs-volume-level {\\n width: 0.3em;\\n}\\n.vjs-slider-vertical .vjs-volume-level:before {\\n top: -0.5em;\\n left: -0.3em;\\n}\\n.vjs-slider-horizontal .vjs-volume-level {\\n height: 0.3em;\\n}\\n.vjs-slider-horizontal .vjs-volume-level:before {\\n top: -0.3em;\\n right: -0.5em;\\n}\\n.video-js .vjs-volume-panel.vjs-volume-panel-vertical {\\n width: 4em;\\n}\\n.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level {\\n height: 100%;\\n}\\n.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level {\\n width: 100%;\\n}\\n.video-js .vjs-volume-vertical {\\n width: 3em;\\n height: 8em;\\n bottom: 8em;\\n background-color: #2B333F;\\n background-color: rgba(43, 51, 63, 0.7);\\n}\\n.video-js .vjs-volume-horizontal .vjs-menu {\\n left: -2em;\\n}\\n.vjs-poster {\\n display: inline-block;\\n vertical-align: middle;\\n background-repeat: no-repeat;\\n background-position: 50% 50%;\\n background-size: contain;\\n background-color: #000000;\\n cursor: pointer;\\n margin: 0;\\n padding: 0;\\n position: absolute;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n height: 100%;\\n}\\n.vjs-has-started .vjs-poster {\\n display: none;\\n}\\n.vjs-audio.vjs-has-started .vjs-poster {\\n display: block;\\n}\\n.vjs-using-native-controls .vjs-poster {\\n display: none;\\n}\\n.video-js .vjs-live-control {\\n display: flex;\\n align-items: flex-start;\\n flex: auto;\\n font-size: 1em;\\n line-height: 3em;\\n}\\n.vjs-no-flex .vjs-live-control {\\n display: table-cell;\\n width: auto;\\n text-align: left;\\n}\\n.video-js:not(.vjs-live) .vjs-live-control,\\n.video-js.vjs-liveui .vjs-live-control {\\n display: none;\\n}\\n.video-js .vjs-seek-to-live-control {\\n align-items: center;\\n cursor: pointer;\\n flex: none;\\n display: inline-flex;\\n height: 100%;\\n padding-left: 0.5em;\\n padding-right: 0.5em;\\n font-size: 1em;\\n line-height: 3em;\\n width: auto;\\n min-width: 4em;\\n}\\n.vjs-no-flex .vjs-seek-to-live-control {\\n display: table-cell;\\n width: auto;\\n text-align: left;\\n}\\n.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,\\n.video-js:not(.vjs-live) .vjs-seek-to-live-control {\\n display: none;\\n}\\n.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge {\\n cursor: auto;\\n}\\n.vjs-seek-to-live-control .vjs-icon-placeholder {\\n margin-right: 0.5em;\\n color: #888;\\n}\\n.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder {\\n color: red;\\n}\\n.video-js .vjs-time-control {\\n flex: none;\\n font-size: 1em;\\n line-height: 3em;\\n min-width: 2em;\\n width: auto;\\n padding-left: 1em;\\n padding-right: 1em;\\n}\\n.vjs-live .vjs-time-control {\\n display: none;\\n}\\n.video-js .vjs-current-time,\\n.vjs-no-flex .vjs-current-time {\\n display: none;\\n}\\n.video-js .vjs-duration,\\n.vjs-no-flex .vjs-duration {\\n display: none;\\n}\\n.vjs-time-divider {\\n display: none;\\n line-height: 3em;\\n}\\n.vjs-live .vjs-time-divider {\\n display: none;\\n}\\n.video-js .vjs-play-control {\\n cursor: pointer;\\n}\\n.video-js .vjs-play-control .vjs-icon-placeholder {\\n flex: none;\\n}\\n.vjs-text-track-display {\\n position: absolute;\\n bottom: 3em;\\n left: 0;\\n right: 0;\\n top: 0;\\n pointer-events: none;\\n}\\n.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display {\\n bottom: 1em;\\n}\\n.video-js .vjs-text-track {\\n font-size: 1.4em;\\n text-align: center;\\n margin-bottom: 0.1em;\\n}\\n.vjs-subtitles {\\n color: #fff;\\n}\\n.vjs-captions {\\n color: #fc6;\\n}\\n.vjs-tt-cue {\\n display: block;\\n}\\nvideo::-webkit-media-text-track-display {\\n transform: translateY(-3em);\\n}\\n.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display {\\n transform: translateY(-1.5em);\\n}\\n.video-js .vjs-picture-in-picture-control {\\n cursor: pointer;\\n flex: none;\\n}\\n.video-js .vjs-fullscreen-control {\\n cursor: pointer;\\n flex: none;\\n}\\n.vjs-playback-rate > .vjs-menu-button,\\n.vjs-playback-rate .vjs-playback-rate-value {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n}\\n.vjs-playback-rate .vjs-playback-rate-value {\\n pointer-events: none;\\n font-size: 1.5em;\\n line-height: 2;\\n text-align: center;\\n}\\n.vjs-playback-rate .vjs-menu {\\n width: 4em;\\n left: 0em;\\n}\\n.vjs-error .vjs-error-display .vjs-modal-dialog-content {\\n font-size: 1.4em;\\n text-align: center;\\n}\\n.vjs-error .vjs-error-display:before {\\n color: #fff;\\n content: \\\"X\\\";\\n font-family: Arial, Helvetica, sans-serif;\\n font-size: 4em;\\n left: 0;\\n line-height: 1;\\n margin-top: -0.5em;\\n position: absolute;\\n text-shadow: 0.05em 0.05em 0.1em #000;\\n text-align: center;\\n top: 50%;\\n vertical-align: middle;\\n width: 100%;\\n}\\n.vjs-loading-spinner {\\n display: none;\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n margin: -25px 0 0 -25px;\\n opacity: 0.85;\\n text-align: left;\\n border: 6px solid rgba(43, 51, 63, 0.7);\\n box-sizing: border-box;\\n background-clip: padding-box;\\n width: 50px;\\n height: 50px;\\n border-radius: 25px;\\n visibility: hidden;\\n}\\n.vjs-seeking .vjs-loading-spinner,\\n.vjs-waiting .vjs-loading-spinner {\\n display: block;\\n -webkit-animation: vjs-spinner-show 0s linear 0.3s forwards;\\n animation: vjs-spinner-show 0s linear 0.3s forwards;\\n}\\n.vjs-loading-spinner:before,\\n.vjs-loading-spinner:after {\\n content: \\\"\\\";\\n position: absolute;\\n margin: -6px;\\n box-sizing: inherit;\\n width: inherit;\\n height: inherit;\\n border-radius: inherit;\\n opacity: 1;\\n border: inherit;\\n border-color: transparent;\\n border-top-color: white;\\n}\\n.vjs-seeking .vjs-loading-spinner:before,\\n.vjs-seeking .vjs-loading-spinner:after,\\n.vjs-waiting .vjs-loading-spinner:before,\\n.vjs-waiting .vjs-loading-spinner:after {\\n -webkit-animation: vjs-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, vjs-spinner-fade 1.1s linear infinite;\\n animation: vjs-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, vjs-spinner-fade 1.1s linear infinite;\\n}\\n.vjs-seeking .vjs-loading-spinner:before,\\n.vjs-waiting .vjs-loading-spinner:before {\\n border-top-color: white;\\n}\\n.vjs-seeking .vjs-loading-spinner:after,\\n.vjs-waiting .vjs-loading-spinner:after {\\n border-top-color: white;\\n -webkit-animation-delay: 0.44s;\\n animation-delay: 0.44s;\\n}\\n@keyframes vjs-spinner-show {\\n to {\\n visibility: visible;\\n }\\n}\\n@-webkit-keyframes vjs-spinner-show {\\n to {\\n visibility: visible;\\n }\\n}\\n@keyframes vjs-spinner-spin {\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n@-webkit-keyframes vjs-spinner-spin {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n }\\n}\\n@keyframes vjs-spinner-fade {\\n 0% {\\n border-top-color: #73859f;\\n }\\n 20% {\\n border-top-color: #73859f;\\n }\\n 35% {\\n border-top-color: white;\\n }\\n 60% {\\n border-top-color: #73859f;\\n }\\n 100% {\\n border-top-color: #73859f;\\n }\\n}\\n@-webkit-keyframes vjs-spinner-fade {\\n 0% {\\n border-top-color: #73859f;\\n }\\n 20% {\\n border-top-color: #73859f;\\n }\\n 35% {\\n border-top-color: white;\\n }\\n 60% {\\n border-top-color: #73859f;\\n }\\n 100% {\\n border-top-color: #73859f;\\n }\\n}\\n.vjs-chapters-button .vjs-menu ul {\\n width: 24em;\\n}\\n.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder {\\n vertical-align: middle;\\n display: inline-block;\\n margin-bottom: -0.1em;\\n}\\n.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {\\n font-family: VideoJS;\\n content: \\\"\\\";\\n font-size: 1.5em;\\n line-height: inherit;\\n}\\n.video-js .vjs-audio-button + .vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder {\\n vertical-align: middle;\\n display: inline-block;\\n margin-bottom: -0.1em;\\n}\\n.video-js .vjs-audio-button + .vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {\\n font-family: VideoJS;\\n content: \\\" \\\";\\n font-size: 1.5em;\\n line-height: inherit;\\n}\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-current-time,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-time-divider,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-duration,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-remaining-time,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-playback-rate,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-chapters-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-descriptions-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-captions-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-subtitles-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-audio-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-control, .video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-current-time,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-time-divider,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-duration,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-remaining-time,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-playback-rate,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-chapters-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-descriptions-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-captions-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-subtitles-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-audio-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-control, .video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-current-time,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-time-divider,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-duration,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-remaining-time,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-playback-rate,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-chapters-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-descriptions-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-captions-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-subtitles-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-audio-button,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-control {\\n display: none;\\n}\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,\\n.video-js:not(.vjs-fullscreen).vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, .video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, .video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,\\n.video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active {\\n width: auto;\\n width: initial;\\n}\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small:not(.vjs-liveui) .vjs-subs-caps-button, .video-js:not(.vjs-fullscreen).vjs-layout-x-small:not(.vjs-live) .vjs-subs-caps-button, .video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-subs-caps-button {\\n display: none;\\n}\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small.vjs-liveui .vjs-custom-control-spacer, .video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-custom-control-spacer {\\n flex: auto;\\n display: block;\\n}\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small.vjs-liveui.vjs-no-flex .vjs-custom-control-spacer, .video-js:not(.vjs-fullscreen).vjs-layout-tiny.vjs-no-flex .vjs-custom-control-spacer {\\n width: auto;\\n}\\n.video-js:not(.vjs-fullscreen).vjs-layout-x-small.vjs-liveui .vjs-progress-control, .video-js:not(.vjs-fullscreen).vjs-layout-tiny .vjs-progress-control {\\n display: none;\\n}\\n.vjs-modal-dialog.vjs-text-track-settings {\\n background-color: #2B333F;\\n background-color: rgba(43, 51, 63, 0.75);\\n color: #fff;\\n height: 70%;\\n}\\n.vjs-text-track-settings .vjs-modal-dialog-content {\\n display: table;\\n}\\n.vjs-text-track-settings .vjs-track-settings-colors,\\n.vjs-text-track-settings .vjs-track-settings-font,\\n.vjs-text-track-settings .vjs-track-settings-controls {\\n display: table-cell;\\n}\\n.vjs-text-track-settings .vjs-track-settings-controls {\\n text-align: right;\\n vertical-align: bottom;\\n}\\n@supports (display: grid) {\\n .vjs-text-track-settings .vjs-modal-dialog-content {\\n display: grid;\\n grid-template-columns: 1fr 1fr;\\n grid-template-rows: 1fr;\\n padding: 20px 24px 0px 24px;\\n }\\n\\n .vjs-track-settings-controls .vjs-default-button {\\n margin-bottom: 20px;\\n }\\n\\n .vjs-text-track-settings .vjs-track-settings-controls {\\n grid-column: 1/-1;\\n }\\n\\n .vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,\\n.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content,\\n.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content {\\n grid-template-columns: 1fr;\\n }\\n}\\n.vjs-track-setting > select {\\n margin-right: 1em;\\n margin-bottom: 0.5em;\\n}\\n.vjs-text-track-settings fieldset {\\n margin: 5px;\\n padding: 3px;\\n border: none;\\n}\\n.vjs-text-track-settings fieldset span {\\n display: inline-block;\\n}\\n.vjs-text-track-settings fieldset span > select {\\n max-width: 7.3em;\\n}\\n.vjs-text-track-settings legend {\\n color: #fff;\\n margin: 0 0 5px 0;\\n}\\n.vjs-text-track-settings .vjs-label {\\n position: absolute;\\n clip: rect(1px 1px 1px 1px);\\n clip: rect(1px, 1px, 1px, 1px);\\n display: block;\\n margin: 0 0 5px 0;\\n padding: 0;\\n border: 0;\\n height: 1px;\\n width: 1px;\\n overflow: hidden;\\n}\\n.vjs-track-settings-controls button:focus,\\n.vjs-track-settings-controls button:active {\\n outline-style: solid;\\n outline-width: medium;\\n background-image: linear-gradient(0deg, #fff 88%, #73859f 100%);\\n}\\n.vjs-track-settings-controls button:hover {\\n color: rgba(43, 51, 63, 0.75);\\n}\\n.vjs-track-settings-controls button {\\n background-color: #fff;\\n background-image: linear-gradient(-180deg, #fff 88%, #73859f 100%);\\n color: #2B333F;\\n cursor: pointer;\\n border-radius: 2px;\\n}\\n.vjs-track-settings-controls .vjs-default-button {\\n margin-right: 1em;\\n}\\n@media print {\\n .video-js > *:not(.vjs-tech):not(.vjs-poster) {\\n visibility: hidden;\\n }\\n}\\n.vjs-resize-manager {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: none;\\n z-index: -1000;\\n}\\n.js-focus-visible .video-js *:focus:not(.focus-visible) {\\n outline: none;\\n background: none;\\n}\\n.video-js *:focus:not(:focus-visible),\\n.video-js .vjs-menu *:focus:not(:focus-visible) {\\n outline: none;\\n background: none;\\n}\\n.video-js {\\r\\n position: inherit !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy92aWRlby5qcy9kaXN0L3ZpZGVvLWpzLmNzcyIsInNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtY29tcG9uZW50LXR5cGVzL3Zqcy1wbGF5ZXIuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUFDaEI7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtBQUNkO0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixpdExBQWl0TDtFQUNqdEwsbUJBQW1CO0VBQ25CLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBOzs7OztFQUtFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7Ozs7O0VBS0UsZ0JBQWdCO0FBQ2xCO0FBRUE7O0VBRUUsb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7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QUFxQjtBQUN2QjtBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBRUE7RUFDRSxXQUFXO0VBQ1gsaUJBQWlCO0FBQ25CO0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsMkJBQTJCO0VBQzNCLDhCQUE4QjtFQUM5QixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixTQUFTO0VBQ1QsV0FBVztFQUNYLFVBQVU7RUFDVixnQkFBZ0I7QUFDbEI7QUFFQTs7RUFFRSxvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLCtEQUErRDtBQUNqRTtBQUVBO0VBQ0UsNkJBQTZCO0FBQy9CO0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsa0VBQWtFO0VBQ2xFLGNBQWM7RUFDZCxlQUFlO0VBQ2Ysa0JBQWtCO0FBQ3BCO0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7QUFFQTtFQUNFO0lBQ0Usa0JBQWtCO0VBQ3BCO0FBQ0Y7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osWUFBWTtFQUNaLGNBQWM7QUFDaEI7QUFFQTtFQUNFLGFBQWE7RUFDYixnQkFBZ0I7QUFDbEI7QUFFQTs7RUFFRSxhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCO0FDN25EQTtFQUNFLDRCQUE0QjtBQUM5QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2lnbmFnZS9zaWduYWdlLWNvbXBvbmVudC10eXBlcy92anMtcGxheWVyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4udmpzLW1vZGFsLWRpYWxvZyAudmpzLW1vZGFsLWRpYWxvZy1jb250ZW50LCAudmlkZW8tanMgLnZqcy1tb2RhbC1kaWFsb2csIC52anMtYnV0dG9uID4gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtYmlnLXBsYXktYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZqcy1idXR0b24gPiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1iaWctcGxheS1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBQkRrQUFzQUFBQUFHNmdBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkhVMVZDQUFBQkNBQUFBRHNBQUFCVUlJc2xlazlUTHpJQUFBRkVBQUFBUGdBQUFGWlJpVjNoWTIxaGNBQUFBWVFBQUFEYUFBQURQdjc0OS9wbmJIbG1BQUFDWUFBQUMzQUFBQkhRWmc2T2NXaGxZV1FBQUEzUUFBQUFLd0FBQURZWncyNTFhR2hsWVFBQURmd0FBQUFkQUFBQUpBK1JDTEZvYlhSNEFBQU9IQUFBQUJNQUFBQ003NDRBQUd4dlkyRUFBQTR3QUFBQVNBQUFBRWhGNmtxdWJXRjRjQUFBRG5nQUFBQWZBQUFBSUFFMEFJRnVZVzFsQUFBT21BQUFBU1VBQUFJSzFjZjFvSEJ2YzNRQUFBL0FBQUFCSkFBQUFkUEV4WXVOZUp4allHUmdZT0JpTUdDd1kyQnljZk1KWWVETFNTekpZNUJpWUdHQUFKQThNcHN4SnpNOWtZRUR4Z1BLc1lCcERpQm1nNGdDQUNZN0JVZ0FlSnhqWUdTN3dUaUJnWldCZ2FXUTVSa0RBOE12Q00wY3d4RE9lSTZCZ1ltQmxaa0JLd2hJYzAxaGNQakkrRkdKSGNSZHlBNFJaZ1FSQURLM0N4RUFBSGljN2RGWmJzTWdBRVhSUzB5Y3labm5PZUc3eStxQzhwVTFkSHVzSU9YeHVveGFPbHdaWVdRQjBBZWE0cXVJRU40RTlMektiS2p6RGVNNkgvbXVhNkxtYy9wOHloZzBsdmRZeDE1Wkc4dU9MUU9Hak1wM0V6cW16Sml6WU1tS05SdTI3Tmh6NE1pSk14ZXUzTGp6NEVrcW03VDhQNTJHOFBQM2xuVE9WaysrWjZpTjZRWnpOTjFGN3B0dU43ZUdPakRVb2FHT0RIVnN1dlU4TWRUTzlIZDVhcWd6UTUwYjZzSlFsNGE2TXRTMW9XNE1kV3VvTzBQZEcrckJVSStHZWpMVXM2RmVEUFZxcURkRHZSdnF3MUNmaHBxTTlBdDBpRkxhQUFCNG5KMVlEWEJUVlJaKzUvMjJUVWxKOHdlMHBIbEptN1JKZjVPOEYyajZFeW1sU1BrcHhhTDhVMnhwYTNES2owQ0JoYzJJVzRlV0tTb2tJb0xzdU1xc3NNNjRmK2pBNEhTZFdYWFhzY0JxNjdJT3MzRlhaMVpZV1Z5UkZkbzg5OXlYdElCUVo5MGs3NzE3enozdjNIUFBPZmQ4NTRZQ0NqOWNMOWRMMFJRRk9xQ2JHSm5ySGI1RWF5aUtJV044aUEvaFdCYmxvNmhVV204VHRDRHdFODBXTUp1cy9pcnd5eE9keGVCME1EYjE0Vk5KSG5YWW9MTFNsNkZmQ1VZTzluWVBUQThFcGc5MDkwTHByZmJCYloyaFkwVWxKVVhIUXAzL3Z0V2tTNkVCdjgrclBNcTV1OTY5MmYvZE54Sk5pcXdDMXhQRTlUQ1VnQ3NTZFFXZ0UzWFFEMjVsa0c0Q04yeG1UY09YV0JPeXNlcjZSTjZLbkdiS1NibVEzK2QwT0kxbTJXOFF6TExrSTJzeWtyV0FnSkpFdEE4dkdHVy8yUStDbVQzbjh6Uzl3Wnd1MkRDdnR1WktaTjN4a3JMaDM2eUNadVVvbVFTcUdwWTh0LzI1VmZIVmh3OHo0ZWJHQnRmTGIweWE5UENhRGMrOGRHVHZrMmRzaDZ6N1d6dm93bFhLVVNXbzlNSjE1YTNLckVQMmxvT3IyT2podzZpVzZoZjJCRGRFY2NRdlpHcGFBeTdZb3ZTd3E4a3I3SEdsbHhwZDcxcmtTNkcwU2YxMXNsOU92TUsxK2p3UFBPRHhqVXdrT2ltOUNVM2l4MXdOalhEZm1KU0VuNjE4QnM2bHBXd1VwVSs4UENxTE1ZNjUwempxOFZoQ0lQMTdORUtUeDNlYUxMK3M1UGk2eUpXYVdqVEhMUjFqWXpQU1Y5VkYvNk9qZGIvMWtPM01rM3VoSEMweDZnYzFCamxLUStuUUZ4VFlkYUprWjd5U1Z4TEJiaFIxZHNib05YcDF0Q1lLVzJMUmFFenBZY0l4MkJLTnhhTDBaYVVuU3FmRm9pTmhIS1IvR2tYNlBXVVNBYUplbFFhcVpMMUVwb0hOc2FqU0V5UFNvSjlJamhJeFRkakhMbXdadmhSRE9pRlRZL1llUW52clZabWlUUXRHbmNFQ1h0RlRCWkxPVnd3TVJnb1hIQWtYek16UG4xbkFKSjhqWVNiTURhcU4yd2FHTHpOaGloL2JaeW5VQk1wSVdTZzdWWWk3RFJ4Mm04QUxrSWRSQ0p3STZBckp4MkVJOGthRFdlVFFLZUFGazlmamwvMUF2d2t0alExUDdOanlNR1F5ZmQ0dmppcFg2TS9pNTJEN0NxODBrcWxjeEVjR1hSci9GRWNnczB1NXVHZ0I0Vld1TUZmcGRuMlJlNkhpM1Bxem14V0tzejYrYWUyUG45aFhYdy9mcU04NTlVaUdDMG9LWVlJTEpCcUpyc24xWjFFNXFPczlyUUNpVVFSUkVqbTh5SmNiSEY1Y1VKdWZYMXZBSGxlZncwWGdVb2JvUzNFVGZRbFR4QkM0U090dUU4VlBSSlRCU0NRU2paQ3BrN0dxenUrbWFzYVoyeTdaamVoaG80RjNnODJCTkRrQUhwT1JHNCtPQ1MrZjZKVFBtdFJuL1BIMWtjaDZkMDRzcDdBUWIyNWFRL3BxVXlYZVE4dnJlYkc4T1lRZFhPUSs1ODV1MHNkVzlycWFselJVUmlKKzlGNE13ZVJGcktVamwxR1VZaEgxQTI3V09IdzVjVEZTRlBNbzlFZVVJR25RVFpISWFKN0FITGFPS3NPT0RhTkY5amtCallHMlFFc1EyeGpNVUF4MmJCRWJlVEJXTUh3c2tCam5ncTU2Uy95ZmdrQm5XQmE0SzlzcUt0cTJ0MVVJOFM5SGU1WHVCUmJhd0FkYXRyUUVBaTMwQWtzMitMTThXZUNiYWxWWmtXTnlsdkorZHFKbnpWYitPSGxTb0tXOG5QQ1A3UmQrQ2NaMkRkV0FHcUoyQ0JGT3BoZ3l3RkZDRkJOdGZBYkd0TlBCQ3d4dnlnSGVZTVpNWTlaYm9CcXdxL3BWcnNiZ041dGt2MTUyT0RsYk1maXF3R01CZ3hhNEV4ejNRaG92UklVcDZhY3FabVF6UnEweXBEWFMyVFBMVDAyWUlrUUVUbk9FNDQ1b09HeE9tWEFxVUpOTkc3WGd1cE1qUHEydWE5YXNyajV5WS95dUt0ZU8xS3gwWU5KVHVmcmlyTGUxbVpuYXQ3T0w2cm5VZENXZW5wVzZJOG1BbmJzWThLV3MxUHVTb3ZDVzlBL1oyNVBRMjRhN2NOT3FnbVRrTG1CTWdoNFRIZ2M0YjlrMklWdjEvZy9GNW5HbGp3UExmT2dIQXpKemg0NVYvNCtXZW5Uem1NdFI1Wjd1czJUeXM5MDlVSHFyUFk3S2Jja294UnZSSGhtVmMzY0pHRTk3dW1sMFIxUzBqZFVMVmw3RXZadERGVkJGMzVOOWNFZGpwZ21BaU9sRlorRHRvaDkzK0QzenpIcjhSUk5aUWhuQ05NTmJjZWdPdnBFd1pvTCswNmNKUTA3aCt0aDNmWi83UFZiVkM2bmdUQVYvS29MRnVPNisyS0ZjVTY1MWdFYjV1Z1BTSWIxRCtYcDhWNCtrM3NFSUdudzVtWWU0SWY0azFsRllyNlNDem1NMkVROGlXdG13am5CSTlrVHdlMVRsZkFtWGg3SDAyYnk5ZlcyZ3NqS3d0djBhYVVSS2lsNE9kVjdyREwxTVhJRk5yaGR4b2hjWlhZVG5xNDdXaXNyS2l0YU9iYmY1K3l2a0xpNUo2bENOWlorQjZHQzM4Vk5CWkJEaWRTUy8rbVN2aDZzK3NyZ0M4cHlLTXZEdHQrZGUzYzlmVTc2WlBmdU04dWQ0S3YwZnlQL0xxZmVwTVQvM29aeFNxcFphVGExRGFRWUxZOFRGc0hZYldZc1BvUmhSV2ZMNWVTU1FiaFVHZ0dDM1lMYlZNazZQaXRURk5HcEFzTnJDNkQxVk5CS2dCSE1lamFpdVJXRVdHZ3NTREJUSmpxV0lsOGtKTGxzYUxKMnRYRHI2eEdmVDg1Yk0yUTA2YTQ2eDJIVGd2ZG5WOHo1WUR5LzI3SjR6dDZ4MlZ0a3pqb1lwa3EzNmthQnI0ZVFTZzd0eWlWd2VXdWJYWnVndGFkbDU4eWRhcGZiT1JmS3NEVHVaME9CZ3g0Y2ZkakNmNXRiV05JVG5MMTIwZmRPaTFSVjFDM3VLR3pOZHdZTGNNdlozQnhvUHlUT0NEMVh2WFRwN1UxMGdXQ1ZtVFY5YjNyMnowU2tHV292YjJocDlJODlPOGEyc21seWFPOG11TVUrZFJtdHpwNjBJekFvRnBqTHIxbjM4OGJvTHlmMGRSdnhoc0haMHFiV3FEa3dxdnZwa2o0bDBmWTZFSVhSaTVzUVNyQXZzVll3WFJ5NHFKMkVWdEQxQU43YTBIV3RoOXltdkwxeGMzV1RVS0svVEFIQS9iWERWdFZXZk9NZnVHeEdadjRMbi9qVnI5amMzajF5TXYwdG5kbXl0OVZxODhZOWdIMXd0TFgzS1dqb3Q1KytqV0hnQW9aWmtRMTR3R1EyMEZsaTcxVW1LSkF5NHhLTVNUR2JWZHliVzdGRERBdXQ5WHBENUF6V3JZTzd6UThxZmZxRjgrWW5kL2NsckhjZHl4R3kzYS8zK21mTm56Qy9jQnN2ZVRqblR2WGYxbzZ2ek9sWnc3V3RxdGRtUEsvRXJyei82Tk50RDcyem1OT1pmYm1ZZFRHSGZvb2ZxSTc5T2MrUjJuMWxybkw2cE9tMFVwN2t3eGhUVzEyQW1tN1dZa1hSMnFZckYyQW1nbWJBc3haand5MXhwZy9tMUplMnZycDh2L256MnhwbWxCZzRFOWhyTVUzNDF3VnBUT2gvT2ZtR3ZBbnJhOHE2dWN0cjYwWlFIVjNRK1dNUUp5a01qOFpzV24yUUJPbW1ITUIrbTVwRElwVEZvbllpZ2lhS0FoR0VpQUhGN0VsaVZuUWtqb0xWSU1QdEpwQktIWWQzQThHWUg5akp6cld3bUh4NVFqcDd2REFYMHN1R1J5bTF2dG0vOVcxL0h5Ujh2Y3pmTXM2U2s4RFN2ODU1LzVkbFg5b1FxNTJoVDhzeXlwMnJ4NUlkMTdJQXlBTTN3SWpRUE1PSHp5dEVCNjRxNkQ1elQ5MXlOYm54M1YvbnFuZDAxN1M5WTA2MDVrM2l6b1hMcHN4ZGUybjM4eW9PVjlzMUxjand6TmpiZFg2YXNuQlZhQmovNi9Ed0t3UGtwY3FiREc3Qm5zWG9TcVduVUFtb3R0WUY2ak1TZFZ5WVpoM3pWWENqd1Rpd3dISDZzR3VSaUVIUUd6dVJYNndoWmtwMTIzb3kxQldFMm1FZkovdHZJUnRNNFpNNWJEWGlNc1BNYUFLT1R5YzV1TDU3cnF5eWM1eTVKRTVwbTFpMlMyaVVYMENjYVE2bEM2Wm9nN0pxU3FabVlsb3NsMks2cHdOQTg0elJuUVc2U2FBTFlaUUdXNWxoQ3RVL1czNE42bytiS2ZaOGNmMy9DbC8raVRYM3dCenBPWTRtUmtlTmYzcnB0eWNHU3NoUVdnR2JZdDVqRmMyZTArRGdsSXJ3bDZEVldRN0J1d2FKM1hrMUo0Vkw1dXJuTGwvV2YrZ0hVL2hab1pkS055bTZsRytJMzRGYU5lWktjU3BKSW8ySWVDVnZwZHNER2ZLdnpKbkF3bWVEMzdPdzY1Wld3U293cGd3WDVUNjlzL3JCNTVkUDVCY3BnREtGVjhwN3Eyc24vMXVjOTNiVnpUL3c2VXJDcURUV3ZmQ3Evb0NEL3FaWE5vVWo4Qkw1S3A2R1UwMTdmcmZOWGtBdGlpeWYvU09DRWVMcW5kOFIvUWw5R2xDUmZjdFM2azVjaHZJQnVRMXpDQ2pvQ0hMMkRITkhJWHhNSjNrUWVPOGxic1VYT05lU2ZBNUVqY0c2L0UrS2RoTjRiUDA0dkJoZGk4ODMrQkZCelFieEZidlp6UWVZOUxOQlpjMEZOZm41TndmRG42ckNUblR3NlI4bytnZnBmNWhDb20zM2NSdWlUbHNzM0tIbVpqRCtCUE4rNWdYdUEyemlTL1E3M21MeFVrcGJLTi9lcXd6NXVLMFg5RjNoMmQxVjRuR05nWkdCZ0FPSmQ3NzYraXVlMytjckF6YzRBQWplNUJmY2cweHo5WUhFT0JpWVFCUUE4RlFsRkFIaWNZMkJrWUdCbkFBR09QZ2FHLy84NStoa1lHVkNCTWdCR0d3TllBQUFBZUp4allHQmdZQjhFbUtPUGdRRUFRMDRCZmdBQUFBQUFBQTRBYUFCK0FNd0E0QUVDQVVJQmJBR1lBY0lDR0FKWUFyUUM0QU13QTdBRDNnUXdCSllFM0FVa0JXWUZpZ1lnQm1ZR3RBYnFCMWdJRWdoWUNHNEloQWkyQ09oNG5HTmdaR0JnVUdZb1pXQm5BQUVtSU9ZQ1FnYUcvMkErQXdBWUNRRzJBSGljWFpCTmFvTkFHSVpmRTVQUUNLRlEybFVwczJvWEJmT3p6QUVTeURLQlFKZEdSMk5RUjNRU1NFL1FFL1FFUFVVUFVIcXN2c3JYalRNdzgzelB2UE1OQ3VBV1AzRFFEQWVqZG0xR2p6d1M3cE1td2k3NVhuZ0FENC9DUS9vWDRURmU0UXQ3dU1NYk96anVEYzBFbVhDUC9DN2NKMzhJdStSUDRRRWU4Q1U4cFA4V0htT1BYMkVQejg3VFBvMjAyZXkyT2psblFTWFYvNmFyT2pXRm12c3pNV3RkNkNxd09sS0hxNm92eWNMYVdNV1Z5ZFhLRkZabm1WRmxaVTQ2dFA3UjJuSTVuY2JpL2REa2ZEdEZCQTJERFhiWWtoS2MrVjBCcXM1WnQ5Sk0xSFFHQlJUbS9FZXpUbVpOS3RwY0FNczlZdTZBSzljYUY3NnpvTFdJV2NmTUdPU2tWZHV2U1dlY2hxWnN6MDQwSWIyUFkzdXJ4QkpUenJpVDk1bGlweitUTjFmbUFBQUFlSnh0a01sMndqQU1SZk9BaEFCbEttMmg4MEMzK2FqZ0NLS0RZNmNlZ1A1OVRZQnp1a0FMK3oxWnNxOGN0YUpUVEtQcnNVUUxiWFFRSTBFWEtYcm9ZNEFiRERIQ0dCTk1jWXNaN25DUEI4eXh3Q09lOEl3WHZPSU43L2pBSjc2d3hIZlVxV1grT3pndW1XQWpKTVYxN2kwTmRscjZpckxLTytxZnRkVDdpNnk0dUZTVXZDa25heStsRllaSVphUWNtZkgveElGZFluOThicWhyYTFhS1RNLzZsV01ueWFZaXJ4MXJGVVFaRkJrYjJ6SlV0b1hlSkNlZzBXbkx0SGVTRmMzT3Rybm96TndxaTBUa1NwQk1EQjFuU2RlNW9KWFcyM2hUUzIvVDBMaWxnbFhYN2RtRlZ4TG5xNVUwdllBVEhGazN6WDNCT2lzb1FITkRGRGVabnFLRHk5aFJOYXdON1ZoNzI3aEZ6Y0o1YzhUSUxyS1pmSDd0SVB4QUZQMEJwTGVKUEE9PSkgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXBsYXksIC52aWRlby1qcyAudmpzLXBsYXktY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXIsIC52aWRlby1qcyAudmpzLWJpZy1wbGF5LWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1wbGF5OmJlZm9yZSwgLnZpZGVvLWpzIC52anMtcGxheS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUsIC52aWRlby1qcyAudmpzLWJpZy1wbGF5LWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDFcIjtcbn1cblxuLnZqcy1pY29uLXBsYXktY2lyY2xlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1wbGF5LWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMlwiO1xufVxuXG4udmpzLWljb24tcGF1c2UsIC52aWRlby1qcyAudmpzLXBsYXktY29udHJvbC52anMtcGxheWluZyAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXBhdXNlOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtcGxheS1jb250cm9sLnZqcy1wbGF5aW5nIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwM1wiO1xufVxuXG4udmpzLWljb24tdm9sdW1lLW11dGUsIC52aWRlby1qcyAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTAgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi12b2x1bWUtbXV0ZTpiZWZvcmUsIC52aWRlby1qcyAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTAgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA0XCI7XG59XG5cbi52anMtaWNvbi12b2x1bWUtbG93LCAudmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wudmpzLXZvbC0xIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tdm9sdW1lLWxvdzpiZWZvcmUsIC52aWRlby1qcyAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTEgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG59XG5cbi52anMtaWNvbi12b2x1bWUtbWlkLCAudmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wudmpzLXZvbC0yIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tdm9sdW1lLW1pZDpiZWZvcmUsIC52aWRlby1qcyAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTIgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA2XCI7XG59XG5cbi52anMtaWNvbi12b2x1bWUtaGlnaCwgLnZpZGVvLWpzIC52anMtbXV0ZS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tdm9sdW1lLWhpZ2g6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA3XCI7XG59XG5cbi52anMtaWNvbi1mdWxsc2NyZWVuLWVudGVyLCAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1mdWxsc2NyZWVuLWVudGVyOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtZnVsbHNjcmVlbi1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOFwiO1xufVxuXG4udmpzLWljb24tZnVsbHNjcmVlbi1leGl0LCAudmlkZW8tanMudmpzLWZ1bGxzY3JlZW4gLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1mdWxsc2NyZWVuLWV4aXQ6YmVmb3JlLCAudmlkZW8tanMudmpzLWZ1bGxzY3JlZW4gLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA5XCI7XG59XG5cbi52anMtaWNvbi1zcXVhcmUge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYVwiO1xufVxuXG4udmpzLWljb24tc3Bpbm5lciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tc3Bpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYlwiO1xufVxuXG4udmpzLWljb24tc3VidGl0bGVzLCAudmlkZW8tanMgLnZqcy1zdWJzLWNhcHMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcixcbi52aWRlby1qcy52aWRlby1qczpsYW5nKGVuLUdCKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tSUUpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIsXG4udmlkZW8tanMudmlkZW8tanM6bGFuZyhlbi1BVSkgLnZqcy1zdWJzLWNhcHMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcixcbi52aWRlby1qcy52aWRlby1qczpsYW5nKGVuLU5aKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyLCAudmlkZW8tanMgLnZqcy1zdWJ0aXRsZXMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tc3VidGl0bGVzOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tR0IpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tSUUpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tQVUpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tTlopIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1zdWJ0aXRsZXMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwY1wiO1xufVxuXG4udmpzLWljb24tY2FwdGlvbnMsIC52aWRlby1qczpsYW5nKGVuKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyLFxuLnZpZGVvLWpzOmxhbmcoZnItQ0EpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIsIC52aWRlby1qcyAudmpzLWNhcHRpb25zLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWNhcHRpb25zOmJlZm9yZSwgLnZpZGVvLWpzOmxhbmcoZW4pIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLFxuLnZpZGVvLWpzOmxhbmcoZnItQ0EpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1jYXB0aW9ucy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBkXCI7XG59XG5cbi52anMtaWNvbi1jaGFwdGVycywgLnZpZGVvLWpzIC52anMtY2hhcHRlcnMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tY2hhcHRlcnM6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1jaGFwdGVycy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBlXCI7XG59XG5cbi52anMtaWNvbi1zaGFyZSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGZcIjtcbn1cblxuLnZqcy1pY29uLWNvZyB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEwXCI7XG59XG5cbi52anMtaWNvbi1jaXJjbGUsIC52anMtc2Vlay10by1saXZlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyLCAudmlkZW8tanMgLnZqcy12b2x1bWUtbGV2ZWwsIC52aWRlby1qcyAudmpzLXBsYXktcHJvZ3Jlc3Mge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWNpcmNsZTpiZWZvcmUsIC52anMtc2Vlay10by1saXZlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtdm9sdW1lLWxldmVsOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtcGxheS1wcm9ncmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMVwiO1xufVxuXG4udmpzLWljb24tY2lyY2xlLW91dGxpbmUge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEyXCI7XG59XG5cbi52anMtaWNvbi1jaXJjbGUtaW5uZXItY2lyY2xlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1jaXJjbGUtaW5uZXItY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEzXCI7XG59XG5cbi52anMtaWNvbi1oZCB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24taGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTRcIjtcbn1cblxuLnZqcy1pY29uLWNhbmNlbCwgLnZpZGVvLWpzIC52anMtY29udHJvbC52anMtY2xvc2UtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tY2FuY2VsOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtY29udHJvbC52anMtY2xvc2UtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExNVwiO1xufVxuXG4udmpzLWljb24tcmVwbGF5LCAudmlkZW8tanMgLnZqcy1wbGF5LWNvbnRyb2wudmpzLWVuZGVkIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tcmVwbGF5OmJlZm9yZSwgLnZpZGVvLWpzIC52anMtcGxheS1jb250cm9sLnZqcy1lbmRlZCAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTZcIjtcbn1cblxuLnZqcy1pY29uLWZhY2Vib29rIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1mYWNlYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExN1wiO1xufVxuXG4udmpzLWljb24tZ3BsdXMge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWdwbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE4XCI7XG59XG5cbi52anMtaWNvbi1saW5rZWRpbiB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tbGlua2VkaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTlcIjtcbn1cblxuLnZqcy1pY29uLXR3aXR0ZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXR3aXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWFcIjtcbn1cblxuLnZqcy1pY29uLXR1bWJsciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tdHVtYmxyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFiXCI7XG59XG5cbi52anMtaWNvbi1waW50ZXJlc3Qge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXBpbnRlcmVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExY1wiO1xufVxuXG4udmpzLWljb24tYXVkaW8tZGVzY3JpcHRpb24sIC52aWRlby1qcyAudmpzLWRlc2NyaXB0aW9ucy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmUsIC52aWRlby1qcyAudmpzLWRlc2NyaXB0aW9ucy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFkXCI7XG59XG5cbi52anMtaWNvbi1hdWRpbywgLnZpZGVvLWpzIC52anMtYXVkaW8tYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tYXVkaW86YmVmb3JlLCAudmlkZW8tanMgLnZqcy1hdWRpby1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFlXCI7XG59XG5cbi52anMtaWNvbi1uZXh0LWl0ZW0ge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLW5leHQtaXRlbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExZlwiO1xufVxuXG4udmpzLWljb24tcHJldmlvdXMtaXRlbSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tcHJldmlvdXMtaXRlbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMFwiO1xufVxuXG4udmpzLWljb24tcGljdHVyZS1pbi1waWN0dXJlLWVudGVyLCAudmlkZW8tanMgLnZqcy1waWN0dXJlLWluLXBpY3R1cmUtY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXBpY3R1cmUtaW4tcGljdHVyZS1lbnRlcjpiZWZvcmUsIC52aWRlby1qcyAudmpzLXBpY3R1cmUtaW4tcGljdHVyZS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMVwiO1xufVxuXG4udmpzLWljb24tcGljdHVyZS1pbi1waWN0dXJlLWV4aXQsIC52aWRlby1qcy52anMtcGljdHVyZS1pbi1waWN0dXJlIC52anMtcGljdHVyZS1pbi1waWN0dXJlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1waWN0dXJlLWluLXBpY3R1cmUtZXhpdDpiZWZvcmUsIC52aWRlby1qcy52anMtcGljdHVyZS1pbi1waWN0dXJlIC52anMtcGljdHVyZS1pbi1waWN0dXJlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTIyXCI7XG59XG5cbi52aWRlby1qcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICB3b3JkLWJyZWFrOiBpbml0aWFsO1xufVxuLnZpZGVvLWpzOi1tb3otZnVsbC1zY3JlZW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4udmlkZW8tanM6LXdlYmtpdC1mdWxsLXNjcmVlbiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4udmlkZW8tanNbdGFiaW5kZXg9XCItMVwiXSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi52aWRlby1qcyAqLFxuLnZpZGVvLWpzICo6YmVmb3JlLFxuLnZpZGVvLWpzICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG4udmlkZW8tanMgdWwge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnZpZGVvLWpzLnZqcy1mbHVpZCxcbi52aWRlby1qcy52anMtMTYtOSxcbi52aWRlby1qcy52anMtNC0zIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4udmlkZW8tanMudmpzLTE2LTkge1xuICBwYWRkaW5nLXRvcDogNTYuMjUlO1xufVxuXG4udmlkZW8tanMudmpzLTQtMyB7XG4gIHBhZGRpbmctdG9wOiA3NSU7XG59XG5cbi52aWRlby1qcy52anMtZmlsbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52aWRlby1qcyAudmpzLXRlY2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuYm9keS52anMtZnVsbC13aW5kb3cge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZqcy1mdWxsLXdpbmRvdyAudmlkZW8tanMudmpzLWZ1bGxzY3JlZW4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IDEwMDA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbn1cblxuLnZpZGVvLWpzLnZqcy1mdWxsc2NyZWVuOm5vdCgudmpzLWlvcy1uYXRpdmUtZnMpIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XG59XG5cbi52aWRlby1qcy52anMtZnVsbHNjcmVlbi52anMtdXNlci1pbmFjdGl2ZSB7XG4gIGN1cnNvcjogbm9uZTtcbn1cblxuLnZqcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi52anMtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnZpZGVvLWpzIC52anMtb2Zmc2NyZWVuIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIGxlZnQ6IC05OTk5cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMXB4O1xufVxuXG4udmpzLWxvY2stc2hvd2luZyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi52anMtbm8tanMge1xuICBwYWRkaW5nOiAyMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMTUwcHg7XG4gIG1hcmdpbjogMHB4IGF1dG87XG59XG5cbi52anMtbm8tanMgYSxcbi52anMtbm8tanMgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICM2NkE4Q0M7XG59XG5cbi52aWRlby1qcyAudmpzLWJpZy1wbGF5LWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIGhlaWdodDogMS42MzMzMmVtO1xuICB3aWR0aDogM2VtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMTtcbiAgYm9yZGVyOiAwLjA2NjY2ZW0gc29saWQgI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJCMzMzRjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTEsIDYzLCAwLjcpO1xuICBib3JkZXItcmFkaXVzOiAwLjNlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHM7XG59XG4udmpzLWJpZy1wbGF5LWNlbnRlcmVkIC52anMtYmlnLXBsYXktYnV0dG9uIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTAuODE2NjZlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xLjVlbTtcbn1cblxuLnZpZGVvLWpzOmhvdmVyIC52anMtYmlnLXBsYXktYnV0dG9uLFxuLnZpZGVvLWpzIC52anMtYmlnLXBsYXktYnV0dG9uOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM4NTlmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExNSwgMTMzLCAxNTksIDAuNSk7XG4gIHRyYW5zaXRpb246IGFsbCAwcztcbn1cblxuLnZqcy1jb250cm9scy1kaXNhYmxlZCAudmpzLWJpZy1wbGF5LWJ1dHRvbixcbi52anMtaGFzLXN0YXJ0ZWQgLnZqcy1iaWctcGxheS1idXR0b24sXG4udmpzLXVzaW5nLW5hdGl2ZS1jb250cm9scyAudmpzLWJpZy1wbGF5LWJ1dHRvbixcbi52anMtZXJyb3IgLnZqcy1iaWctcGxheS1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLWhhcy1zdGFydGVkLnZqcy1wYXVzZWQudmpzLXNob3ctYmlnLXBsYXktYnV0dG9uLW9uLXBhdXNlIC52anMtYmlnLXBsYXktYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52aWRlby1qcyBidXR0b24ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4udmpzLWNvbnRyb2wgLnZqcy1idXR0b24ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmlkZW8tanMgLnZqcy1jb250cm9sLnZqcy1jbG9zZS1idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGhlaWdodDogM2VtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDAuNWVtO1xuICB6LWluZGV4OiAyO1xufVxuLnZpZGVvLWpzIC52anMtbW9kYWwtZGlhbG9nIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDAsIDAsIDAsIDAuOCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLnZpZGVvLWpzIC52anMtbW9kYWwtZGlhbG9nID4gKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi52anMtbW9kYWwtZGlhbG9nIC52anMtbW9kYWwtZGlhbG9nLWNvbnRlbnQge1xuICBmb250LXNpemU6IDEuMmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBwYWRkaW5nOiAyMHB4IDI0cHg7XG4gIHotaW5kZXg6IDE7XG59XG5cbi52anMtbWVudS1idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi52anMtbWVudS1idXR0b24udmpzLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4udmpzLXdvcmtpbmdob3ZlciAudmpzLW1lbnUtYnV0dG9uLnZqcy1kaXNhYmxlZDpob3ZlciAudmpzLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi52anMtbWVudSAudmpzLW1lbnUtY29udGVudCA+ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4udmpzLXNjcnViYmluZyAudmpzLWNvbnRyb2wudmpzLW1lbnUtYnV0dG9uOmhvdmVyIC52anMtbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtbWVudSBsaSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4yZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDEuNGVtO1xuICBmb250LXNpemU6IDEuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG59XG5cbi52anMtbWVudSBsaS52anMtbWVudS1pdGVtOmZvY3VzLFxuLnZqcy1tZW51IGxpLnZqcy1tZW51LWl0ZW06aG92ZXIsXG4uanMtZm9jdXMtdmlzaWJsZSAudmpzLW1lbnUgbGkudmpzLW1lbnUtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Mzg1OWY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE1LCAxMzMsIDE1OSwgMC41KTtcbn1cblxuLnZqcy1tZW51IGxpLnZqcy1zZWxlY3RlZCxcbi52anMtbWVudSBsaS52anMtc2VsZWN0ZWQ6Zm9jdXMsXG4udmpzLW1lbnUgbGkudmpzLXNlbGVjdGVkOmhvdmVyLFxuLmpzLWZvY3VzLXZpc2libGUgLnZqcy1tZW51IGxpLnZqcy1zZWxlY3RlZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjMkIzMzNGO1xufVxuXG4udmpzLW1lbnUgbGkudmpzLW1lbnUtdGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMmVtO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDAgMCAwLjNlbSAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4udmpzLW1lbnUtYnV0dG9uLXBvcHVwIC52anMtbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTBlbTtcbiAgbGVmdDogLTNlbTtcbiAgaGVpZ2h0OiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDQzLCA1MSwgNjMsIDAuNyk7XG59XG5cbi52anMtbWVudS1idXR0b24tcG9wdXAgLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJCMzMzRjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTEsIDYzLCAwLjcpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3R0b206IDEuNWVtO1xuICBtYXgtaGVpZ2h0OiAxNWVtO1xufVxuXG4udmpzLWxheW91dC10aW55IC52anMtbWVudS1idXR0b24tcG9wdXAgLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50LFxuLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLW1lbnUtYnV0dG9uLXBvcHVwIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDVlbTtcbn1cblxuLnZqcy1sYXlvdXQtc21hbGwgLnZqcy1tZW51LWJ1dHRvbi1wb3B1cCAudmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiAxMGVtO1xufVxuXG4udmpzLWxheW91dC1tZWRpdW0gLnZqcy1tZW51LWJ1dHRvbi1wb3B1cCAudmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiAxNGVtO1xufVxuXG4udmpzLWxheW91dC1sYXJnZSAudmpzLW1lbnUtYnV0dG9uLXBvcHVwIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudCxcbi52anMtbGF5b3V0LXgtbGFyZ2UgLnZqcy1tZW51LWJ1dHRvbi1wb3B1cCAudmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQsXG4udmpzLWxheW91dC1odWdlIC52anMtbWVudS1idXR0b24tcG9wdXAgLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogMjVlbTtcbn1cblxuLnZqcy13b3JraW5naG92ZXIgLnZqcy1tZW51LWJ1dHRvbi1wb3B1cC52anMtaG92ZXIgLnZqcy1tZW51LFxuLnZqcy1tZW51LWJ1dHRvbi1wb3B1cCAudmpzLW1lbnUudmpzLWxvY2stc2hvd2luZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udmlkZW8tanMgLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmUge1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnZpZGVvLWpzIC52anMtbWVudS1idXR0b24taW5saW5lOmJlZm9yZSB7XG4gIHdpZHRoOiAyLjIyMjIyMjIyMmVtO1xufVxuXG4udmlkZW8tanMgLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmU6aG92ZXIsXG4udmlkZW8tanMgLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmU6Zm9jdXMsXG4udmlkZW8tanMgLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmUudmpzLXNsaWRlci1hY3RpdmUsXG4udmlkZW8tanMudmpzLW5vLWZsZXggLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmUge1xuICB3aWR0aDogMTJlbTtcbn1cblxuLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmUgLnZqcy1tZW51IHtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA0ZW07XG4gIHRvcDogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cztcbn1cblxuLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmU6aG92ZXIgLnZqcy1tZW51LFxuLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmU6Zm9jdXMgLnZqcy1tZW51LFxuLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmUudmpzLXNsaWRlci1hY3RpdmUgLnZqcy1tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi52anMtbm8tZmxleCAudmpzLW1lbnUtYnV0dG9uLWlubGluZSAudmpzLW1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbn1cblxuLnZqcy1uby1mbGV4IC52anMtbWVudS1idXR0b24taW5saW5lOmhvdmVyIC52anMtbWVudSxcbi52anMtbm8tZmxleCAudmpzLW1lbnUtYnV0dG9uLWlubGluZTpmb2N1cyAudmpzLW1lbnUsXG4udmpzLW5vLWZsZXggLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmUudmpzLXNsaWRlci1hY3RpdmUgLnZqcy1tZW51IHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi52anMtbWVudS1idXR0b24taW5saW5lIC52anMtbWVudS1jb250ZW50IHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udmlkZW8tanMgLnZqcy1jb250cm9sLWJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogM2VtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkIzMzNGO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1MSwgNjMsIDAuNyk7XG59XG5cbi52anMtaGFzLXN0YXJ0ZWQgLnZqcy1jb250cm9sLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMC4xcywgb3BhY2l0eSAwLjFzO1xufVxuXG4udmpzLWhhcy1zdGFydGVkLnZqcy11c2VyLWluYWN0aXZlLnZqcy1wbGF5aW5nIC52anMtY29udHJvbC1iYXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDFzLCBvcGFjaXR5IDFzO1xufVxuXG4udmpzLWNvbnRyb2xzLWRpc2FibGVkIC52anMtY29udHJvbC1iYXIsXG4udmpzLXVzaW5nLW5hdGl2ZS1jb250cm9scyAudmpzLWNvbnRyb2wtYmFyLFxuLnZqcy1lcnJvciAudmpzLWNvbnRyb2wtYmFyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udmpzLWF1ZGlvLnZqcy1oYXMtc3RhcnRlZC52anMtdXNlci1pbmFjdGl2ZS52anMtcGxheWluZyAudmpzLWNvbnRyb2wtYmFyIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLnZqcy1oYXMtc3RhcnRlZC52anMtbm8tZmxleCAudmpzLWNvbnRyb2wtYmFyIHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi52aWRlby1qcyAudmpzLWNvbnRyb2wge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA0ZW07XG4gIGZsZXg6IG5vbmU7XG59XG5cbi52anMtYnV0dG9uID4gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGZvbnQtc2l6ZTogMS44ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY3O1xufVxuXG4udmlkZW8tanMgLnZqcy1jb250cm9sOmZvY3VzOmJlZm9yZSxcbi52aWRlby1qcyAudmpzLWNvbnRyb2w6aG92ZXI6YmVmb3JlLFxuLnZpZGVvLWpzIC52anMtY29udHJvbDpmb2N1cyB7XG4gIHRleHQtc2hhZG93OiAwZW0gMGVtIDFlbSB3aGl0ZTtcbn1cblxuLnZpZGVvLWpzIC52anMtY29udHJvbC10ZXh0IHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xufVxuXG4udmpzLW5vLWZsZXggLnZqcy1jb250cm9sIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnZpZGVvLWpzIC52anMtY3VzdG9tLWNvbnRyb2wtc3BhY2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtY29udHJvbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiA0ZW07XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtY29udHJvbC5kaXNhYmxlZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnZqcy1saXZlIC52anMtcHJvZ3Jlc3MtY29udHJvbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtbGl2ZXVpIC52anMtcHJvZ3Jlc3MtY29udHJvbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi52anMtbm8tZmxleCAudmpzLXByb2dyZXNzLWNvbnRyb2wge1xuICB3aWR0aDogYXV0bztcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtaG9sZGVyIHtcbiAgZmxleDogYXV0bztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIGhlaWdodDogMC4zZW07XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWNvbnRyb2wgLnZqcy1wcm9ncmVzcy1ob2xkZXIge1xuICBtYXJnaW46IDAgMTBweDtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtY29udHJvbDpob3ZlciAudmpzLXByb2dyZXNzLWhvbGRlciB7XG4gIGZvbnQtc2l6ZTogMS42NjY2NjY2NjY3ZW07XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWNvbnRyb2w6aG92ZXIgLnZqcy1wcm9ncmVzcy1ob2xkZXIuZGlzYWJsZWQge1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtaG9sZGVyIC52anMtcGxheS1wcm9ncmVzcyxcbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWhvbGRlciAudmpzLWxvYWQtcHJvZ3Jlc3MsXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1ob2xkZXIgLnZqcy1sb2FkLXByb2dyZXNzIGRpdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMDtcbn1cblxuLnZpZGVvLWpzIC52anMtcGxheS1wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4udmlkZW8tanMgLnZqcy1wbGF5LXByb2dyZXNzOmJlZm9yZSB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IC0wLjVlbTtcbiAgdG9wOiAtMC4zMzMzMzMzMzMzZW07XG4gIHotaW5kZXg6IDE7XG59XG5cbi52aWRlby1qcyAudmpzLWxvYWQtcHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDExNSwgMTMzLCAxNTksIDAuNSk7XG59XG5cbi52aWRlby1qcyAudmpzLWxvYWQtcHJvZ3Jlc3MgZGl2IHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMTUsIDEzMywgMTU5LCAwLjc1KTtcbn1cblxuLnZpZGVvLWpzIC52anMtdGltZS10b29sdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICBib3JkZXItcmFkaXVzOiAwLjNlbTtcbiAgY29sb3I6ICMwMDA7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiA2cHggOHB4IDhweCA4cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTMuNGVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IDE7XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWhvbGRlcjpmb2N1cyAudmpzLXRpbWUtdG9vbHRpcCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWNvbnRyb2w6aG92ZXIgLnZqcy10aW1lLXRvb2x0aXAsXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1jb250cm9sOmhvdmVyIC52anMtcHJvZ3Jlc3MtaG9sZGVyOmZvY3VzIC52anMtdGltZS10b29sdGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC42ZW07XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWNvbnRyb2wuZGlzYWJsZWQ6aG92ZXIgLnZqcy10aW1lLXRvb2x0aXAge1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtY29udHJvbCAudmpzLW1vdXNlLWRpc3BsYXkge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgei1pbmRleDogMTtcbn1cblxuLnZqcy1uby1mbGV4IC52anMtcHJvZ3Jlc3MtY29udHJvbCAudmpzLW1vdXNlLWRpc3BsYXkge1xuICB6LWluZGV4OiAwO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1jb250cm9sOmhvdmVyIC52anMtbW91c2UtZGlzcGxheSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udmlkZW8tanMudmpzLXVzZXItaW5hY3RpdmUgLnZqcy1wcm9ncmVzcy1jb250cm9sIC52anMtbW91c2UtZGlzcGxheSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxcywgb3BhY2l0eSAxcztcbn1cblxuLnZpZGVvLWpzLnZqcy11c2VyLWluYWN0aXZlLnZqcy1uby1mbGV4IC52anMtcHJvZ3Jlc3MtY29udHJvbCAudmpzLW1vdXNlLWRpc3BsYXkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLW1vdXNlLWRpc3BsYXkgLnZqcy10aW1lLXRvb2x0aXAge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuXG4udmlkZW8tanMgLnZqcy1zbGlkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAuNDVlbSAwIDAuNDVlbTtcbiAgLyogaU9TIFNhZmFyaSAqL1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC8qIFNhZmFyaSAqL1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAvKiBLb25xdWVyb3IgSFRNTCAqL1xuICAvKiBGaXJlZm94ICovXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIEludGVybmV0IEV4cGxvcmVyL0VkZ2UgKi9cbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAvKiBOb24tcHJlZml4ZWQgdmVyc2lvbiwgY3VycmVudGx5IHN1cHBvcnRlZCBieSBDaHJvbWUgYW5kIE9wZXJhICovXG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzM4NTlmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExNSwgMTMzLCAxNTksIDAuNSk7XG59XG5cbi52aWRlby1qcyAudmpzLXNsaWRlci5kaXNhYmxlZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnZpZGVvLWpzIC52anMtc2xpZGVyOmZvY3VzIHtcbiAgdGV4dC1zaGFkb3c6IDBlbSAwZW0gMWVtIHdoaXRlO1xuICBib3gtc2hhZG93OiAwIDAgMWVtICNmZmY7XG59XG5cbi52aWRlby1qcyAudmpzLW11dGUtY29udHJvbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleDogbm9uZTtcbn1cbi52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS1ob3Jpem9udGFsIHtcbiAgd2lkdGg6IDVlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2wge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCB7XG4gIHRyYW5zaXRpb246IHdpZHRoIDFzO1xufVxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy1ob3ZlciAudmpzLXZvbHVtZS1jb250cm9sLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWw6YWN0aXZlIC52anMtdm9sdW1lLWNvbnRyb2wsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbDpmb2N1cyAudmpzLXZvbHVtZS1jb250cm9sLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbDphY3RpdmUsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtaG92ZXIgLnZqcy1tdXRlLWNvbnRyb2wgfiAudmpzLXZvbHVtZS1jb250cm9sLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbC52anMtc2xpZGVyLWFjdGl2ZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwLjFzLCBvcGFjaXR5IDAuMXMsIGhlaWdodCAwLjFzLCB3aWR0aCAwLjFzLCBsZWZ0IDBzLCB0b3AgMHM7XG59XG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLWhvdmVyIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS1ob3Jpem9udGFsLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWw6YWN0aXZlIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS1ob3Jpem9udGFsLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWw6Zm9jdXMgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLWhvcml6b250YWwsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sOmFjdGl2ZS52anMtdm9sdW1lLWhvcml6b250YWwsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtaG92ZXIgLnZqcy1tdXRlLWNvbnRyb2wgfiAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtaG9yaXpvbnRhbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXNsaWRlci1hY3RpdmUudmpzLXZvbHVtZS1ob3Jpem9udGFsIHtcbiAgd2lkdGg6IDVlbTtcbiAgaGVpZ2h0OiAzZW07XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtaG92ZXIgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLXZlcnRpY2FsLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWw6YWN0aXZlIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS12ZXJ0aWNhbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsOmZvY3VzIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS12ZXJ0aWNhbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2w6YWN0aXZlLnZqcy12b2x1bWUtdmVydGljYWwsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtaG92ZXIgLnZqcy1tdXRlLWNvbnRyb2wgfiAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtdmVydGljYWwsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sLnZqcy1zbGlkZXItYWN0aXZlLnZqcy12b2x1bWUtdmVydGljYWwge1xuICBsZWZ0OiAtMy41ZW07XG4gIHRyYW5zaXRpb246IGxlZnQgMHM7XG59XG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC1ob3Jpem9udGFsLnZqcy1ob3ZlciwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbDphY3RpdmUsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWwudmpzLXNsaWRlci1hY3RpdmUge1xuICB3aWR0aDogMTBlbTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4xcztcbn1cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWwudmpzLW11dGUtdG9nZ2xlLW9ubHkge1xuICB3aWR0aDogNGVtO1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLXZlcnRpY2FsIHtcbiAgaGVpZ2h0OiA4ZW07XG4gIHdpZHRoOiAzZW07XG4gIGxlZnQ6IC0zMDAwZW07XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMXMsIG9wYWNpdHkgMXMsIGhlaWdodCAxcyAxcywgd2lkdGggMXMgMXMsIGxlZnQgMXMgMXMsIHRvcCAxcyAxcztcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS1ob3Jpem9udGFsIHtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxcywgb3BhY2l0eSAxcywgaGVpZ2h0IDFzIDFzLCB3aWR0aCAxcywgbGVmdCAxcyAxcywgdG9wIDFzIDFzO1xufVxuXG4udmlkZW8tanMudmpzLW5vLWZsZXggLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLWhvcml6b250YWwge1xuICB3aWR0aDogNWVtO1xuICBoZWlnaHQ6IDNlbTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4udmlkZW8tanMudmpzLW5vLWZsZXggLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLXZlcnRpY2FsLFxuLnZpZGVvLWpzLnZqcy1uby1mbGV4IC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS12ZXJ0aWNhbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAzZW07XG4gIGxlZnQ6IDAuNWVtO1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtYmFyIHtcbiAgbWFyZ2luOiAxLjM1ZW0gMC40NWVtO1xufVxuXG4udmpzLXZvbHVtZS1iYXIudmpzLXNsaWRlci1ob3Jpem9udGFsIHtcbiAgd2lkdGg6IDVlbTtcbiAgaGVpZ2h0OiAwLjNlbTtcbn1cblxuLnZqcy12b2x1bWUtYmFyLnZqcy1zbGlkZXItdmVydGljYWwge1xuICB3aWR0aDogMC4zZW07XG4gIGhlaWdodDogNWVtO1xuICBtYXJnaW46IDEuMzVlbSBhdXRvO1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtbGV2ZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi52aWRlby1qcyAudmpzLXZvbHVtZS1sZXZlbDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG5cbi52anMtc2xpZGVyLXZlcnRpY2FsIC52anMtdm9sdW1lLWxldmVsIHtcbiAgd2lkdGg6IDAuM2VtO1xufVxuLnZqcy1zbGlkZXItdmVydGljYWwgLnZqcy12b2x1bWUtbGV2ZWw6YmVmb3JlIHtcbiAgdG9wOiAtMC41ZW07XG4gIGxlZnQ6IC0wLjNlbTtcbn1cblxuLnZqcy1zbGlkZXItaG9yaXpvbnRhbCAudmpzLXZvbHVtZS1sZXZlbCB7XG4gIGhlaWdodDogMC4zZW07XG59XG4udmpzLXNsaWRlci1ob3Jpem9udGFsIC52anMtdm9sdW1lLWxldmVsOmJlZm9yZSB7XG4gIHRvcDogLTAuM2VtO1xuICByaWdodDogLTAuNWVtO1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC12ZXJ0aWNhbCB7XG4gIHdpZHRoOiA0ZW07XG59XG5cbi52anMtdm9sdW1lLWJhci52anMtc2xpZGVyLXZlcnRpY2FsIC52anMtdm9sdW1lLWxldmVsIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmpzLXZvbHVtZS1iYXIudmpzLXNsaWRlci1ob3Jpem9udGFsIC52anMtdm9sdW1lLWxldmVsIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS12ZXJ0aWNhbCB7XG4gIHdpZHRoOiAzZW07XG4gIGhlaWdodDogOGVtO1xuICBib3R0b206IDhlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJCMzMzRjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTEsIDYzLCAwLjcpO1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtaG9yaXpvbnRhbCAudmpzLW1lbnUge1xuICBsZWZ0OiAtMmVtO1xufVxuXG4udmpzLXBvc3RlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZqcy1oYXMtc3RhcnRlZCAudmpzLXBvc3RlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtYXVkaW8udmpzLWhhcy1zdGFydGVkIC52anMtcG9zdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52anMtdXNpbmctbmF0aXZlLWNvbnRyb2xzIC52anMtcG9zdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZpZGVvLWpzIC52anMtbGl2ZS1jb250cm9sIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZsZXg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogM2VtO1xufVxuXG4udmpzLW5vLWZsZXggLnZqcy1saXZlLWNvbnRyb2wge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB3aWR0aDogYXV0bztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnZpZGVvLWpzOm5vdCgudmpzLWxpdmUpIC52anMtbGl2ZS1jb250cm9sLFxuLnZpZGVvLWpzLnZqcy1saXZldWkgLnZqcy1saXZlLWNvbnRyb2wge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmlkZW8tanMgLnZqcy1zZWVrLXRvLWxpdmUtY29udHJvbCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogM2VtO1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiA0ZW07XG59XG5cbi52anMtbm8tZmxleCAudmpzLXNlZWstdG8tbGl2ZS1jb250cm9sIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgd2lkdGg6IGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi52aWRlby1qcy52anMtbGl2ZTpub3QoLnZqcy1saXZldWkpIC52anMtc2Vlay10by1saXZlLWNvbnRyb2wsXG4udmlkZW8tanM6bm90KC52anMtbGl2ZSkgLnZqcy1zZWVrLXRvLWxpdmUtY29udHJvbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtc2Vlay10by1saXZlLWNvbnRyb2wudmpzLWNvbnRyb2wudmpzLWF0LWxpdmUtZWRnZSB7XG4gIGN1cnNvcjogYXV0bztcbn1cblxuLnZqcy1zZWVrLXRvLWxpdmUtY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICBjb2xvcjogIzg4ODtcbn1cblxuLnZqcy1zZWVrLXRvLWxpdmUtY29udHJvbC52anMtY29udHJvbC52anMtYXQtbGl2ZS1lZGdlIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi52aWRlby1qcyAudmpzLXRpbWUtY29udHJvbCB7XG4gIGZsZXg6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogM2VtO1xuICBtaW4td2lkdGg6IDJlbTtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxZW07XG59XG5cbi52anMtbGl2ZSAudmpzLXRpbWUtY29udHJvbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlby1qcyAudmpzLWN1cnJlbnQtdGltZSxcbi52anMtbm8tZmxleCAudmpzLWN1cnJlbnQtdGltZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlby1qcyAudmpzLWR1cmF0aW9uLFxuLnZqcy1uby1mbGV4IC52anMtZHVyYXRpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLXRpbWUtZGl2aWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAzZW07XG59XG5cbi52anMtbGl2ZSAudmpzLXRpbWUtZGl2aWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlby1qcyAudmpzLXBsYXktY29udHJvbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnZpZGVvLWpzIC52anMtcGxheS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZsZXg6IG5vbmU7XG59XG5cbi52anMtdGV4dC10cmFjay1kaXNwbGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDNlbTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi52aWRlby1qcy52anMtdXNlci1pbmFjdGl2ZS52anMtcGxheWluZyAudmpzLXRleHQtdHJhY2stZGlzcGxheSB7XG4gIGJvdHRvbTogMWVtO1xufVxuXG4udmlkZW8tanMgLnZqcy10ZXh0LXRyYWNrIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAwLjFlbTtcbn1cblxuLnZqcy1zdWJ0aXRsZXMge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnZqcy1jYXB0aW9ucyB7XG4gIGNvbG9yOiAjZmM2O1xufVxuXG4udmpzLXR0LWN1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG52aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNlbSk7XG59XG5cbi52aWRlby1qcy52anMtdXNlci1pbmFjdGl2ZS52anMtcGxheWluZyB2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNWVtKTtcbn1cblxuLnZpZGVvLWpzIC52anMtcGljdHVyZS1pbi1waWN0dXJlLWNvbnRyb2wge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXg6IG5vbmU7XG59XG4udmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXg6IG5vbmU7XG59XG4udmpzLXBsYXliYWNrLXJhdGUgPiAudmpzLW1lbnUtYnV0dG9uLFxuLnZqcy1wbGF5YmFjay1yYXRlIC52anMtcGxheWJhY2stcmF0ZS12YWx1ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmpzLXBsYXliYWNrLXJhdGUgLnZqcy1wbGF5YmFjay1yYXRlLXZhbHVlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi52anMtcGxheWJhY2stcmF0ZSAudmpzLW1lbnUge1xuICB3aWR0aDogNGVtO1xuICBsZWZ0OiAwZW07XG59XG5cbi52anMtZXJyb3IgLnZqcy1lcnJvci1kaXNwbGF5IC52anMtbW9kYWwtZGlhbG9nLWNvbnRlbnQge1xuICBmb250LXNpemU6IDEuNGVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi52anMtZXJyb3IgLnZqcy1lcnJvci1kaXNwbGF5OmJlZm9yZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBjb250ZW50OiBcIlhcIjtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNGVtO1xuICBsZWZ0OiAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtc2hhZG93OiAwLjA1ZW0gMC4wNWVtIDAuMWVtICMwMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiA1MCU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udmpzLWxvYWRpbmctc3Bpbm5lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMjVweCAwIDAgLTI1cHg7XG4gIG9wYWNpdHk6IDAuODU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlcjogNnB4IHNvbGlkIHJnYmEoNDMsIDUxLCA2MywgMC43KTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4udmpzLXNlZWtpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXIsXG4udmpzLXdhaXRpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgLXdlYmtpdC1hbmltYXRpb246IHZqcy1zcGlubmVyLXNob3cgMHMgbGluZWFyIDAuM3MgZm9yd2FyZHM7XG4gICAgICAgICAgYW5pbWF0aW9uOiB2anMtc3Bpbm5lci1zaG93IDBzIGxpbmVhciAwLjNzIGZvcndhcmRzO1xufVxuXG4udmpzLWxvYWRpbmctc3Bpbm5lcjpiZWZvcmUsXG4udmpzLWxvYWRpbmctc3Bpbm5lcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAtNnB4O1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB3aWR0aDogaW5oZXJpdDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXI6IGluaGVyaXQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xufVxuXG4udmpzLXNlZWtpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXI6YmVmb3JlLFxuLnZqcy1zZWVraW5nIC52anMtbG9hZGluZy1zcGlubmVyOmFmdGVyLFxuLnZqcy13YWl0aW5nIC52anMtbG9hZGluZy1zcGlubmVyOmJlZm9yZSxcbi52anMtd2FpdGluZyAudmpzLWxvYWRpbmctc3Bpbm5lcjphZnRlciB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiB2anMtc3Bpbm5lci1zcGluIDEuMXMgY3ViaWMtYmV6aWVyKDAuNiwgMC4yLCAwLCAwLjgpIGluZmluaXRlLCB2anMtc3Bpbm5lci1mYWRlIDEuMXMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IHZqcy1zcGlubmVyLXNwaW4gMS4xcyBjdWJpYy1iZXppZXIoMC42LCAwLjIsIDAsIDAuOCkgaW5maW5pdGUsIHZqcy1zcGlubmVyLWZhZGUgMS4xcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi52anMtc2Vla2luZyAudmpzLWxvYWRpbmctc3Bpbm5lcjpiZWZvcmUsXG4udmpzLXdhaXRpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXI6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XG59XG5cbi52anMtc2Vla2luZyAudmpzLWxvYWRpbmctc3Bpbm5lcjphZnRlcixcbi52anMtd2FpdGluZyAudmpzLWxvYWRpbmctc3Bpbm5lcjphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC40NHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC40NHM7XG59XG5cbkBrZXlmcmFtZXMgdmpzLXNwaW5uZXItc2hvdyB7XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgdmpzLXNwaW5uZXItc2hvdyB7XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHZqcy1zcGlubmVyLXNwaW4ge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgdmpzLXNwaW5uZXItc3BpbiB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyB2anMtc3Bpbm5lci1mYWRlIHtcbiAgMCUge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM3Mzg1OWY7XG4gIH1cbiAgMjAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG4gIDM1JSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XG4gIH1cbiAgNjAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG4gIDEwMCUge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM3Mzg1OWY7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyB2anMtc3Bpbm5lci1mYWRlIHtcbiAgMCUge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM3Mzg1OWY7XG4gIH1cbiAgMjAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG4gIDM1JSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XG4gIH1cbiAgNjAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG4gIDEwMCUge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM3Mzg1OWY7XG4gIH1cbn1cbi52anMtY2hhcHRlcnMtYnV0dG9uIC52anMtbWVudSB1bCB7XG4gIHdpZHRoOiAyNGVtO1xufVxuXG4udmlkZW8tanMgLnZqcy1zdWJzLWNhcHMtYnV0dG9uICsgLnZqcy1tZW51IC52anMtY2FwdGlvbnMtbWVudS1pdGVtIC52anMtbWVudS1pdGVtLXRleHQgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAtMC4xZW07XG59XG5cbi52aWRlby1qcyAudmpzLXN1YnMtY2Fwcy1idXR0b24gKyAudmpzLW1lbnUgLnZqcy1jYXB0aW9ucy1tZW51LWl0ZW0gLnZqcy1tZW51LWl0ZW0tdGV4dCAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGNvbnRlbnQ6IFwi74SNXCI7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4udmlkZW8tanMgLnZqcy1hdWRpby1idXR0b24gKyAudmpzLW1lbnUgLnZqcy1tYWluLWRlc2MtbWVudS1pdGVtIC52anMtbWVudS1pdGVtLXRleHQgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAtMC4xZW07XG59XG5cbi52aWRlby1qcyAudmpzLWF1ZGlvLWJ1dHRvbiArIC52anMtbWVudSAudmpzLW1haW4tZGVzYy1tZW51LWl0ZW0gLnZqcy1tZW51LWl0ZW0tdGV4dCAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGNvbnRlbnQ6IFwiIO+EnVwiO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtc21hbGwgLnZqcy1jdXJyZW50LXRpbWUsXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC1zbWFsbCAudmpzLXRpbWUtZGl2aWRlcixcbi52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXNtYWxsIC52anMtZHVyYXRpb24sXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC1zbWFsbCAudmpzLXJlbWFpbmluZy10aW1lLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtc21hbGwgLnZqcy1wbGF5YmFjay1yYXRlLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtc21hbGwgLnZqcy1jaGFwdGVycy1idXR0b24sXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC1zbWFsbCAudmpzLWRlc2NyaXB0aW9ucy1idXR0b24sXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC1zbWFsbCAudmpzLWNhcHRpb25zLWJ1dHRvbixcbi52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXNtYWxsIC52anMtc3VidGl0bGVzLWJ1dHRvbixcbi52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXNtYWxsIC52anMtYXVkaW8tYnV0dG9uLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtc21hbGwgLnZqcy12b2x1bWUtY29udHJvbCwgLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLWN1cnJlbnQtdGltZSxcbi52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXgtc21hbGwgLnZqcy10aW1lLWRpdmlkZXIsXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC14LXNtYWxsIC52anMtZHVyYXRpb24sXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC14LXNtYWxsIC52anMtcmVtYWluaW5nLXRpbWUsXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC14LXNtYWxsIC52anMtcGxheWJhY2stcmF0ZSxcbi52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXgtc21hbGwgLnZqcy1jaGFwdGVycy1idXR0b24sXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC14LXNtYWxsIC52anMtZGVzY3JpcHRpb25zLWJ1dHRvbixcbi52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXgtc21hbGwgLnZqcy1jYXB0aW9ucy1idXR0b24sXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC14LXNtYWxsIC52anMtc3VidGl0bGVzLWJ1dHRvbixcbi52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXgtc21hbGwgLnZqcy1hdWRpby1idXR0b24sXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC14LXNtYWxsIC52anMtdm9sdW1lLWNvbnRyb2wsIC52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXRpbnkgLnZqcy1jdXJyZW50LXRpbWUsXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC10aW55IC52anMtdGltZS1kaXZpZGVyLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtdGlueSAudmpzLWR1cmF0aW9uLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtdGlueSAudmpzLXJlbWFpbmluZy10aW1lLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtdGlueSAudmpzLXBsYXliYWNrLXJhdGUsXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC10aW55IC52anMtY2hhcHRlcnMtYnV0dG9uLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtdGlueSAudmpzLWRlc2NyaXB0aW9ucy1idXR0b24sXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC10aW55IC52anMtY2FwdGlvbnMtYnV0dG9uLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtdGlueSAudmpzLXN1YnRpdGxlcy1idXR0b24sXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC10aW55IC52anMtYXVkaW8tYnV0dG9uLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtdGlueSAudmpzLXZvbHVtZS1jb250cm9sIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXNtYWxsIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbDpob3Zlcixcbi52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXNtYWxsIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbDphY3RpdmUsXG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC1zbWFsbCAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWwudmpzLXNsaWRlci1hY3RpdmUsIC52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXgtc21hbGwgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC1ob3Jpem9udGFsOmhvdmVyLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWw6YWN0aXZlLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWwudmpzLXNsaWRlci1hY3RpdmUsIC52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXRpbnkgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC1ob3Jpem9udGFsOmhvdmVyLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtdGlueSAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWw6YWN0aXZlLFxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtdGlueSAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWwudmpzLXNsaWRlci1hY3RpdmUge1xuICB3aWR0aDogYXV0bztcbiAgd2lkdGg6IGluaXRpYWw7XG59XG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC14LXNtYWxsOm5vdCgudmpzLWxpdmV1aSkgLnZqcy1zdWJzLWNhcHMtYnV0dG9uLCAudmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC14LXNtYWxsOm5vdCgudmpzLWxpdmUpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiwgLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQtdGlueSAudmpzLXN1YnMtY2Fwcy1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnZpZGVvLWpzOm5vdCgudmpzLWZ1bGxzY3JlZW4pLnZqcy1sYXlvdXQteC1zbWFsbC52anMtbGl2ZXVpIC52anMtY3VzdG9tLWNvbnRyb2wtc3BhY2VyLCAudmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC10aW55IC52anMtY3VzdG9tLWNvbnRyb2wtc3BhY2VyIHtcbiAgZmxleDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udmlkZW8tanM6bm90KC52anMtZnVsbHNjcmVlbikudmpzLWxheW91dC14LXNtYWxsLnZqcy1saXZldWkudmpzLW5vLWZsZXggLnZqcy1jdXN0b20tY29udHJvbC1zcGFjZXIsIC52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXRpbnkudmpzLW5vLWZsZXggLnZqcy1jdXN0b20tY29udHJvbC1zcGFjZXIge1xuICB3aWR0aDogYXV0bztcbn1cbi52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXgtc21hbGwudmpzLWxpdmV1aSAudmpzLXByb2dyZXNzLWNvbnRyb2wsIC52aWRlby1qczpub3QoLnZqcy1mdWxsc2NyZWVuKS52anMtbGF5b3V0LXRpbnkgLnZqcy1wcm9ncmVzcy1jb250cm9sIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZqcy1tb2RhbC1kaWFsb2cudmpzLXRleHQtdHJhY2stc2V0dGluZ3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkIzMzNGO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1MSwgNjMsIDAuNzUpO1xuICBjb2xvcjogI2ZmZjtcbiAgaGVpZ2h0OiA3MCU7XG59XG5cbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLW1vZGFsLWRpYWxvZy1jb250ZW50IHtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLXRyYWNrLXNldHRpbmdzLWNvbG9ycyxcbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLXRyYWNrLXNldHRpbmdzLWZvbnQsXG4udmpzLXRleHQtdHJhY2stc2V0dGluZ3MgLnZqcy10cmFjay1zZXR0aW5ncy1jb250cm9scyB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG5cbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLXRyYWNrLXNldHRpbmdzLWNvbnRyb2xzIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbkBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAudmpzLXRleHQtdHJhY2stc2V0dGluZ3MgLnZqcy1tb2RhbC1kaWFsb2ctY29udGVudCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG4gICAgcGFkZGluZzogMjBweCAyNHB4IDBweCAyNHB4O1xuICB9XG5cbiAgLnZqcy10cmFjay1zZXR0aW5ncy1jb250cm9scyAudmpzLWRlZmF1bHQtYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIC52anMtdHJhY2stc2V0dGluZ3MtY29udHJvbHMge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICB9XG5cbiAgLnZqcy1sYXlvdXQtc21hbGwgLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIC52anMtbW9kYWwtZGlhbG9nLWNvbnRlbnQsXG4udmpzLWxheW91dC14LXNtYWxsIC52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLW1vZGFsLWRpYWxvZy1jb250ZW50LFxuLnZqcy1sYXlvdXQtdGlueSAudmpzLXRleHQtdHJhY2stc2V0dGluZ3MgLnZqcy1tb2RhbC1kaWFsb2ctY29udGVudCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbn1cbi52anMtdHJhY2stc2V0dGluZyA+IHNlbGVjdCB7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbn1cblxuLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiA1cHg7XG4gIHBhZGRpbmc6IDNweDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4udmpzLXRleHQtdHJhY2stc2V0dGluZ3MgZmllbGRzZXQgc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIGZpZWxkc2V0IHNwYW4gPiBzZWxlY3Qge1xuICBtYXgtd2lkdGg6IDcuM2VtO1xufVxuXG4udmpzLXRleHQtdHJhY2stc2V0dGluZ3MgbGVnZW5kIHtcbiAgY29sb3I6ICNmZmY7XG4gIG1hcmdpbjogMCAwIDVweCAwO1xufVxuXG4udmpzLXRleHQtdHJhY2stc2V0dGluZ3MgLnZqcy1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcDogcmVjdCgxcHggMXB4IDFweCAxcHgpO1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgMCA1cHggMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnZqcy10cmFjay1zZXR0aW5ncy1jb250cm9scyBidXR0b246Zm9jdXMsXG4udmpzLXRyYWNrLXNldHRpbmdzLWNvbnRyb2xzIGJ1dHRvbjphY3RpdmUge1xuICBvdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgb3V0bGluZS13aWR0aDogbWVkaXVtO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgI2ZmZiA4OCUsICM3Mzg1OWYgMTAwJSk7XG59XG5cbi52anMtdHJhY2stc2V0dGluZ3MtY29udHJvbHMgYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoNDMsIDUxLCA2MywgMC43NSk7XG59XG5cbi52anMtdHJhY2stc2V0dGluZ3MtY29udHJvbHMgYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KC0xODBkZWcsICNmZmYgODglLCAjNzM4NTlmIDEwMCUpO1xuICBjb2xvcjogIzJCMzMzRjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi52anMtdHJhY2stc2V0dGluZ3MtY29udHJvbHMgLnZqcy1kZWZhdWx0LWJ1dHRvbiB7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAudmlkZW8tanMgPiAqOm5vdCgudmpzLXRlY2gpOm5vdCgudmpzLXBvc3Rlcikge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuLnZqcy1yZXNpemUtbWFuYWdlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXI6IG5vbmU7XG4gIHotaW5kZXg6IC0xMDAwO1xufVxuXG4uanMtZm9jdXMtdmlzaWJsZSAudmlkZW8tanMgKjpmb2N1czpub3QoLmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLnZpZGVvLWpzICo6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi52aWRlby1qcyAudmpzLW1lbnUgKjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbiIsIkBpbXBvcnQgJ352aWRlby5qcy9kaXN0L3ZpZGVvLWpzLmNzcyc7XHJcblxyXG4udmlkZW8tanMge1xyXG4gIHBvc2l0aW9uOiBpbmhlcml0ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","// vjs-player.component.ts\r\nimport { Component, ElementRef, Input, OnDestroy, OnInit, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport videojs from 'video.js';\r\n\r\n@Component({\r\n selector: 'app-vjs-player',\r\n template: `\r\n `,\r\n styleUrls: [\r\n './vjs-player.component.css'\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class VjsPlayerComponent implements OnInit, OnDestroy {\r\n @ViewChild('target') target: ElementRef;\r\n // see options: https://github.com/videojs/video.js/blob/maintutorial-options.html\r\n @Input() options: {\r\n fluid: boolean,\r\n aspectRatio: string,\r\n autoplay: boolean,\r\n muted: boolean,\r\n errorDisplay: boolean,\r\n volume: number,\r\n sources: {\r\n src: string,\r\n type: string,\r\n }[],\r\n };\r\n\r\n previousVolume: number;\r\n\r\n player: videojs.Player;\r\n\r\n previousUrl: string;\r\n previousType: string;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n ) { }\r\n\r\n getUrl() {\r\n if (this.previousUrl != this.options.sources[0].src) {\r\n this.player.src(this.options.sources[0].src);\r\n this.previousUrl = this.options.sources[0].src;\r\n }\r\n\r\n return this.options.sources[0].src;\r\n }\r\n\r\n getType() {\r\n if (this.previousType != this.options.sources[0].type) {\r\n this.player.src(this.options.sources[0].type);\r\n this.previousType = this.options.sources[0].type;\r\n }\r\n\r\n return this.options.sources[0].type;\r\n }\r\n\r\n ngOnInit() {\r\n let volume = this.options.volume || 0;\r\n // instantiate Video.js\r\n console.log('check option', this.options);\r\n this.player = videojs(this.target.nativeElement, this.options, function onPlayerReady() {\r\n console.log('onPlayerReady', this);\r\n //console.log(\"volume\", getVolume(this));\r\n this.muted(false);\r\n this.volume(volume / 100);\r\n });\r\n\r\n this.previousVolume = this.player.volume();\r\n }\r\n\r\n ngOnDestroy() {\r\n // destroy player\r\n if (this.player) {\r\n this.player.dispose();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n if (this.options.volume && this.previousVolume != this.options.volume && this.player) {\r\n this.player.volume(this.options.volume / 100);\r\n this.previousVolume = this.player.volume();\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n\\r\\n\\r\\n\"","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'web-frame-configuration',\r\n templateUrl: './web-frame-configuration.component.html'\r\n\r\n})\r\nexport class WebFrameConfiguration {\r\n @Input() configurations: any = {};\r\n\r\n getConfigurations() {\r\n return this.configurations;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core'\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'signage-web-frame',\r\n template: ``\r\n\r\n})\r\nexport class WebFrame {\r\n @Input() configurations: any;\r\n @Input() preview: boolean;\r\n\r\n constructor(private sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.configurations.configurationsObj) this.configurations.configurationsObj = JSON.parse(this.configurations.configurations);\r\n }\r\n\r\n ngOnChanges(changes: any) {\r\n console.log(\"HTML Changes\");\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.signageComponentErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.mat-form-field-label {\\r\\n color: black !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtY29tcG9uZW50L3NpZ25hZ2UtY29tcG9uZW50LWVkaXRvci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUNBQWlDO0FBQ3JDOztBQUVBO0lBQ0ksYUFBYTtJQUNiLHdCQUF3QjtBQUM1Qjs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksY0FBYztBQUNsQjs7QUFHQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJO1FBQ0ksaUJBQWlCO0lBQ3JCO0FBQ0o7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NpZ25hZ2Uvc2lnbmFnZS1jb21wb25lbnQvc2lnbmFnZS1jb21wb25lbnQtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5pbnB1dC5mb3JtLWNvbnRyb2wge1xyXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcclxufVxyXG5cclxuLnNpZ25hZ2VDb21wb25lbnRFcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwge1xyXG4gIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","module.exports = \"

    {{data.header}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Media Group\\r\\n \\r\\n \\r\\n -- Select Media Group --\\r\\n \\r\\n \\r\\n {{m.name}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n Background Image \\r\\n Remove\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Component Types\\r\\n \\r\\n \\r\\n {{type.name}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n

    Component Type {{signageComponentEdit.componentTypeObj ? signageComponentEdit.componentTypeObj.name : \\\"\\\"}} Configuration

    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n

    Preview

    \\r\\n Preview width \\r\\n Preview height    \\r\\n Hard Reload Preview\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\"","import { Component, ViewChild, Inject } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { SignageComponentService } from \"../../../services/signage-component.service\";\r\nimport { SignageComponent } from '../../../models/signage-component.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\r\nimport { SignageComponentType } from '../../../models/signage-component-type.model';\r\nimport { SignageComponentTypeService } from '../../../services/signage-component-type.service';\r\nimport { SignageComponentTypeWrapperComponent } from '../signage-component-types/signage-component-type-wrapper.component';\r\nimport { MediaService } from '../../../services/media.service';\r\n\r\n\r\n@Component({\r\n selector: 'signage-component-editor',\r\n templateUrl: './signage-component-editor.component.html',\r\n styleUrls: ['./signage-component-editor.component.css']\r\n})\r\nexport class SignageComponentEditorComponent {\r\n\r\n private isNewSignageComponent = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingSignageComponentName: string;\r\n private signageComponentEdit: SignageComponent = new SignageComponent();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n public componentTypes: SignageComponentType[];\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild(SignageComponentTypeWrapperComponent)\r\n wrapper: SignageComponentTypeWrapperComponent;\r\n\r\n @ViewChild('signageDisplayTypeWrapper')\r\n wrapperDisplay: SignageComponentTypeWrapperComponent;\r\n\r\n allMedias: any;\r\n\r\n constructor(private alertService: AlertService, private signageComponentService: SignageComponentService, private accountService: AccountService, private signageComponentTypeService: SignageComponentTypeService, private mediaService: MediaService,\r\n //public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n\r\n this.componentTypes = signageComponentTypeService.getComponentTypes();\r\n\r\n if (typeof (data.signageComponent) != typeof (undefined)) {\r\n if (data.signageComponent.id) {\r\n this.editSignageComponent(data.signageComponent);\r\n } else {\r\n this.newSignageComponent();\r\n }\r\n }\r\n\r\n this.mediaService.getMedias(null, null, null, this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.allMedias = results;\r\n },\r\n error => {\r\n });\r\n }\r\n\r\n componentTypeChange = (event, preview) => {\r\n if (this.signageComponentEdit.componentType) {\r\n this.signageComponentEdit.componentTypeObj = this.signageComponentTypeService.getComponentTypeById(this.signageComponentEdit.componentType);\r\n\r\n if (!preview) {\r\n if (this.signageComponentEdit.prevComponentType == this.signageComponentEdit.componentType) {\r\n this.signageComponentEdit.configurationsObj = JSON.parse(this.signageComponentEdit.configurations);\r\n } else {\r\n this.signageComponentEdit.configurationsObj = {};\r\n }\r\n }\r\n\r\n if (this.wrapper && !preview) this.wrapper.loadComponent(this.signageComponentEdit.componentTypeObj.configuration, this.signageComponentEdit.configurationsObj);\r\n\r\n if (this.wrapperDisplay) this.wrapperDisplay.loadComponent(this.signageComponentEdit.componentTypeObj.component, this.signageComponentEdit, true);\r\n }\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.signageComponentEdit.backgroundImage = event ? event.dbPath : null;\r\n\r\n if (this.signageComponentEdit.backgroundImage) this.signageComponentEdit.backgroundImage = this.signageComponentEdit.backgroundImage.replace(/\\\\/g, '/');\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.wrapper) this.signageComponentEdit.configurations = JSON.stringify(this.wrapper.getConfigurations());\r\n\r\n if (this.isNewSignageComponent) {\r\n this.signageComponentService.newSignageComponent(this.signageComponentEdit).subscribe(signageComponent => this.saveSuccessHelper(signageComponent), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.signageComponentService.updateSignageComponent(this.signageComponentEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(signageComponent?: SignageComponent) {\r\n if (signageComponent)\r\n Object.assign(this.signageComponentEdit, signageComponent);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewSignageComponent)\r\n this.alertService.showMessage(\"Success\", `Signage Component \\\"${this.signageComponentEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to signage component \\\"${this.signageComponentEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.signageComponentEdit = new SignageComponent();\r\n this.resetForm();\r\n\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.signageComponentEdit = new SignageComponent();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newSignageComponent() {\r\n this.isNewSignageComponent = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingSignageComponentName = null;\r\n this.selectedValues = {};\r\n this.signageComponentEdit = new SignageComponent();\r\n\r\n\r\n this.signageComponentEdit.previewWidth = this.signageComponentEdit.previewWidth || 720;\r\n this.signageComponentEdit.previewHeight = this.signageComponentEdit.previewHeight || 480;\r\n return this.signageComponentEdit;\r\n }\r\n\r\n editSignageComponent(signageComponent: SignageComponent) {\r\n if (signageComponent) {\r\n this.isNewSignageComponent = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingSignageComponentName = signageComponent.name;\r\n this.selectedValues = {};\r\n this.signageComponentEdit = new SignageComponent();\r\n Object.assign(this.signageComponentEdit, signageComponent);\r\n\r\n if (this.signageComponentEdit.componentType) {\r\n this.signageComponentEdit.componentTypeObj = this.signageComponentTypeService.getComponentTypeById(this.signageComponentEdit.componentType);\r\n\r\n this.signageComponentEdit.prevComponentType = this.signageComponentEdit.componentType;\r\n\r\n this.signageComponentEdit.configurationsObj = JSON.parse(this.signageComponentEdit.configurations);\r\n }\r\n\r\n this.signageComponentEdit.previewWidth = this.signageComponentEdit.previewWidth || 720;\r\n this.signageComponentEdit.previewHeight = this.signageComponentEdit.previewHeight || 480;\r\n\r\n return this.signageComponentEdit;\r\n }\r\n else {\r\n return this.newSignageComponent();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageSignageComponents() {\r\n return true;//this.accountService.userHasPermission(Permission.manageSignageComponentsPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtY29tcG9uZW50L3NpZ25hZ2UtY29tcG9uZW50cy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUk7UUFDSSxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtJQUNwQjs7QUFHSjtJQUNJO1FBQ0ksY0FBYztJQUNsQjtBQUNKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtY29tcG9uZW50L3NpZ25hZ2UtY29tcG9uZW50cy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n
    \\r\\n

    Components

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n >\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n {{'signageComponents.management.Edit' | translate}}\\r\\n \\r\\n \\r\\n {{'signageComponents.management.Delete' | translate}}\\r\\n
    \\r\\n Add To Export\\r\\n Remove From Export\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{header}}

    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject, ElementRef } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { SignageComponent } from '../../../models/signage-component.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { SignageComponentEditorComponent } from \"./signage-component-editor.component\";\r\nimport { SignageComponentService } from 'src/app/services/signage-component.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { MediaService } from '../../../services/media.service';\r\n\r\n\r\n@Component({\r\n selector: 'signage-components-management',\r\n templateUrl: './signage-components-management.component.html',\r\n styleUrls: ['./signage-components-management.component.css']\r\n})\r\nexport class SignageComponentsManagementComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: SignageComponent[] = [];\r\n rowsCache: SignageComponent[] = [];\r\n allPermissions: Permission[] = [];\r\n editedSignageComponent: SignageComponent;\r\n sourceSignageComponent: SignageComponent;\r\n editingSignageComponentName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n exportList: any = {};\r\n\r\n showEditor: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('signageComponentEditor')\r\n signageComponentEditor: SignageComponentEditorComponent;\r\n header: string;\r\n importFile: any;\r\n keyword: string;\r\n\r\n allMedias: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private signageComponentService: SignageComponentService, private mediaService: MediaService) {\r\n\r\n \r\n }\r\n\r\n //openDialog(signageComponent: SignageComponent): void {\r\n // const dialogRef = this.dialog.open(SignageComponentEditorComponent, {\r\n // data: { header: this.header, signageComponent: signageComponent },\r\n // width: '400px'\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // this.loadData();\r\n // });\r\n //}\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('signageComponents.management.Name') },\r\n { prop: 'description', name: gT('signageComponents.management.Description') },\r\n { prop: 'createdByName', name: 'Created By' },\r\n { prop: 'lastModified', name: 'Last Modified' },\r\n { name: '', width: 200, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.signageComponentEditor.changesSavedCallback = () => {\r\n //this.addNewSignageComponentToList();\r\n //this.editorModal.hide();\r\n this.showEditor = false;\r\n this.loadData();\r\n };\r\n\r\n this.signageComponentEditor.changesCancelledCallback = () => {\r\n this.editedSignageComponent = null;\r\n this.sourceSignageComponent = null;\r\n //this.editorModal.hide();\r\n this.showEditor = false;\r\n };\r\n }\r\n\r\n addToExport(row) {\r\n if (!this.exportList[row.id]) this.exportList[row.id] = {};\r\n\r\n this.exportList[row.id].included = true;\r\n this.exportList[row.id].id = row.id;\r\n }\r\n\r\n removeFromExport(row) {\r\n if (this.exportList[row.id]) {\r\n this.exportList[row.id].included = false;\r\n }\r\n }\r\n\r\n numberOfExports() {\r\n return (Object.values(this.exportList)).filter(i => i.included).length;\r\n }\r\n\r\n export() {\r\n let ids = (Object.values(this.exportList)).filter(i => i.included).map(i => i.id).join();\r\n\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.signageComponentService.exportSignageComponents(ids)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let comps = results[0];\r\n\r\n let filename = `ComponentExports-${new Date().toLocaleString('sv-SE').replace(/-|:| /g, '')}.json`;\r\n\r\n var blob = new Blob([JSON.stringify(comps, null, 4)], { type: 'text/plain;charset=utf-8;' });\r\n if ((navigator).msSaveBlob) { // IE 10+\r\n (navigator).msSaveBlob(blob, filename);\r\n } else {\r\n var link = document.createElement(\"a\");\r\n if (link.download !== undefined) { // feature detection\r\n // Browsers that support HTML5 download attribute\r\n var url = URL.createObjectURL(blob);\r\n link.setAttribute(\"href\", url);\r\n link.setAttribute(\"download\", filename);\r\n link.style.visibility = 'hidden';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n }\r\n\r\n this.exportList = {};\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve signage components from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n importClicked() {\r\n document.getElementById('file').click()\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.importFile = event ? event.dbPath : null;\r\n\r\n var r = confirm(`Are you sure you want to import from selected file?\\nAny data with same name will be overwritten, and you cannot undo this action.`);\r\n if (r) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.signageComponentService.importSignageComponents(this.importFile)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.loadData();\r\n\r\n this.alertService.showMessage(\"Import Success\", \"Import Success\", MessageSeverity.success);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to import signage components to the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n }\r\n\r\n addNewSignageComponentToList() {\r\n if (this.sourceSignageComponent) {\r\n Object.assign(this.sourceSignageComponent, this.editedSignageComponent);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceSignageComponent, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceSignageComponent, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedSignageComponent = null;\r\n this.sourceSignageComponent = null;\r\n }\r\n else {\r\n let signageComponent = new SignageComponent();\r\n Object.assign(signageComponent, this.editedSignageComponent);\r\n this.editedSignageComponent = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (signageComponent).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, signageComponent);\r\n this.rows.splice(0, 0, signageComponent);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.signageComponentService.getSignageComponentByInstitutionId(this.accountService.currentUser.institutionId, this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let signageComponents = results[0];\r\n let permissions = results[1];\r\n\r\n signageComponents.forEach((signageComponent, index, signageComponents) => {\r\n (signageComponent).index = index + 1;\r\n (signageComponent).lastModified = new Date((signageComponent).updatedDate).toLocaleString('sv-SE');\r\n });\r\n\r\n\r\n this.rowsCache = [...signageComponents];\r\n this.rows = signageComponents;\r\n\r\n this.onSearchChanged(this.keyword);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve signage components from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n this.keyword = value;\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingSignageComponentName = null;\r\n this.signageComponentEditor.resetForm(true);\r\n }\r\n\r\n\r\n newSignageComponent() {\r\n this.editingSignageComponentName = null;\r\n this.sourceSignageComponent = null;\r\n this.editedSignageComponent = this.signageComponentEditor.newSignageComponent();\r\n this.header = 'New Signage Component';\r\n //this.openDialog(this.editedSignageComponent);\r\n //this.editorModal.show();\r\n this.showEditor = true;\r\n }\r\n\r\n\r\n editSignageComponent(row: SignageComponent) {\r\n this.editingSignageComponentName = { name: row.name };\r\n this.sourceSignageComponent = row;\r\n this.editedSignageComponent = this.signageComponentEditor.editSignageComponent(row);\r\n this.header = 'Edit Signage Component';\r\n //this.editorModal.show();\r\n //this.openDialog(this.editedSignageComponent);\r\n this.showEditor = true;\r\n }\r\n\r\n deleteSignageComponent(row: SignageComponent) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" signage component?', DialogType.confirm, () => this.deleteSignageComponentHelper(row));\r\n }\r\n\r\n\r\n deleteSignageComponentHelper(row: SignageComponent) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.signageComponentService.deleteSignageComponent(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the signage component.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canCreateSignageComponents() {\r\n return this.accountService.userHasPermission(Permission.createComponentsPermission)\r\n }\r\n\r\n get canUpdateSignageComponents() {\r\n return this.accountService.userHasPermission(Permission.updateComponentsPermission)\r\n }\r\n\r\n get canDeleteSignageComponents() {\r\n return this.accountService.userHasPermission(Permission.deleteComponentsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc2lnbmFnZS9zaWduYWdlLWRpc3BsYXkvc2lnbmFnZS1kaXNwbGF5LmNvbXBvbmVudC5jc3MifQ== */\"","module.exports = \"

    {{message}}

    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","import { Component } from '@angular/core'\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { PIBService } from '../../../services/pib.service';\r\nimport { DeviceService } from '../../../services/device.service';\r\nimport { SignagePublicationService } from '../../../services/signage-publication.service';\r\nimport { SignagePublication } from '../../../models/signage-publication.model';\r\nimport { SignageSchedule } from '../../../models/signage-schedule.model';\r\nimport { SignageCompilation } from '../../../models/signage-compilation.model';\r\nimport { SignageComponentTypeService } from '../../../services/signage-component-type.service';\r\nimport { AuthService } from '../../../services/auth.service';\r\nimport { ConfigurationService } from '../../../services/configuration.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { ApplicationSettingService } from '../../../services/application-setting.service';\r\n\r\n@Component({\r\n selector: 'signage-display',\r\n templateUrl: `./signage-display.component.html`,\r\n styleUrls: ['./signage-display.component.css']\r\n})\r\nexport class SignageDisplayComponent {\r\n private subscription: Subscription = new Subscription();\r\n private mac_address: string = '';\r\n private publication_id: string = '';\r\n\r\n message: string = \"Unable to load display.\";\r\n device: any;\r\n publication: SignagePublication;\r\n schedule: SignageSchedule;\r\n compilation: SignageCompilation;\r\n compilationList: SignageCompilation[];\r\n //now: Date;\r\n componentTypeMap: any;\r\n\r\n private signalRCoreconnection: signalR.HubConnection;\r\n private pibSignalRCoreconnection: signalR.HubConnection;\r\n preview: boolean;\r\n\r\n constructor(private route: ActivatedRoute, private deviceService: DeviceService, private signagePublicationService: SignagePublicationService, private signageComponentTypeService: SignageComponentTypeService, private authService: AuthService, private configurations: ConfigurationService, private applicationSetting: ApplicationSettingService,) {\r\n }\r\n\r\n getTimeString(time) {\r\n return (\"0\" + time.getHours()).slice(-2) + \":\" +\r\n (\"0\" + time.getMinutes()).slice(-2) + \":\" +\r\n (\"0\" + time.getSeconds()).slice(-2);\r\n }\r\n\r\n getEndTimeSeconds() {\r\n if (this.schedule.endTime) {\r\n let endTimeObj = new Date(this.schedule.endTime);\r\n let now = new Date();\r\n\r\n let end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), endTimeObj.getHours(), endTimeObj.getMinutes(), endTimeObj.getSeconds());\r\n\r\n let dif = end.getTime() - new Date().getTime();\r\n\r\n let sec = Math.floor(dif / 1000);\r\n\r\n if (sec > 0) return sec;\r\n }\r\n }\r\n\r\n startInterval(index) {\r\n if (index > this.compilationList.length - 1) index = 0;\r\n\r\n this.compilation = this.compilationList[index];\r\n\r\n let interval = null;\r\n\r\n if (this.compilation.interval) interval = this.compilation.interval;\r\n\r\n let sec = this.getEndTimeSeconds();\r\n if ((sec && !interval) || (sec && interval && interval > sec)) {\r\n setTimeout(() => {\r\n this.loadData();\r\n }, sec * 1000);\r\n } else if (interval) {\r\n setTimeout(() => {\r\n this.startInterval(index + 1);\r\n }, interval * 1000);\r\n }\r\n }\r\n\r\n start(publication: SignagePublication) {\r\n if (publication.schedules) {\r\n for (let s of publication.schedules) {\r\n let now = new Date();\r\n\r\n if (s.effectiveDate && s.ineffectiveDate) {\r\n s.effectiveDateObj = new Date(s.effectiveDate.split(\"T\")[0]);\r\n s.ineffectiveDateObj = new Date(s.ineffectiveDate.split(\"T\")[0]);\r\n if (s.effectiveDateObj <= now && s.ineffectiveDateObj >= now) {\r\n\r\n if (s.startTime && s.endTime) {\r\n s.startTimeObj = s.startTime.split(\"T\")[1];\r\n s.endTimeObj = s.endTime.split(\"T\")[1];\r\n let nowTime = this.getTimeString(now);\r\n\r\n if (s.startTimeObj <= nowTime && s.endTimeObj >= nowTime) {\r\n let day = now.getDay();\r\n\r\n if ((day == 0 && s.sunday) ||\r\n (day == 1 && s.monday) ||\r\n (day == 2 && s.tuesday) ||\r\n (day == 3 && s.wednesday) ||\r\n (day == 4 && s.thursday) ||\r\n (day == 5 && s.friday) ||\r\n (day == 6 && s.saturday)\r\n ) {\r\n this.schedule = s;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.schedule || this.preview) {\r\n\r\n if (this.preview && !this.schedule && publication.schedules && publication.schedules[0]) this.schedule = publication.schedules[0];\r\n\r\n if (this.schedule.compilations && this.schedule.compilations[0]) {\r\n this.compilationList = this.schedule.compilations;\r\n\r\n for (let c of this.compilationList) {\r\n if (c.backgroundImage) c.backgroundImage = c.backgroundImage.replace(/\\\\/g, '/');\r\n\r\n for (let p of c.components) {\r\n if (p.backgroundImage) p.backgroundImage = p.backgroundImage.replace(/\\\\/g, '/');\r\n }\r\n }\r\n\r\n this.startInterval(0);\r\n } else {\r\n this.message = \"Current schedule does not have any compilation.\";\r\n\r\n setTimeout(() => this.start(this.publication), 5 * 60 * 1000);\r\n }\r\n } else {\r\n this.message = \"No schedule match for current time.\";\r\n\r\n setTimeout(() => this.start(this.publication), 5 * 60 * 1000);\r\n }\r\n }\r\n\r\n getPublication(publicationId) {\r\n this.publication_id = publicationId;\r\n\r\n this.signagePublicationService.getSignagePublication(publicationId).subscribe(p => {\r\n this.publication = p;\r\n\r\n if (this.publication) {\r\n if (this.publication.approved || this.preview) this.start(this.publication);\r\n else this.message = \"This publication '\" + this.publication.name + \"' has not been approved.\";\r\n } else {\r\n this.message = \"No publication data found.\"\r\n }\r\n });\r\n }\r\n\r\n loadData() {\r\n if (this.publication_id) this.getPublication(this.publication_id);\r\n\r\n this.deviceService.getDeviceById(null, this.mac_address, true)\r\n .subscribe(results => {\r\n\r\n this.device = results.data;\r\n\r\n if (!this.publication_id) {\r\n if (this.device) {\r\n if (this.device.publicationId) {\r\n this.getPublication(this.device.publicationId);\r\n } else {\r\n this.message = \"This device has not been assigned publication.\"\r\n }\r\n\r\n\r\n } else {\r\n this.message = \"No device data found.\"\r\n }\r\n }\r\n\r\n this.initSignalR()\r\n },\r\n error => {\r\n this.message = \"Error Fetching Device.\";\r\n });\r\n }\r\n\r\n initSignalR() {\r\n if (this.device) {\r\n this.signalRCoreconnection = this.authService.signalRConnection(this.configurations.baseUrl + \"/hub/frsdevice?device_id=\" + this.device.id + \"&source=server\", true);\r\n if (this.signalRCoreconnection != null) {\r\n this.signalRCoreconnection.on(\"RefreshDeviceData\", (deviceVM) => {\r\n if (this.device.moduleId != deviceVM.moduleId)\r\n window.location.replace(window.location.origin + '/display/' + this.mac_address);\r\n else if (this.device.publicationId != deviceVM.publicationId || this.device.locationId != deviceVM.locationId)\r\n window.location.replace(window.location.origin + '/display/' + this.mac_address);\r\n });\r\n\r\n this.signalRCoreconnection.on(\"RefreshPanel\", (deviceVM) => {\r\n console.log('Refreshing Panel');\r\n window.location.reload(true);\r\n });\r\n }\r\n } else {\r\n this.subscription.add(this.applicationSetting.getApplicationSettingByKey(null, 'URL_PIB_SERVER').subscribe(res => {\r\n if (res) {\r\n this.subscription.add(this.deviceService.getDeviceById(null, this.mac_address, false, res.value + '/api/pib/get/device').subscribe(result => {\r\n if (result && result.data) {\r\n let device = result.data;\r\n if (!device.module_path_value) {\r\n location.replace(device.module_path);\r\n }\r\n\r\n this.pibSignalRCoreconnection = this.authService.signalRConnection(res.value + \"/hub/pibdevice?device_id=\" + device.id, true);\r\n if (this.pibSignalRCoreconnection != null) {\r\n\r\n\r\n this.pibSignalRCoreconnection.on(\"RefreshDeviceData\", (deviceVM) => {\r\n if (device.moduleId != deviceVM.moduleId)\r\n window.location.replace(res.value + '/display/' + this.mac_address);\r\n else if (device.publicationId != deviceVM.publicationId || device.locationId != deviceVM.locationId)\r\n window.location.replace(window.location.origin + '/display/' + this.mac_address);\r\n\r\n });\r\n\r\n this.pibSignalRCoreconnection.on(\"RefreshPanel\", (deviceVM) => {\r\n console.log('Refreshing Panel');\r\n window.location.reload(true);\r\n });\r\n }\r\n\r\n }\r\n\r\n }, error => { }));\r\n\r\n }\r\n }, error => function (error) {\r\n this.alertService.stopLoadingMessage();\r\n console.log(error);\r\n }));\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n try {\r\n (document.body as HTMLElement).style.overflow = 'hidden';\r\n } catch (ex) { }\r\n\r\n this.componentTypeMap = this.signageComponentTypeService.getComponentTypeMap();\r\n\r\n this.route.params.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n\r\n if (!this.mac_address) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.mac_address = queryParams[\"mac_address\"];\r\n });\r\n }\r\n\r\n if (this.mac_address == 'serverpreview') this.preview = true;\r\n\r\n this.route.params.subscribe(queryParams => {\r\n this.publication_id = queryParams[\"publication_id\"];\r\n });\r\n\r\n if (!this.publication_id) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.publication_id = queryParams[\"publication_id\"];\r\n });\r\n }\r\n\r\n this.loadData();\r\n }\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.signagePublicationErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n.example-box {\\r\\n width: 200px;\\r\\n height: 200px;\\r\\n padding: 10px;\\r\\n box-sizing: border-box;\\r\\n border: solid 1px #ccc;\\r\\n color: rgba(0, 0, 0, 0.87);\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n align-items: center;\\r\\n text-align: center;\\r\\n background: #fff;\\r\\n border-radius: 4px;\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n transition: box-shadow 200ms cubic-bezier(0, 0, 0.2, 1);\\r\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\r\\n resize: both;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.example-box:active {\\r\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\r\\n }\\r\\n\\r\\n.example-handle {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n right: 10px;\\r\\n color: #ccc;\\r\\n cursor: move;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n}\\r\\n\\r\\n.example-boundary {\\r\\n width: 400px;\\r\\n height: 400px;\\r\\n max-width: 100%;\\r\\n border: dotted #ccc 2px;\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtcHVibGljYXRpb24vc2lnbmFnZS1wdWJsaWNhdGlvbi1lZGl0b3IuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0QiwwQkFBMEI7RUFDMUIsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVix1REFBdUQ7RUFDdkQsK0dBQStHO0VBQy9HLFlBQVk7RUFDWixnQkFBZ0I7QUFDbEI7O0FBRUU7SUFDRSxxSEFBcUg7RUFDdkg7O0FBRUY7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFdBQVc7RUFDWCxXQUFXO0VBQ1gsWUFBWTtFQUNaLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxZQUFZO0VBQ1osYUFBYTtFQUNiLGVBQWU7RUFDZix1QkFBdUI7QUFDekIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NpZ25hZ2Uvc2lnbmFnZS1wdWJsaWNhdGlvbi9zaWduYWdlLXB1YmxpY2F0aW9uLWVkaXRvci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnJvdzpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7Ki9cclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDAgNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4uZWRpdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luOiAxMHB4IDVweDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxufVxyXG5cclxuLmxhc3Qtc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxufVxyXG5cclxuLmVkaXQtbGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5zaWduYWdlUHVibGljYXRpb25FcnJvck1lc3NhZ2Uge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc0NvbHVtbiB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ucGVybWlzc2lvbnNSb3cge1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcblxyXG4ucGFzc3dvcmQtd2VsbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIC51c2VyLWVuYWJsZWQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uZXhhbXBsZS1ib3gge1xyXG4gIHdpZHRoOiAyMDBweDtcclxuICBoZWlnaHQ6IDIwMHB4O1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBib3JkZXI6IHNvbGlkIDFweCAjY2NjO1xyXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcclxuICBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcbiAgcmVzaXplOiBib3RoO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbiAgLmV4YW1wbGUtYm94OmFjdGl2ZSB7XHJcbiAgICBib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcbiAgfVxyXG5cclxuLmV4YW1wbGUtaGFuZGxlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIHJpZ2h0OiAxMHB4O1xyXG4gIGNvbG9yOiAjY2NjO1xyXG4gIGN1cnNvcjogbW92ZTtcclxuICB3aWR0aDogMjRweDtcclxuICBoZWlnaHQ6IDI0cHg7XHJcbn1cclxuXHJcbi5leGFtcGxlLWJvdW5kYXJ5IHtcclxuICB3aWR0aDogNDAwcHg7XHJcbiAgaGVpZ2h0OiA0MDBweDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgYm9yZGVyOiBkb3R0ZWQgI2NjYyAycHg7XHJcbn1cclxuXHJcbiJdfQ== */\"","module.exports = \"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Media Group\\r\\n \\r\\n \\r\\n -- Select Media Group --\\r\\n \\r\\n \\r\\n {{m.name}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n Approved\\r\\n   \\r\\n Rejected\\r\\n
    \\r\\n\\r\\n \\r\\n Remark\\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n Add Schedule\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n Effective date\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Ineffective date\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n Monday \\r\\n Tuesday \\r\\n Wednesday \\r\\n Thursday \\r\\n Friday \\r\\n Saturday \\r\\n Sunday\\r\\n
    \\r\\n\\r\\n
    \\r\\n Remove \\r\\n Start Time \\r\\n \\r\\n  \\r\\n\\r\\n\\r\\n End Time \\r\\n  \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n Select Compilations\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{sc.name}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Add\\r\\n
    \\r\\n\\r\\n
    \\r\\n {{c.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
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"::ng-deep .custom-frame .mat-checkbox-background, ::ng-deep .custom-frame .mat-checkbox-frame {\\n border-radius: 70% !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtcHVibGljYXRpb24vQzpcXFByb2plY3RzXFxGUlNcXEZSU1xcRlJTXFxDbGllbnRBcHAvc3JjXFxhcHBcXGNvbXBvbmVudHNcXHNpZ25hZ2VcXHNpZ25hZ2UtcHVibGljYXRpb25cXHNpZ25hZ2UtcHVibGljYXRpb24tZWRpdG9yLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL3NpZ25hZ2Uvc2lnbmFnZS1wdWJsaWNhdGlvbi9zaWduYWdlLXB1YmxpY2F0aW9uLWVkaXRvci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDRTtFQUdBLDZCQUFBO0FDRkYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NpZ25hZ2Uvc2lnbmFnZS1wdWJsaWNhdGlvbi9zaWduYWdlLXB1YmxpY2F0aW9uLWVkaXRvci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjo6bmctZGVlcCAuY3VzdG9tLWZyYW1lIHtcclxuICAmIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLm1hdC1jaGVja2JveC1mcmFtZVxyXG5cclxue1xyXG4gIGJvcmRlci1yYWRpdXM6IDcwJSAhaW1wb3J0YW50O1xyXG59XHJcbn1cclxuIiwiOjpuZy1kZWVwIC5jdXN0b20tZnJhbWUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCA6Om5nLWRlZXAgLmN1c3RvbS1mcmFtZSAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLXJhZGl1czogNzAlICFpbXBvcnRhbnQ7XG59Il19 */\"","import { Component, ViewChild, Inject, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport { AlertService, MessageSeverity } from '../../../services/alert.service';\r\nimport { AccountService } from \"../../../services/account.service\";\r\nimport { SignagePublicationService } from \"../../../services/signage-publication.service\";\r\nimport { SignagePublication } from '../../../models/signage-publication.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\r\nimport { SignageComponentService } from '../../../services/signage-component.service';\r\nimport { SignageComponent } from '../../../models/signage-component.model';\r\nimport { SignageSchedule } from '../../../models/signage-schedule.model';\r\nimport { SignageCompilationService } from '../../../services/signage-compilation.service';\r\nimport { SignageCompilation } from '../../../models/signage-compilation.model';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MediaService } from '../../../services/media.service';\r\n\r\n\r\n@Component({\r\n selector: 'signage-publication-editor',\r\n templateUrl: './signage-publication-editor.component.html',\r\n styleUrls: ['./signage-publication-editor.component.css', './signage-publication-editor.component.scss']\r\n})\r\nexport class SignagePublicationEditorComponent {\r\n\r\n private isNewSignagePublication = false;\r\n private isSaving: boolean;\r\n private showValidationErrors: boolean = true;\r\n private editingSignagePublicationName: string;\r\n private signagePublicationEdit: SignagePublication = new SignagePublication();\r\n private allPermissions: Permission[] = [];\r\n private selectedValues: { [key: string]: boolean; } = {};\r\n\r\n public formResetToggle = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n public searchForm: FormControl = new FormControl();\r\n\r\n @ViewChild('f')\r\n private form;\r\n\r\n @ViewChild('publicationContainer') elementView;\r\n\r\n scale: number;\r\n\r\n signageCompilations: SignageCompilation[];\r\n\r\n allMedias: any;\r\n\r\n constructor(private alertService: AlertService, private signagePublicationService: SignagePublicationService, private accountService: AccountService, private cdRef: ChangeDetectorRef, signageCompilationService: SignageCompilationService, private mediaService: MediaService\r\n //public dialogRef: MatDialogRef,\r\n ) {\r\n\r\n signageCompilationService.getSignageCompilations()\r\n .subscribe(results => {\r\n this.signageCompilations = results[0];\r\n },\r\n error => {\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve signage components from the server.\\r\\nErrors:`,\r\n MessageSeverity.error);\r\n });\r\n\r\n this.mediaService.getMedias(null, null, null, this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.allMedias = results;\r\n },\r\n error => {\r\n });\r\n }\r\n\r\n approvedClicked() {\r\n if (this.signagePublicationEdit.approved) this.signagePublicationEdit.rejected = false;\r\n\r\n }\r\n\r\n rejectedClicked() {\r\n if (this.signagePublicationEdit.rejected) this.signagePublicationEdit.approved = false;\r\n }\r\n\r\n add() {\r\n if (!this.signagePublicationEdit.schedules) this.signagePublicationEdit.schedules = [];\r\n\r\n let s = new SignageSchedule();\r\n s.isActive = 1;\r\n\r\n this.signagePublicationEdit.schedules.push(s);\r\n }\r\n\r\n addCompilation(compilation, schedule: SignageSchedule) {\r\n if (!compilation) return;\r\n if (!schedule.compilations) schedule.compilations = [];\r\n\r\n let c = new SignageCompilation();\r\n Object.assign(c, compilation);\r\n c.isActive = 1;\r\n c.compilationId = c.id;\r\n c.id = \"0\";\r\n schedule.compilations.push(c);\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n getStr(obj: any) {\r\n return JSON.stringify(obj);\r\n }\r\n\r\n xChanged(event, c, w) {\r\n if (c.x > w) c.x = w - c.width;\r\n if (c.x + c.width > w) c.width = w - c.x;\r\n }\r\n\r\n yChanged(event, c, h) {\r\n if (c.y > h) c.y = h - c.height;\r\n if (c.y + c.height > h) c.height = h - c.y;\r\n }\r\n\r\n wChanged(event, c, w) {\r\n if (c.width > w) c.width = w - c.x;\r\n if (c.x + c.width > w) c.x = w - c.width;\r\n }\r\n\r\n hChanged(event, c, h) {\r\n if (c.height > h) c.height = h - c.y;\r\n if (c.y + c.height > h) c.y = h - c.height;\r\n }\r\n\r\n\r\n private showErrorAlert(caption: string, message: string) {\r\n this.alertService.showMessage(caption, message, MessageSeverity.error);\r\n }\r\n\r\n\r\n private save() {\r\n if (this.signagePublicationEdit.rejected && !this.signagePublicationEdit.remark) {\r\n console.log(\"REMark\", \"aa\");\r\n this.alertService.showStickyMessage(\"Save Error\", \"If rejected, please provide remark.\", MessageSeverity.error);\r\n return;\r\n }\r\n\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n\r\n if (this.isNewSignagePublication) {\r\n this.signagePublicationService.newSignagePublication(this.signagePublicationEdit).subscribe(signagePublication => this.saveSuccessHelper(signagePublication), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.signagePublicationService.updateSignagePublication(this.signagePublicationEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private saveSuccessHelper(signagePublication?: SignagePublication) {\r\n if (signagePublication)\r\n Object.assign(this.signagePublicationEdit, signagePublication);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewSignagePublication)\r\n this.alertService.showMessage(\"Success\", `Signage Publication \\\"${this.signagePublicationEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to signage publication \\\"${this.signagePublicationEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.signagePublicationEdit = new SignagePublication();\r\n this.resetForm();\r\n\r\n\r\n if (this.changesSavedCallback)\r\n this.changesSavedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n if (this.changesFailedCallback)\r\n this.changesFailedCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n\r\n private cancel() {\r\n this.signagePublicationEdit = new SignagePublication();\r\n\r\n this.showValidationErrors = false;\r\n this.resetForm();\r\n\r\n this.alertService.resetStickyMessage();\r\n\r\n if (this.changesCancelledCallback)\r\n this.changesCancelledCallback();\r\n\r\n //this.dialogRef.close();\r\n }\r\n\r\n private toggleGroup(groupName: string) {\r\n let firstMemberValue: boolean;\r\n\r\n this.allPermissions.forEach(p => {\r\n if (p.groupName != groupName)\r\n return;\r\n\r\n if (firstMemberValue == null)\r\n firstMemberValue = this.selectedValues[p.value] == true;\r\n\r\n this.selectedValues[p.value] = !firstMemberValue;\r\n });\r\n }\r\n\r\n\r\n private getSelectedPermissions() {\r\n return this.allPermissions.filter(p => this.selectedValues[p.value] == true);\r\n }\r\n\r\n\r\n resetForm(replace = false) {\r\n\r\n if (!replace) {\r\n this.form.reset();\r\n }\r\n else {\r\n this.formResetToggle = false;\r\n\r\n setTimeout(() => {\r\n this.formResetToggle = true;\r\n });\r\n }\r\n }\r\n\r\n\r\n newSignagePublication() {\r\n this.isNewSignagePublication = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingSignagePublicationName = null;\r\n this.selectedValues = {};\r\n this.signagePublicationEdit = new SignagePublication();\r\n return this.signagePublicationEdit;\r\n }\r\n\r\n editSignagePublication(signagePublication: SignagePublication) {\r\n if (signagePublication) {\r\n this.isNewSignagePublication = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingSignagePublicationName = signagePublication.name;\r\n this.selectedValues = {};\r\n this.signagePublicationEdit = new SignagePublication();\r\n Object.assign(this.signagePublicationEdit, signagePublication);\r\n\r\n return this.signagePublicationEdit;\r\n }\r\n else {\r\n return this.newSignagePublication();\r\n }\r\n }\r\n\r\n\r\n\r\n get canManageSignagePublications() {\r\n return true;//this.accountService.userHasPermission(Permission.manageSignagePublicationsPermission)\r\n }\r\n\r\n get canApproveSignagePublications() {\r\n return this.accountService.userHasPermission(Permission.approvePublicationsPermission);\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n.nowrap {\\r\\n white-space: nowrap\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zaWduYWdlL3NpZ25hZ2UtcHVibGljYXRpb24vc2lnbmFnZS1wdWJsaWNhdGlvbnMtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSjs7QUFFQTtJQUNJO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3NpZ25hZ2Uvc2lnbmFnZS1wdWJsaWNhdGlvbi9zaWduYWdlLXB1YmxpY2F0aW9ucy1tYW5hZ2VtZW50LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4gICAgLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG4gICAgfVxyXG5cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4ubm93cmFwIHtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXBcclxufVxyXG4iXX0= */\"","module.exports = \"
    \\r\\n
    \\r\\n

    Publications

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n >\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n {{'signagePublications.management.Edit' | translate}}\\r\\n \\r\\n \\r\\n {{'signagePublications.management.Delete' | translate}}\\r\\n View History\\r\\n Preview\\r\\n \\r\\n
    \\r\\n
    \\r\\n

    {{header}}

    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, Inject } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../../services/alert.service';\r\nimport { AppTranslationService } from \"../../../services/app-translation.service\";\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { Utilities } from '../../../services/utilities';\r\nimport { SignagePublication } from '../../../models/signage-publication.model';\r\nimport { Permission } from '../../../models/permission.model';\r\nimport { SignagePublicationEditorComponent } from \"./signage-publication-editor.component\";\r\nimport { SignagePublicationService } from 'src/app/services/signage-publication.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { MediaService } from '../../../services/media.service';\r\n\r\n\r\n@Component({\r\n selector: 'signage-publications-management',\r\n templateUrl: './signage-publications-management.component.html',\r\n styleUrls: ['./signage-publications-management.component.css']\r\n})\r\nexport class SignagePublicationsManagementComponent implements OnInit, AfterViewInit {\r\n columns: any[] = [];\r\n rows: SignagePublication[] = [];\r\n rowsCache: SignagePublication[] = [];\r\n allPermissions: Permission[] = [];\r\n editedSignagePublication: SignagePublication;\r\n sourceSignagePublication: SignagePublication;\r\n editingSignagePublicationName: { name: string };\r\n loadingIndicator: boolean;\r\n\r\n showEditor: boolean;\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('signagePublicationEditor')\r\n signagePublicationEditor: SignagePublicationEditorComponent;\r\n header: string;\r\n keyword: string;\r\n pending: boolean;\r\n status: string;\r\n\r\n allMedias: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private signagePublicationService: SignagePublicationService, private mediaService: MediaService) {\r\n\r\n }\r\n\r\n //openDialog(signagePublication: SignagePublication): void {\r\n // const dialogRef = this.dialog.open(SignagePublicationEditorComponent, {\r\n // data: { header: this.header, signagePublication: signagePublication },\r\n // width: '400px'\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe(result => {\r\n // this.loadData();\r\n // });\r\n //}\r\n\r\n ngOnInit() {\r\n\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('signagePublications.management.Name') },\r\n { prop: 'description', name: gT('signagePublications.management.Description') },\r\n { prop: 'createdByName', name: gT('signagePublications.management.CreatedBy') },\r\n { prop: 'createdTime', name: \"Created Date\" },\r\n { prop: 'approvedByUser', name: \"Approved By\" },\r\n { prop: 'approvedTime', name: \"Approved Date\" },\r\n { prop: 'rejectedByUser', name: \"Rejected By\" },\r\n { prop: 'rejectedTime', name: \"Rejected Date\" },\r\n { prop: 'status', name: 'Status' },\r\n { prop: 'remarkspan', name: \"Remark\" },\r\n //{ prop: 'linkPreview', name: '', width: 50 },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n if (!this.accountService.currentUser.institutionId || this.accountService.currentUser.institutionId == '0') {\r\n this.columns.splice(1, 0, { prop: 'institutionName', name: gT('roles.management.Institution'), width: 120 });\r\n }\r\n this.loadData();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.signagePublicationEditor.changesSavedCallback = () => {\r\n //this.addNewSignagePublicationToList();\r\n //this.editorModal.hide();\r\n this.showEditor = false;\r\n this.loadData();\r\n };\r\n\r\n this.signagePublicationEditor.changesCancelledCallback = () => {\r\n this.editedSignagePublication = null;\r\n this.sourceSignagePublication = null;\r\n //this.editorModal.hide();\r\n this.showEditor = false;\r\n };\r\n }\r\n\r\n\r\n addNewSignagePublicationToList() {\r\n if (this.sourceSignagePublication) {\r\n Object.assign(this.sourceSignagePublication, this.editedSignagePublication);\r\n\r\n let sourceIndex = this.rowsCache.indexOf(this.sourceSignagePublication, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rowsCache, sourceIndex, 0);\r\n\r\n sourceIndex = this.rows.indexOf(this.sourceSignagePublication, 0);\r\n if (sourceIndex > -1)\r\n Utilities.moveArrayItem(this.rows, sourceIndex, 0);\r\n\r\n this.editedSignagePublication = null;\r\n this.sourceSignagePublication = null;\r\n }\r\n else {\r\n let signagePublication = new SignagePublication();\r\n Object.assign(signagePublication, this.editedSignagePublication);\r\n this.editedSignagePublication = null;\r\n\r\n let maxIndex = 0;\r\n for (let r of this.rowsCache) {\r\n if ((r).index > maxIndex)\r\n maxIndex = (r).index;\r\n }\r\n\r\n (signagePublication).index = maxIndex + 1;\r\n\r\n this.rowsCache.splice(0, 0, signagePublication);\r\n this.rows.splice(0, 0, signagePublication);\r\n this.rows = [...this.rows];\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n loadData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.signagePublicationService.getSignagePublicationByInstitutionId(this.accountService.currentUser.institutionId, this.accountService.currentUser.id)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let signagePublications = results[0];\r\n let permissions = results[1];\r\n\r\n signagePublications.forEach((signagePublication, index, signagePublications) => {\r\n (signagePublication).index = index + 1;\r\n //(signagePublication).linkPreview = `Preview`;\r\n (signagePublication).linkPreview = `/signagedisplay/serverpreview/${signagePublication.id}`;\r\n\r\n (signagePublication).remarkspan = `${signagePublication.remark ? signagePublication.remark.substring(0, 10) + '...' : ''}`;\r\n\r\n (signagePublication).createdTime = new Date((signagePublication).createdDate).toLocaleString('sv-SE');\r\n if (signagePublication.approvedDate && signagePublication.approvedDate != \"0001-01-01T00:00:00\" && signagePublication.approved) (signagePublication).approvedTime = new Date((signagePublication).approvedDate).toLocaleString('sv-SE');\r\n\r\n if (signagePublication.rejectedDate && signagePublication.rejectedDate != \"0001-01-01T00:00:00\" && signagePublication.rejected) (signagePublication).rejectedTime = new Date((signagePublication).rejectedDate).toLocaleString('sv-SE');\r\n\r\n (signagePublication).exporthistory = `/api/signagepublication/exportapprovedhistory?publicationId=${signagePublication.id}`;\r\n\r\n (signagePublication).status = signagePublication.approved ? 'Approved' : (signagePublication.rejected ? 'Rejected' : 'Pending');\r\n\r\n if (signagePublication.approved) signagePublication.approvedByUser = signagePublication.approvedByName;\r\n\r\n if (signagePublication.rejected) signagePublication.rejectedByUser = signagePublication.rejectedByName;\r\n\r\n signagePublication.schedules.forEach((schedule) => {\r\n try {\r\n schedule.startTime = schedule.startTime.split(\"T\")[1];\r\n schedule.endTime = schedule.endTime.split(\"T\")[1];\r\n } catch (ex) { }\r\n });\r\n });\r\n\r\n\r\n this.rowsCache = [...signagePublications];\r\n this.rows = signagePublications;\r\n\r\n this.onSearchChanged(this.keyword);\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve signage publications from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string, status?: string) {\r\n this.keyword = value;\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n\r\n if (status == 'rejected') this.rows = this.rows.filter(r => r.rejected);\r\n if (status == 'approved') this.rows = this.rows.filter(r => r.approved);\r\n if (status == 'pending') this.rows = this.rows.filter(r => !r.approved && !r.rejected);\r\n }\r\n\r\n\r\n onEditorModalHidden() {\r\n this.editingSignagePublicationName = null;\r\n this.signagePublicationEditor.resetForm(true);\r\n }\r\n\r\n\r\n newSignagePublication() {\r\n this.editingSignagePublicationName = null;\r\n this.sourceSignagePublication = null;\r\n this.editedSignagePublication = this.signagePublicationEditor.newSignagePublication();\r\n this.header = 'New Signage Publication';\r\n //this.openDialog(this.editedSignagePublication);\r\n //this.editorModal.show();\r\n this.showEditor = true;\r\n }\r\n\r\n\r\n editSignagePublication(row: SignagePublication) {\r\n this.editingSignagePublicationName = { name: row.name };\r\n this.sourceSignagePublication = row;\r\n this.editedSignagePublication = this.signagePublicationEditor.editSignagePublication(row);\r\n this.header = 'Edit Signage Publication';\r\n //this.editorModal.show();\r\n //this.openDialog(this.editedSignagePublication);\r\n this.showEditor = true;\r\n }\r\n\r\n deleteSignagePublication(row: SignagePublication) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" signage publication?', DialogType.confirm, () => this.deleteSignagePublicationHelper(row));\r\n }\r\n\r\n\r\n deleteSignagePublicationHelper(row: SignagePublication) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.signagePublicationService.deleteSignagePublication(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the signage publication.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n get canCreateSignagePublications() {\r\n return this.accountService.userHasPermission(Permission.createPublicationsPermission)\r\n }\r\n\r\n get canUpdateSignagePublications() {\r\n return this.accountService.userHasPermission(Permission.updatePublicationsPermission)\r\n }\r\n\r\n get canDeleteSignagePublications() {\r\n return this.accountService.userHasPermission(Permission.deletePublicationsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".row:not(:last-child) {\\r\\n /*border-bottom: 1px solid #ccc;*/\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin: 0 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.edit-separator-hr {\\r\\n margin: 10px 5px;\\r\\n border-top-style: dashed;\\r\\n}\\r\\n\\r\\n.last-separator-hr {\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.edit-last-separator-hr {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\ninput.form-control {\\r\\n border-left-width: 5px;\\r\\n}\\r\\n\\r\\n.facilityErrorMessage {\\r\\n margin-left: 50px;\\r\\n}\\r\\n\\r\\n.permissionsColumn {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.permissionsRow {\\r\\n margin: 0 15px;\\r\\n}\\r\\n\\r\\n.password-well {\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n@media (min-width: 992px) {\\r\\n .user-enabled {\\r\\n margin-left: 40px;\\r\\n }\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field--no-underline .mat-form-field-underline {\\r\\n background-color: transparent !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label-content {\\r\\n font-size: 11px !important;\\r\\n font-weight: 400 !important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-radio-label {\\r\\n margin-left: 5px !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zbWFydHJvb20tc2NoZWR1bGVyLWxvZy9kZXRhaWxzLWxvZy12aWV3ZXIuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLGlDQUFpQztBQUNyQzs7QUFFQTtJQUNJLGFBQWE7SUFDYix3QkFBd0I7QUFDNUI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksZUFBZTtBQUNuQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFHQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGNBQWM7QUFDbEI7O0FBR0E7SUFDSSxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSTtRQUNJLGlCQUFpQjtJQUNyQjtBQUNKOztBQUVBO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVBO0VBQ0UsMEJBQTBCO0VBQzFCLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc21hcnRyb29tLXNjaGVkdWxlci1sb2cvZGV0YWlscy1sb2ctdmlld2VyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucm93Om5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgLypib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsqL1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XHJcbn1cclxuXHJcbi5lZGl0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW46IDEwcHggNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG59XHJcblxyXG4ubGFzdC1zZXBhcmF0b3ItaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcblxyXG4uZWRpdC1sYXN0LXNlcGFyYXRvci1ociB7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcblxyXG5cclxuaW5wdXQuZm9ybS1jb250cm9sIHtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XHJcbn1cclxuXHJcbi5mYWNpbGl0eUVycm9yTWVzc2FnZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNTBweDtcclxufVxyXG5cclxuLnBlcm1pc3Npb25zQ29sdW1uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbi5wZXJtaXNzaW9uc1JvdyB7XHJcbiAgICBtYXJnaW46IDAgMTVweDtcclxufVxyXG5cclxuXHJcbi5wYXNzd29yZC13ZWxsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnVzZXItZW5hYmxlZCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcclxuICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDtcclxuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXJhZGlvLWxhYmVsIHtcclxuICBtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuIl19 */\"","module.exports = \"

    {{data.header}}

    \\r\\n
    Event Date: {{data.log.eventDateTime | dateTimeOnly}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Input, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { AuditLog } from 'src/app/models/audit-log';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\n\r\n@Component({\r\n selector: 'smartroom-scheduler-log-detail-viewer',\r\n templateUrl: './details-log-viewer.component.html',\r\n styleUrls: ['./details-log-viewer.component.css']\r\n})\r\nexport class SmartRoomSchedulerDetailsViewerComponent implements OnInit{\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n private cancel() {\r\n this.dialogRef.close();\r\n }\r\n\r\n displayDetails(value) {\r\n return value ? value.replace(/(?:\\r\\n|\\r|\\n)/g, '
    ') : '';\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n }\\r\\n\\r\\n@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9zbWFydHJvb20tc2NoZWR1bGVyLWxvZy9zbWFydHJvb20tc2NoZWR1bGVyLWxvZ3MtbWFuYWdlbWVudC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVJO1FBQ0ksZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixnQkFBZ0I7SUFDcEI7O0FBR0o7SUFDSTtRQUNJLGNBQWM7SUFDbEI7QUFDSiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvc21hcnRyb29tLXNjaGVkdWxlci1sb2cvc21hcnRyb29tLXNjaGVkdWxlci1sb2dzLW1hbmFnZW1lbnQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uY29udHJvbC1ib3gge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJveCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5hY3Rpb24tYm94IHtcclxuICAgIG1hcmdpbjogMCA1MHB4IDAgMDtcclxuICAgIG1pbi1oZWlnaHQ6IDA7XHJcbn1cclxuXHJcbiAgICAuYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbiAgICB9XHJcblxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuIl19 */\"","module.exports = \"
    \\r\\n
    \\r\\n

    Scheduler Logs

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{value}}\\r\\n \\r\\n \\r\\n Details\\r\\n \\r\\n
    \\r\\n\"","import { Component, OnInit, AfterViewInit, TemplateRef, ViewChild, Input, OnDestroy } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\nimport { AlertService, DialogType, MessageSeverity } from '../../services/alert.service';\r\nimport { AppTranslationService } from \"../../services/app-translation.service\";\r\nimport { AccountService } from '../../services/account.service';\r\nimport { Utilities } from '../../services/utilities';\r\nimport { Filter, PagedResult } from '../../models/sieve-filter.model';\r\nimport { Permission } from '../../models/permission.model';\r\nimport { MatDialog } from '@angular/material';\r\nimport { AuditService } from 'src/app/services/audit.service';\r\nimport { DateTimeOnlyPipe } from 'src/app/pipes/datetime.pipe';\r\nimport { Subscription } from 'rxjs';\r\nimport { SmartRoomSchedulerLog } from 'src/app/models/smartroom-scheduler-log';\r\nimport { SmartRoomSchedulerService } from 'src/app/services/smartroom.service';\r\nimport { SmartRoomSchedulerDetailsViewerComponent } from './details-log-viewer.component';\r\n\r\n\r\n@Component({\r\n selector: 'smartroom-scheduler-logs-management',\r\n templateUrl: './smartroom-scheduler-logs-management.component.html',\r\n styleUrls: ['./smartroom-scheduler-logs-management.component.css']\r\n})\r\nexport class SmartRoomSchedulerLogsManagementComponent implements OnInit, OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n columns: any[] = [];\r\n rows: SmartRoomSchedulerLog[] = [];\r\n rowsCache: SmartRoomSchedulerLog[] = [];\r\n loadingIndicator: boolean;\r\n filter: Filter;\r\n pagedResult: PagedResult;\r\n keyword: string = '';\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n @ViewChild('editorModal')\r\n editorModal: ModalDirective;\r\n\r\n @ViewChild('logTable') table: any;\r\n\r\n constructor(private alertService: AlertService, private translationService: AppTranslationService, private accountService: AccountService,\r\n private smartRoomSchedulerService: SmartRoomSchedulerService, public dialog: MatDialog) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n initializeFilter() {\r\n this.filter = new Filter(1, 10);\r\n this.filter.sorts = '-eventDateTime';\r\n this.filter.filters = '';\r\n this.filter.page = 1;\r\n }\r\n\r\n initializePagedResult() {\r\n this.pagedResult = new PagedResult();\r\n this.pagedResult.totalCount = 0;\r\n this.pagedResult.pagedData = [];\r\n this.pagedResult.filter = this.filter;\r\n }\r\n\r\n initializeTableDefinition() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n //{ prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'eventDateTime', name: 'Date', pipe: new DateTimeOnlyPipe('en-SG'), flexGrow: 2 },\r\n { prop: 'status', name: 'Status', flexGrow: 1 },\r\n { prop: 'noRecordsAffected', name: 'Total No. Of Records', flexGrow: 1 },\r\n { prop: 'details', name: 'Details', cellTemplate: this.actionsTemplate, sortable: false, flexGrow: 1 },\r\n ];\r\n }\r\n\r\n clearFilterAndPagedResult() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.table.offset = 0;\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeFilter();\r\n this.initializePagedResult();\r\n this.initializeTableDefinition();\r\n this.loadData();\r\n }\r\n\r\n\r\n loadData(ev?: any) {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n this.filter.pageSize = 10;\r\n\r\n if (ev) {\r\n this.filter.page = ev.offset + 1;\r\n if (ev.sorts) {\r\n this.filter.sorts = ev.sorts[0].dir == 'desc' ? '-' + ev.sorts[0].prop : ev.sorts[0].prop;\r\n }\r\n }\r\n\r\n if (!this.keyword) this.keyword = '';\r\n this.filter.filters = '(Status|details)@=' + this.keyword;\r\n \r\n this.smartRoomSchedulerService.getLogsByFilter(this.filter)\r\n .subscribe(results => {\r\n this.pagedResult = results;\r\n console.log(this.pagedResult);\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let logs = results.pagedData;\r\n\r\n logs.forEach((log, index, logs) => {\r\n (log).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...logs];\r\n this.rows = logs;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve logs from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n\r\n onSearchChanged(value: string) {\r\n //this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n this.keyword = value;\r\n //this.loadData(null);\r\n }\r\n\r\n onSearch() {\r\n this.clearFilterAndPagedResult();\r\n this.loadData(null);\r\n }\r\n\r\n viewDetails(row) {\r\n const dialogRef = this.dialog.open(SmartRoomSchedulerDetailsViewerComponent, {\r\n data: { header: \"Log Details\", log: row },\r\n width: '400px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n\r\n get canManageSmartRoomSchedulerLogs() {\r\n return this.accountService.userHasPermission(Permission.viewSmartRoomSchedulerLogsPermission)\r\n }\r\n\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n#template_editor_container {\\r\\n \\r\\n min-height: 300px;\\r\\n height: 300px;\\r\\n display:block;\\r\\n}\\r\\n\\r\\n#stage-parent {\\r\\n border: 1px solid black !important;\\r\\n background-color: white !important;\\r\\n float: left;\\r\\n}\\r\\n\\r\\ncanvas {\\r\\n border: 1px solid black !important;\\r\\n}\\r\\n\\r\\n.close-properties {\\r\\n float: right;\\r\\n padding-right: 10px;\\r\\n font-size: small;\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.properties {\\r\\n width: 25%;\\r\\n position: absolute;\\r\\n border: solid 1px;\\r\\n right: 0;\\r\\n background: #dadada;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n.properties-handle {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n left: 30px;\\r\\n color: #969696;\\r\\n cursor: move;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n}\\r\\n\\r\\n.field_name_label {\\r\\n margin: 3px 8px auto 0;\\r\\n color: rgba(0,0,0,.54);\\r\\n font-weight: 500;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n.field_name_select {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.tools-container button{\\r\\n border-right: 1px solid #000;\\r\\n border-top: 1px solid #000;\\r\\n border-radius: 0px;\\r\\n min-width: 30px;\\r\\n}\\r\\n\\r\\n.tools-container button:first-child {\\r\\n border-left: 1px solid #000;\\r\\n }\\r\\n\\r\\n.preview-container {\\r\\n max-width: 100vw;\\r\\n /*max-width: 1304px;*/\\r\\n /*overflow: hidden;*/\\r\\n}\\r\\n\\r\\nimg {\\r\\n width: 100%;\\r\\n -o-object-fit: contain;\\r\\n object-fit: contain;\\r\\n}\\r\\n\\r\\n.container-fluid {\\r\\n padding-right: 0 !important;\\r\\n padding-left: 0 !important;\\r\\n}\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90ZW1wbGF0ZS1lZGl0b3IvcGliZGlzcGxheS9waWJkaXNwbGF5LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBOztFQUVFLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2IsYUFBYTtBQUNmOztBQUVBO0VBQ0Usa0NBQWtDO0VBQ2xDLGtDQUFrQztFQUNsQyxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxrQ0FBa0M7QUFDcEM7O0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQiwwQkFBMEI7RUFDMUIsZUFBZTtBQUNqQjs7QUFDQTtFQUNFLFVBQVU7RUFDVixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLFFBQVE7RUFDUixtQkFBbUI7RUFDbkIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsVUFBVTtFQUNWLGNBQWM7RUFDZCxZQUFZO0VBQ1osV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIsMEJBQTBCO0VBQzFCLGtCQUFrQjtFQUNsQixlQUFlO0FBQ2pCOztBQUVFO0lBQ0UsMkJBQTJCO0VBQzdCOztBQUlGO0VBQ0UsZ0JBQWdCO0VBQ2hCLHFCQUFxQjtFQUNyQixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsc0JBQW1CO0tBQW5CLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQiwwQkFBMEI7QUFDNUIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3RlbXBsYXRlLWVkaXRvci9waWJkaXNwbGF5L3BpYmRpc3BsYXkuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5zaWRlLW1lbnUge1xyXG4gIG1pbi13aWR0aDogMTIwcHg7XHJcbn1cclxuXHJcbi5zZXBhcmF0b3ItaHIge1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuW2hpZGRlbl0ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbiN0ZW1wbGF0ZV9lZGl0b3JfY29udGFpbmVyIHtcclxuICBcclxuICBtaW4taGVpZ2h0OiAzMDBweDtcclxuICBoZWlnaHQ6IDMwMHB4O1xyXG4gIGRpc3BsYXk6YmxvY2s7XHJcbn1cclxuXHJcbiNzdGFnZS1wYXJlbnQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxuICBmbG9hdDogbGVmdDtcclxufVxyXG5cclxuY2FudmFzIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCBibGFjayAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uY2xvc2UtcHJvcGVydGllcyB7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgZm9udC1zaXplOiBzbWFsbDtcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLnByb3BlcnRpZXMge1xyXG4gIHdpZHRoOiAyNSU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvcmRlcjogc29saWQgMXB4O1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQ6ICNkYWRhZGE7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuXHJcbi5wcm9wZXJ0aWVzLWhhbmRsZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMTBweDtcclxuICBsZWZ0OiAzMHB4O1xyXG4gIGNvbG9yOiAjOTY5Njk2O1xyXG4gIGN1cnNvcjogbW92ZTtcclxuICB3aWR0aDogMjRweDtcclxuICBoZWlnaHQ6IDI0cHg7XHJcbn1cclxuXHJcbi5maWVsZF9uYW1lX2xhYmVsIHtcclxuICBtYXJnaW46IDNweCA4cHggYXV0byAwO1xyXG4gIGNvbG9yOiByZ2JhKDAsMCwwLC41NCk7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcbi5maWVsZF9uYW1lX3NlbGVjdCB7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG4udG9vbHMtY29udGFpbmVyIGJ1dHRvbntcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMDAwO1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcclxuICBtaW4td2lkdGg6IDMwcHg7XHJcbn1cclxuXHJcbiAgLnRvb2xzLWNvbnRhaW5lciBidXR0b246Zmlyc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMDAwO1xyXG4gIH1cclxuXHJcblxyXG5cclxuLnByZXZpZXctY29udGFpbmVyIHtcclxuICBtYXgtd2lkdGg6IDEwMHZ3O1xyXG4gIC8qbWF4LXdpZHRoOiAxMzA0cHg7Ki9cclxuICAvKm92ZXJmbG93OiBoaWRkZW47Ki9cclxufVxyXG5cclxuaW1nIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBvYmplY3QtZml0OiBjb250YWluO1xyXG59XHJcblxyXG4uY29udGFpbmVyLWZsdWlkIHtcclxuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiJdfQ== */\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\\"PIB\\r\\n
    \\r\\n\"","///// \r\n/// \r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material\";\r\nimport { Component, Inject, OnInit, AfterViewInit, ChangeDetectorRef, HostListener, OnDestroy } from \"@angular/core\";\r\nimport { DialogData } from \"../../device-manager/unknown-device/devices-management.component\";\r\nimport Konva from \"konva\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { PIBService } from \"src/app/services/pib.service\";\r\nimport { PIBTemplate } from \"src/app/models/department.model\";\r\nimport { AlertService, MessageSeverity } from \"src/app/services/alert.service\";\r\nimport { ShapeService } from \"src/app/services/shape.service\";\r\nimport { TextNodeService } from \"src/app/services/text-node.service\";\r\nimport { AuthService } from \"src/app/services/auth.service\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n//import { ajax, css } from \"jquery\";\r\n//import * as jquery from 'jquery';\r\n//import * as $ from 'jquery';\r\n\r\n//interface sig extends JQueryStatic {\r\n// signalR: any;\r\n// connection: any;\r\n// hubConnection: any;\r\n//}\r\n\r\n@Component({\r\n selector: 'pib-display-preview',\r\n templateUrl: './pibdisplay.component.html',\r\n styleUrls: ['./pibdisplay.component.css'],\r\n})\r\n\r\n\r\n\r\nexport class PIBDisplayComponent implements OnInit, AfterViewInit, OnDestroy {\r\n dup_stage: Konva.Stage;\r\n dup_layer: Konva.Layer;\r\n imgSrc: string;\r\n previewImgUri: any;\r\n origImgUri: any;\r\n origWidth = 1304;\r\n origHeight = 984;\r\n failedHeartbeatCount = 0;\r\n isFirstLoad = true;\r\n private signalRCoreconnection: signalR.HubConnection;\r\n\r\n constructor(\r\n private shapeService: ShapeService,\r\n private textNodeService: TextNodeService,\r\n private pibService: PIBService,\r\n private alertService: AlertService,\r\n private route: ActivatedRoute,\r\n private authService: AuthService,\r\n private accountService: AccountService,\r\n private router: Router,\r\n private domSanitizer: DomSanitizer,\r\n private cd: ChangeDetectorRef) {\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n console.log(event.target);\r\n //console.log(event.target.innerWidth, event.target.innerHeight);\r\n this.compressImage(this.origImgUri, event.target.innerWidth, event.target.innerHeight).then(compressed => {\r\n //console.log(compressed);\r\n this.previewImgUri = this.domSanitizer.bypassSecurityTrustUrl(compressed.toString());\r\n })\r\n }\r\n\r\n ngOnInit() {\r\n const component = this;\r\n //$(function () { console.log('test'); });\r\n //var hub = ($).connection.patientHub;\r\n //$.connection.hub.url = 'http://119.73.206.36:89/signalr';\r\n //var signalR: sig;\r\n var connection = $.hubConnection('http://119.73.206.36:89/signalr');\r\n var patientHub = connection.createHubProxy('patientHub');\r\n if (this.router.url.indexOf('/pibdisplay') > -1) {\r\n this.authService.reLoginDelegate = () => null;\r\n var queryParams = this.router.url.split('?');\r\n if (queryParams && queryParams.length > 0) {\r\n var queryParamSection = queryParams[1].split('&');\r\n if (queryParamSection && queryParamSection.length > 0) {\r\n var mac_address = queryParamSection[0].split('=')[1];\r\n\r\n setInterval(() => {\r\n component.pibService.heartbeat(mac_address).subscribe(result => {\r\n console.log('interval: heartbeat');\r\n if (result.isSuccess) {\r\n if (connection.state != $.signalR.connectionState.connected) {\r\n //patientHub.on('newPatientUpdate', function () {\r\n // console.log('interval: Patient update from eMOS');\r\n // //component.previewImgUri = '';\r\n // component.displayPreview(mac_address, component);\r\n //});\r\n\r\n //console.log(result);\r\n connection.qs = { 'bed': result.data.data.location_code };\r\n connection.start()\r\n .done(function () {\r\n if (connection.state == $.signalR.connectionState.connected) {\r\n console.log('Now connected, connection ID=' + connection.id);\r\n component.failedHeartbeatCount = 0;\r\n component.displayPreview(mac_address, component);\r\n }\r\n })\r\n .fail(function () { console.log('Could not connect to eMOS signalr'); component.failedHeartbeatCount++; });\r\n } else {\r\n //still connected to emos \r\n if (result.data && (result.data.isNew || component.failedHeartbeatCount > 3 || component.isFirstLoad)) {\r\n component.failedHeartbeatCount = 0;\r\n //component.previewImgUri = '';\r\n component.displayPreview(mac_address, component);\r\n }\r\n }\r\n }\r\n }, error => function (error) {\r\n component.alertService.stopLoadingMessage();\r\n component.isFirstLoad = true;\r\n });\r\n }, 30000);\r\n\r\n patientHub.on('newPatientUpdate', function () {\r\n console.log('firstLoad: Patient update from eMOS');\r\n //component.previewImgUri = '';\r\n component.displayPreview(mac_address, component);\r\n });\r\n\r\n if (this.isFirstLoad) {\r\n this.displayPreview(mac_address, component);\r\n this.pibService.heartbeat(mac_address).subscribe(result => {\r\n console.log('firstLoad: heartbeat');\r\n if (result.isSuccess) {\r\n if (result.data && (result.data.isNew || this.failedHeartbeatCount > 3 || component.isFirstLoad)) {\r\n this.failedHeartbeatCount = 0;\r\n //this.previewImgUri = '';\r\n component.displayPreview(mac_address, component);\r\n }\r\n\r\n if (connection.state != $.signalR.connectionState.connected) {\r\n //console.log(result);\r\n connection.qs = { 'bed': result.data.data.location_code };\r\n connection.start()\r\n .done(function () { console.log('Now connected, connection ID=' + connection.id); })\r\n .fail(function () { console.log('Could not connect to eMOS signalr'); this.failedHeartbeatCount++; });\r\n }\r\n }\r\n }, error => function (error) {\r\n this.alertService.stopLoadingMessage();\r\n this.isFirstLoad = true;\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n displayPreview(mac_address: string, component: any) {\r\n component.isFirstLoad = false;\r\n component.cd.detectChanges();\r\n component.alertService.startLoadingMessage(\"Updating display...\");\r\n component.pibService.getTemplateByMacAddress(mac_address).subscribe(result => {\r\n var template = result.data;\r\n template.isStaticLink = true;\r\n template.macAddress = mac_address;\r\n component.previewFromImage(template, component);\r\n });\r\n }\r\n\r\n previewFromImage(template: PIBTemplate, component: any): void {\r\n template.isPostToDevice = false;\r\n //var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n //this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n component.pibService.previewFromImage(template)\r\n .subscribe(res => {\r\n component.alertService.stopLoadingMessage();\r\n if (!res.isSuccess) {\r\n component.alertService.showStickyMessage(\"Update Error\", \"The below errors occured while update the display:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n return;\r\n }\r\n\r\n \r\n component.previewImgUri = this.domSanitizer.bypassSecurityTrustUrl('data:image/png;base64, ' + res.data);\r\n component.origImgUri = 'data:image/png;base64, ' + res.data;\r\n window.dispatchEvent(new Event('resize'));\r\n console.log('done image sanitizing');\r\n component.cd.detectChanges();\r\n }\r\n , error => function (error) {\r\n component.alertService.stopLoadingMessage();\r\n console.log(error);\r\n });\r\n }\r\n\r\n cleanUpTemplate(json: string) {\r\n var template = JSON.parse(json);\r\n var children = template['children'][0]['children'];\r\n var newChildren = []\r\n for (var i = 0; i < children.length; i++) {\r\n if ((children[i]['className'] !== 'Line') && (!children[i]['attrs'] || children[i]['attrs']['zLayer'] === undefined)) {\r\n continue;\r\n } else {\r\n newChildren.push(children[i]);\r\n }\r\n }\r\n template['children'][0]['children'] = newChildren;\r\n return template;\r\n }\r\n\r\n safeGet(obj, prop, defaultValue) {\r\n try {\r\n return obj[prop] != null && obj[prop] !== undefined ? obj[prop] : defaultValue;\r\n } catch (e) {\r\n return defaultValue\r\n }\r\n }\r\n\r\n redrawFromJson(template: any, callback?: any): void {\r\n //var template = JSON.parse(json);\r\n this.dup_stage = new Konva.Stage({\r\n container: 'dup-container',\r\n width: this.origWidth,\r\n height: this.origHeight,\r\n drawBorder: template['attrs']['drawBorder'],\r\n //scaleX: 1 / 2,\r\n //scaleY: 1 / 2,\r\n //offsetWidth: .3,\r\n //offsetHeight: .3\r\n });\r\n //this.dup_stage.setAttr(\"drawBorder\", true);\r\n this.dup_layer = new Konva.Layer();\r\n this.dup_stage.add(this.dup_layer);\r\n var images = [];\r\n var imgCount = 0;\r\n var templateChildren = template['children'][0]['children'];\r\n var sortedChildren = templateChildren.sort((a, b) => parseInt(this.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(this.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n var childAddedCount = 0;\r\n var imgCount = 0;\r\n var newZIndex = sortedChildren.length - 1;\r\n\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var t = sortedChildren[i];\r\n if (t['className'] == 'Text') {\r\n const shape = new Konva.Text(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Line') {\r\n const shape = new Konva.Line(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Rect') {\r\n const shape = new Konva.Rect(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Image' && t['attrs']['src']) {\r\n var attrs = t['attrs'];\r\n var src = t['attrs']['src'];\r\n images.push({ src: src, attrs: attrs, zLayer: childAddedCount });\r\n childAddedCount++;\r\n var component = this;\r\n var imageObj = new Image()\r\n const image = this.shapeService.image(imageObj, attrs);\r\n imageObj.onload = function () {\r\n for (var i in images) {\r\n if (images[i].src == decodeURI(image.attrs.src)) {\r\n ++imgCount;\r\n var x = image.attrs.x === undefined ? 0 : parseInt(image.attrs.x);\r\n var y = image.attrs.y === undefined ? 0 : parseInt(image.attrs.y);\r\n\r\n image.setAttrs(images[i].attrs);\r\n image.x(x);\r\n image.y(y);\r\n image.setAttr('zLayer', images[i].zLayer);\r\n image.zIndex(parseInt(images[i].zLayer));\r\n\r\n component.dup_layer.draw();\r\n }\r\n }\r\n\r\n if (images != null && images.length == imgCount) {\r\n component.dup_layer.batchDraw();\r\n callback(component, component.dup_layer);\r\n }\r\n };\r\n imageObj.src = src;\r\n this.dup_layer.add(image);\r\n }\r\n\r\n this.dup_stage.add(this.dup_layer);\r\n this.dup_layer.draw();\r\n }\r\n if (!images || images == null || images.length == 0) {\r\n this.reorderComponents(this, this.dup_layer, callback);\r\n }\r\n }\r\n\r\n reorderComponents(component, layer, callback?: any) {\r\n var sortedChildren = layer.children.sort((a, b) => parseInt(component.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(component.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var shape = sortedChildren[i];\r\n var index = parseInt(sortedChildren[i].getAttr('zLayer'));\r\n shape.zIndex(index);\r\n shape.setZIndex(index);\r\n\r\n }\r\n layer.batchDraw();\r\n if (callback) {\r\n callback(component);\r\n }\r\n }\r\n\r\n preview(template: PIBTemplate): void {\r\n //var cleanTemplate = this.cleanUpTemplate(template.templateBody);\r\n //this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n template.isPostToDevice = false;\r\n this.alertService.startLoadingMessage(\"Generating display...\");\r\n this.pibService.mapTemplate(template)\r\n .subscribe(res => {\r\n if (!res.isSuccess) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n return;\r\n }\r\n //var component = this;\r\n this.redrawFromJson(res.data, function (component) {\r\n\r\n\r\n // clone original layer, and disable all events on it\r\n // we will use \"let\" here, because we can redefine layer later\r\n component.preview_stage = new Konva.Stage({\r\n container: 'preview-container',\r\n width: component.origWidth,\r\n height: component.origHeight,\r\n scaleX: 1,\r\n scaleY: 1,\r\n //offsetWidth: .3,\r\n //offsetHeight: .3\r\n });\r\n\r\n component.preview_layer = component.dup_layer.clone({ hitGraphEnabled: false });\r\n component.preview_stage.add(component.preview_layer);\r\n component.preview_layer.batchDraw();\r\n component.is_preview = true;\r\n component.alertService.stopLoadingMessage();\r\n var curi = component.dup_stage.toCanvas({}).toDataURL();\r\n var dataurl = component.dup_stage.toDataURL();\r\n template.name = 'template.png';\r\n template.imgUrl = dataurl;\r\n component.imgSrc = dataurl;\r\n //var url = \"http://183.90.63.88:3000/epaper\";\r\n //component.pibService.postTemplateToDevice(url, template).subscribe(res => {\r\n // console.log(res);\r\n // //alert('Posted to device');\r\n // component.alertService.stopLoadingMessage();\r\n // if (res.isSuccess) {\r\n // component.alertService.showMessage(\"Success\", \"Successfully updated the device\", MessageSeverity.success);\r\n // }\r\n // else {\r\n // component.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n // }\r\n\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n });\r\n }\r\n , error => function (error) {\r\n this.alertService.stopLoadingMessage();\r\n console.log(error);\r\n });\r\n }\r\n\r\n updatePreview(layer, previewLayer) {\r\n // we just need to update ALL nodes in the preview\r\n layer.children.forEach(shape => {\r\n // find cloned node\r\n const clone = previewLayer.findOne('.' + shape.name());\r\n // update its position from the original\r\n clone.position(shape.position());\r\n });\r\n previewLayer.batchDraw();\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n compressImage(src, newX, newY) {\r\n var wScale = this.origWidth / newX;\r\n var hScale = this.origHeight / newY;\r\n return new Promise((res, rej) => {\r\n const img = new Image();\r\n img.onload = () => {\r\n const elem = document.createElement('canvas');\r\n elem.width = newX;\r\n elem.height = newY;\r\n const ctx = elem.getContext('2d');\r\n ctx.drawImage(img, 0, 0, newX, newY);\r\n const data = ctx.canvas.toDataURL('image/png', 0.9);\r\n res(data);\r\n\r\n //var canvas = document.createElement('canvas'),\r\n // ctx = canvas.getContext(\"2d\"),\r\n // oc = document.createElement('canvas'),\r\n // octx = oc.getContext('2d');\r\n\r\n //canvas.width = newX; // destination canvas size\r\n //canvas.height = canvas.width * newY / newX;\r\n\r\n //var cur = {\r\n // width: Math.floor(newX * 0.5),\r\n // height: Math.floor(newY * 0.5)\r\n //}\r\n\r\n //oc.width = cur.width;\r\n //oc.height = cur.height;\r\n\r\n //octx.drawImage(img, 0, 0, cur.width, cur.height);\r\n\r\n //while (cur.width * 0.5 > newX) {\r\n // cur = {\r\n // width: Math.floor(cur.width * 0.5),\r\n // height: Math.floor(cur.height * 0.5)\r\n // };\r\n // octx.drawImage(oc, 0, 0, cur.width * 2, cur.height * 2, 0, 0, cur.width, cur.height);\r\n //}\r\n\r\n //ctx.drawImage(oc, 0, 0, cur.width, cur.height, 0, 0, canvas.width, canvas.height);\r\n\r\n //const data = ctx.canvas.toDataURL();\r\n //res(data);\r\n }\r\n img.src = src;\r\n img.onerror = error => rej(error);\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n\r\n this.signalRCoreconnection.stop();\r\n this.alertService.stopLoadingMessage();\r\n //this.subscription.unsubscribe();\r\n }\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n#template_editor_container {\\r\\n \\r\\n min-height: 300px;\\r\\n height: 300px;\\r\\n display:block;\\r\\n}\\r\\n\\r\\n#stage-parent {\\r\\n border: 1px solid black !important;\\r\\n background-color: white !important;\\r\\n float: left;\\r\\n}\\r\\n\\r\\ncanvas {\\r\\n border: 1px solid black !important;\\r\\n}\\r\\n\\r\\n.close-properties {\\r\\n float: right;\\r\\n padding-right: 10px;\\r\\n font-size: small;\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.properties {\\r\\n width: 25%;\\r\\n position: absolute;\\r\\n border: solid 1px;\\r\\n right: 0;\\r\\n background: #dadada;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n.properties-handle {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n left: 30px;\\r\\n color: #969696;\\r\\n cursor: move;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n}\\r\\n\\r\\n.field_name_label {\\r\\n margin: 3px 8px auto 0;\\r\\n color: rgba(0,0,0,.54);\\r\\n font-weight: 500;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n.field_name_select {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.tools-container button{\\r\\n border-right: 1px solid #000;\\r\\n border-top: 1px solid #000;\\r\\n border-radius: 0px;\\r\\n min-width: 30px;\\r\\n}\\r\\n\\r\\n.tools-container button:first-child {\\r\\n border-left: 1px solid #000;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90ZW1wbGF0ZS1lZGl0b3IvcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBOztFQUVFLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2IsYUFBYTtBQUNmOztBQUVBO0VBQ0Usa0NBQWtDO0VBQ2xDLGtDQUFrQztFQUNsQyxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxrQ0FBa0M7QUFDcEM7O0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQiwwQkFBMEI7RUFDMUIsZUFBZTtBQUNqQjs7QUFDQTtFQUNFLFVBQVU7RUFDVixrQkFBa0I7RUFDbEIsaUJBQWlCO0VBQ2pCLFFBQVE7RUFDUixtQkFBbUI7RUFDbkIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsVUFBVTtFQUNWLGNBQWM7RUFDZCxZQUFZO0VBQ1osV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIsMEJBQTBCO0VBQzFCLGtCQUFrQjtFQUNsQixlQUFlO0FBQ2pCOztBQUVFO0lBQ0UsMkJBQTJCO0VBQzdCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy90ZW1wbGF0ZS1lZGl0b3IvcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2lkZS1tZW51IHtcclxuICBtaW4td2lkdGg6IDEyMHB4O1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbltoaWRkZW5dIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4jdGVtcGxhdGVfZWRpdG9yX2NvbnRhaW5lciB7XHJcbiAgXHJcbiAgbWluLWhlaWdodDogMzAwcHg7XHJcbiAgaGVpZ2h0OiAzMDBweDtcclxuICBkaXNwbGF5OmJsb2NrO1xyXG59XHJcblxyXG4jc3RhZ2UtcGFyZW50IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCBibGFjayAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbn1cclxuXHJcbmNhbnZhcyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2sgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNsb3NlLXByb3BlcnRpZXMge1xyXG4gIGZsb2F0OiByaWdodDtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gIGZvbnQtc2l6ZTogc21hbGw7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcbi5wcm9wZXJ0aWVzIHtcclxuICB3aWR0aDogMjUlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3JkZXI6IHNvbGlkIDFweDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kOiAjZGFkYWRhO1xyXG4gIGNvbG9yOiAjMDA3ZjdiO1xyXG59XHJcblxyXG4ucHJvcGVydGllcy1oYW5kbGUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDEwcHg7XHJcbiAgbGVmdDogMzBweDtcclxuICBjb2xvcjogIzk2OTY5NjtcclxuICBjdXJzb3I6IG1vdmU7XHJcbiAgd2lkdGg6IDI0cHg7XHJcbiAgaGVpZ2h0OiAyNHB4O1xyXG59XHJcblxyXG4uZmllbGRfbmFtZV9sYWJlbCB7XHJcbiAgbWFyZ2luOiAzcHggOHB4IGF1dG8gMDtcclxuICBjb2xvcjogcmdiYSgwLDAsMCwuNTQpO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcblxyXG4uZmllbGRfbmFtZV9zZWxlY3Qge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxufVxyXG5cclxuLnRvb2xzLWNvbnRhaW5lciBidXR0b257XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDtcclxuICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAzMHB4O1xyXG59XHJcblxyXG4gIC50b29scy1jb250YWluZXIgYnV0dG9uOmZpcnN0LWNoaWxkIHtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzAwMDtcclxuICB9XHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n
    Preview
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    Preview
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material\";\r\nimport { Component, Inject, OnInit, AfterViewInit } from \"@angular/core\";\r\nimport { DialogData } from \"../../device-manager/unknown-device/devices-management.component\";\r\nimport Konva from \"konva\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { PIBService } from \"src/app/services/pib.service\";\r\nimport { PIBTemplate } from \"src/app/models/department.model\";\r\nimport { AlertService, MessageSeverity } from \"src/app/services/alert.service\";\r\nimport { ShapeService } from \"src/app/services/shape.service\";\r\nimport { TextNodeService } from \"src/app/services/text-node.service\";\r\nimport { AuthService } from \"src/app/services/auth.service\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\n\r\n@Component({\r\n selector: 'template-editor-preview',\r\n templateUrl: './preview.component.html',\r\n styleUrls: ['./preview.component.css'],\r\n})\r\nexport class TemplateEditorPreviewDialog implements OnInit, AfterViewInit {\r\n dup_stage: Konva.Stage;\r\n dup_layer: Konva.Layer;\r\n imgSrc: string;\r\n\r\n origWidth = 1304;\r\n origHeight = 984;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dlgData: any,\r\n private shapeService: ShapeService,\r\n private textNodeService: TextNodeService,\r\n private pibService: PIBService,\r\n private alertService: AlertService,\r\n private route: ActivatedRoute,\r\n private authService: AuthService,\r\n private accountService: AccountService,\r\n private router: Router) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.router.url.indexOf('/pibdevicetemplate') > -1) {\r\n this.authService.reLoginDelegate = () => null;\r\n var queryParams = this.router.url.split('?');\r\n if (queryParams && queryParams.length > 0) {\r\n var queryParamSection = queryParams[1].split('&');\r\n if (queryParamSection && queryParamSection.length > 0) {\r\n var mac_address = queryParamSection[0].split('=')[1];\r\n this.pibService.getTemplateByMacAddress(mac_address).subscribe(result => {\r\n var template = result.data;\r\n template.isStaticLink = true;\r\n template.macAddress = mac_address;\r\n this.preview(template);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n cleanUpTemplate(json: string) {\r\n var template = JSON.parse(json);\r\n var children = template['children'][0]['children'];\r\n var newChildren = []\r\n for (var i = 0; i < children.length; i++) {\r\n if ((children[i]['className'] !== 'Line') && (!children[i]['attrs'] || children[i]['attrs']['zLayer'] === undefined)) {\r\n continue;\r\n } else {\r\n newChildren.push(children[i]);\r\n }\r\n }\r\n template['children'][0]['children'] = newChildren;\r\n return template;\r\n }\r\n\r\n safeGet(obj, prop, defaultValue) {\r\n try {\r\n return obj[prop] != null && obj[prop] !== undefined ? obj[prop] : defaultValue;\r\n } catch (e) {\r\n return defaultValue\r\n }\r\n }\r\n\r\n redrawFromJson(template: any, callback?: any): void {\r\n //var template = JSON.parse(json);\r\n this.dup_stage = new Konva.Stage({\r\n container: 'dup-container',\r\n width: this.origWidth,\r\n height: this.origHeight,\r\n drawBorder: template['attrs']['drawBorder'],\r\n //scaleX: 1 / 2,\r\n //scaleY: 1 / 2,\r\n //offsetWidth: .3,\r\n //offsetHeight: .3\r\n });\r\n //this.dup_stage.setAttr(\"drawBorder\", true);\r\n this.dup_layer = new Konva.Layer();\r\n this.dup_stage.add(this.dup_layer);\r\n var images = [];\r\n var imgCount = 0;\r\n var templateChildren = template['children'][0]['children'];\r\n var sortedChildren = templateChildren.sort((a, b) => parseInt(this.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(this.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n var childAddedCount = 0;\r\n var imgCount = 0;\r\n var newZIndex = sortedChildren.length - 1;\r\n\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var t = sortedChildren[i];\r\n if (t['className'] == 'Text') {\r\n const shape = new Konva.Text(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Line') {\r\n const shape = new Konva.Line(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Rect') {\r\n const shape = new Konva.Rect(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Image' && t['attrs']['src']) {\r\n var attrs = t['attrs'];\r\n var src = t['attrs']['src'];\r\n images.push({ src: src, attrs: attrs, zLayer: childAddedCount });\r\n childAddedCount++;\r\n var component = this;\r\n var imageObj = new Image()\r\n const image = this.shapeService.image(imageObj, attrs);\r\n imageObj.onload = function () {\r\n for (var i in images) {\r\n if (images[i].src == decodeURI(image.attrs.src)) {\r\n ++imgCount;\r\n var x = image.attrs.x === undefined ? 0 : parseInt(image.attrs.x);\r\n var y = image.attrs.y === undefined ? 0 : parseInt(image.attrs.y);\r\n\r\n image.setAttrs(images[i].attrs);\r\n image.x(x);\r\n image.y(y);\r\n image.setAttr('zLayer', images[i].zLayer);\r\n image.zIndex(parseInt(images[i].zLayer));\r\n\r\n component.dup_layer.draw();\r\n }\r\n }\r\n\r\n if (images != null && images.length == imgCount) {\r\n component.dup_layer.batchDraw();\r\n callback(component, component.dup_layer);\r\n }\r\n };\r\n imageObj.src = src;\r\n this.dup_layer.add(image);\r\n }\r\n\r\n this.dup_stage.add(this.dup_layer);\r\n this.dup_layer.draw();\r\n }\r\n if (!images || images == null || images.length == 0) {\r\n this.reorderComponents(this, this.dup_layer, callback);\r\n }\r\n }\r\n\r\n reorderComponents(component, layer, callback?: any) {\r\n var sortedChildren = layer.children.sort((a, b) => parseInt(component.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(component.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var shape = sortedChildren[i];\r\n var index = parseInt(sortedChildren[i].getAttr('zLayer'));\r\n shape.zIndex(index);\r\n shape.setZIndex(index);\r\n\r\n }\r\n layer.batchDraw();\r\n if (callback) {\r\n callback(component);\r\n }\r\n }\r\n\r\n preview(template: PIBTemplate): void {\r\n //var cleanTemplate = this.cleanUpTemplate(template.templateBody);\r\n //this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n template.isPostToDevice = false;\r\n this.alertService.startLoadingMessage(\"Generating display...\");\r\n this.pibService.mapTemplate(template)\r\n .subscribe(res => {\r\n if (!res.isSuccess) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n return;\r\n }\r\n //var component = this;\r\n this.redrawFromJson(res.data, function (component) {\r\n\r\n \r\n // clone original layer, and disable all events on it\r\n // we will use \"let\" here, because we can redefine layer later\r\n component.preview_stage = new Konva.Stage({\r\n container: 'preview-container',\r\n width: component.origWidth,\r\n height: component.origHeight,\r\n scaleX: 1,\r\n scaleY: 1,\r\n //offsetWidth: .3,\r\n //offsetHeight: .3\r\n });\r\n\r\n component.preview_layer = component.dup_layer.clone({ hitGraphEnabled: false });\r\n component.preview_stage.add(component.preview_layer);\r\n component.preview_layer.batchDraw();\r\n component.is_preview = true;\r\n component.alertService.stopLoadingMessage();\r\n var curi = component.dup_stage.toCanvas({}).toDataURL();\r\n var dataurl = component.dup_stage.toDataURL();\r\n template.name = 'template.png';\r\n template.imgUrl = dataurl;\r\n component.imgSrc = dataurl;\r\n //var url = \"http://183.90.63.88:3000/epaper\";\r\n //component.pibService.postTemplateToDevice(url, template).subscribe(res => {\r\n // console.log(res);\r\n // //alert('Posted to device');\r\n // component.alertService.stopLoadingMessage();\r\n // if (res.isSuccess) {\r\n // component.alertService.showMessage(\"Success\", \"Successfully updated the device\", MessageSeverity.success);\r\n // }\r\n // else {\r\n // component.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n // }\r\n\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n });\r\n }\r\n , error => function (error) {\r\n this.alertService.stopLoadingMessage();\r\n console.log(error);\r\n });\r\n }\r\n\r\n updatePreview(layer, previewLayer) {\r\n // we just need to update ALL nodes in the preview\r\n layer.children.forEach(shape => {\r\n // find cloned node\r\n const clone = previewLayer.findOne('.' + shape.name());\r\n // update its position from the original\r\n clone.position(shape.position());\r\n });\r\n previewLayer.batchDraw();\r\n }\r\n\r\n ngAfterViewInit() {\r\n //var template = this.dlgData.template;\r\n //this.dup_stage = new Konva.Stage({\r\n // container: 'dup-container',\r\n // width: this.dlgData.origWidth,\r\n // height: this.dlgData.origHeight,\r\n // drawBorder: template['attrs']['drawBorder'],\r\n // //offsetWidth: .3,\r\n // //offsetHeight: .3\r\n //});\r\n ////this.dup_stage.setAttr(\"drawBorder\", true);\r\n //this.dup_layer = new Konva.Layer();\r\n //this.dup_stage.add(this.dup_layer);\r\n //var images = [];\r\n //for (var i = 0; i < template['children'][0]['children'].length; i++) {\r\n // var t = template['children'][0]['children'][i];\r\n // if (t['className'] == 'Text') {\r\n // const shape = new Konva.Text(t['attrs']);\r\n // this.dup_layer.add(shape);\r\n // } else if (t['className'] == 'Line') {\r\n // const shape = new Konva.Line(t['attrs']);\r\n // this.dup_layer.add(shape);\r\n // } else if (t['className'] == 'Rect') {\r\n // const shape = new Konva.Rect(t['attrs']);\r\n // this.dup_layer.add(shape);\r\n // } else if (t['className'] == 'Image' && t['attrs']['src']) {\r\n // var attrs = t['attrs'];\r\n // var src = t['attrs']['src'];\r\n // images.push({ src: src, attrs: attrs });\r\n // var component = this;\r\n // Konva.Image.fromURL(src, function (node) {\r\n // for (var i in images) {\r\n // if (images[i].src == node.attrs.image.src) {\r\n // node.setAttrs(images[i].attrs);\r\n // }\r\n // }\r\n\r\n // component.dup_layer.add(node);\r\n // component.dup_layer.draw();\r\n // });\r\n // }\r\n\r\n // this.dup_stage.add(this.dup_layer);\r\n // this.dup_layer.draw();\r\n //}\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n#template_editor_container {\\r\\n \\r\\n min-height: 300px;\\r\\n height: 300px;\\r\\n display:block;\\r\\n}\\r\\n\\r\\n#stage-parent {\\r\\n border: 1px solid black !important;\\r\\n background-color: white !important;\\r\\n float: left;\\r\\n}\\r\\n\\r\\ncanvas {\\r\\n border: 1px solid black !important;\\r\\n}\\r\\n\\r\\n.close-properties {\\r\\n float: right;\\r\\n padding-right: 10px;\\r\\n font-size: small;\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.properties {\\r\\n width: 25%;\\r\\n position: absolute;\\r\\n border: solid 1px;\\r\\n right: 0;\\r\\n background: #dadada;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n.properties-handle {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n left: 30px;\\r\\n color: #969696;\\r\\n cursor: move;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n}\\r\\n\\r\\n.field_name_label {\\r\\n margin: 3px 8px auto 0;\\r\\n color: rgba(0,0,0,.54);\\r\\n font-weight: 500;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n.field_name_select {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.tools-container button{\\r\\n border-right: 1px solid #000;\\r\\n border-top: 1px solid #000;\\r\\n border-radius: 0px;\\r\\n min-width: 30px;\\r\\n}\\r\\n\\r\\n.tools-container button:first-child {\\r\\n border-left: 1px solid #000;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90ZW1wbGF0ZS1lZGl0b3Ivc2F2ZS1kaWFsb2cvc2F2ZS1kaWFsb2cuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7O0VBRUUsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxrQ0FBa0M7RUFDbEMsa0NBQWtDO0VBQ2xDLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGtDQUFrQztBQUNwQzs7QUFFQTtFQUNFLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLDBCQUEwQjtFQUMxQixlQUFlO0FBQ2pCOztBQUNBO0VBQ0UsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsUUFBUTtFQUNSLG1CQUFtQjtFQUNuQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsY0FBYztFQUNkLFlBQVk7RUFDWixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0Usc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDRCQUE0QjtFQUM1QiwwQkFBMEI7RUFDMUIsa0JBQWtCO0VBQ2xCLGVBQWU7QUFDakI7O0FBRUU7SUFDRSwyQkFBMkI7RUFDN0IiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3RlbXBsYXRlLWVkaXRvci9zYXZlLWRpYWxvZy9zYXZlLWRpYWxvZy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNpZGUtbWVudSB7XHJcbiAgbWluLXdpZHRoOiAxMjBweDtcclxufVxyXG5cclxuLnNlcGFyYXRvci1ociB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG5baGlkZGVuXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuI3RlbXBsYXRlX2VkaXRvcl9jb250YWluZXIge1xyXG4gIFxyXG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG4gIGhlaWdodDogMzAwcHg7XHJcbiAgZGlzcGxheTpibG9jaztcclxufVxyXG5cclxuI3N0YWdlLXBhcmVudCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2sgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG59XHJcblxyXG5jYW52YXMge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jbG9zZS1wcm9wZXJ0aWVzIHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICBmb250LXNpemU6IHNtYWxsO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4ucHJvcGVydGllcyB7XHJcbiAgd2lkdGg6IDI1JTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm9yZGVyOiBzb2xpZCAxcHg7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYmFja2dyb3VuZDogI2RhZGFkYTtcclxuICBjb2xvcjogIzAwN2Y3YjtcclxufVxyXG5cclxuLnByb3BlcnRpZXMtaGFuZGxlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIGxlZnQ6IDMwcHg7XHJcbiAgY29sb3I6ICM5Njk2OTY7XHJcbiAgY3Vyc29yOiBtb3ZlO1xyXG4gIHdpZHRoOiAyNHB4O1xyXG4gIGhlaWdodDogMjRweDtcclxufVxyXG5cclxuLmZpZWxkX25hbWVfbGFiZWwge1xyXG4gIG1hcmdpbjogM3B4IDhweCBhdXRvIDA7XHJcbiAgY29sb3I6IHJnYmEoMCwwLDAsLjU0KTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcclxufVxyXG5cclxuLmZpZWxkX25hbWVfc2VsZWN0IHtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbi50b29scy1jb250YWluZXIgYnV0dG9ue1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7XHJcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gIG1pbi13aWR0aDogMzBweDtcclxufVxyXG5cclxuICAudG9vbHMtY29udGFpbmVyIGJ1dHRvbjpmaXJzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDA7XHJcbiAgfVxyXG4iXX0= */\"","module.exports = \"

    Save Template

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    Locations
    \\r\\n \\r\\n All items\\r\\n {{v.label}}\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\"","import { MatDialogRef, MAT_DIALOG_DATA, MatSelect, MatOption } from \"@angular/material\";\r\nimport { Component, Inject, OnInit, AfterViewInit, ViewChild } from \"@angular/core\";\r\nimport { AlertService, MessageSeverity } from \"src/app/services/alert.service\";\r\nimport { PIBService } from \"src/app/services/pib.service\";\r\nimport { PIBTemplate, PIBTemplateLocation } from \"src/app/models/department.model\";\r\nimport { AppTranslationService } from \"src/app/services/app-translation.service\";\r\nimport { Permission } from \"src/app/models/permission.model\";\r\nimport { AccountService } from \"src/app/services/account.service\";\r\nimport { forEach } from \"@angular/router/src/utils/collection\";\r\nimport { locateHostElement } from \"@angular/core/src/render3/instructions\";\r\nimport { Utilities } from \"src/app/services/utilities\";\r\n\r\n@Component({\r\n selector: 'template-editor-save-dialog',\r\n templateUrl: './save-dialog.component.html',\r\n styleUrls: ['./save-dialog.component.css'],\r\n})\r\nexport class TemplateSaveDialogPreviewDialog implements OnInit {\r\n isSaving: boolean;\r\n isNewTemplate: boolean;\r\n showValidationErrors: boolean;\r\n editingTemplateName: any;\r\n templateEdit: PIBTemplate;\r\n formResetToggle: boolean = true;\r\n locations: PIBTemplateLocation[] = [];\r\n allSelected = false;\r\n @ViewChild('locSelect') locSelect: MatSelect;\r\n\r\n constructor(\r\n private translationService: AppTranslationService,\r\n private alertService: AlertService,\r\n private pibService: PIBService,\r\n public dialogRef: MatDialogRef,\r\n private accountService: AccountService,\r\n @Inject(MAT_DIALOG_DATA) public dlgData: any) {\r\n this.getLocations();\r\n if (typeof (dlgData.template) != typeof (undefined)) {\r\n //this.locations = dlgData.locations;\r\n if (dlgData.template.id) {\r\n this.editTemplate(dlgData.template);\r\n } else {\r\n this.newTemplate(dlgData.template.templateBody);\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n newTemplate(template_body: string) {\r\n this.isNewTemplate = true;\r\n this.showValidationErrors = true;\r\n\r\n this.editingTemplateName = null;\r\n this.templateEdit = new PIBTemplate();\r\n this.templateEdit.templateBody = template_body;\r\n return this.templateEdit;\r\n }\r\n\r\n editTemplate(template: PIBTemplate) {\r\n if (template) {\r\n this.isNewTemplate = false;\r\n this.showValidationErrors = true;\r\n\r\n this.editingTemplateName = template.name;\r\n this.templateEdit = new PIBTemplate();\r\n Object.assign(this.templateEdit, template);\r\n\r\n return this.templateEdit;\r\n }\r\n else {\r\n return this.newTemplate(template.templateBody);\r\n }\r\n }\r\n\r\n private save() {\r\n this.isSaving = true;\r\n this.alertService.startLoadingMessage(\"Saving changes...\");\r\n this.templateEdit.locations = [];\r\n if (this.templateEdit.locationIds) {\r\n this.templateEdit.locationIds.forEach((loc, index, locations) => {\r\n var locs = this.locations.filter(item => item.location_id === loc);\r\n if (locs != null && locs.length > 0) {\r\n var location = locs[0];\r\n location.pibTemplateId = this.templateEdit.id;\r\n this.templateEdit.locations.push(location);\r\n }\r\n });\r\n }\r\n\r\n if (this.isNewTemplate) {\r\n this.pibService.newTemplate(this.templateEdit).subscribe(Template => this.saveSuccessHelper(Template), error => this.saveFailedHelper(error));\r\n }\r\n else {\r\n this.pibService.updateTemplate(this.templateEdit).subscribe(response => this.saveSuccessHelper(), error => this.saveFailedHelper(error));\r\n }\r\n }\r\n\r\n private saveSuccessHelper(Template?: PIBTemplate) {\r\n if (Template)\r\n Object.assign(this.templateEdit, Template);\r\n\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.showValidationErrors = false;\r\n\r\n if (this.isNewTemplate)\r\n this.alertService.showMessage(\"Success\", `Template \\\"${this.templateEdit.name}\\\" was created successfully`, MessageSeverity.success);\r\n else\r\n this.alertService.showMessage(\"Success\", `Changes to Template \\\"${this.templateEdit.name}\\\" was saved successfully`, MessageSeverity.success);\r\n\r\n\r\n this.templateEdit = new PIBTemplate();\r\n\r\n\r\n //if (!this.isNewTemplate && this.accountService.currentUser.facilities.some(r => r == this.editingTemplateName))\r\n // this.refreshLoggedInUser();\r\n\r\n //if (this.changesSavedCallback)\r\n // this.changesSavedCallback();\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.alertService.stopLoadingMessage();\r\n this.alertService.showStickyMessage(\"Save Error\", \"The below errors occured while saving your changes:\", MessageSeverity.error);\r\n //this.alertService.showStickyMessage(error, null, MessageSeverity.error);\r\n\r\n //if (this.changesFailedCallback)\r\n // this.changesFailedCallback();\r\n }\r\n\r\n\r\n private cancel() {\r\n //this.templateEdit = new PIBTemplate();\r\n\r\n //this.showValidationErrors = false;\r\n\r\n //this.alertService.resetStickyMessage();\r\n\r\n ////if (this.changesCancelledCallback)\r\n //// this.changesCancelledCallback();\r\n\r\n this.dialogRef.close({ isCancel: true });\r\n }\r\n\r\n getLocations() {\r\n this.alertService.startLoadingMessage(\"Loading locations...\");\r\n this.pibService.getLocations()\r\n .subscribe(results => {\r\n this.locations = results[0];\r\n this.alertService.stopLoadingMessage();\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n toggleAllSelection() {\r\n this.allSelected = !this.allSelected; // to control select-unselect\r\n\r\n if (this.allSelected ) {\r\n this.locSelect.options.forEach((item: MatOption) => item.select());\r\n } else {\r\n this.locSelect.options.forEach((item: MatOption) => { item.deselect() });\r\n }\r\n this.locSelect.close();\r\n }\r\n\r\n get canManageTemplates() {\r\n return this.accountService.userHasPermission(Permission.managePIBTemplatesPermission)\r\n }\r\n}\r\n","module.exports = \".side-menu {\\r\\n min-width: 120px;\\r\\n}\\r\\n\\r\\n.separator-hr {\\r\\n margin-top: 0;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n[hidden] {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n#template_editor_container {\\r\\n min-height: 300px;\\r\\n height: 300px;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n#stage-parent {\\r\\n border: 1px solid black !important;\\r\\n background-color: white !important;\\r\\n float: left;\\r\\n}\\r\\n\\r\\ncanvas {\\r\\n border: 1px solid black !important;\\r\\n}\\r\\n\\r\\n.close {\\r\\n float: right;\\r\\n padding-right: 10px;\\r\\n font-size: small;\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.close-properties {\\r\\n float: right;\\r\\n padding-right: 10px;\\r\\n font-size: small;\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.properties {\\r\\n width: 25%;\\r\\n position: absolute;\\r\\n border: solid 1px;\\r\\n right: 0;\\r\\n background: #dadada;\\r\\n color: #007f7b;\\r\\n}\\r\\n\\r\\n.properties-handle {\\r\\n position: absolute;\\r\\n top: 10px;\\r\\n left: 30px;\\r\\n color: #969696;\\r\\n cursor: move;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n}\\r\\n\\r\\n.field_name_label {\\r\\n margin: 3px 8px auto 0;\\r\\n color: rgba(0,0,0,.54);\\r\\n font-weight: 500;\\r\\n font-size: smaller;\\r\\n}\\r\\n\\r\\n.field_name_select {\\r\\n margin-top: 10px;\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.tools-container button {\\r\\n border-right: 1px solid #000;\\r\\n border-top: 1px solid #000;\\r\\n border-radius: 0px;\\r\\n min-width: 30px;\\r\\n}\\r\\n\\r\\n.tools-container button:first-child {\\r\\n border-left: 1px solid #000;\\r\\n }\\r\\n\\r\\n.preview-stage-parent {\\r\\n border: 1px dashed #191919;\\r\\n /* margin: 0 auto; */\\r\\n position: absolute;\\r\\n z-index: 99999; \\r\\n top: 300px;\\r\\n left: 35vw;\\r\\n background-color: #fdfdfd;\\r\\n}\\r\\n\\r\\n.preview-stage-parent h4 {\\r\\n text-align: center;\\r\\n /* background-color: #007f7b; */\\r\\n color: #000;\\r\\n border-bottom: 1px dashed;\\r\\n padding-bottom: 10px;\\r\\n }\\r\\n\\r\\n.box {\\r\\n transition: ease-in-out 400ms max-height;\\r\\n}\\r\\n\\r\\n.box.opened {\\r\\n transition: ease-in-out 600ms max-height;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90ZW1wbGF0ZS1lZGl0b3IvdGVtcGxhdGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0NBQWtDO0VBQ2xDLGtDQUFrQztFQUNsQyxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxrQ0FBa0M7QUFDcEM7O0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQiwwQkFBMEI7RUFDMUIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLDBCQUEwQjtFQUMxQixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsUUFBUTtFQUNSLG1CQUFtQjtFQUNuQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsY0FBYztFQUNkLFlBQVk7RUFDWixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0Usc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDRCQUE0QjtFQUM1QiwwQkFBMEI7RUFDMUIsa0JBQWtCO0VBQ2xCLGVBQWU7QUFDakI7O0FBRUU7SUFDRSwyQkFBMkI7RUFDN0I7O0FBRUY7RUFDRSwwQkFBMEI7RUFDMUIsb0JBQW9CO0VBQ3BCLGtCQUFrQjtHQUNqQixjQUFjO0VBQ2YsVUFBVTtFQUNWLFVBQVU7RUFDVix5QkFBeUI7QUFDM0I7O0FBRUU7SUFDRSxrQkFBa0I7SUFDbEIsK0JBQStCO0lBQy9CLFdBQVc7SUFDWCx5QkFBeUI7SUFDekIsb0JBQW9CO0VBQ3RCOztBQUVGO0VBQ0Usd0NBQXdDO0FBQzFDOztBQUVFO0lBQ0Usd0NBQXdDO0VBQzFDIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy90ZW1wbGF0ZS1lZGl0b3IvdGVtcGxhdGUtZWRpdG9yLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2lkZS1tZW51IHtcclxuICBtaW4td2lkdGg6IDEyMHB4O1xyXG59XHJcblxyXG4uc2VwYXJhdG9yLWhyIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbltoaWRkZW5dIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4jdGVtcGxhdGVfZWRpdG9yX2NvbnRhaW5lciB7XHJcbiAgbWluLWhlaWdodDogMzAwcHg7XHJcbiAgaGVpZ2h0OiAzMDBweDtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuI3N0YWdlLXBhcmVudCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2sgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG59XHJcblxyXG5jYW52YXMge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jbG9zZSB7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgZm9udC1zaXplOiBzbWFsbDtcclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5jbG9zZS1wcm9wZXJ0aWVzIHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICBmb250LXNpemU6IHNtYWxsO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLnByb3BlcnRpZXMge1xyXG4gIHdpZHRoOiAyNSU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvcmRlcjogc29saWQgMXB4O1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQ6ICNkYWRhZGE7XHJcbiAgY29sb3I6ICMwMDdmN2I7XHJcbn1cclxuXHJcbi5wcm9wZXJ0aWVzLWhhbmRsZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMTBweDtcclxuICBsZWZ0OiAzMHB4O1xyXG4gIGNvbG9yOiAjOTY5Njk2O1xyXG4gIGN1cnNvcjogbW92ZTtcclxuICB3aWR0aDogMjRweDtcclxuICBoZWlnaHQ6IDI0cHg7XHJcbn1cclxuXHJcbi5maWVsZF9uYW1lX2xhYmVsIHtcclxuICBtYXJnaW46IDNweCA4cHggYXV0byAwO1xyXG4gIGNvbG9yOiByZ2JhKDAsMCwwLC41NCk7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBmb250LXNpemU6IHNtYWxsZXI7XHJcbn1cclxuXHJcbi5maWVsZF9uYW1lX3NlbGVjdCB7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG4udG9vbHMtY29udGFpbmVyIGJ1dHRvbiB7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDtcclxuICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgbWluLXdpZHRoOiAzMHB4O1xyXG59XHJcblxyXG4gIC50b29scy1jb250YWluZXIgYnV0dG9uOmZpcnN0LWNoaWxkIHtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzAwMDtcclxuICB9XHJcblxyXG4ucHJldmlldy1zdGFnZS1wYXJlbnQge1xyXG4gIGJvcmRlcjogMXB4IGRhc2hlZCAjMTkxOTE5O1xyXG4gIC8qIG1hcmdpbjogMCBhdXRvOyAqL1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgei1pbmRleDogOTk5OTk7IFxyXG4gIHRvcDogMzAwcHg7XHJcbiAgbGVmdDogMzV2dztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmZGZkO1xyXG59XHJcblxyXG4gIC5wcmV2aWV3LXN0YWdlLXBhcmVudCBoNCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3ZjdiOyAqL1xyXG4gICAgY29sb3I6ICMwMDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkO1xyXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbiAgfVxyXG5cclxuLmJveCB7XHJcbiAgdHJhbnNpdGlvbjogZWFzZS1pbi1vdXQgNDAwbXMgbWF4LWhlaWdodDtcclxufVxyXG5cclxuICAuYm94Lm9wZW5lZCB7XHJcbiAgICB0cmFuc2l0aW9uOiBlYXNlLWluLW91dCA2MDBtcyBtYXgtaGVpZ2h0O1xyXG4gIH1cclxuIl19 */\"","module.exports = \"
    \\r\\n
    \\r\\n

    Template Editor {{(editedTemplate && editedTemplate.name != '' ? editedTemplate.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\\r\\n \\r\\n {{value}}\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n {{'templates.management.Edit' | translate}}\\r\\n {{'templates.management.Details' | translate}}\\r\\n \\r\\n {{'templates.management.Delete' | 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 JSON = {{jsonValue}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n

    Properties

    Close\\r\\n

    {{selectedShape.label}}

    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    Fill Color
    \\r\\n \\r\\n {{v}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    Color
    \\r\\n \\r\\n {{v}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    Font Family
    \\r\\n \\r\\n {{v}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Font Style
    \\r\\n \\r\\n {{v}}\\r\\n \\r\\n
    Font Color
    \\r\\n \\r\\n {{v}}\\r\\n \\r\\n
    Text Wrap
    \\r\\n \\r\\n {{v}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    Field Name
    \\r\\n \\r\\n {{v.label}}\\r\\n \\r\\n
    Field Name
    \\r\\n \\r\\n {{v.label}}\\r\\n \\r\\n
    Restriction Types
    \\r\\n \\r\\n {{v.label}}\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Preview
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n

    Preview

    Close\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, OnInit, ChangeDetectorRef, ViewChild, TemplateRef } from '@angular/core';\r\nimport Konva from 'konva';\r\nimport { ShapeService } from 'src/app/services/shape.service';\r\nimport { TextNodeService } from 'src/app/services/text-node.service';\r\nimport { trigger, transition, animate, style, state } from '@angular/animations';\r\nimport { ConfigurationService } from 'src/app/services/configuration.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { PIBService } from 'src/app/services/pib.service';\r\nimport { PIBTemplate } from 'src/app/models/department.model';\r\nimport { saveAs } from 'file-saver';\r\nimport { TemplateEditorPreviewDialog } from './preview/preview.component';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Permission } from 'src/app/models/permission.model';\r\nimport { AlertService, MessageSeverity, DialogType } from 'src/app/services/alert.service';\r\nimport { AppTranslationService } from 'src/app/services/app-translation.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { TemplateSaveDialogPreviewDialog } from './save-dialog/save-dialog.component';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-template-editor',\r\n templateUrl: './template-editor.component.html',\r\n styleUrls: ['./template-editor.component.css'],\r\n host: {\r\n '(window:resize)': 'onResize($event)'\r\n },\r\n animations: [\r\n trigger('slideInOut', [\r\n transition(':enter', [\r\n style({ transform: 'translateY(-100%)' }),\r\n animate('200ms ease-in', style({ transform: 'translateX(0%)' }))\r\n ]),\r\n transition(':leave', [\r\n animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))\r\n ])\r\n ]),\r\n trigger('slide', [\r\n state('left', style({ transform: 'translateX(0)' })),\r\n state('right', style({ transform: 'translateX(-100%)' })),\r\n transition('* => *', animate(300))\r\n ])\r\n ]\r\n})\r\nexport class TemplateEditorComponent implements OnInit {\r\n\r\n //#list\r\n columns: any[] = [];\r\n rows: PIBTemplate[] = [];\r\n rowsCache: PIBTemplate[] = [];\r\n allPermissions: Permission[] = [];\r\n editedTemplate: PIBTemplate;\r\n sourceTemplate: PIBTemplate;\r\n editingTemplateName: { name: string };\r\n loadingIndicator: boolean;\r\n private isSaving: boolean;\r\n\r\n\r\n @ViewChild('indexTemplate')\r\n indexTemplate: TemplateRef;\r\n\r\n @ViewChild('actionsTemplate')\r\n actionsTemplate: TemplateRef;\r\n\r\n header: string;\r\n\r\n //#editor\r\n origWidth = 1304;\r\n origHeight = 984;\r\n stageWidth = this.origWidth * 1;\r\n stageHeight = this.origHeight * 1;\r\n selectedShape = { label: '', type: '', is_variable: false, is_font_bold: false, is_icon: false };\r\n jsonValue: any;\r\n is_variable: boolean = false;\r\n is_icon: boolean = false;\r\n is_patient_info: boolean = false;\r\n is_patient_restriction: boolean = false;\r\n is_group_patient_restriction: boolean = false;\r\n is_selected: boolean = false;\r\n is_preview: boolean = false;\r\n previewImgUri: any;\r\n\r\n shapes: any = [];\r\n stage: Konva.Stage;\r\n layer: Konva.Layer;\r\n currentText: Konva.Text;\r\n currentShape: Konva.Shape;\r\n currentShapeModel: any = {};\r\n\r\n //dups\r\n dup_stage: Konva.Stage;\r\n dup_layer: Konva.Layer;\r\n preview_stage: Konva.Stage;\r\n preview_layer: Konva.Layer;\r\n selectedButton: any = {\r\n 'circle': false,\r\n 'rectangle': false,\r\n 'line': false,\r\n 'undo': false,\r\n 'erase': false,\r\n 'text': false,\r\n 'patient_info': false,\r\n 'patient_restrictions': false\r\n }\r\n erase: boolean = false;\r\n transformers: Konva.Transformer[] = [];\r\n fileUploadResponse: { dbPath: '', fileId: null, fileName: '' };\r\n isFileUpload: boolean = false;\r\n font_families = ['Arial', 'Calibri', 'Tahoma', 'Times New Roman'];\r\n font_styles = ['normal', 'bold', 'italic'];\r\n font_colors = ['white', 'black'];\r\n text_overflows = ['wrap', 'resize', 'ellipsis', 'resize and wrap'];\r\n variable_names: any = [\r\n { label: 'AHP Remarks', val: 'ahp_remarks' },\r\n { label: 'Attending Doctor', val: 'attending_doctor' },\r\n { label: 'Attending Nurse', val: 'attending_nurse' },\r\n { label: 'Case No.', val: 'case_number' },\r\n { label: 'Drug Allergy', val: 'drug_allergies_flatten' },\r\n { label: 'Gender', val: 'gender' },\r\n { label: 'Languages', val: 'languages_flatten' },\r\n { label: 'Location Alias', val: 'location_alias' },\r\n { label: 'Location Label', val: 'location_label' },\r\n { label: 'Name', val: 'name' },\r\n { label: 'NRIC', val: 'identifier' },\r\n { label: 'Ongoing Remarks', val: 'ongoing_remarks' },\r\n { label: 'PIB Location', val: 'pib_location' },\r\n { label: 'Preferred Name', val: 'preferred_name' }\r\n ];\r\n\r\n locations: any = [];\r\n restriction_variable_names: any = [\r\n //{ label: 'Mode of Feeding', val: 'mode_of_feeding' },\r\n //{ label: 'Food Restrictions', val: 'food_restrictions' },\r\n //{ label: 'Diet Type', val: 'diet_type' },\r\n //{ label: 'Diet Texture & Fluid Consistency', val: 'diet_texture' },\r\n //{ label: 'Fluid Restrictions', val: 'fluid_restrictions' },\r\n //{ label: 'Functional Status', val: 'function_status' },\r\n //{ label: 'Special Instructions', val: 'special_instructions' },\r\n ];\r\n showNewTemplate: boolean;\r\n\r\n constructor(\r\n private shapeService: ShapeService,\r\n private textNodeService: TextNodeService,\r\n private fileService: FileService,\r\n private configurationService: ConfigurationService,\r\n private pibService: PIBService,\r\n private ref: ChangeDetectorRef,\r\n private alertService: AlertService,\r\n private translationService: AppTranslationService,\r\n private dialog: MatDialog,\r\n private accountService: AccountService,\r\n private domSanitizer: DomSanitizer\r\n ) { }\r\n\r\n onResize(event) {\r\n this.fitStageIntoParentContainer();\r\n }\r\n\r\n public uploadFinished = (event) => {\r\n this.fileUploadResponse = event;\r\n //console.log(this.fileUploadResponse.dbPath);\r\n //console.log(this.fileUploadResponse.dbPath.replace(/\\\\/g, '/'));\r\n this.addImage(this.fileUploadResponse ? this.configurationService.baseUrl + '/' + this.fileUploadResponse.dbPath.replace(/\\\\/g, '/') : null);\r\n }\r\n\r\n getFileImage(path) {\r\n return this.fileService.getFile(path);\r\n }\r\n\r\n ngOnInit() {\r\n //this.variable_names = this.variable_names.pipe(map(arr => arr.sort((a, b) => a > b)));\r\n this.initListTable();\r\n this.initTemplate();\r\n }\r\n\r\n getLocations() {\r\n this.pibService.getLocations()\r\n .subscribe(results => {\r\n this.locations = results[0];\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving locations.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n getRestrictionTypes() {\r\n this.pibService.getRestrictionTypes()\r\n .subscribe(results => {\r\n this.restriction_variable_names = results[0];\r\n },\r\n error => {\r\n //this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving restriction types.\\r\\nError: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n this.alertService.showStickyMessage(\"Get Error\", `An error occured while retrieving restriction.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n initTemplate() {\r\n //initialised values\r\n this.selectedShape = { label: '', type: '', is_variable: false, is_font_bold: false, is_icon: false };\r\n this.jsonValue = null;\r\n this.is_variable = false;\r\n this.is_icon = false;\r\n this.is_patient_info = false;\r\n this.is_patient_restriction = false;\r\n this.is_group_patient_restriction = false;\r\n this.is_selected = false;\r\n this.is_preview = false;\r\n\r\n this.shapes = [];\r\n this.stage = null;\r\n this.layer = null;\r\n this.currentText = null;\r\n this.currentShape = null;\r\n this.currentShapeModel = {};\r\n\r\n //dups\r\n this.dup_stage = null;\r\n this.dup_layer = null;\r\n this.preview_stage = null;\r\n this.preview_layer = null;\r\n this.selectedButton = {\r\n 'circle': false,\r\n 'rectangle': false,\r\n 'line': false,\r\n 'undo': false,\r\n 'erase': false,\r\n 'text': false,\r\n 'patient_info': false,\r\n 'patient_restrictions': false\r\n }\r\n this.erase = false;\r\n this.transformers = [];\r\n this.fileUploadResponse = { dbPath: '', fileId: null, fileName: '' };\r\n this.isFileUpload = false;\r\n this.showNewTemplate = false;\r\n\r\n //var element = document.getElementById('template_editor_container');\r\n //var positionInfo = element.getBoundingClientRect();\r\n //console.log(positionInfo);\r\n //var height = positionInfo.height;\r\n //var width = positionInfo.width;\r\n this.origWidth = 1304;\r\n this.origHeight = 984;\r\n let width = this.origWidth * 0.75;\r\n let height = this.origHeight * 0.75;\r\n\r\n //let width = window.innerWidth * 0.9;\r\n //let height = window.innerHeight;\r\n this.stage = new Konva.Stage({\r\n container: 'container',\r\n width: this.stageWidth,\r\n height: this.stageHeight,\r\n drawBorder: true,\r\n offsetWidth: .3,\r\n offsetHeight: .3\r\n });\r\n this.layer = new Konva.Layer();\r\n\r\n this.stage.add(this.layer);\r\n this.addLineListeners();\r\n\r\n //this.fitStageIntoParentContainer();\r\n window.dispatchEvent(new Event('resize'));\r\n // adapt the stage on any window resize\r\n //window.addEventListener('resize', function () { fitStageIntoParentContainer(this.stage, this.stageWidth, this.stageHeight) });\r\n }\r\n\r\n clearSelection() {\r\n Object.keys(this.selectedButton).forEach(key => {\r\n this.selectedButton[key] = false;\r\n })\r\n }\r\n setSelection(type: string) {\r\n this.selectedButton[type] = true;\r\n }\r\n addShape(type: string) {\r\n this.clearSelection();\r\n this.isFileUpload = false;\r\n this.setSelection(type);\r\n if (type == 'circle') {\r\n this.addCircle();\r\n }\r\n else if (type == 'line') {\r\n this.addLine();\r\n }\r\n else if (type == 'rect') {\r\n this.addRectangle();\r\n }\r\n else if (type == 'text') {\r\n this.addText('type here', false, false, false);\r\n }\r\n else if (type == 'patient_info') {\r\n this.addText('Patient Info Here', true, false, false);\r\n }\r\n else if (type == 'restrictions') {\r\n this.addText('Restriction Here', false, true, false);\r\n }\r\n else if (type == 'group_restrictions') {\r\n this.addText('Restriction Here', false, false, true);\r\n }\r\n else if (type == 'image') {\r\n //this.addImage();\r\n this.isFileUpload = true;\r\n }\r\n\r\n this.selectedShape.type = type;\r\n }\r\n addText(txt: string, isPatient: boolean, isRestriction: boolean, isGrpRestriction: boolean) {\r\n this.stage.container().style.cursor = 'text';\r\n const text = this.textNodeService.textNode(this.stage, this.layer, txt);\r\n text.textNode.setAttr('is_patient_info', isPatient);\r\n text.textNode.setAttr('is_patient_restriction', isRestriction);\r\n text.textNode.setAttr('is_group_patient_restriction', isGrpRestriction);\r\n text.textNode.setAttr('zLayer', this.layer.children.length);\r\n this.shapes.push(text.textNode);\r\n //this.transformers.push(text.tr);\r\n this.addTransformerListeners(text.textNode);\r\n //text.textNode.fire('click');\r\n }\r\n addCircle() {\r\n const circle = this.shapeService.circle();\r\n this.shapes.push(circle);\r\n this.layer.add(circle);\r\n this.stage.add(this.layer);\r\n this.addTransformerListeners();\r\n\r\n //circle.fire('click');\r\n }\r\n addRectangle() {\r\n const rectangle = this.shapeService.rectangle();\r\n rectangle.setAttr('zLayer', this.layer.children.length);\r\n this.shapes.push(rectangle);\r\n this.layer.add(rectangle);\r\n this.stage.add(this.layer);\r\n this.addTransformerListeners()\r\n }\r\n addLine() {\r\n this.selectedButton['line'] = true;\r\n }\r\n addImage(src) {\r\n //var imageSource = this.configurationService.baseUrl + '/Resources/Images/sunny.bmp';\r\n //var imageSource2 = this.configurationService.baseUrl + '/Resources/Images/darth.png';\r\n\r\n this.selectedButton['image'] = true;\r\n //var img = new Image()\r\n //const image = this.shapeService.image(img);\r\n //this.shapes.push(image);\r\n //this.layer.add(image);\r\n //this.stage.add(this.layer);\r\n //\r\n var component = this;\r\n //var imageObj = new Image();\r\n //\r\n //imageObj.onload = function () {\r\n // image.image(imageObj);\r\n // component.layer.batchDraw();\r\n //};\r\n //imageObj.src = imageSource;\r\n\r\n Konva.Image.fromURL(src, function (node) {\r\n node.setAttrs({\r\n x: 60,\r\n y: 20,\r\n draggable: true,\r\n src: src,\r\n zLayer: component.layer.children.length\r\n });\r\n component.layer.add(node);\r\n component.layer.batchDraw();\r\n });\r\n this.addTransformerListeners();\r\n\r\n }\r\n addLineListeners() {\r\n const component = this;\r\n let lastLine;\r\n let isPaint;\r\n let isHorizontal;\r\n let isVertical;\r\n this.stage.on('mousedown touchstart', function (e) {\r\n if (!component.selectedButton['line'] && !component.erase) {\r\n return;\r\n }\r\n isPaint = true;\r\n let pos = component.stage.getPointerPosition();\r\n const mode = component.erase ? 'erase' : 'brush';\r\n lastLine = component.shapeService.line(pos, mode)\r\n component.shapes.push(lastLine);\r\n component.layer.add(lastLine);\r\n this.container().style.cursor = mode === 'erase' ? 'grab' : 'crosshair';\r\n component.addTransformerListeners();\r\n });\r\n this.stage.on('mouseup touchend', function () {\r\n isPaint = false;\r\n isHorizontal = false;\r\n isVertical = false;\r\n //const pos = component.stage.getPointerPosition();\r\n //var newPoints = lastLine.points().concat([pos.x, pos.y]);\r\n //lastLine.points(newPoints);\r\n //component.layer.batchDraw();\r\n this.container().style.cursor = 'default';\r\n //component.addTransformerListeners();\r\n component.clearSelection();\r\n });\r\n // and core function - drawing\r\n this.stage.on('mousemove touchmove', function () {\r\n if (!isPaint) {\r\n return;\r\n }\r\n var oldPoints = lastLine.getSelfRect();\r\n const pos = component.stage.getPointerPosition();\r\n var newPoints = lastLine.points().concat([pos.x, pos.y]);\r\n if (!isVertical && pos.x > oldPoints.x) {\r\n newPoints = lastLine.points().concat([pos.x, oldPoints.y]);\r\n isHorizontal = true;\r\n } else {\r\n if (!isHorizontal && pos.y > oldPoints.y) {\r\n newPoints = lastLine.points().concat([oldPoints.x, pos.y]);\r\n isVertical = true;\r\n }\r\n }\r\n const mode = component.erase ? 'erase' : 'brush';\r\n this.container().style.cursor = mode === 'erase' ? 'grab' : 'crosshair';\r\n lastLine.points(newPoints);\r\n component.layer.batchDraw();\r\n });\r\n }\r\n undo() {\r\n const removedShape = this.shapes.pop();\r\n this.transformers.forEach(t => {\r\n t.detach();\r\n });\r\n if (removedShape) {\r\n removedShape.remove();\r\n }\r\n this.layer.draw();\r\n this.is_selected = false;\r\n }\r\n delete() {\r\n this.currentShape.remove();\r\n this.transformers.forEach(t => {\r\n t.detach();\r\n });\r\n const removeShape = this.shapes.find(s => s._id == this.currentShape._id);\r\n if (removeShape) {\r\n removeShape.remove();\r\n }\r\n this.layer.draw();\r\n this.is_selected = false;\r\n }\r\n addTransformerListeners(textNode?: any) {\r\n const component = this;\r\n const tr = new Konva.Transformer();\r\n //const tr = !textNode ? new Konva.Transformer() : new Konva.Transformer({\r\n // node: textNode as any,\r\n // enabledAnchors: ['middle-left', 'middle-right'],\r\n // // set minimum width of text\r\n // boundBoxFunc: function (oldBox, newBox) {\r\n // newBox.width = Math.max(30, newBox.width);\r\n // return newBox;\r\n // }\r\n //});\r\n\r\n this.stage.on('click', function (e) {\r\n if (!this.clickStartShape) {\r\n return;\r\n }\r\n if (e.target._id == this.clickStartShape._id) {\r\n //tr.detach();\r\n //component.layer.draw();\r\n component.selectedShape.label = this.clickStartShape.className;\r\n component.currentShape = this.clickStartShape;\r\n if (this.clickStartShape.className === 'Text') {\r\n component.currentText = this.clickStartShape as Konva.Text;\r\n component.setCurrentTextValues(component, component.currentText);\r\n } else {\r\n component.selectedShape.is_variable = false;\r\n component.selectedShape.is_icon = false;\r\n component.selectedShape.type = this.clickStartShape.className.toLowerCase();\r\n if (this.clickStartShape.className === 'Line') {\r\n component.currentShape = this.clickStartShape as Konva.Line;\r\n component.currentShapeModel.stroke = component.currentShape.stroke();\r\n component.currentShapeModel.strokeWidth = component.currentShape.strokeWidth();\r\n //component.currentShapeModel.zIndex = component.currentShape.zIndex();\r\n component.currentShapeModel.zLayer = component.currentShape.getAttr('zLayer') === undefined ? component.currentShape.zIndex() : component.currentShape.getAttr('zLayer');\r\n //component.currentShapeModel.x = component.currentShape.points\r\n //component.currentShapeModel.y = component.currentShape.y();\r\n } else {\r\n component.currentShape = this.clickStartShape;\r\n component.currentShapeModel.x = component.currentShape.x();\r\n component.currentShapeModel.y = component.currentShape.y();\r\n component.currentShapeModel.fill = component.currentShape.fill();\r\n //component.currentShapeModel.zIndex = component.currentShape.zIndex();\r\n component.currentShapeModel.zLayer = component.currentShape.getAttr('zLayer') === undefined ? component.currentShape.zIndex() : component.currentShape.getAttr('zLayer');\r\n //component.currentShapeModel.width = component.currentShape.width();\r\n //component.currentShapeModel.width = component.currentShape.width();\r\n }\r\n component.currentShapeModel.id = component.currentShape.id;\r\n }\r\n component.is_selected = true;\r\n //component.addDeleteListener(e.target);\r\n component.layer.add(tr);\r\n tr.nodes([e.target]);\r\n //tr.attachTo(e.target);\r\n component.transformers.push(tr);\r\n //component.transformers.push(tr);\r\n component.layer.draw();\r\n component.ref.detectChanges();\r\n }\r\n else {\r\n tr.detach();\r\n component.layer.draw();\r\n }\r\n });\r\n this.stage.on('dragend', function (e) {\r\n if (!this.clickStartShape) {\r\n return;\r\n }\r\n if (e.target._id == this.clickStartShape._id) {\r\n if (this.clickStartShape.className === 'Text') {\r\n component.currentText = this.clickStartShape as Konva.Text;\r\n component.setCurrentTextValues(component, component.currentText);\r\n } else {\r\n component.selectedShape.is_variable = false;\r\n component.selectedShape.is_icon = false;\r\n component.selectedShape.type = this.clickStartShape.className.toLowerCase();\r\n if (this.clickStartShape.className === 'Line') {\r\n component.currentShape = this.clickStartShape as Konva.Line;\r\n component.currentShapeModel.stroke = component.currentShape.stroke();\r\n component.currentShapeModel.strokeWidth = component.currentShape.strokeWidth();\r\n //component.currentShapeModel.zIndex = component.currentShape.zIndex();\r\n component.currentShapeModel.zLayer = component.currentShape.getAttr('zLayer') === undefined ? component.currentShape.zIndex() : component.currentShape.getAttr('zLayer');\r\n //component.currentShapeModel.x = component.currentShape.points\r\n //component.currentShapeModel.y = component.currentShape.y();\r\n } else {\r\n component.currentShape = this.clickStartShape;\r\n component.currentShapeModel.x = component.currentShape.x();\r\n component.currentShapeModel.y = component.currentShape.y();\r\n component.currentShapeModel.fill = component.currentShape.fill();\r\n //component.currentShapeModel.zIndex = component.currentShape.zIndex();\r\n component.currentShapeModel.zLayer = component.currentShape.getAttr('zLayer') === undefined ? component.currentShape.zIndex() : component.currentShape.getAttr('zLayer');\r\n //component.currentShapeModel.width = component.currentShape.width();\r\n //component.currentShapeModel.width = component.currentShape.width();\r\n }\r\n component.currentShapeModel.id = component.currentShape.id;\r\n }\r\n\r\n //component.is_selected = true;\r\n }\r\n });\r\n }\r\n\r\n setCurrentTextValues(component: any, txtNode: Konva.Text) {\r\n component.currentShapeModel.fontSize = component.currentText.fontSize();\r\n component.currentShapeModel.fontFamily = component.currentText.fontFamily();\r\n component.currentShapeModel.fontStyle = component.currentText.fontStyle();\r\n //component.currentShapeModel.stroke = component.currentText.stroke();\r\n component.currentShapeModel.fill = component.currentText.fill();\r\n component.currentShapeModel.text = component.currentText.text();\r\n component.currentShapeModel.x = component.currentText.x();\r\n component.currentShapeModel.y = component.currentText.y();\r\n component.currentShapeModel.is_variable = component.currentText.getAttr('is_variable') === undefined ? false : component.currentText.getAttr('is_variable');\r\n component.currentShapeModel.is_icon = component.currentText.getAttr('is_icon') === undefined ? false : component.currentText.getAttr('is_icon');\r\n component.currentShapeModel.is_patient_info = component.currentText.getAttr('is_patient_info') === undefined ? false : component.currentText.getAttr('is_patient_info');\r\n component.currentShapeModel.is_patient_restriction = component.currentText.getAttr('is_patient_restriction') === undefined ? false : component.currentText.getAttr('is_patient_restriction');\r\n component.currentShapeModel.is_group_patient_restriction = component.currentText.getAttr('is_group_patient_restriction') === undefined ? false : component.currentText.getAttr('is_group_patient_restriction');\r\n component.currentShapeModel.variable_name = component.currentText.getAttr('variable_name') === undefined ? '' : component.currentText.getAttr('variable_name');\r\n component.currentShapeModel.group_name = component.currentText.getAttr('group_name') === undefined ? '' : component.currentText.getAttr('group_name');\r\n component.currentShapeModel.group_variable_name = component.currentText.getAttr('group_variable_name') === undefined ? '' : component.currentText.getAttr('group_variable_name');\r\n component.currentShapeModel.is_background_image = component.currentText.getAttr('is_background_image');\r\n component.currentShapeModel.zLayer = component.currentText.getAttr('zLayer') === undefined ? component.currentText.zIndex() : component.currentText.getAttr('zLayer');\r\n component.currentShapeModel.id = component.currentText.id;\r\n component.currentShapeModel.text_wrap = component.currentText.getAttr('text_wrap') === undefined ? '' : component.currentText.getAttr('text_wrap');\r\n //component.currentShapeModel.zIndex = component.currentText.zIndex();\r\n\r\n component.selectedShape.is_variable = component.currentShapeModel.is_variable;\r\n component.selectedShape.is_icon = component.currentShapeModel.is_icon;\r\n //component.selectedShape.is_font_bold = component.currentText.fontStyle() == 'bold';\r\n if (component.currentShapeModel.is_patient_info) {\r\n component.selectedShape.label = 'Patient Info';\r\n component.selectedShape.type = 'patient_info';\r\n } else if (component.currentShapeModel.is_patient_restriction) {\r\n component.selectedShape.label = 'Restrictions';\r\n component.selectedShape.type = 'restrictions';\r\n } else if (component.currentShapeModel.is_group_patient_restriction) {\r\n component.selectedShape.label = 'Group Restrictions';\r\n component.selectedShape.type = 'group_restrictions';\r\n } else {\r\n component.selectedShape.label = 'Text';\r\n component.selectedShape.type = 'text';\r\n }\r\n }\r\n addDeleteListener(shape) {\r\n const component = this;\r\n window.addEventListener('keydown', function (e) {\r\n if (e.keyCode === 46) {\r\n shape.remove();\r\n component.transformers.forEach(t => {\r\n t.detach();\r\n });\r\n const selectedShape = component.shapes.find(s => s._id == shape._id);\r\n selectedShape.remove();\r\n e.preventDefault();\r\n }\r\n component.layer.batchDraw();\r\n });\r\n }\r\n generateJson() {\r\n //console.log(this.stage);\r\n //console.log(JSON.stringify(this.stage));\r\n this.jsonValue = this.stage.toJSON();\r\n }\r\n fitStageIntoParentContainer() {\r\n //var container = document.querySelector('#stage-parent');\r\n\r\n //// now we need to fit stage into parent\r\n //var containerWidth = container.offsetWidth;\r\n //var containerHeight = container.offsetHeight;\r\n //// to do this we need to scale the stage\r\n //var scaleW = containerWidth / this.stageWidth;\r\n //var scaleH = containerHeight / this.stageHeight;\r\n\r\n //if (scaleW == 0) scaleW = 1;\r\n //if (scaleH == 0) scaleH = 1;\r\n //this.stage.width(this.stageWidth * scaleW);\r\n //this.stage.height(this.stageHeight * scaleH);\r\n //this.stage.scale({ x: scaleW, y: scaleH });\r\n //this.stage.draw();\r\n }\r\n updateValue(type, val, triggerValue?: any) {\r\n if (this.selectedShape.type != 'text' && this.selectedShape.type != 'patient_info' && this.selectedShape.type != 'restrictions' && this.selectedShape.type != 'group_restrictions') {\r\n if (type == 'x') {\r\n this.currentShape.x(val);\r\n }\r\n else if (type == 'y') {\r\n this.currentShape.y(val);\r\n }\r\n else if (type == 'width') {\r\n this.currentShape.size().width = val;\r\n }\r\n else if (type == 'height') {\r\n this.currentShape.size().height = val;\r\n }\r\n else if (type == 'stroke') {\r\n this.currentShape.stroke(val);\r\n }\r\n else if (type == 'strokeWidth') {\r\n this.currentShape.strokeWidth(val);\r\n }\r\n else if (type == 'strokeWidth') {\r\n this.currentShape.strokeWidth(val);\r\n }\r\n else if (type == 'zLayer') {\r\n this.currentShape.zIndex(val);\r\n this.currentShape.setAttr('zLayer', val);\r\n } else if (type == 'fill') {\r\n this.currentShape.fill(val);\r\n //this.currentText.stroke(val);\r\n }\r\n this.layer.draw();\r\n //this.currentText.getStage().batchDraw();\r\n } else {\r\n if (type == 'x') {\r\n this.currentText.x(val);\r\n }\r\n else if (type == 'y') {\r\n this.currentText.y(val);\r\n }\r\n else if (type == 'fontSize') {\r\n this.currentText.fontSize(val);\r\n }\r\n else if (type == 'fontFamily') {\r\n this.currentText.fontFamily(val);\r\n }\r\n else if (type == 'fontStyle') {\r\n this.currentText.fontStyle(val);\r\n }\r\n else if (type == 'zLayer') {\r\n this.currentText.zIndex(val);\r\n this.currentText.setAttr('zLayer', val);\r\n }\r\n else if (type == 'text_wrap') {\r\n this.currentText.setAttr('text_wrap', val);\r\n }\r\n else if (type == 'fill') {\r\n this.currentText.fill(val);\r\n //this.currentText.stroke(val);\r\n }\r\n //else if (type == 'fontStyle') {\r\n // this.selectedShape.is_font_bold = val;\r\n // if (val) {\r\n // this.currentText.fontStyle('bold');\r\n // } else {\r\n // this.currentText.fontStyle('normal');\r\n // }\r\n //}\r\n else if (type == 'group_name') {\r\n this.currentText.setAttr('group_name', val);\r\n }\r\n else if (type == 'group_variable_name') {\r\n this.currentText.setAttr('group_variable_name', val);\r\n var text = '[' + triggerValue + ']';\r\n this.currentText.text(text)\r\n this.currentShapeModel.text = text;\r\n }\r\n else if (type == 'text') {\r\n this.currentText.text(val);\r\n }\r\n else if (type == 'variable_name') {\r\n\r\n if (this.selectedShape.is_variable) {\r\n var text = '';\r\n if (this.is_patient_restriction && this.currentText.getAttr('is_patient_restriction')) {\r\n text = '[' + triggerValue + ']';\r\n this.currentText.setAttr('variable_name', val);\r\n } if (this.is_group_patient_restriction && this.currentText.getAttr('is_group_patient_restriction')) {\r\n text = '[' + triggerValue + ']';\r\n this.currentText.setAttr('variable_name', val);\r\n } else {\r\n this.currentText.setAttr('variable_name', val);\r\n text = '[' + val + ']';\r\n }\r\n this.currentText.text(text);\r\n //this.currentText.fontStyle('italic');\r\n this.currentShapeModel.text = text;\r\n } else {\r\n this.currentText.fontStyle('normal');\r\n }\r\n }\r\n else if (type == 'is_variable') {\r\n this.selectedShape.is_variable = val;\r\n this.is_variable = val;\r\n if (!this.selectedShape.is_variable) {\r\n this.currentText.setAttr('variable_name', '');\r\n } else {\r\n this.is_patient_info = this.currentText.getAttr('is_patient_info');\r\n this.is_patient_restriction = this.currentText.getAttr('is_patient_restriction');\r\n this.is_group_patient_restriction = this.currentText.getAttr('is_group_patient_restriction');\r\n }\r\n\r\n this.currentText.setAttr('is_variable', val);\r\n }\r\n else if (type == 'is_icon') {\r\n this.selectedShape.is_icon = val;\r\n this.is_icon = val;\r\n this.currentText.setAttr('is_icon', val);\r\n }\r\n this.layer.draw();\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n imgSrc: string = '';\r\n postToDevice() {\r\n this.alertService.resetStickyMessage();\r\n var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n this.editedTemplate.isPostToDevice = true;\r\n //this.editedTemplate.deviceAPIUrl = 'http://183.90.63.88:3000/template'\r\n //this.editedTemplate.deviceAPIUrl = \"http://119.73.206.36:91/api/registration/GetRegistrationsByLocationCode\";\r\n this.alertService.startLoadingMessage(\"Posting template to device...\");\r\n this.pibService.mapTemplate(this.editedTemplate)\r\n .subscribe(res => {\r\n\r\n this.alertService.stopLoadingMessage();\r\n if (res.isSuccess) {\r\n this.alertService.showMessage(\"Success\", \"Successfully updated the device\", MessageSeverity.success);\r\n }\r\n else {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n }\r\n //this.redrawFromJson(res.data);\r\n /*this.imgSrc = this.dup_stage.toDataURL();\r\n var curi = this.dup_stage.toCanvas({}).toDataURL();\r\n console.log(curi);\r\n var dataurl = this.dup_stage.toDataURL();\r\n var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n var uri = new Blob([u8arr], { type: mime });\r\n\r\n\r\n console.log(dataurl.replace(\"image/png\", \"image/octet-stream\"));\r\n var link = document.createElement('a');\r\n link.download = \"image.png\";\r\n link.href = dataurl;//.replace(/^data:image\\/[^;]/, 'data:application/octet-stream');\r\n\r\n //link.download = 'template.png';\r\n //link.href = dataurl.replace(\"image/png\", \"image/octet-stream\");\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //delete link;\r\n var template = new PIBTemplate('', 'template.png', dataurl)\r\n var url = \"http://183.90.63.88:3000/epaper\";\r\n //this.pibService.postTemplateToDevice2(url, template).subscribe(res => {\r\n // console.log(res);\r\n // alert('Posted to device');\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n\r\n //this.pibService.postTemplateToDevice(url, template).subscribe(res => {\r\n // console.log(res);\r\n // alert('Posted to device');\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n */\r\n }\r\n , error => function (error) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\", MessageSeverity.error);\r\n console.log(error);\r\n });\r\n //this.pibService.mapTemplate(template);\r\n }\r\n\r\n postToDeviceAsImage() {\r\n this.alertService.resetStickyMessage();\r\n var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n this.editedTemplate.isPostToDevice = false;\r\n this.alertService.startLoadingMessage(\"Posting template as image to device...\");\r\n var component = this;\r\n this.pibService.mapTemplate(this.editedTemplate)\r\n .subscribe(res => {\r\n\r\n this.redrawFromJson(res.data, function () {\r\n var curi = component.dup_stage.toCanvas({}).toDataURL();\r\n //console.log(curi);\r\n var dataurl = component.dup_stage.toDataURL();\r\n //var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n // bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n //while (n--) {\r\n // u8arr[n] = bstr.charCodeAt(n);\r\n //}\r\n //var uri = new Blob([u8arr], { type: mime });\r\n\r\n var template = new PIBTemplate('', 'template.png', dataurl)\r\n var url = \"http://183.90.63.88:3000/epaper\";\r\n component.pibService.postTemplateToDevice(url, template).subscribe(res => {\r\n //console.log(res);\r\n //alert('Posted to device');\r\n component.alertService.stopLoadingMessage();\r\n if (res.isSuccess) {\r\n component.alertService.showMessage(\"Success\", \"Successfully updated the device\", MessageSeverity.success);\r\n }\r\n else {\r\n component.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n }\r\n\r\n }, error => function (error) {\r\n console.log(error);\r\n });\r\n\r\n });\r\n\r\n //this.imgSrc = this.dup_stage.toDataURL();\r\n\r\n\r\n\r\n //this.redrawFromJson(res.data);\r\n /*this.imgSrc = this.dup_stage.toDataURL();\r\n var curi = this.dup_stage.toCanvas({}).toDataURL();\r\n console.log(curi);\r\n var dataurl = this.dup_stage.toDataURL();\r\n var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n var uri = new Blob([u8arr], { type: mime });\r\n\r\n\r\n console.log(dataurl.replace(\"image/png\", \"image/octet-stream\"));\r\n var link = document.createElement('a');\r\n link.download = \"image.png\";\r\n link.href = dataurl;//.replace(/^data:image\\/[^;]/, 'data:application/octet-stream');\r\n\r\n //link.download = 'template.png';\r\n //link.href = dataurl.replace(\"image/png\", \"image/octet-stream\");\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n //delete link;\r\n var template = new PIBTemplate('', 'template.png', dataurl)\r\n var url = \"http://183.90.63.88:3000/epaper\";\r\n //this.pibService.postTemplateToDevice2(url, template).subscribe(res => {\r\n // console.log(res);\r\n // alert('Posted to device');\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n\r\n //this.pibService.postTemplateToDevice(url, template).subscribe(res => {\r\n // console.log(res);\r\n // alert('Posted to device');\r\n //}, error => function (error) {\r\n // console.log(error);\r\n //});\r\n */\r\n }\r\n , error => function (error) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\", MessageSeverity.error);\r\n console.log(error);\r\n });\r\n //this.pibService.mapTemplate(template);\r\n }\r\n\r\n redrawFromJson(template: any, callback?: any): void {\r\n //var template = JSON.parse(json);\r\n this.dup_stage = new Konva.Stage({\r\n container: 'dup-container',\r\n width: this.origWidth,\r\n height: this.origHeight,\r\n drawBorder: template['attrs']['drawBorder'],\r\n //scaleX: 1 / 2,\r\n //scaleY: 1 / 2,\r\n //offsetWidth: .3,\r\n //offsetHeight: .3\r\n });\r\n //this.dup_stage.setAttr(\"drawBorder\", true);\r\n this.dup_layer = new Konva.Layer();\r\n this.dup_stage.add(this.dup_layer);\r\n var images = [];\r\n var imgCount = 0;\r\n var templateChildren = template['children'][0]['children'];\r\n var sortedChildren = templateChildren.sort((a, b) => parseInt(this.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(this.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n var childAddedCount = 0;\r\n var imgCount = 0;\r\n var newZIndex = sortedChildren.length - 1;\r\n\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var t = sortedChildren[i];\r\n if (t['className'] == 'Text') {\r\n //if (t['attrs']['icon'] != null && t['attrs']['icon'] != '') {\r\n // var icons = (t['attrs']['icon']).split(',');\r\n // for (var ic = 0; ic < icons.length; ic++) {\r\n // var attrs = t['attrs'];\r\n // var src = t['attrs']['src'];\r\n // images.push({ src: src, attrs: attrs, zLayer: childAddedCount });\r\n // childAddedCount++;\r\n // var component = this;\r\n // var imageObj = new Image()\r\n // const image = this.shapeService.image(imageObj, attrs);\r\n // imageObj.onload = function () {\r\n // for (var i in images) {\r\n // if (images[i].src == decodeURI(image.attrs.src)) {\r\n // ++imgCount;\r\n // var x = image.attrs.x === undefined ? 0 : parseInt(image.attrs.x);\r\n // var y = image.attrs.y === undefined ? 0 : parseInt(image.attrs.y);\r\n\r\n // image.setAttrs(images[i].attrs);\r\n // image.x(x);\r\n // image.y(y);\r\n // image.setAttr('zLayer', images[i].zLayer);\r\n // image.zIndex(parseInt(images[i].zLayer));\r\n\r\n // component.dup_layer.draw();\r\n // }\r\n // }\r\n\r\n // if (images != null && images.length == imgCount) {\r\n // component.dup_layer.batchDraw();\r\n // callback(component, component.dup_layer);\r\n // }\r\n // };\r\n // imageObj.src = src;\r\n // this.dup_layer.add(image);\r\n // }\r\n //} else {\r\n const shape = new Konva.Text(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n //}\r\n } else if (t['className'] == 'Line') {\r\n const shape = new Konva.Line(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Rect') {\r\n const shape = new Konva.Rect(t['attrs']);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n this.dup_layer.add(shape);\r\n } else if (t['className'] == 'Image' && t['attrs']['src']) {\r\n var attrs = t['attrs'];\r\n var src = t['attrs']['src'];\r\n images.push({ src: src, attrs: attrs, zLayer: childAddedCount });\r\n childAddedCount++;\r\n var component = this;\r\n var imageObj = new Image()\r\n const image = this.shapeService.image(imageObj, attrs);\r\n imageObj.onload = function () {\r\n for (var i in images) {\r\n if (images[i].src == decodeURI(image.attrs.src)) {\r\n ++imgCount;\r\n var x = image.attrs.x === undefined ? 0 : parseInt(image.attrs.x);\r\n var y = image.attrs.y === undefined ? 0 : parseInt(image.attrs.y);\r\n\r\n image.setAttrs(images[i].attrs);\r\n image.x(x);\r\n image.y(y);\r\n image.setAttr('zLayer', images[i].zLayer);\r\n image.zIndex(parseInt(images[i].zLayer));\r\n\r\n component.dup_layer.draw();\r\n }\r\n }\r\n\r\n if (images != null && images.length == imgCount) {\r\n component.dup_layer.batchDraw();\r\n callback(component, component.dup_layer);\r\n }\r\n };\r\n imageObj.src = src;\r\n //this.shapes.push(image);\r\n this.dup_layer.add(image);\r\n\r\n //Konva.Image.fromURL(src, function (node) {\r\n // var is_background_image = false;\r\n // for (var i in images) {\r\n // if (images[i].src == decodeURI(node.attrs.image.src)) {\r\n // ++imgCount;\r\n // node.setAttrs(images[i].attrs);\r\n // node.setAttr('zLayer', images[i].zLayer);\r\n // node.zIndex(images[i].zLayer);\r\n // is_background_image = node.attrs.is_background_image;\r\n // component.dup_layer.add(node);\r\n // component.dup_layer.draw();\r\n // if (is_background_image) {\r\n // node.zIndex(0);\r\n // }\r\n // }\r\n // }\r\n\r\n // if (images != null && images.length == imgCount) {\r\n // component.reorderComponents(component, component.dup_layer, callback);\r\n // }\r\n //});\r\n }\r\n\r\n this.dup_stage.add(this.dup_layer);\r\n this.dup_layer.draw();\r\n }\r\n //this.loadImages(images, this.buildImages);\r\n if (!images || images == null || images.length == 0) {\r\n this.reorderComponents(this, this.dup_layer, callback);\r\n }\r\n }\r\n\r\n loadImages(sources, callback) {\r\n var images: Konva.Image[] = [];\r\n var loadedImages = 0;\r\n var numImages = 0;\r\n for (var src in sources) {\r\n numImages++;\r\n }\r\n for (var src in sources) {\r\n images[src] = new Konva.Image(sources[src].attrs);\r\n images[src].onload = function () {\r\n if (++loadedImages >= numImages) {\r\n callback(images);\r\n }\r\n };\r\n images[src].src = sources[src].src;\r\n }\r\n }\r\n\r\n buildImages(images) {\r\n for (var i in images) {\r\n var img = new Konva.Image(images[i].attrs);\r\n this.dup_layer.add(img);\r\n }\r\n\r\n // this.dup_stage.add(this.dup_layer);\r\n this.dup_layer.batchDraw();\r\n }\r\n\r\n saveFile(s: string, filename: string) {\r\n var s = this.stage.toJSON(),\r\n filename = 'template.txt';\r\n\r\n const blob = new Blob([s], { type: 'text/plain' });\r\n saveAs(blob, filename);\r\n }\r\n\r\n public import = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n let fileToUpload = files[0];\r\n var reader = new FileReader();\r\n var component = this;\r\n reader.onload = function (evt) {\r\n //if (evt.target.readyState != 2) return;\r\n //if (evt.target.error) {\r\n // alert('Error while reading file');\r\n // return;\r\n //}\r\n\r\n var filecontent = reader.result as string;\r\n var templateBody = JSON.parse(filecontent);\r\n var template = component.cleanUpTemplate(JSON.stringify(templateBody));\r\n component.redrawFromImport(template, component.reorderComponents);\r\n component.showNewTemplate = !component.showNewTemplate;\r\n };\r\n\r\n reader.readAsText(fileToUpload);\r\n\r\n //let fileToUpload = files[0];\r\n //const formData = new FormData();\r\n //formData.append('file', fileToUpload, fileToUpload.name);\r\n }\r\n\r\n redrawFromImport(template?: any, callback?: any) {\r\n this.initTemplate();\r\n this.shapes = [];\r\n this.transformers = [];\r\n this.stage = new Konva.Stage({\r\n container: 'container',\r\n width: this.origWidth,\r\n height: this.origHeight,\r\n //drawBorder: template['attrs']['drawBorder']\r\n });\r\n\r\n this.layer = new Konva.Layer();\r\n this.stage.add(this.layer);\r\n this.addLineListeners();\r\n var images = [];\r\n if (template) {\r\n var templateChildren = [];\r\n templateChildren = template['children'][0]['children'];\r\n var sortedChildren = templateChildren.sort((a, b) => parseInt(this.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(this.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n var childAddedCount = 0;\r\n var imgCount = 0;\r\n var newZIndex = sortedChildren.length - 1;\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var t = sortedChildren[i];\r\n if (t['className'] == 'Text') {\r\n const shape = new Konva.Text(t['attrs']);\r\n //shape.zIndex(childAddedCount);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n //shape.zIndex(newZIndex);\r\n shape.on('transform', function () {\r\n // reset scale, so only with is changing by transformer\r\n shape.setAttrs({\r\n width: shape.width() * shape.scaleX(),\r\n scaleX: 1\r\n });\r\n });\r\n //let tr = new Konva.Transformer({\r\n // node: shape as any,\r\n // enabledAnchors: ['middle-left', 'middle-right'],\r\n // // set minimum width of text\r\n // boundBoxFunc: function (oldBox, newBox) {\r\n // newBox.width = Math.max(30, newBox.width);\r\n // return newBox;\r\n // }\r\n //});\r\n //this.transformers.push(tr);\r\n this.layer.add(shape);\r\n } else if (t['className'] == 'Line') {\r\n const shape = new Konva.Line(t['attrs']);\r\n //shape.zIndex(childAddedCount);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n //shape.setAttr('zLayer', newZIndex);\r\n //shape.zIndex(newZIndex);\r\n this.layer.add(shape);\r\n } else if (t['className'] == 'Rect') {\r\n const shape = new Konva.Rect(t['attrs']);\r\n //shape.zIndex(childAddedCount);\r\n shape.setAttr('zLayer', childAddedCount);\r\n childAddedCount++;\r\n //shape.setAttr('zLayer', newZIndex);\r\n //shape.zIndex(newZIndex);\r\n this.layer.add(shape);\r\n } else if (t['className'] == 'Image' && t['attrs']['src']) {\r\n var attrs = t['attrs'];\r\n var src = t['attrs']['src'];\r\n images.push({ src: src, attrs: attrs, zLayer: childAddedCount });\r\n childAddedCount++;\r\n var component = this;\r\n\r\n var imageObj = new Image()\r\n const image = this.shapeService.image(imageObj, attrs);\r\n imageObj.onload = function () {\r\n //image.image(imageObj);\r\n for (var i in images) {\r\n if (images[i].src == decodeURI(image.attrs.src)) {\r\n ++imgCount;\r\n var x = image.attrs.x === undefined ? 0 : parseInt(image.attrs.x);\r\n var y = image.attrs.y === undefined ? 0 : parseInt(image.attrs.y);\r\n\r\n image.setAttrs(images[i].attrs);\r\n image.x(x);\r\n image.y(y);\r\n image.setAttr('zLayer', images[i].zLayer);\r\n image.zIndex(parseInt(images[i].zLayer));\r\n\r\n image.draggable(true);\r\n //is_background_image = node.attrs.is_background_image;\r\n //component.layer.add(node);\r\n //if (is_background_image) {\r\n // node.zIndex(0);\r\n //}\r\n\r\n component.layer.draw();\r\n }\r\n }\r\n\r\n if (images != null && images.length == imgCount) {\r\n component.layer.batchDraw();\r\n callback(component, component.layer);\r\n }\r\n };\r\n imageObj.src = src;\r\n //this.shapes.push(image);\r\n this.layer.add(image);\r\n //Konva.Image.fromURL(src, function (node) {\r\n // var is_background_image = false;\r\n // for (var i in images) {\r\n // if (images[i].src == decodeURI(node.attrs.image.src)) {\r\n // ++imgCount;\r\n // node.setAttrs(images[i].attrs);\r\n // //node.zIndex(parseInt(images[i].zLayer));\r\n // node.setAttr('zLayer', images[i].zLayer);\r\n // node.zIndex(images[i].zLayer);\r\n // //is_background_image = node.attrs.is_background_image;\r\n // component.layer.add(node);\r\n // //if (is_background_image) {\r\n // // node.zIndex(0);\r\n // //}\r\n\r\n // //component.layer.draw();\r\n // }\r\n // }\r\n\r\n // if (images != null && images.length == imgCount) {\r\n // component.layer.batchDraw();\r\n // callback(component, component.layer);\r\n // }\r\n\r\n //});\r\n }\r\n\r\n this.stage.add(this.layer);\r\n //this.layer.draw();\r\n this.addTransformerListeners();\r\n }\r\n\r\n if (!images || images == null || images.length == 0) {\r\n this.layer.batchDraw();\r\n callback(this, this.layer);\r\n }\r\n }\r\n }\r\n\r\n reorderComponents(component, layer, callback?: any) {\r\n var sortedChildren = layer.children.sort((a, b) => parseInt(component.safeGet(a['attrs'], 'zLayer', Number.MAX_VALUE)) - parseInt(component.safeGet(b['attrs'], 'zLayer', Number.MAX_VALUE)));\r\n\r\n for (var i = 0; i < sortedChildren.length; i++) {\r\n var shape = sortedChildren[i];\r\n var index = parseInt(sortedChildren[i].getAttr('zLayer'));\r\n shape.zIndex(index);\r\n shape.setZIndex(index);\r\n\r\n }\r\n layer.batchDraw();\r\n if (callback) {\r\n callback(component);\r\n }\r\n }\r\n\r\n safeGet(obj, prop, defaultValue) {\r\n try {\r\n return obj[prop] != null && obj[prop] !== undefined ? obj[prop] : defaultValue;\r\n } catch (e) {\r\n return defaultValue\r\n }\r\n }\r\n\r\n preview(): void {\r\n var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n this.editedTemplate.isPostToDevice = false;\r\n //this.editedTemplate.deviceAPIUrl = 'http://183.90.63.88:3000/template'\r\n //this.editedTemplate.deviceAPIUrl = \"http://119.73.206.36:91/api/registration/GetRegistrationsByLocationCode\";\r\n this.alertService.startLoadingMessage(\"Generating preview...\");\r\n this.pibService.mapTemplate(this.editedTemplate)\r\n .subscribe(res => {\r\n this.alertService.stopLoadingMessage();\r\n if (!res.isSuccess) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting your template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n return;\r\n }\r\n //var component = this;\r\n this.redrawFromJson(res.data, function (component) {\r\n // clone original layer, and disable all events on it\r\n // we will use \"let\" here, because we can redefine layer later\r\n component.preview_stage = new Konva.Stage({\r\n container: 'preview-container',\r\n width: component.origWidth / 2,\r\n height: component.origHeight / 2,\r\n scaleX: 1 / 2,\r\n scaleY: 1 / 2,\r\n //offsetWidth: .3,\r\n //offsetHeight: .3\r\n });\r\n\r\n component.preview_layer = component.dup_layer.clone({ hitGraphEnabled: false });\r\n component.preview_stage.add(component.preview_layer);\r\n component.preview_layer.batchDraw();\r\n component.is_preview = true;\r\n });\r\n\r\n\r\n\r\n this.imgSrc = this.dup_stage.toDataURL();\r\n //var curi = this.dup_stage.toCanvas({}).toDataURL();\r\n //console.log(curi);\r\n\r\n //const dialogRef = this.dialog.open(TemplateEditorPreviewDialog, {\r\n // width: '100%',\r\n // //minHeight: 'calc(100vh - 90px)',\r\n // height: 'auto',\r\n // //position: { left: '5vw' };\r\n // data: { origHeight: this.origHeight, origWidth: this.origWidth, layer: this.layer, template: res.data, imgSrc: this.imgSrc}\r\n //});\r\n\r\n //dialogRef.afterClosed().subscribe(result => {\r\n //});\r\n }\r\n , error => function (error) {\r\n this.alertService.stopLoadingMessage();\r\n console.log(error);\r\n });\r\n }\r\n\r\n previewFromImage(isPostToDevice: boolean): void {\r\n var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n this.editedTemplate.isPostToDevice = isPostToDevice;\r\n if (!isPostToDevice) {\r\n this.alertService.startLoadingMessage(\"Generating preview...\");\r\n }\r\n else {\r\n this.alertService.startLoadingMessage(\"Posting template to device...\");\r\n }\r\n this.pibService.previewFromImage(this.editedTemplate)\r\n .subscribe(res => {\r\n this.alertService.stopLoadingMessage();\r\n if (!res.isSuccess) {\r\n if (!isPostToDevice) {\r\n this.alertService.showStickyMessage(\"Post Error\", \"The below errors occured while posting the template to the device:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n } else {\r\n this.alertService.showStickyMessage(\"Generation Error\", \"The below errors occured while generating the template:\" + \"\\n\" + res.message, MessageSeverity.error);\r\n }\r\n return;\r\n }\r\n if (!isPostToDevice) {\r\n this.is_preview = !isPostToDevice;\r\n //console.log(res.data);\r\n this.previewImgUri = this.domSanitizer.bypassSecurityTrustUrl('data:image/png;base64, ' + res.data);\r\n }\r\n }\r\n , error => function (error) {\r\n this.alertService.stopLoadingMessage();\r\n console.log(error);\r\n });\r\n }\r\n\r\n updatePreview() {\r\n //// we just need to update ALL nodes in the preview\r\n //this.layer.children.forEach(shape => {\r\n // // find cloned node\r\n // const clone = previewLayer.findOne('.' + shape.name());\r\n // // update its position from the original\r\n // clone.position(shape.position());\r\n //});\r\n //this.dup_layer.batchDraw();\r\n }\r\n\r\n\r\n cleanUpTemplate(json: string) {\r\n var template = JSON.parse(json);\r\n var children = template['children'][0]['children'];\r\n var newChildren = []\r\n for (var i = 0; i < children.length; i++) {\r\n if ((children[i]['className'] !== 'Line') && (!children[i]['attrs'] || children[i]['attrs']['zLayer'] === undefined)) {\r\n continue;\r\n } else {\r\n newChildren.push(children[i]);\r\n }\r\n }\r\n template['children'][0]['children'] = newChildren;\r\n return template;\r\n }\r\n\r\n saveTemplate() {\r\n //var template = new PIBTemplate();\r\n var cleanTemplate = this.cleanUpTemplate(this.stage.toJSON());\r\n this.editedTemplate.templateBody = JSON.stringify(cleanTemplate);\r\n const dialogRef = this.dialog.open(TemplateSaveDialogPreviewDialog, {\r\n width: '500px',\r\n data: { template: this.editedTemplate}\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (!result || !result.isCancel) {\r\n this.showNewTemplate = !this.showNewTemplate;\r\n //this.loadListData();\r\n this.editedTemplate = new PIBTemplate();\r\n this.ngOnInit();\r\n }\r\n });\r\n }\r\n\r\n\r\n //List\r\n initListTable() {\r\n let gT = (key: string) => this.translationService.getTranslation(key);\r\n\r\n this.columns = [\r\n { prop: \"index\", name: '#', width: 50, cellTemplate: this.indexTemplate, canAutoResize: false },\r\n { prop: 'name', name: gT('templates.management.Name') },\r\n { prop: 'description', name: gT('templates.management.Description') },\r\n { name: '', width: 150, cellTemplate: this.actionsTemplate, resizeable: false, canAutoResize: false, sortable: false, draggable: false }\r\n ];\r\n\r\n this.loadListData();\r\n }\r\n\r\n loadListData() {\r\n this.alertService.startLoadingMessage();\r\n this.loadingIndicator = true;\r\n\r\n this.pibService.getTemplates()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n let templates = results[0];\r\n\r\n templates.forEach((template, index, institutions) => {\r\n (template).index = index + 1;\r\n });\r\n\r\n\r\n this.rowsCache = [...templates];\r\n this.rows = templates;\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve templates from the server.\\r\\n\"`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n backToList() {\r\n this.showNewTemplate = !this.showNewTemplate;\r\n this.initListTable();\r\n this.editedTemplate = new PIBTemplate();\r\n }\r\n\r\n newTemplate() {\r\n this.initTemplate();\r\n //this.getLocations();\r\n this.getRestrictionTypes();\r\n this.editedTemplate = new PIBTemplate();\r\n this.showNewTemplate = !this.showNewTemplate;\r\n }\r\n\r\n editTemplate(row: PIBTemplate) {\r\n\r\n this.editedTemplate = row;\r\n //var template = JSON.parse(row.templateBody);\r\n var template = this.cleanUpTemplate(row.templateBody)\r\n this.redrawFromImport(template, this.reorderComponents);\r\n this.getRestrictionTypes();\r\n //this.getLocations();\r\n this.showNewTemplate = !this.showNewTemplate;\r\n }\r\n\r\n deleteTemplate(row: PIBTemplate) {\r\n this.alertService.showDialog('Are you sure you want to delete the \\\"' + row.name + '\\\" template?', DialogType.confirm, () => this.deleteDepartmentHelper(row));\r\n }\r\n\r\n\r\n deleteDepartmentHelper(row: PIBTemplate) {\r\n\r\n this.alertService.startLoadingMessage(\"Deleting...\");\r\n this.loadingIndicator = true;\r\n\r\n this.pibService.deleteTemplate(row)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.rowsCache = this.rowsCache.filter(item => item !== row)\r\n this.rows = this.rows.filter(item => item !== row)\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Delete Error\", `An error occured while deleting the template.`,\r\n MessageSeverity.error);\r\n });\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n this.rows = this.rowsCache.filter(r => Utilities.searchArray(value, false, r.name, r.description));\r\n }\r\n\r\n get canManageTemplates() {\r\n return this.accountService.userHasPermission(Permission.managePIBTemplatesPermission)\r\n }\r\n}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: \\\"Avenir Bold\\\";\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: \\\"Avenir\\\";\\r\\n}\\r\\n\\r\\n.tit {\\r\\n font: 400 1rem 'Roboto', sans-serif;\\r\\n text-transform: uppercase;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.top {\\r\\n position: fixed;\\r\\n top: 0;\\r\\n z-index: 999;\\r\\n background-color: #fff;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.slide {\\r\\n list-style-type: none;\\r\\n padding: 0;\\r\\n width: 1080px;\\r\\n height: 280px;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.slide__item {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.item {\\r\\n position: relative;\\r\\n padding: 0 !important;\\r\\n height: 280px !important;\\r\\n background-repeat: no-repeat !important;\\r\\n background-size: cover !important;\\r\\n}\\r\\n\\r\\n.slide-caption {\\r\\n visibility: hidden;\\r\\n position: relative;\\r\\n top: 70%;\\r\\n left: 0%;\\r\\n text-align: left;\\r\\n font-family: 'Roboto';\\r\\n margin: 0;\\r\\n background-color: rgba(224, 11, 86, 0.75);\\r\\n height: 30% !important;\\r\\n width: 100% !important;\\r\\n padding: 10px !important;\\r\\n}\\r\\n\\r\\n.slide-date {\\r\\n visibility: hidden;\\r\\n position: relative;\\r\\n top: -25%;\\r\\n left: 75%;\\r\\n text-align: center;\\r\\n font-family: 'Roboto';\\r\\n margin: 0;\\r\\n background-color: rgba(224, 11, 86, 0.75);\\r\\n height: 27% !important;\\r\\n width: 25% !important;\\r\\n padding: 10px !important;\\r\\n}\\r\\n\\r\\n.slide-date-txt {\\r\\n font-size: 28px;\\r\\n font-weight: 900;\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n color: white;\\r\\n font-family: Avenir;\\r\\n}\\r\\n\\r\\n.slide-month {\\r\\n font-size: 14px;\\r\\n font-weight: 900;\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n text-transform: uppercase;\\r\\n color: white;\\r\\n font-family: Avenir;\\r\\n}\\r\\n\\r\\n.slide-caption__title {\\r\\n font-size: 14px;\\r\\n font-weight: 900;\\r\\n margin-bottom: 0;\\r\\n margin-top: 0;\\r\\n text-transform: uppercase;\\r\\n color: white;\\r\\n font-family: Avenir;\\r\\n}\\r\\n\\r\\n.owl-item.active.center .slide-caption {\\r\\n visibility: visible;\\r\\n -webkit-animation: 1s .2s fadeInUp both;\\r\\n animation: 1s .2s fadeInUp both;\\r\\n}\\r\\n\\r\\n.owl-item.active.center .slide-date {\\r\\n visibility: visible;\\r\\n}\\r\\n\\r\\n.owl-item.active.center .slide-caption__title {\\r\\n -webkit-animation: 1s .2s fadeInUp both;\\r\\n animation: 1s .2s fadeInUp both;\\r\\n}\\r\\n\\r\\n.owl-item.active.center .slide-caption__desc {\\r\\n -webkit-animation: 1s .6s fadeInUp both;\\r\\n animation: 1s .6s fadeInUp both;\\r\\n}\\r\\n\\r\\n.owl-item.active.center .btn {\\r\\n -webkit-animation: 1s .9s flipInX both;\\r\\n animation: 1s .9s flipInX both;\\r\\n}\\r\\n\\r\\n.owl-item.active .slide-caption {\\r\\n visibility: visible;\\r\\n}\\r\\n\\r\\n.owl-item.active .slide-date {\\r\\n visibility: visible;\\r\\n}\\r\\n\\r\\n.slide-caption__desc {\\r\\n font-size: 12px;\\r\\n font-weight: 300;\\r\\n margin-top: 0;\\r\\n color: white;\\r\\n margin-bottom: 0;\\r\\n font-family: Avenir;\\r\\n}\\r\\n\\r\\n.btn {\\r\\n font-size: 16px;\\r\\n font-weight: 300;\\r\\n border: 2px solid #fff;\\r\\n color: #fff;\\r\\n padding: .6rem 2rem;\\r\\n display: inline-block;\\r\\n text-decoration: none;\\r\\n margin-top: .5rem;\\r\\n}\\r\\n\\r\\n.map {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.dirLabel {\\r\\n line-height: 2em;\\r\\n padding: 0.2em 0.5em;\\r\\n border-top: 1px solid rgba(34,36,38,.15);\\r\\n}\\r\\n\\r\\n/*@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar {\\r\\n display: none;\\r\\n}\\r\\n\\r\\niframe {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: \\\"Avenir Bold\\\";\\r\\n src: url(\\\"Avenir-Bold.ttf\\\")*/\\r\\n\\r\\n/* TTF file for CSS3 browsers */\\r\\n\\r\\n/*}\\r\\n\\r\\n@font-face {\\r\\n font-family: \\\"Avenir\\\";\\r\\n src: url(\\\"Avenir-Regular.ttf\\\")*/\\r\\n\\r\\n/* TTF file for CSS3 browsers */\\r\\n\\r\\n/*}\\r\\n\\r\\n#overlap {\\r\\n position: absolute;\\r\\n visibility: hidden;\\r\\n top: 0px;\\r\\n left: 0px;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n width: 1080px;\\r\\n height: 1920px;\\r\\n}*/\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy93YXlmaW5kZXItbGFuZHNjYXBlLXZpZXcvd2F5ZmluZGVyLWxhbmRzY2FwZS12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0lBQ0ksa0JBQWtCO0FBQ3RCOztBQUVBO0lBQ0ksU0FBUztBQUNiOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLGdCQUFnQjtBQUNwQjs7QUFFQTtFQUNFLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLG1DQUFtQztFQUNuQyx5QkFBeUI7RUFDekIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLE1BQU07RUFDTixZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLFdBQVc7QUFDYjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQixVQUFVO0VBQ1YsYUFBYTtFQUNiLGFBQWE7RUFDYixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLHdCQUF3QjtFQUN4Qix1Q0FBdUM7RUFDdkMsaUNBQWlDO0FBQ25DOztBQUdBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsUUFBUTtFQUNSLGdCQUFnQjtFQUNoQixxQkFBcUI7RUFDckIsU0FBUztFQUNULHlDQUF5QztFQUN6QyxzQkFBc0I7RUFDdEIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsU0FBUztFQUNULFNBQVM7RUFDVCxrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLFNBQVM7RUFDVCx5Q0FBeUM7RUFDekMsc0JBQXNCO0VBQ3RCLHFCQUFxQjtFQUNyQix3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjs7QUFJQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYix5QkFBeUI7RUFDekIsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQix1Q0FBdUM7RUFDdkMsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsdUNBQXVDO0VBQ3ZDLCtCQUErQjtBQUNqQzs7QUFFQTtFQUNFLHVDQUF1QztFQUN2QywrQkFBK0I7QUFDakM7O0FBRUE7RUFDRSxzQ0FBc0M7RUFDdEMsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsd0NBQXdDO0FBQzFDOztBQUlBOzs7Ozs7Ozs7Ozs7Ozs7OzhCQWdCOEI7O0FBQUUsK0JBQStCOztBQUMvRDs7OztpQ0FJaUM7O0FBQUUsK0JBQStCOztBQUNsRTs7Ozs7Ozs7Ozs7RUFXRSIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvd2F5ZmluZGVyLWxhbmRzY2FwZS12aWV3L3dheWZpbmRlci1sYW5kc2NhcGUtdmlldy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5jb250cm9sLWJveCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3gge1xyXG4gICAgbWFyZ2luOiAwIDUwcHggMCAwO1xyXG4gICAgbWluLWhlaWdodDogMDtcclxufVxyXG5cclxuLmFjdGlvbi1ib3ggLnRvb2xiYXJpdGVtIGEge1xyXG4gICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XHJcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogXCJBdmVuaXIgQm9sZFwiO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogXCJBdmVuaXJcIjtcclxufVxyXG5cclxuLnRpdCB7XHJcbiAgZm9udDogNDAwIDFyZW0gJ1JvYm90bycsIHNhbnMtc2VyaWY7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi50b3Age1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgei1pbmRleDogOTk5O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5zbGlkZSB7XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgd2lkdGg6IDEwODBweDtcclxuICBoZWlnaHQ6IDI4MHB4O1xyXG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2xpZGVfX2l0ZW0ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLml0ZW0ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiAyODBweCAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4uc2xpZGUtY2FwdGlvbiB7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0b3A6IDcwJTtcclxuICBsZWZ0OiAwJTtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcclxuICBtYXJnaW46IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjQsIDExLCA4NiwgMC43NSk7XHJcbiAgaGVpZ2h0OiAzMCUgIWltcG9ydGFudDtcclxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnNsaWRlLWRhdGUge1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdG9wOiAtMjUlO1xyXG4gIGxlZnQ6IDc1JTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xyXG4gIG1hcmdpbjogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNCwgMTEsIDg2LCAwLjc1KTtcclxuICBoZWlnaHQ6IDI3JSAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcclxuICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zbGlkZS1kYXRlLXR4dCB7XHJcbiAgZm9udC1zaXplOiAyOHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LWZhbWlseTogQXZlbmlyO1xyXG59XHJcblxyXG4uc2xpZGUtbW9udGgge1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBmb250LXdlaWdodDogOTAwO1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LWZhbWlseTogQXZlbmlyO1xyXG59XHJcblxyXG5cclxuXHJcbi5zbGlkZS1jYXB0aW9uX190aXRsZSB7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtZmFtaWx5OiBBdmVuaXI7XHJcbn1cclxuXHJcbi5vd2wtaXRlbS5hY3RpdmUuY2VudGVyIC5zbGlkZS1jYXB0aW9uIHtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiAxcyAuMnMgZmFkZUluVXAgYm90aDtcclxuICBhbmltYXRpb246IDFzIC4ycyBmYWRlSW5VcCBib3RoO1xyXG59XHJcblxyXG4ub3dsLWl0ZW0uYWN0aXZlLmNlbnRlciAuc2xpZGUtZGF0ZSB7XHJcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxufVxyXG5cclxuLm93bC1pdGVtLmFjdGl2ZS5jZW50ZXIgLnNsaWRlLWNhcHRpb25fX3RpdGxlIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogMXMgLjJzIGZhZGVJblVwIGJvdGg7XHJcbiAgYW5pbWF0aW9uOiAxcyAuMnMgZmFkZUluVXAgYm90aDtcclxufVxyXG5cclxuLm93bC1pdGVtLmFjdGl2ZS5jZW50ZXIgLnNsaWRlLWNhcHRpb25fX2Rlc2Mge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiAxcyAuNnMgZmFkZUluVXAgYm90aDtcclxuICBhbmltYXRpb246IDFzIC42cyBmYWRlSW5VcCBib3RoO1xyXG59XHJcblxyXG4ub3dsLWl0ZW0uYWN0aXZlLmNlbnRlciAuYnRuIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogMXMgLjlzIGZsaXBJblggYm90aDtcclxuICBhbmltYXRpb246IDFzIC45cyBmbGlwSW5YIGJvdGg7XHJcbn1cclxuXHJcbi5vd2wtaXRlbS5hY3RpdmUgLnNsaWRlLWNhcHRpb24ge1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbn1cclxuXHJcbi5vd2wtaXRlbS5hY3RpdmUgLnNsaWRlLWRhdGUge1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbn1cclxuXHJcbi5zbGlkZS1jYXB0aW9uX19kZXNjIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIGZvbnQtZmFtaWx5OiBBdmVuaXI7XHJcbn1cclxuXHJcbi5idG4ge1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgcGFkZGluZzogLjZyZW0gMnJlbTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIG1hcmdpbi10b3A6IC41cmVtO1xyXG59XHJcblxyXG4ubWFwIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5kaXJMYWJlbCB7XHJcbiAgbGluZS1oZWlnaHQ6IDJlbTtcclxuICBwYWRkaW5nOiAwLjJlbSAwLjVlbTtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwzNiwzOCwuMTUpO1xyXG59XHJcblxyXG5cclxuXHJcbi8qQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuYWN0aW9uLWJveCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIDE0cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbmlmcmFtZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBCb2xkXCI7XHJcbiAgc3JjOiB1cmwoXCJBdmVuaXItQm9sZC50dGZcIikqLyAvKiBUVEYgZmlsZSBmb3IgQ1NTMyBicm93c2VycyAqL1xyXG4vKn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBcIkF2ZW5pclwiO1xyXG4gIHNyYzogdXJsKFwiQXZlbmlyLVJlZ3VsYXIudHRmXCIpKi8gLyogVFRGIGZpbGUgZm9yIENTUzMgYnJvd3NlcnMgKi9cclxuLyp9XHJcblxyXG4jb3ZlcmxhcCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB0b3A6IDBweDtcclxuICBsZWZ0OiAwcHg7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgd2lkdGg6IDEwODBweDtcclxuICBoZWlnaHQ6IDE5MjBweDtcclxufSovXHJcbiJdfQ== */\"","module.exports = \"
    \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    {{p.mapInfo.floorLabel}} Floor

    \\r\\n

    {{p.label}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\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\\\" (click)=\\\"next(mapIndex - 1)\\\" style=\\\"padding-bottom:5px\\\">\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    \\r\\n Route Options\\r\\n

    \\r\\n
    \\r\\n \\r\\n

    Destination : {{to.label}}

    \\r\\n
    \\r\\n Wheelchair Friendly\\r\\n Sheltered\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\nimport \"ol/ol.css\";\r\nimport Text from \"ol/Style/Text\";\r\nimport ImageLayer from \"ol/layer/Image\";\r\nimport Map from \"ol/Map\";\r\nimport Projection from \"ol/proj/Projection\";\r\nimport Static from \"ol/source/ImageStatic\";\r\nimport Path from \"ol-ext/featureAnimation/Path\";\r\nimport View from \"ol/View\";\r\nimport RegularShape from 'ol/style/RegularShape';\r\nimport { getCenter } from \"ol/extent\";\r\nimport VectorSource from \"ol/source/Vector\";\r\nimport { Vector as VectorLayer } from \"ol/layer\";\r\nimport Feature from \"ol/Feature\";\r\nimport LineString from \"ol/geom/LineString\";\r\nimport { Circle, Style, Icon } from \"ol/style\";\r\nimport Stroke from \"ol/style/Stroke\";\r\nimport Fill from \"ol/style/Fill\";\r\nimport Point from \"ol/geom/Point\";\r\n\r\nimport { MapService } from 'src/app/services/map.service';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { BuildingService } from 'src/app/services/building.service';\r\nimport { DirectoryListingService } from 'src/app/services/directory-listing.service';\r\nimport { DirectoryListingCategoryService } from 'src/app/services/directory-listing-category.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\n\r\nimport { KioskSettingsService } from 'src/app/services/kiosk-settings.service';\r\nimport { KioskSettings } from 'src/app/models/kiosk-settings.model';\r\nimport { Playlist } from '../../models/playlist.model';\r\nimport { PlaylistService } from 'src/app/services/playlist.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { PointModel } from '../../models/point.model';\r\nimport { KeyValue } from '@angular/common';\r\n\r\ninterface floorPair {\r\n [key: number]: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: \"wayfinder-landscape-view\",\r\n templateUrl: \"./wayfinder-landscape-view.component.html\",\r\n styleUrls: [\"./wayfinder-landscape-view.component.css\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class WayfinderLandscapeComponent implements OnInit, OnDestroy {\r\n floors: any;\r\n //currentFloor: any;\r\n server_url: any;\r\n directorys: any;\r\n from: any;\r\n to: any;\r\n paths: any;\r\n maps: any[];\r\n mapMap: {};\r\n currentMap: any;\r\n vectorSource: any;\r\n interval: any;\r\n mapIndex: number;\r\n searchList: any;\r\n selectedCat: any;\r\n selectedLvl: any;\r\n\r\n map: Map;\r\n mode = 0;\r\n searchModel: string;\r\n wheelchair = false;\r\n mapMode: boolean;\r\n userData: any;\r\n defaultFrom: { id: any; };\r\n loadingIndicator: boolean;\r\n private subscription: Subscription = new Subscription();\r\n\r\n setting: KioskSettings;\r\n topBanner: Playlist;\r\n bottomBanner: Playlist;\r\n screenSaver: Playlist;\r\n topSlides = [];\r\n bottomSlides = [];\r\n screenSaverSlides = [];\r\n eventSlideSel = [];\r\n selectedEvent: string;\r\n eventSlides = [];\r\n\r\n active = true;\r\n\r\n dir_cats: any;\r\n\r\n floorPairs: floorPair = {};\r\n\r\n homeIcon = require(\"../../assets/images/home1.jpg\");\r\n wheelIcon = require(\"../../assets/images/wheelchair1.jpg\");\r\n hereIcon = require(\"../../assets/images/pin.png\");\r\n\r\n defMap: any;\r\n\r\n dirload = false;\r\n\r\n point_id: string;\r\n\r\n startPoint: any;\r\n\r\n customOptions: OwlOptions = {\r\n loop: true,\r\n mouseDrag: false,\r\n touchDrag: false,\r\n pullDrag: false,\r\n dots: false,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n nav: false,\r\n animateOut: 'fadeOut',\r\n autoplay: true,\r\n autoplayTimeout: 5000,\r\n items: 1\r\n }\r\n\r\n eventOptions: OwlOptions = {\r\n loop: true,\r\n mouseDrag: false,\r\n touchDrag: false,\r\n pullDrag: false,\r\n dots: false,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n nav: false,\r\n animateOut: 'fadeOut',\r\n //autoplay: true,\r\n //autoplayTimeout: 5000,\r\n center: true,\r\n margin: 10,\r\n items: 3.5\r\n }\r\n pause: any;\r\n vectorLayer: any;\r\n up: boolean;\r\n down: boolean;\r\n showRouteOption: boolean;\r\n sheltered: boolean;\r\n arrowImageWidth: number;\r\n arrowImageHeight: number;\r\n\r\n constructor(\r\n //private navCtrl: NavController,\r\n //private dataS: DataService,\r\n //private http: HTTP,\r\n private chRef: ChangeDetectorRef,\r\n //private storage: Storage,\r\n private mapService: MapService,\r\n private alertService: AlertService,\r\n private buildingService: BuildingService,\r\n private directoryListingService: DirectoryListingService,\r\n private directoryListingCategoryService: DirectoryListingCategoryService,\r\n private kioskSettingsService: KioskSettingsService,\r\n private playlistService: PlaylistService,\r\n private fileService: FileService,\r\n private sanitizer: DomSanitizer,\r\n private route: ActivatedRoute) {\r\n\r\n this.route.params.subscribe(queryParams => {\r\n this.point_id = queryParams[\"point_id\"];\r\n });\r\n\r\n if (!this.point_id) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.point_id = queryParams[\"point_id\"];\r\n });\r\n }\r\n\r\n if (this.point_id) this.getDefPoint(this.point_id);\r\n\r\n }\r\n\r\n async ngOnInit() {\r\n //alert(\"1\");\r\n window.onerror = function (message, file, line, col, error) {\r\n //alert(\"Error occurred: \" + error.message);\r\n return false;\r\n };\r\n window.addEventListener(\"error\", function (e) {\r\n //alert(\"Error occurred: \" + e.error.message);\r\n return false;\r\n });\r\n\r\n window.addEventListener(\"unhandledrejection\", function (e) {\r\n //alert(\"Error occurred: \" + e.reason.message);\r\n });\r\n\r\n this.loadData();\r\n\r\n await this.getDirectory();\r\n\r\n if (this.point_id) {\r\n var intpoint: number = parseInt(this.point_id)\r\n //await this.getDefPoint(intpoint);\r\n }\r\n\r\n await this.getFloors();\r\n\r\n await this.getDirectoryCategories();\r\n\r\n\r\n\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n async getDefPoint(point_id) {\r\n console.log(\"PP\", point_id);\r\n\r\n this.subscription.add(this.mapService.getPointById(point_id)\r\n .subscribe(results => {\r\n //this.alertService.stopLoadingMessage();\r\n //this.loadingIndicator = false;\r\n\r\n //console.log(results)\r\n\r\n console.log(\"def point res: \", results)\r\n\r\n this.startPoint = results;\r\n\r\n this.subscription.add(this.mapService.getMapById(this.startPoint.mapId).subscribe(resultsMap => {\r\n this.currentMap = resultsMap;\r\n this.defMap = this.currentMap;\r\n console.log(\"maps: \", this.currentMap)\r\n this.initMap();\r\n }));\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n\r\n }\r\n\r\n async getFloors() {\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.buildingService.getBuildings()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //console.log(results)\r\n\r\n let buildings = results[0];\r\n\r\n for (let b of buildings) {\r\n if (b.floors && b.floors.filter((f) => f.map).length > 0) {\r\n this.floors = b.floors.filter((f) => f.map);\r\n\r\n if (!this.currentMap) this.currentMap = this.floors[0].map;\r\n if (!this.defMap) this.defMap = this.currentMap;\r\n\r\n console.log(\"floors: \", this.floors)\r\n this.initMap();\r\n break;\r\n }\r\n }\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n async getDirectoryCategories() {\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.directoryListingCategoryService.getDirectoryListingCategorys()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n console.log(\"categories: \", results)\r\n\r\n this.dir_cats = results[0];\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n async getDirectory() {\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.directoryListingService.getDirectoryListingsExcInt()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //console.log(results)\r\n\r\n this.directorys = results[0];\r\n\r\n for (let d of this.directorys) {\r\n if (d.floorId != null && !this.floorPairs[d.floorId]) {\r\n this.floorPairs[d.floorId] = d.floorLabel;\r\n }\r\n }\r\n\r\n console.log(\"list of used floor: \", this.floorPairs)\r\n\r\n this.directorys = this.directorys.sort((a, b) => {\r\n let r = a.directoryListingCategoryLabel.localeCompare(\r\n b.directoryListingCategoryLabel\r\n );\r\n\r\n if (r != 0) return r;\r\n\r\n return a.label.localeCompare(b.label);\r\n });\r\n\r\n this.searchList = this.directorys;\r\n\r\n console.log(\"first directory: \", this.searchList)\r\n\r\n this.chRef.detectChanges();\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n initMap() {\r\n console.log(\"init map, currentMap: \", this.currentMap)\r\n if (this.currentMap == null || this.currentMap.map_url == null) return;\r\n\r\n var extent = [0, 0, this.currentMap.width, this.currentMap.height];\r\n var projection = new Projection({\r\n code: \"xkcd-image\",\r\n units: \"pixels\",\r\n extent: extent,\r\n });\r\n\r\n console.log(\"after projection\");\r\n\r\n let fullUrl = \"/\" + this.currentMap.map_url;\r\n\r\n console.log(\"url map image: \", fullUrl)\r\n\r\n let source = new Static({\r\n url: fullUrl,\r\n projection: projection,\r\n imageExtent: extent,\r\n });\r\n\r\n this.vectorSource = new VectorSource();\r\n\r\n if (this.map) {\r\n let l = this.map.getLayers().getArray()[0];\r\n l.setSource(source);\r\n\r\n let v = this.map.getLayers().getArray()[1];\r\n v.setSource(this.vectorSource);\r\n } else {\r\n this.vectorLayer = new VectorLayer({\r\n source: this.vectorSource,\r\n });\r\n\r\n this.map = new Map({\r\n layers: [\r\n new ImageLayer({\r\n source: source,\r\n }),\r\n this.vectorLayer,\r\n ],\r\n target: \"map\",\r\n view: new View({\r\n projection: projection,\r\n //center: getCenter(extent),\r\n zoom: this.setting.zoom_level || 2,\r\n maxZoom: 8,\r\n }),\r\n });\r\n\r\n console.log(\"end initmap\")\r\n\r\n const waitForMap = setInterval(function () {\r\n if (document.querySelectorAll(\".ol-viewport\").length) {\r\n console.log(\"Exists!\");\r\n window.dispatchEvent(new Event(\"resize\"));\r\n clearInterval(waitForMap);\r\n }\r\n }, 100);\r\n }\r\n\r\n //this.map.on('postrender', (event) => {\r\n \r\n //});\r\n\r\n if (this.currentMap && this.currentMap.paths && this.currentMap.paths[0]) {\r\n this.createLine();\r\n\r\n //setTimeout(() => { if (!this.pause) this.next(this.mapIndex + 1) }, (this.setting.floor_interval || 6) * 1000);\r\n }\r\n\r\n if (this.startPoint.mapId == this.currentMap.id) {\r\n const tt = this;\r\n\r\n if (this.setting.arrow_image) {\r\n const img = new Image();\r\n img.onload = function () {\r\n tt.createHereIcon(img.width, img.height);\r\n }\r\n img.src = this.setting.baloon_image;\r\n }\r\n\r\n if (this.setting.arrow_image) {\r\n const imgArrow = new Image();\r\n imgArrow.onload = function () {\r\n tt.arrowImageWidth = imgArrow.width;\r\n tt.arrowImageHeight = imgArrow.height;\r\n }\r\n imgArrow.src = this.setting.arrow_image;\r\n }\r\n\r\n this.map.getView().setCenter(getCenter(extent));\r\n }\r\n }\r\n\r\n createHereIcon(width, height) {\r\n const iconFeature = new Feature({\r\n geometry: new Point([this.startPoint.x, this.startPoint.y]),\r\n name: 'You Are Here',\r\n });\r\n\r\n const iconStyle = new Style({\r\n image: new Icon({\r\n //anchor: [this.setting.anchor_h, this.setting.anchor_v],\r\n //anchorXUnits: 'pixels',\r\n //anchorYUnits: 'pixels',\r\n anchor: [0.5, 1],\r\n size: [width, height],\r\n src: this.setting.baloon_image,\r\n scale: this.setting.baloon_width / width,\r\n }),\r\n });\r\n\r\n\r\n\r\n console.log(\"create iconsss\", width, height, this.setting.baloon_width / width)\r\n\r\n iconFeature.setStyle(iconStyle);\r\n\r\n this.vectorSource.addFeature(iconFeature);\r\n }\r\n\r\n animationEnd(e?) {\r\n if (this.maps.length > this.mapIndex + 1 && this.currentMap.floorOrder !== null && this.maps[this.mapIndex + 1].floorOrder !== null) {\r\n if (this.currentMap.floorOrder < this.maps[this.mapIndex + 1].floorOrder) this.up = true;\r\n if (this.currentMap.floorOrder > this.maps[this.mapIndex + 1].floorOrder) this.down = true;\r\n }\r\n\r\n setTimeout(() => {\r\n this.up = false;\r\n this.down = false;\r\n\r\n if (e && e.feature) this.vectorSource.removeFeature(e.feature);\r\n if (!this.pause) this.next(this.mapIndex + 1)\r\n }, this.setting.floor_interval || (this.up || this.down || !this.maps[this.mapIndex + 1] ? 3000 : 500));\r\n }\r\n\r\n createLine() {\r\n if (!this.currentMap || !this.currentMap.paths || !this.currentMap.paths[0]) return;\r\n\r\n\r\n\r\n var points = new Array();\r\n for (let p of this.currentMap.paths) {\r\n let coord = [p.x, p.y];\r\n points.push(coord);\r\n }\r\n\r\n var featureLine = new Feature({\r\n geometry: new LineString(points),\r\n dashOffset: 0,\r\n });\r\n\r\n var outlineStroke = new Style({\r\n stroke: new Stroke({\r\n color: this.setting.line_color || 'blue', //[25, 25, 255, 1],\r\n width: 9,\r\n }),\r\n });\r\n\r\n // use style caching in production\r\n function getAnimationStrokeStyle() {\r\n return new Style({\r\n stroke: new Stroke({\r\n color: 'red', //[204, 204, 255, 1],\r\n width: 5,\r\n //lineDash: [2, 7],\r\n //lineDashOffset: featureLine.get(\"dashOffset\"),\r\n }),\r\n });\r\n }\r\n\r\n function getStyle() {\r\n return [outlineStroke, getAnimationStrokeStyle()];\r\n }\r\n\r\n featureLine.setStyle(outlineStroke);\r\n\r\n this.vectorSource.addFeature(featureLine);\r\n\r\n //this.interval = setInterval(function () {\r\n // let offset = featureLine.get(\"dashOffset\");\r\n // offset = offset == 0 ? 8 : offset - 1;\r\n // featureLine.set(\"dashOffset\", offset);\r\n //}, 100);\r\n var anim = new Path({\r\n path: featureLine.getGeometry(),\r\n rotate: true,\r\n //easing: ol.easing[$(\"#easing\").val()],\r\n speed: this.setting.arrow_speed || 0.5,\r\n //revers: $(\"#revers\").prop('checked')\r\n });\r\n\r\n var triangle = new RegularShape({\r\n radius: 14,\r\n points: 3,\r\n fill: new Fill({ color: this.setting.arrow_color || 'red' }),\r\n stroke: new Stroke({ color: '#fff', width: 2 })\r\n });\r\n\r\n let movingIcon = this.setting.arrow_image ? new Icon({\r\n //anchor: [this.setting.anchor_h, this.setting.anchor_v],\r\n //anchorXUnits: 'pixels',\r\n //anchorYUnits: 'pixels',\r\n //anchor: [0.5, 1],\r\n size: [this.arrowImageWidth, this.arrowImageHeight],\r\n src: this.setting.arrow_image,\r\n scale: 28 / this.arrowImageWidth,\r\n }) : null;\r\n\r\n var styleTriangle =\r\n new Style({\r\n image: movingIcon || triangle,\r\n stroke: new Stroke({\r\n color: [0, 0, 255],\r\n width: 2\r\n }),\r\n fill: new Fill({\r\n color: [0, 0, 255, 0.3]\r\n })\r\n });\r\n\r\n\r\n\r\n let start = featureLine.getGeometry().getFirstCoordinate();\r\n let end = featureLine.getGeometry().getLastCoordinate();\r\n\r\n let center = [Math.floor((start[0] + end[0]) / 2), Math.floor((start[1] + end[1]) / 2)];\r\n\r\n this.map.getView().setCenter(center);\r\n\r\n //console.log(\"center\", start, center, end)\r\n //this.createPoint(center, \"#40E000\");\r\n\r\n let begin = new Feature(new Point(start));\r\n begin.setStyle(styleTriangle);\r\n\r\n this.vectorSource.addFeature(begin);\r\n anim.on('animationend', (e) => {\r\n this.animationEnd(e);\r\n });\r\n\r\n anim.on('animating', (e) => {\r\n //this.map.getView().setCenter(e.geom.getCoordinates())\r\n //this.map.getView().setRotation(e.rotation||0)\r\n })\r\n if (points.length > 1) this.vectorLayer.animateFeature(begin, anim);\r\n else this.animationEnd();\r\n\r\n //console.log(\"VV\", vv);\r\n\r\n console.log(\"SESE\", start, end);\r\n\r\n //if (this.mapIndex == 0) this.createPoint(start, \"#40E0D0\");\r\n //else this.createPoint(start, \"#FFBF00\");\r\n\r\n //if (this.maps[this.mapIndex + 1]) this.createPoint(end, \"#FFBF00\");\r\n //else this.createPoint(end, \"#DE3163\");\r\n\r\n for (let i in this.currentMap.paths) {\r\n let p = this.currentMap.paths[i];\r\n let coord = [p.x, p.y];\r\n\r\n if (+i == 0) {\r\n if (this.mapIndex == 0) this.createPoint(coord, \"#40E0D0\", p.label);\r\n else this.createPoint(coord, \"#FFBF00\", p.label);\r\n } else if (+i == this.currentMap.paths.length - 1) {\r\n if (this.maps[this.mapIndex + 1]) this.createPoint(coord, \"#FFBF00\", p.label);\r\n else this.createPoint(coord, \"#DE3163\", p.label);\r\n } else if (p.label) {\r\n this.createPoint(coord, null, p.label);\r\n }\r\n }\r\n }\r\n\r\n truncateString(str, num) {\r\n if (str.length > num) {\r\n return str.slice(0, num) + \"...\";\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n createPoint(coordinate, strokeColor, label?: string) {\r\n let fill = new Fill({\r\n color: \"white\",\r\n });\r\n let stroke = new Stroke({\r\n color: strokeColor,\r\n width: 4,\r\n });\r\n let pointStyle = strokeColor ? new Style({\r\n image: new Circle({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: 7,\r\n }),\r\n fill: fill,\r\n stroke: stroke,\r\n }) : new Style();\r\n let point = new Feature({\r\n geometry: new Point(coordinate),\r\n isPoint: true,\r\n });\r\n if (label) {\r\n pointStyle.setText(new Text({\r\n text: this.truncateString(label, 12),\r\n font: 'bold 16px Arial',\r\n overflow: true,\r\n outline: '#ffffff',\r\n outlineWidth: 3,\r\n stroke: new Stroke({\r\n color: '#ffffff',\r\n width: 3,\r\n }),\r\n fill: new Fill({\r\n color: \"red\",\r\n })\r\n }));\r\n }\r\n point.setStyle(pointStyle);\r\n this.vectorSource.addFeature(point);\r\n }\r\n\r\n async loadData() {\r\n this.subscription.add(this.kioskSettingsService.getKioskSettingsById(\"4\")\r\n .subscribe(results => {\r\n\r\n let kioskSetting = results;\r\n\r\n console.log(\"Setting is: \", kioskSetting)\r\n this.setting = kioskSetting;\r\n\r\n this.getPlaylist(this.setting.top_banner_id, 1);\r\n this.getPlaylist(this.setting.bottom_banner_id, 2);\r\n this.getPlaylist(this.setting.def_event_id, 3);\r\n this.getPlaylist(this.setting.ss_playlist_id, 4);\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve kiosk settings from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getPlaylist(id, pos) {\r\n this.subscription.add(this.playlistService.getPlaylistById(id)\r\n .subscribe(results => {\r\n\r\n let playlist = results;\r\n\r\n let images = playlist.images;\r\n\r\n if (pos == 1) {\r\n this.topBanner = playlist;\r\n for (let i = 0; i < images.length; i++) {\r\n let slide = { id: i, img: images[i].imageLocation }\r\n this.topSlides.push(slide);\r\n }\r\n\r\n } else if (pos == 2) {\r\n this.bottomBanner = playlist;\r\n for (let i = 0; i < images.length; i++) {\r\n let slide = { id: i, img: images[i].imageLocation }\r\n this.bottomSlides.push(slide);\r\n }\r\n } else if (pos == 3) {\r\n for (let i = 0; i < images.length; i++) {\r\n let slide = { id: i, img: images[i].imageLocation }\r\n this.eventSlideSel.push(slide);\r\n }\r\n } else if (pos == 4) {\r\n this.screenSaver = playlist;\r\n for (let i = 0; i < images.length; i++) {\r\n let slide = { id: i, img: images[i].imageLocation }\r\n this.screenSaverSlides.push(slide);\r\n }\r\n }\r\n\r\n if (this.eventSlideSel.length > 0 && this.eventSlides.length == 0) {\r\n let index = this.getRandomInt(this.eventSlideSel.length)\r\n this.selectedEvent = this.eventSlideSel[index].img\r\n for (let i = 0; i < 8; i++) {\r\n let slide = { id: i, img: this.selectedEvent }\r\n this.eventSlides.push(slide);\r\n }\r\n }\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve kiosk playlist from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getFileImage(path) {\r\n let pathTxt = this.fileService.getFile(path);\r\n //console.log(\"image path: \", pathTxt);\r\n return pathTxt;\r\n //return \"Resources/Images/Images/97d672b0-cc3d-4a6c-aefa-c94af06a375bbanner.jpg\";\r\n }\r\n\r\n getSafeFile(path) {\r\n //console.log(\"image Path before safe: \", path)\r\n let newPath = this.sanitizer.bypassSecurityTrustStyle('url("' + decodeURI(encodeURI(path)) + '")')\r\n //console.log(\"Image Path after safe: \", newPath)\r\n return newPath;\r\n }\r\n\r\n getRandomInt(max) {\r\n return Math.floor(Math.random() * max);\r\n }\r\n\r\n selectSearch(searchModel) {\r\n this.searchModel = searchModel;\r\n this.updateSearchResults();\r\n }\r\n\r\n updateSearchResults() {\r\n console.log(\"searchModel: \", this.searchModel);\r\n\r\n console.log(\"directorys inside search: \", this.directorys)\r\n\r\n if (!this.searchModel && !this.selectedCat && !this.selectedLvl) {\r\n this.searchList = this.directorys;\r\n return;\r\n }\r\n\r\n this.searchList = this.directorys;\r\n\r\n if (this.selectedCat) {\r\n this.searchList = this.searchList\r\n ? this.searchList.filter(\r\n (item) => (item.directoryListingCategoryId == this.selectedCat.id))\r\n : [];\r\n }\r\n\r\n console.log(\"searchList after category filter: \", this.searchList);\r\n\r\n if (this.selectedLvl) {\r\n this.searchList = this.searchList\r\n ? this.searchList.filter(\r\n (item) => (item.floorId == this.selectedLvl))\r\n : [];\r\n }\r\n\r\n console.log(\"searchList after level filter: \", this.searchList);\r\n\r\n if (this.searchModel) {\r\n this.searchList = this.searchList\r\n ? this.searchList.filter(\r\n (item) => (item.label.toLowerCase()).indexOf(this.searchModel.toLowerCase()) !== -1)\r\n : [];\r\n }\r\n\r\n console.log(\"searchList after text search: \", this.searchList);\r\n\r\n console.log(\"searchList: \", this.searchList);\r\n }\r\n\r\n directoryClicked(d) {\r\n this.searchModel = \"\";\r\n this.selectedCat = null;\r\n this.selectedLvl = null;\r\n\r\n if (!this.to && (this.from || this.point_id)) {\r\n console.log(\"TOTOTO\")\r\n this.to = d;\r\n this.directoryChanged(this.from, this.to);\r\n return;\r\n }\r\n if (!this.from && !this.point_id) {\r\n this.from = d;\r\n return;\r\n }\r\n }\r\n\r\n\r\n clearDirectory() {\r\n if (!this.defaultFrom) this.from = null;\r\n this.to = null;\r\n this.wheelchair = false;\r\n }\r\n\r\n async directoryChanged(from, to) {\r\n console.log(\"starting point id: \", this.point_id)\r\n if ((!this.point_id && !from) || !to) return;\r\n\r\n //if (!this.defaultFrom) this.from = null;\r\n //this.to = null;\r\n //this.wheelchair = false;\r\n\r\n if (this.point_id) {\r\n this.defaultFrom = { id: this.point_id };\r\n from = this.defaultFrom;\r\n }\r\n\r\n this.dirload = true;\r\n\r\n this.paths = null;\r\n clearInterval(this.interval);\r\n\r\n console.log(\"dir changed from to: \", from, to)\r\n\r\n this.from = from;\r\n this.to = to;\r\n await this.getRoute(from.id, to.id);\r\n\r\n console.log(\"path inside dir change: \", this.paths);\r\n }\r\n\r\n\r\n doMapUpdate() {\r\n if (!this.paths) return;\r\n\r\n this.mapMode = true;\r\n\r\n this.mapMap = {};\r\n this.maps = [];\r\n\r\n console.log(\"map update paths: \", this.paths)\r\n\r\n let i = 1;\r\n for (let p of this.paths) {\r\n if (!this.mapMap[p.mapId]) {\r\n this.mapMap[p.mapId] = p.mapInfo;\r\n this.maps.push(this.mapMap[p.mapId]);\r\n }\r\n\r\n if (!this.mapMap[p.mapId].paths) this.mapMap[p.mapId].paths = [];\r\n\r\n this.mapMap[p.mapId].paths.push(p);\r\n\r\n if (p.label) p.label = i++ + '. ' + p.label; \r\n }\r\n\r\n console.log(\"maps: \", this.maps)\r\n console.log(\"mapmap: \", this.mapMap)\r\n\r\n if (this.maps[0]) {\r\n this.currentMap = this.maps[0];\r\n this.mapIndex = 0;\r\n }\r\n\r\n console.log(\"current map inside map update: \", this.currentMap)\r\n\r\n this.pause = false;\r\n\r\n this.initMap();\r\n\r\n this.mode = 0;\r\n }\r\n\r\n async getRoute(from, to) {\r\n\r\n if (!this.showRouteOption) {\r\n this.showRouteOption = true;\r\n return;\r\n }\r\n\r\n this.showRouteOption = false;\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.mapService.getRoute(from, to, this.wheelchair, this.sheltered)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.wheelchair = false;\r\n this.sheltered = false;\r\n this.to = null;\r\n\r\n var res: any = results\r\n\r\n console.log(\"route: \", res)\r\n\r\n if (res.message) {\r\n alert(res.message);\r\n return;\r\n }\r\n\r\n let path = res.data\r\n this.paths = path;\r\n\r\n console.log(\"path inside get route: \", this.paths)\r\n\r\n this.doMapUpdate();\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n next(index) {\r\n if (index >= this.maps.length) index = 0;\r\n\r\n this.currentMap = this.maps[index];\r\n this.mapIndex = index;\r\n\r\n this.initMap();\r\n }\r\n\r\n selectCat(cat) {\r\n console.log(\"cat selected: \", cat)\r\n this.selectedCat = cat;\r\n this.updateSearchResults();\r\n }\r\n\r\n selectLevel(l) {\r\n console.log(\"level selected: \", l);\r\n this.selectedLvl = l;\r\n this.updateSearchResults();\r\n }\r\n\r\n resetSearch() {\r\n this.clearDirectory();\r\n this.selectedCat = null;\r\n this.selectedLvl = null;\r\n this.searchModel = null;\r\n this.updateSearchResults();\r\n this.from = null;\r\n this.to = null;\r\n this.dirload = false;\r\n this.currentMap = this.defMap;\r\n this.paths = null;\r\n this.pause = true;\r\n this.initMap();\r\n }\r\n\r\n changeWheel() {\r\n this.wheelchair = !this.wheelchair;\r\n }\r\n\r\n valueAscOrder = (a: KeyValue, b: KeyValue): number => {\r\n return this.compareFloor(a.value, b.value);\r\n }\r\n\r\n compareFloor = function (a, b) {\r\n if (a.toLowerCase().includes(\"l\") && b.toLowerCase().includes(\"b\"))\r\n return 1;\r\n else if (a.toLowerCase().includes(\"b\") && b.toLowerCase().includes(\"l\"))\r\n return -1;\r\n else {\r\n if (a.toLowerCase().includes(\"l\") && b.toLowerCase().includes(\"l\")) {\r\n if (a > b) { return 1 } else if (a < b) { return -1 }\r\n } else if (a.toLowerCase().includes(\"b\") && b.toLowerCase().includes(\"b\")) {\r\n if (a > b) { return -1 } else if (a < b) { return 1 }\r\n } else {\r\n if (a > b) { return 1 } else if (a < b) { return -1 }\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n}\r\n\r\n//// constructor(\r\n//// //private navCtrl: NavController,\r\n//// //private dataS: DataService,\r\n//// //private http: HTTP,\r\n//// private chRef: ChangeDetectorRef,\r\n//// private storage: Storage,\r\n//// private mapService: MapService,\r\n//// private alertService: AlertService,\r\n//// private buildingService: BuildingService,\r\n//// private directoryListingService: DirectoryListingService\r\n//// ) {\r\n//// //this.storage.get(\"ProfileStorage\").then((ProfileStorage) => {\r\n//// // this.getUserDataById(ProfileStorage?.userId);\r\n//// //});\r\n//// }\r\n\r\n//// async ngOnInit() {\r\n//// //alert(\"1\");\r\n//// window.onerror = function (message, file, line, col, error) {\r\n//// alert(\"Error occurred: \" + error.message);\r\n//// return false;\r\n//// };\r\n//// window.addEventListener(\"error\", function (e) {\r\n//// alert(\"Error occurred: \" + e.error.message);\r\n//// return false;\r\n//// });\r\n\r\n//// window.addEventListener(\"unhandledrejection\", function (e) {\r\n//// alert(\"Error occurred: \" + e.reason.message);\r\n//// });\r\n\r\n//// await this.getDirectory();\r\n\r\n//// await this.getFloors();\r\n\r\n//// this.initMap();\r\n//// }\r\n\r\n//// async directoryChanged(from, to) {\r\n//// if (!from || !to) return;\r\n\r\n//// if (!this.defaultFrom) this.from = null;\r\n//// this.to = null;\r\n//// this.wheelchair = false;\r\n\r\n//// this.paths = null;\r\n//// clearInterval(this.interval);\r\n\r\n//// await this.getRoute(from, to);\r\n\r\n//// if (!this.paths) return;\r\n\r\n//// this.mapMode = true;\r\n\r\n//// this.mapMap = {};\r\n//// this.maps = [];\r\n\r\n//// for (let p of this.paths) {\r\n//// if (!this.mapMap[p.mapId]) {\r\n//// this.mapMap[p.mapId] = p.mapInfo;\r\n//// this.maps.push(this.mapMap[p.mapId]);\r\n//// }\r\n\r\n//// if (!this.mapMap[p.mapId].paths) this.mapMap[p.mapId].paths = [];\r\n\r\n//// this.mapMap[p.mapId].paths.push(p);\r\n//// }\r\n\r\n//// if (this.maps[0]) {\r\n//// this.currentMap = this.maps[0];\r\n//// this.mapIndex = 0;\r\n//// }\r\n\r\n//// this.initMap();\r\n\r\n//// this.mode = 0;\r\n//// }\r\n\r\n//// async getRoute(from, to) {\r\n\r\n//// this.loadingIndicator = true;\r\n\r\n//// this.subscription.add(this.mapService.getRoute(from, to, this.wheelchair)\r\n//// .subscribe(results => {\r\n//// this.alertService.stopLoadingMessage();\r\n//// this.loadingIndicator = false;\r\n\r\n//// var res: any = results\r\n\r\n//// console.log(res)\r\n\r\n//// if (res.message) {\r\n//// alert(res.message);\r\n//// return;\r\n//// }\r\n\r\n//// let path = res.data\r\n\r\n//// },\r\n//// error => {\r\n//// this.alertService.stopLoadingMessage();\r\n//// this.loadingIndicator = false;\r\n\r\n//// this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n//// MessageSeverity.error);\r\n//// }));\r\n//// }\r\n\r\n//// async getFloors() {\r\n\r\n//// this.loadingIndicator = true;\r\n\r\n//// this.subscription.add(this.buildingService.getBuildings()\r\n//// .subscribe(results => {\r\n//// this.alertService.stopLoadingMessage();\r\n//// this.loadingIndicator = false;\r\n\r\n//// console.log(results)\r\n\r\n//// let buildings = results[0];\r\n\r\n//// for (let b of buildings) {\r\n//// if (b.floors && b.floors.filter((f) => f.map).length > 0) {\r\n//// this.floors = b.floors.filter((f) => f.map);\r\n//// this.currentMap = this.floors[0].map;\r\n//// break;\r\n//// }\r\n//// }\r\n//// },\r\n//// error => {\r\n//// this.alertService.stopLoadingMessage();\r\n//// this.loadingIndicator = false;\r\n\r\n//// this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n//// MessageSeverity.error);\r\n//// }));\r\n//// }\r\n\r\n//// async getDirectory() {\r\n\r\n//// this.loadingIndicator = true;\r\n\r\n//// this.subscription.add(this.directoryListingService.getDirectoryListingsExcInt()\r\n//// .subscribe(results => {\r\n//// this.alertService.stopLoadingMessage();\r\n//// this.loadingIndicator = false;\r\n\r\n//// console.log(results)\r\n\r\n//// this.directorys = results[0];\r\n\r\n//// this.directorys = this.directorys.sort((a, b) => {\r\n//// let r = a.directoryListingCategoryLabel.localeCompare(\r\n//// b.directoryListingCategoryLabel\r\n//// );\r\n\r\n//// if (r != 0) return r;\r\n\r\n//// return a.label.localeCompare(b.label);\r\n//// });\r\n\r\n//// this.searchList = this.directorys;\r\n\r\n//// this.chRef.detectChanges();\r\n\r\n//// },\r\n//// error => {\r\n//// this.alertService.stopLoadingMessage();\r\n//// this.loadingIndicator = false;\r\n\r\n//// this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n//// MessageSeverity.error);\r\n//// }));\r\n//// }\r\n\r\n//// //async getUserDataById(id) {\r\n//// // const options = {\r\n//// // method: \"get\" as \"get\",\r\n//// // };\r\n\r\n//// // await this.http\r\n//// // .sendRequest(\r\n//// // this.dataS.getServerPath + \"/api/Account/users/get/\" + id,\r\n//// // options\r\n//// // )\r\n//// // .then((data) => {\r\n//// // let odata = JSON.parse(data.data);\r\n//// // this.userData = odata;\r\n\r\n//// // if (this.userData.directoryListingId) {\r\n//// // this.defaultFrom = {\r\n//// // id: this.userData.directoryListingId,\r\n//// // code: this.userData.directoryListingCode,\r\n//// // label: this.userData.directoryListingLabel,\r\n//// // };\r\n\r\n//// // this.from = this.defaultFrom;\r\n//// // }\r\n//// // })\r\n//// // .catch((error) => {\r\n//// // console.log(error.error);\r\n//// // this.dataS.dismiss();\r\n//// // });\r\n//// //}\r\n\r\n//// initMap() {\r\n//// if (!this.currentMap?.map_url) return;\r\n\r\n//// var extent = [0, 0, this.currentMap.width, this.currentMap.height];\r\n//// var projection = new Projection({\r\n//// code: \"xkcd-image\",\r\n//// units: \"pixels\",\r\n//// extent: extent,\r\n//// });\r\n\r\n//// let fullUrl = this.server_url + \"/\" + this.currentMap.map_url;\r\n\r\n//// let source = new Static({\r\n//// url: fullUrl,\r\n//// projection: projection,\r\n//// imageExtent: extent,\r\n//// });\r\n\r\n//// this.vectorSource = new VectorSource();\r\n\r\n//// if (this.map) {\r\n//// let l = this.map.getLayers().getArray()[0];\r\n//// l.setSource(source);\r\n\r\n//// let v = this.map.getLayers().getArray()[1];\r\n//// v.setSource(this.vectorSource);\r\n//// } else {\r\n//// this.map = new Map({\r\n//// layers: [\r\n//// new ImageLayer({\r\n//// source: source,\r\n//// }),\r\n//// new VectorLayer({\r\n//// source: this.vectorSource,\r\n//// }),\r\n//// ],\r\n//// target: \"map\",\r\n//// view: new View({\r\n//// projection: projection,\r\n//// center: getCenter(extent),\r\n//// zoom: 2,\r\n//// maxZoom: 8,\r\n//// }),\r\n//// });\r\n\r\n//// const waitForMap = setInterval(function () {\r\n//// if (document.querySelectorAll(\".ol-viewport\").length) {\r\n//// console.log(\"Exists!\");\r\n//// window.dispatchEvent(new Event(\"resize\"));\r\n//// clearInterval(waitForMap);\r\n//// }\r\n//// }, 100);\r\n//// }\r\n\r\n//// if (this.currentMap?.paths?.[0]) {\r\n//// this.createLine();\r\n//// }\r\n\r\n//// // var view = this.map.getView();\r\n//// // view.fit(extent, { constrainResolution: true });\r\n//// // view.setMinZoom(view.getZoom());\r\n//// // // set opening zoom level (zoom set by code must not be less than the minZoom)\r\n//// // view.setZoom(Math.max(2, view.getMinZoom()));\r\n//// //var center = getCenter(extent);\r\n//// //view.on(['change:center', 'change:resolution'], function () {\r\n//// // // map.on('moveend', function() { // alternative\r\n//// // var viewCenter = view.getCenter();\r\n//// // if ((viewCenter[0] != center[0] || viewCenter[1] != center[1]) && view.getZoom() == view.getMinZoom()) {\r\n//// // view.setCenter(center);\r\n//// // }\r\n//// //});\r\n//// }\r\n\r\n//// createLine() {\r\n//// if (!this.currentMap?.paths?.[0]) return;\r\n\r\n//// var points = new Array();\r\n//// for (let p of this.currentMap?.paths) {\r\n//// points.push([p.x, p.y]);\r\n//// }\r\n\r\n//// var featureLine = new Feature({\r\n//// geometry: new LineString(points),\r\n//// dashOffset: 0,\r\n//// });\r\n\r\n//// var outlineStroke = new Style({\r\n//// stroke: new Stroke({\r\n//// color: [25, 25, 255, 1],\r\n//// width: 5,\r\n//// }),\r\n//// });\r\n\r\n//// // use style caching in production\r\n//// function getAnimationStrokeStyle() {\r\n//// return new Style({\r\n//// stroke: new Stroke({\r\n//// color: [204, 204, 255, 1],\r\n//// width: 3,\r\n//// lineDash: [2, 7],\r\n//// lineDashOffset: featureLine.get(\"dashOffset\"),\r\n//// }),\r\n//// });\r\n//// }\r\n\r\n//// function getStyle() {\r\n//// return [outlineStroke, getAnimationStrokeStyle()];\r\n//// }\r\n\r\n//// featureLine.setStyle(getStyle);\r\n\r\n//// this.vectorSource.addFeature(featureLine);\r\n\r\n//// this.interval = setInterval(function () {\r\n//// let offset = featureLine.get(\"dashOffset\");\r\n//// offset = offset == 0 ? 8 : offset - 1;\r\n//// featureLine.set(\"dashOffset\", offset);\r\n//// }, 100);\r\n\r\n//// let start = featureLine.getGeometry().getFirstCoordinate();\r\n//// let end = featureLine.getGeometry().getLastCoordinate();\r\n\r\n//// this.map.getView().setCenter(start);\r\n\r\n//// if (this.mapIndex == 0) this.createPoint(start, \"#40E0D0\");\r\n//// else this.createPoint(start, \"#FFBF00\");\r\n\r\n//// if (this.maps[this.mapIndex + 1]) this.createPoint(end, \"#FFBF00\");\r\n//// else this.createPoint(end, \"#DE3163\");\r\n//// }\r\n\r\n//// createPoint(coordinate, strokeColor) {\r\n//// let fill = new Fill({\r\n//// color: \"white\",\r\n//// });\r\n//// let stroke = new Stroke({\r\n//// color: strokeColor,\r\n//// width: 4,\r\n//// });\r\n//// let pointStyle = new Style({\r\n//// image: new Circle({\r\n//// fill: fill,\r\n//// stroke: stroke,\r\n//// radius: 7,\r\n//// }),\r\n//// fill: fill,\r\n//// stroke: stroke,\r\n//// });\r\n//// let point = new Feature({\r\n//// geometry: new Point(coordinate),\r\n//// isPoint: true,\r\n//// });\r\n//// point.setStyle(pointStyle);\r\n//// this.vectorSource.addFeature(point);\r\n//// }\r\n\r\n//// next(index) {\r\n//// this.currentMap = this.maps[index];\r\n//// this.mapIndex = index;\r\n//// this.initMap();\r\n//// }\r\n\r\n//// goBack() {\r\n//// //this.navCtrl.back();\r\n//// }\r\n\r\n//// updateSearchResults(searchModel) {\r\n//// if (!searchModel) this.searchList = this.directorys;\r\n\r\n//// this.searchList = this.directorys\r\n//// ? this.directorys.filter(\r\n//// (item) => item.label?.search(new RegExp(searchModel, \"i\")) > -1\r\n//// )\r\n//// : [];\r\n//// }\r\n\r\n//// directoryClicked(d) {\r\n//// this.searchModel = \"\";\r\n\r\n//// if (!this.to) {\r\n//// this.to = d;\r\n//// return;\r\n//// }\r\n//// if (!this.from) {\r\n//// this.from = d;\r\n//// return;\r\n//// }\r\n//// }\r\n\r\n//// clearDirectory() {\r\n//// if (!this.defaultFrom) this.from = null;\r\n//// this.to = null;\r\n//// this.wheelchair = false;\r\n//// }\r\n////}\r\n","module.exports = \"\\r\\n.control-box {\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.search-box {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.action-box {\\r\\n margin: 0 50px 0 0;\\r\\n min-height: 0;\\r\\n}\\r\\n\\r\\n.action-box .toolbaritem a {\\r\\n padding-top: 5px;\\r\\n padding-bottom: 5px;\\r\\n min-width: 100px;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: \\\"Avenir Bold\\\";\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: \\\"Avenir\\\";\\r\\n}\\r\\n\\r\\n.tit {\\r\\n font: 400 1rem 'Roboto', sans-serif;\\r\\n text-transform: uppercase;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.top {\\r\\n position: fixed;\\r\\n top: 0;\\r\\n z-index: 999;\\r\\n background-color: #fff;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.slide {\\r\\n list-style-type: none;\\r\\n padding: 0;\\r\\n width: 1080px;\\r\\n height: 280px;\\r\\n margin: 0 !important;\\r\\n}\\r\\n\\r\\n.slide__item {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.item {\\r\\n position: relative;\\r\\n padding: 0 !important;\\r\\n height: 280px !important;\\r\\n background-repeat: no-repeat !important;\\r\\n background-size: cover !important;\\r\\n}\\r\\n\\r\\n.slide-caption {\\r\\n visibility: hidden;\\r\\n position: relative;\\r\\n top: 70%;\\r\\n left: 0%;\\r\\n text-align: left;\\r\\n font-family: 'Roboto';\\r\\n margin: 0;\\r\\n background-color: rgba(224, 11, 86, 0.75);\\r\\n height: 30% !important;\\r\\n width: 100% !important;\\r\\n padding: 10px !important;\\r\\n}\\r\\n\\r\\n.slide-date {\\r\\n visibility: hidden;\\r\\n position: relative;\\r\\n top: -25%;\\r\\n left: 75%;\\r\\n text-align: center;\\r\\n font-family: 'Roboto';\\r\\n margin: 0;\\r\\n background-color: rgba(224, 11, 86, 0.75);\\r\\n height: 27% !important;\\r\\n width: 25% !important;\\r\\n padding: 10px !important;\\r\\n}\\r\\n\\r\\n.slide-date-txt {\\r\\n font-size: 28px;\\r\\n font-weight: 900;\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n color: white;\\r\\n font-family: Avenir;\\r\\n}\\r\\n\\r\\n.slide-month {\\r\\n font-size: 14px;\\r\\n font-weight: 900;\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n text-transform: uppercase;\\r\\n color: white;\\r\\n font-family: Avenir;\\r\\n}\\r\\n\\r\\n.slide-caption__title {\\r\\n font-size: 14px;\\r\\n font-weight: 900;\\r\\n margin-bottom: 0;\\r\\n margin-top: 0;\\r\\n text-transform: uppercase;\\r\\n color: white;\\r\\n font-family: Avenir;\\r\\n}\\r\\n\\r\\n.slide-caption__desc {\\r\\n font-size: 12px;\\r\\n font-weight: 300;\\r\\n margin-top: 0;\\r\\n color: white;\\r\\n margin-bottom: 0;\\r\\n font-family: Avenir;\\r\\n}\\r\\n\\r\\n.owl-item.active.center .slide-caption {\\r\\n visibility: visible;\\r\\n -webkit-animation: 1s .2s fadeInUp both;\\r\\n animation: 1s .2s fadeInUp both;\\r\\n}\\r\\n\\r\\n.owl-item.active.center .slide-date {\\r\\n visibility: visible;\\r\\n}\\r\\n\\r\\n.owl-item.active.center .slide-caption__title {\\r\\n -webkit-animation: 1s .2s fadeInUp both;\\r\\n animation: 1s .2s fadeInUp both;\\r\\n}\\r\\n\\r\\n.owl-item.active.center .slide-caption__desc {\\r\\n -webkit-animation: 1s .6s fadeInUp both;\\r\\n animation: 1s .6s fadeInUp both;\\r\\n}\\r\\n\\r\\n.owl-item.active.center .btn {\\r\\n -webkit-animation: 1s .9s flipInX both;\\r\\n animation: 1s .9s flipInX both;\\r\\n}\\r\\n\\r\\n.owl-item.active .slide-caption {\\r\\n visibility: visible;\\r\\n}\\r\\n\\r\\n.owl-item.active .slide-date {\\r\\n visibility: visible;\\r\\n}\\r\\n\\r\\n.slide-caption__desc {\\r\\n font-size: 12px;\\r\\n font-weight: 300;\\r\\n margin-top: 0;\\r\\n color: white;\\r\\n margin-bottom: 0;\\r\\n font-family: Avenir;\\r\\n}\\r\\n\\r\\n.btn {\\r\\n font-size: 16px;\\r\\n font-weight: 300;\\r\\n border: 2px solid #fff;\\r\\n color: #fff;\\r\\n padding: .6rem 2rem;\\r\\n display: inline-block;\\r\\n text-decoration: none;\\r\\n margin-top: .5rem;\\r\\n}\\r\\n\\r\\n.map {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n/*Semantic css*/\\r\\n\\r\\n*!\\r\\n* # Semantic UI 2.2.12 - Label\\r\\n* http://github.com/semantic-org/semantic-ui/\\r\\n*\\r\\n*\\r\\n* Released under the MIT license\\r\\n* http://opensource.org/licenses/MIT\\r\\n*\\r\\n*/\\r\\n\\r\\n.ui.label {\\r\\n display: inline-block;\\r\\n line-height: 1;\\r\\n vertical-align: baseline;\\r\\n margin: 0 .14285714em;\\r\\n background-color: #e8e8e8;\\r\\n background-image: none;\\r\\n padding: .5833em .833em;\\r\\n color: rgba(0,0,0,.6);\\r\\n text-transform: none;\\r\\n font-weight: 700;\\r\\n border: 0 solid transparent;\\r\\n border-radius: .28571429rem;\\r\\n transition: background .1s ease\\r\\n}\\r\\n\\r\\n.ui.label:first-child {\\r\\n margin-left: 0\\r\\n}\\r\\n\\r\\n.ui.label:last-child {\\r\\n margin-right: 0\\r\\n}\\r\\n\\r\\na.ui.label {\\r\\n cursor: pointer\\r\\n}\\r\\n\\r\\n.ui.label > a {\\r\\n cursor: pointer;\\r\\n color: inherit;\\r\\n opacity: .5;\\r\\n transition: .1s opacity ease\\r\\n}\\r\\n\\r\\n.ui.label > a:hover {\\r\\n opacity: 1\\r\\n }\\r\\n\\r\\n.ui.label > img {\\r\\n width: auto !important;\\r\\n vertical-align: middle;\\r\\n height: 2.1666em !important\\r\\n}\\r\\n\\r\\n.ui.label > .icon {\\r\\n width: auto;\\r\\n margin: 0 .75em 0 0\\r\\n}\\r\\n\\r\\n.ui.label > .detail {\\r\\n display: inline-block;\\r\\n vertical-align: top;\\r\\n font-weight: 700;\\r\\n margin-left: 1em;\\r\\n opacity: .8\\r\\n}\\r\\n\\r\\n.ui.label > .detail .icon {\\r\\n margin: 0 .25em 0 0\\r\\n }\\r\\n\\r\\n.ui.label > .close.icon, .ui.label > .delete.icon {\\r\\n cursor: pointer;\\r\\n margin-right: 0;\\r\\n margin-left: .5em;\\r\\n font-size: .92857143em;\\r\\n opacity: .5;\\r\\n transition: background .1s ease\\r\\n}\\r\\n\\r\\n.ui.label > .delete.icon:hover {\\r\\n opacity: 1\\r\\n }\\r\\n\\r\\n.ui.labels > .label {\\r\\n margin: 0 .5em .5em 0\\r\\n}\\r\\n\\r\\n.ui.header > .ui.label {\\r\\n margin-top: -.29165em\\r\\n}\\r\\n\\r\\n.ui.attached.segment > .ui.top.left.attached.label, .ui.bottom.attached.segment > .ui.top.left.attached.label {\\r\\n border-top-left-radius: 0\\r\\n}\\r\\n\\r\\n.ui.attached.segment > .ui.top.right.attached.label, .ui.bottom.attached.segment > .ui.top.right.attached.label {\\r\\n border-top-right-radius: 0\\r\\n}\\r\\n\\r\\n.ui.top.attached.segment > .ui.bottom.left.attached.label {\\r\\n border-bottom-left-radius: 0\\r\\n}\\r\\n\\r\\n.ui.top.attached.segment > .ui.bottom.right.attached.label {\\r\\n border-bottom-right-radius: 0\\r\\n}\\r\\n\\r\\n.ui.top.attached.label + [class*=\\\"right floated\\\"] + *, .ui.top.attached.label:first-child + :not(.attached) {\\r\\n margin-top: 2rem !important\\r\\n}\\r\\n\\r\\n.ui.bottom.attached.label:first-child ~ :last-child:not(.attached) {\\r\\n margin-top: 0;\\r\\n margin-bottom: 2rem !important\\r\\n}\\r\\n\\r\\n.ui.image.label {\\r\\n width: auto !important;\\r\\n margin-top: 0;\\r\\n margin-bottom: 0;\\r\\n max-width: 9999px;\\r\\n vertical-align: baseline;\\r\\n text-transform: none;\\r\\n background: #e8e8e8;\\r\\n padding: .5833em .833em .5833em .5em;\\r\\n border-radius: .28571429rem;\\r\\n box-shadow: none\\r\\n}\\r\\n\\r\\n.ui.image.label img {\\r\\n display: inline-block;\\r\\n vertical-align: top;\\r\\n height: 2.1666em;\\r\\n margin: -.5833em .5em -.5833em -.5em;\\r\\n border-radius: .28571429rem 0 0 .28571429rem\\r\\n }\\r\\n\\r\\n.ui.image.label .detail {\\r\\n background: rgba(0,0,0,.1);\\r\\n margin: -.5833em -.833em -.5833em .5em;\\r\\n padding: .5833em .833em;\\r\\n border-radius: 0 .28571429rem .28571429rem 0\\r\\n }\\r\\n\\r\\n.ui.tag.label, .ui.tag.labels .label {\\r\\n margin-left: 1em;\\r\\n position: relative;\\r\\n padding-left: 1.5em;\\r\\n padding-right: 1.5em;\\r\\n border-radius: 0 .28571429rem .28571429rem 0;\\r\\n transition: none\\r\\n}\\r\\n\\r\\n.ui.tag.label:before, .ui.tag.labels .label:before {\\r\\n position: absolute;\\r\\n transform: translateY(-50%) translateX(50%) rotate(-45deg);\\r\\n top: 50%;\\r\\n right: 100%;\\r\\n content: '';\\r\\n background-color: inherit;\\r\\n background-image: none;\\r\\n width: 1.56em;\\r\\n height: 1.56em;\\r\\n transition: none\\r\\n }\\r\\n\\r\\n.ui.tag.label:after, .ui.tag.labels .label:after {\\r\\n position: absolute;\\r\\n content: '';\\r\\n top: 50%;\\r\\n left: -.25em;\\r\\n margin-top: -.25em;\\r\\n background-color: #fff !important;\\r\\n width: .5em;\\r\\n height: .5em;\\r\\n box-shadow: 0 -1px 1px 0 rgba(0,0,0,.3);\\r\\n border-radius: 500rem\\r\\n }\\r\\n\\r\\n.ui.corner.label {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 0;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n text-align: center;\\r\\n border-color: #e8e8e8;\\r\\n width: 4em;\\r\\n height: 4em;\\r\\n z-index: 1;\\r\\n transition: border-color .1s ease\\r\\n}\\r\\n\\r\\n.ui.corner.label {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.corner.label:after {\\r\\n position: absolute;\\r\\n content: \\\"\\\";\\r\\n right: 0;\\r\\n top: 0;\\r\\n z-index: -1;\\r\\n width: 0;\\r\\n height: 0;\\r\\n background-color: transparent !important;\\r\\n border-top: 0 solid transparent;\\r\\n border-right: 4em solid transparent;\\r\\n border-bottom: 4em solid transparent;\\r\\n border-left: 0 solid transparent;\\r\\n border-right-color: inherit;\\r\\n transition: border-color .1s ease\\r\\n }\\r\\n\\r\\n.ui.corner.label .icon {\\r\\n cursor: default;\\r\\n position: relative;\\r\\n top: .64285714em;\\r\\n left: .78571429em;\\r\\n font-size: 1.14285714em;\\r\\n margin: 0\\r\\n }\\r\\n\\r\\n.ui.left.corner.label, .ui.left.corner.label:after {\\r\\n right: auto;\\r\\n left: 0\\r\\n}\\r\\n\\r\\n.ui.left.corner.label:after {\\r\\n border-top: 4em solid transparent;\\r\\n border-right: 4em solid transparent;\\r\\n border-bottom: 0 solid transparent;\\r\\n border-left: 0 solid transparent;\\r\\n border-top-color: inherit\\r\\n }\\r\\n\\r\\n.ui.left.corner.label .icon {\\r\\n left: -.78571429em\\r\\n }\\r\\n\\r\\n.ui.segment > .ui.corner.label {\\r\\n top: -1px;\\r\\n right: -1px\\r\\n}\\r\\n\\r\\n.ui.segment > .ui.left.corner.label {\\r\\n right: auto;\\r\\n left: -1px\\r\\n}\\r\\n\\r\\n.ui.ribbon.label {\\r\\n position: relative;\\r\\n margin: 0;\\r\\n min-width: -webkit-max-content;\\r\\n min-width: -moz-max-content;\\r\\n min-width: max-content;\\r\\n border-radius: 0 .28571429rem .28571429rem 0;\\r\\n border-color: rgba(0,0,0,.15)\\r\\n}\\r\\n\\r\\n.ui.ribbon.label:after {\\r\\n position: absolute;\\r\\n content: '';\\r\\n top: 100%;\\r\\n left: 0;\\r\\n background-color: transparent !important;\\r\\n border-style: solid;\\r\\n border-width: 0 1.2em 1.2em 0;\\r\\n border-color: transparent;\\r\\n border-right-color: inherit;\\r\\n width: 0;\\r\\n height: 0\\r\\n }\\r\\n\\r\\n.ui.ribbon.label {\\r\\n left: calc(-1rem - 1.2em);\\r\\n margin-right: -1.2em;\\r\\n padding-left: calc(1rem + 1.2em);\\r\\n padding-right: 1.2em\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"right ribbon\\\"].label {\\r\\n left: calc(100% + 1rem + 1.2em);\\r\\n padding-left: 1.2em;\\r\\n padding-right: calc(1rem + 1.2em)\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"right ribbon\\\"].label {\\r\\n text-align: left;\\r\\n transform: translateX(-100%);\\r\\n border-radius: .28571429rem 0 0 .28571429rem\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"right ribbon\\\"].label:after {\\r\\n left: auto;\\r\\n right: 0;\\r\\n border-style: solid;\\r\\n border-width: 1.2em 1.2em 0 0;\\r\\n border-color: transparent;\\r\\n border-top-color: inherit\\r\\n }\\r\\n\\r\\n.ui.card .image > .ribbon.label, .ui.image > .ribbon.label {\\r\\n position: absolute;\\r\\n top: 1rem\\r\\n}\\r\\n\\r\\n.ui.card .image > .ui.ribbon.label, .ui.image > .ui.ribbon.label {\\r\\n left: calc(.05rem - 1.2em)\\r\\n}\\r\\n\\r\\n.ui.card .image > .ui[class*=\\\"right ribbon\\\"].label, .ui.image > .ui[class*=\\\"right ribbon\\\"].label {\\r\\n left: calc(100% + -.05rem + 1.2em);\\r\\n padding-left: .833em\\r\\n}\\r\\n\\r\\n.ui.table td > .ui.ribbon.label {\\r\\n left: calc(-.78571429em - 1.2em)\\r\\n}\\r\\n\\r\\n.ui.table td > .ui[class*=\\\"right ribbon\\\"].label {\\r\\n left: calc(100% + .78571429em + 1.2em);\\r\\n padding-left: .833em\\r\\n}\\r\\n\\r\\n.ui.attached.label, .ui[class*=\\\"top attached\\\"].label {\\r\\n width: 100%;\\r\\n position: absolute;\\r\\n margin: 0;\\r\\n top: 0;\\r\\n left: 0;\\r\\n padding: .75em 1em;\\r\\n border-radius: .21428571rem .21428571rem 0 0\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"bottom attached\\\"].label {\\r\\n top: auto;\\r\\n bottom: 0;\\r\\n border-radius: 0 0 .21428571rem .21428571rem\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"top left attached\\\"].label {\\r\\n width: auto;\\r\\n margin-top: 0 !important;\\r\\n border-radius: .21428571rem 0 .28571429rem 0\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"top right attached\\\"].label {\\r\\n width: auto;\\r\\n left: auto;\\r\\n right: 0;\\r\\n border-radius: 0 .21428571rem 0 .28571429rem\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"bottom left attached\\\"].label {\\r\\n width: auto;\\r\\n top: auto;\\r\\n bottom: 0;\\r\\n border-radius: 0 .28571429rem 0 .21428571rem\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"bottom right attached\\\"].label {\\r\\n top: auto;\\r\\n bottom: 0;\\r\\n left: auto;\\r\\n right: 0;\\r\\n width: auto;\\r\\n border-radius: .28571429rem 0 .21428571rem 0\\r\\n}\\r\\n\\r\\n.ui.label.disabled {\\r\\n opacity: .5\\r\\n}\\r\\n\\r\\na.ui.label:hover, a.ui.labels .label:hover {\\r\\n background-color: #e0e0e0;\\r\\n border-color: #e0e0e0;\\r\\n background-image: none;\\r\\n color: rgba(0,0,0,.8)\\r\\n}\\r\\n\\r\\n.ui.labels a.label:hover:before, a.ui.label:hover:before {\\r\\n color: rgba(0,0,0,.8)\\r\\n }\\r\\n\\r\\n.ui.active.label {\\r\\n background-color: #d0d0d0;\\r\\n border-color: #d0d0d0;\\r\\n background-image: none;\\r\\n color: rgba(0,0,0,.95)\\r\\n}\\r\\n\\r\\n.ui.active.label:before {\\r\\n background-color: #d0d0d0;\\r\\n background-image: none;\\r\\n color: rgba(0,0,0,.95)\\r\\n }\\r\\n\\r\\na.ui.active.label:hover, a.ui.labels .active.label:hover {\\r\\n background-color: #c8c8c8;\\r\\n border-color: #c8c8c8;\\r\\n background-image: none;\\r\\n color: rgba(0,0,0,.95)\\r\\n}\\r\\n\\r\\n.ui.labels a.active.label:ActiveHover:before, a.ui.active.label:ActiveHover:before {\\r\\n background-color: #c8c8c8;\\r\\n background-image: none;\\r\\n color: rgba(0,0,0,.95)\\r\\n}\\r\\n\\r\\n.ui.label.visible:not(.dropdown), .ui.labels.visible .label {\\r\\n display: inline-block !important\\r\\n}\\r\\n\\r\\n.ui.label.hidden, .ui.labels.hidden .label {\\r\\n display: none !important\\r\\n}\\r\\n\\r\\n.ui.red.label, .ui.red.labels .label {\\r\\n background-color: #db2828 !important;\\r\\n border-color: #db2828 !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.red.labels .label:hover, a.ui.red.label:hover {\\r\\n background-color: #d01919 !important;\\r\\n border-color: #d01919 !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.red.corner.label, .ui.red.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.red.ribbon.label {\\r\\n border-color: #b21e1e !important\\r\\n}\\r\\n\\r\\n.ui.basic.red.label {\\r\\n background-color: #fff !important;\\r\\n color: #db2828 !important;\\r\\n border-color: #db2828 !important\\r\\n}\\r\\n\\r\\n.ui.basic.red.labels a.label:hover, a.ui.basic.red.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #d01919 !important;\\r\\n border-color: #d01919 !important\\r\\n}\\r\\n\\r\\n.ui.orange.label, .ui.orange.labels .label {\\r\\n background-color: #f2711c !important;\\r\\n border-color: #f2711c !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.orange.labels .label:hover, a.ui.orange.label:hover {\\r\\n background-color: #f26202 !important;\\r\\n border-color: #f26202 !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.orange.corner.label, .ui.orange.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.orange.ribbon.label {\\r\\n border-color: #cf590c !important\\r\\n}\\r\\n\\r\\n.ui.basic.orange.label {\\r\\n background-color: #fff !important;\\r\\n color: #f2711c !important;\\r\\n border-color: #f2711c !important\\r\\n}\\r\\n\\r\\n.ui.basic.orange.labels a.label:hover, a.ui.basic.orange.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #f26202 !important;\\r\\n border-color: #f26202 !important\\r\\n}\\r\\n\\r\\n.ui.yellow.label, .ui.yellow.labels .label {\\r\\n background-color: #fbbd08 !important;\\r\\n border-color: #fbbd08 !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.yellow.labels .label:hover, a.ui.yellow.label:hover {\\r\\n background-color: #eaae00 !important;\\r\\n border-color: #eaae00 !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.yellow.corner.label, .ui.yellow.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.yellow.ribbon.label {\\r\\n border-color: #cd9903 !important\\r\\n}\\r\\n\\r\\n.ui.basic.yellow.label {\\r\\n background-color: #fff !important;\\r\\n color: #fbbd08 !important;\\r\\n border-color: #fbbd08 !important\\r\\n}\\r\\n\\r\\n.ui.basic.yellow.labels a.label:hover, a.ui.basic.yellow.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #eaae00 !important;\\r\\n border-color: #eaae00 !important\\r\\n}\\r\\n\\r\\n.ui.olive.label, .ui.olive.labels .label {\\r\\n background-color: #b5cc18 !important;\\r\\n border-color: #b5cc18 !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.olive.labels .label:hover, a.ui.olive.label:hover {\\r\\n background-color: #a7bd0d !important;\\r\\n border-color: #a7bd0d !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.olive.corner.label, .ui.olive.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.olive.ribbon.label {\\r\\n border-color: #198f35 !important\\r\\n}\\r\\n\\r\\n.ui.basic.olive.label {\\r\\n background-color: #fff !important;\\r\\n color: #b5cc18 !important;\\r\\n border-color: #b5cc18 !important\\r\\n}\\r\\n\\r\\n.ui.basic.olive.labels a.label:hover, a.ui.basic.olive.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #a7bd0d !important;\\r\\n border-color: #a7bd0d !important\\r\\n}\\r\\n\\r\\n.ui.green.label, .ui.green.labels .label {\\r\\n background-color: #21ba45 !important;\\r\\n border-color: #21ba45 !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.green.labels .label:hover, a.ui.green.label:hover {\\r\\n background-color: #16ab39 !important;\\r\\n border-color: #16ab39 !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.green.corner.label, .ui.green.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.green.ribbon.label {\\r\\n border-color: #198f35 !important\\r\\n}\\r\\n\\r\\n.ui.basic.green.label {\\r\\n background-color: #fff !important;\\r\\n color: #21ba45 !important;\\r\\n border-color: #21ba45 !important\\r\\n}\\r\\n\\r\\n.ui.basic.green.labels a.label:hover, a.ui.basic.green.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #16ab39 !important;\\r\\n border-color: #16ab39 !important\\r\\n}\\r\\n\\r\\n.ui.teal.label, .ui.teal.labels .label {\\r\\n background-color: #00b5ad !important;\\r\\n border-color: #00b5ad !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.teal.labels .label:hover, a.ui.teal.label:hover {\\r\\n background-color: #009c95 !important;\\r\\n border-color: #009c95 !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.teal.corner.label, .ui.teal.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.teal.ribbon.label {\\r\\n border-color: #00827c !important\\r\\n}\\r\\n\\r\\n.ui.basic.teal.label {\\r\\n background-color: #fff !important;\\r\\n color: #00b5ad !important;\\r\\n border-color: #00b5ad !important\\r\\n}\\r\\n\\r\\n.ui.basic.teal.labels a.label:hover, a.ui.basic.teal.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #009c95 !important;\\r\\n border-color: #009c95 !important\\r\\n}\\r\\n\\r\\n.ui.blue.label, .ui.blue.labels .label {\\r\\n background-color: #2185d0 !important;\\r\\n border-color: #2185d0 !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.blue.labels .label:hover, a.ui.blue.label:hover {\\r\\n background-color: #1678c2 !important;\\r\\n border-color: #1678c2 !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.blue.corner.label, .ui.blue.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.blue.ribbon.label {\\r\\n border-color: #1a69a4 !important\\r\\n}\\r\\n\\r\\n.ui.basic.blue.label {\\r\\n background-color: #fff !important;\\r\\n color: #2185d0 !important;\\r\\n border-color: #2185d0 !important\\r\\n}\\r\\n\\r\\n.ui.basic.blue.labels a.label:hover, a.ui.basic.blue.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #1678c2 !important;\\r\\n border-color: #1678c2 !important\\r\\n}\\r\\n\\r\\n.ui.violet.label, .ui.violet.labels .label {\\r\\n background-color: #6435c9 !important;\\r\\n border-color: #6435c9 !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.violet.labels .label:hover, a.ui.violet.label:hover {\\r\\n background-color: #5829bb !important;\\r\\n border-color: #5829bb !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.violet.corner.label, .ui.violet.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.violet.ribbon.label {\\r\\n border-color: #502aa1 !important\\r\\n}\\r\\n\\r\\n.ui.basic.violet.label {\\r\\n background-color: #fff !important;\\r\\n color: #6435c9 !important;\\r\\n border-color: #6435c9 !important\\r\\n}\\r\\n\\r\\n.ui.basic.violet.labels a.label:hover, a.ui.basic.violet.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #5829bb !important;\\r\\n border-color: #5829bb !important\\r\\n}\\r\\n\\r\\n.ui.purple.label, .ui.purple.labels .label {\\r\\n background-color: #a333c8 !important;\\r\\n border-color: #a333c8 !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.purple.labels .label:hover, a.ui.purple.label:hover {\\r\\n background-color: #9627ba !important;\\r\\n border-color: #9627ba !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.purple.corner.label, .ui.purple.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.purple.ribbon.label {\\r\\n border-color: #82299f !important\\r\\n}\\r\\n\\r\\n.ui.basic.purple.label {\\r\\n background-color: #fff !important;\\r\\n color: #a333c8 !important;\\r\\n border-color: #a333c8 !important\\r\\n}\\r\\n\\r\\n.ui.basic.purple.labels a.label:hover, a.ui.basic.purple.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #9627ba !important;\\r\\n border-color: #9627ba !important\\r\\n}\\r\\n\\r\\n.ui.pink.label, .ui.pink.labels .label {\\r\\n background-color: #e03997 !important;\\r\\n border-color: #e03997 !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.pink.labels .label:hover, a.ui.pink.label:hover {\\r\\n background-color: #e61a8d !important;\\r\\n border-color: #e61a8d !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.pink.corner.label, .ui.pink.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.pink.ribbon.label {\\r\\n border-color: #c71f7e !important\\r\\n}\\r\\n\\r\\n.ui.basic.pink.label {\\r\\n background-color: #fff !important;\\r\\n color: #e03997 !important;\\r\\n border-color: #e03997 !important\\r\\n}\\r\\n\\r\\n.ui.basic.pink.labels a.label:hover, a.ui.basic.pink.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #e61a8d !important;\\r\\n border-color: #e61a8d !important\\r\\n}\\r\\n\\r\\n.ui.brown.label, .ui.brown.labels .label {\\r\\n background-color: #a5673f !important;\\r\\n border-color: #a5673f !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.brown.labels .label:hover, a.ui.brown.label:hover {\\r\\n background-color: #975b33 !important;\\r\\n border-color: #975b33 !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.brown.corner.label, .ui.brown.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.brown.ribbon.label {\\r\\n border-color: #805031 !important\\r\\n}\\r\\n\\r\\n.ui.basic.brown.label {\\r\\n background-color: #fff !important;\\r\\n color: #a5673f !important;\\r\\n border-color: #a5673f !important\\r\\n}\\r\\n\\r\\n.ui.basic.brown.labels a.label:hover, a.ui.basic.brown.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #975b33 !important;\\r\\n border-color: #975b33 !important\\r\\n}\\r\\n\\r\\n.ui.grey.label, .ui.grey.labels .label {\\r\\n background-color: #767676 !important;\\r\\n border-color: #767676 !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.grey.labels .label:hover, a.ui.grey.label:hover {\\r\\n background-color: #838383 !important;\\r\\n border-color: #838383 !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.grey.corner.label, .ui.grey.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.grey.ribbon.label {\\r\\n border-color: #805031 !important\\r\\n}\\r\\n\\r\\n.ui.basic.grey.label {\\r\\n background-color: #fff !important;\\r\\n color: #767676 !important;\\r\\n border-color: #767676 !important\\r\\n}\\r\\n\\r\\n.ui.basic.grey.labels a.label:hover, a.ui.basic.grey.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #838383 !important;\\r\\n border-color: #838383 !important\\r\\n}\\r\\n\\r\\n.ui.black.label, .ui.black.labels .label {\\r\\n background-color: #1b1c1d !important;\\r\\n border-color: #1b1c1d !important;\\r\\n color: #fff !important\\r\\n}\\r\\n\\r\\n.ui.black.labels .label:hover, a.ui.black.label:hover {\\r\\n background-color: #27292a !important;\\r\\n border-color: #27292a !important;\\r\\n color: #fff !important\\r\\n }\\r\\n\\r\\n.ui.black.corner.label, .ui.black.corner.label:hover {\\r\\n background-color: transparent !important\\r\\n}\\r\\n\\r\\n.ui.black.ribbon.label {\\r\\n border-color: #805031 !important\\r\\n}\\r\\n\\r\\n.ui.basic.black.label {\\r\\n background-color: #fff !important;\\r\\n color: #1b1c1d !important;\\r\\n border-color: #1b1c1d !important\\r\\n}\\r\\n\\r\\n.ui.basic.black.labels a.label:hover, a.ui.basic.black.label:hover {\\r\\n background-color: #fff !important;\\r\\n color: #27292a !important;\\r\\n border-color: #27292a !important\\r\\n}\\r\\n\\r\\n.ui.basic.label {\\r\\n background: none #fff;\\r\\n border: 1px solid rgba(34,36,38,.15);\\r\\n color: rgba(0,0,0,.87);\\r\\n box-shadow: none\\r\\n}\\r\\n\\r\\na.ui.basic.label:hover {\\r\\n text-decoration: none;\\r\\n background: none #fff;\\r\\n color: #1e70bf;\\r\\n box-shadow: 1px solid rgba(34,36,38,.15);\\r\\n box-shadow: none\\r\\n}\\r\\n\\r\\n.ui.basic.pointing.label:before {\\r\\n border-color: inherit\\r\\n}\\r\\n\\r\\n.ui.fluid.labels > .label, .ui.label.fluid {\\r\\n width: 100%;\\r\\n box-sizing: border-box\\r\\n}\\r\\n\\r\\n.ui.inverted.label, .ui.inverted.labels .label {\\r\\n color: rgba(255,255,255,.9) !important\\r\\n}\\r\\n\\r\\n.ui.horizontal.label, .ui.horizontal.labels .label {\\r\\n margin: 0 .5em 0 0;\\r\\n padding: .4em .833em;\\r\\n min-width: 3em;\\r\\n text-align: center\\r\\n}\\r\\n\\r\\n.ui.circular.label, .ui.circular.labels .label {\\r\\n min-width: 2em;\\r\\n min-height: 2em;\\r\\n padding: .5em !important;\\r\\n line-height: 1em;\\r\\n text-align: center;\\r\\n border-radius: 500rem\\r\\n}\\r\\n\\r\\n.ui.empty.circular.label, .ui.empty.circular.labels .label {\\r\\n min-width: 0;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n width: .5em;\\r\\n height: .5em;\\r\\n vertical-align: baseline\\r\\n}\\r\\n\\r\\n.ui.pointing.label {\\r\\n position: relative\\r\\n}\\r\\n\\r\\n.ui.attached.pointing.label {\\r\\n position: absolute\\r\\n}\\r\\n\\r\\n.ui.pointing.label:before {\\r\\n background-color: inherit;\\r\\n background-image: inherit;\\r\\n border-width: none;\\r\\n border-style: solid;\\r\\n border-color: inherit\\r\\n}\\r\\n\\r\\n.ui.pointing.label:before {\\r\\n position: absolute;\\r\\n content: '';\\r\\n transform: rotate(45deg);\\r\\n background-image: none;\\r\\n z-index: 2;\\r\\n width: .6666em;\\r\\n height: .6666em;\\r\\n transition: background .1s ease\\r\\n}\\r\\n\\r\\n.ui.pointing.label, .ui[class*=\\\"pointing above\\\"].label {\\r\\n margin-top: 1em\\r\\n}\\r\\n\\r\\n.ui.pointing.label:before, .ui[class*=\\\"pointing above\\\"].label:before {\\r\\n border-width: 1px 0 0 1px;\\r\\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\\r\\n top: 0;\\r\\n left: 50%\\r\\n }\\r\\n\\r\\n.ui[class*=\\\"bottom pointing\\\"].label, .ui[class*=\\\"pointing below\\\"].label {\\r\\n margin-top: 0;\\r\\n margin-bottom: 1em\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"bottom pointing\\\"].label:before, .ui[class*=\\\"pointing below\\\"].label:before {\\r\\n border-width: 0 1px 1px 0;\\r\\n top: auto;\\r\\n right: auto;\\r\\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\\r\\n top: 100%;\\r\\n left: 50%\\r\\n }\\r\\n\\r\\n.ui[class*=\\\"left pointing\\\"].label {\\r\\n margin-top: 0;\\r\\n margin-left: .6666em\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"left pointing\\\"].label:before {\\r\\n border-width: 0 0 1px 1px;\\r\\n transform: translateX(-50%) translateY(-50%) rotate(45deg);\\r\\n bottom: auto;\\r\\n right: auto;\\r\\n top: 50%;\\r\\n left: 0\\r\\n }\\r\\n\\r\\n.ui[class*=\\\"right pointing\\\"].label {\\r\\n margin-top: 0;\\r\\n margin-right: .6666em\\r\\n}\\r\\n\\r\\n.ui[class*=\\\"right pointing\\\"].label:before {\\r\\n border-width: 1px 1px 0 0;\\r\\n transform: translateX(50%) translateY(-50%) rotate(45deg);\\r\\n top: 50%;\\r\\n right: 0;\\r\\n bottom: auto;\\r\\n left: auto\\r\\n }\\r\\n\\r\\n.ui.basic.pointing.label:before, .ui.basic[class*=\\\"pointing above\\\"].label:before {\\r\\n margin-top: -1px\\r\\n}\\r\\n\\r\\n.ui.basic[class*=\\\"bottom pointing\\\"].label:before, .ui.basic[class*=\\\"pointing below\\\"].label:before {\\r\\n bottom: auto;\\r\\n top: 100%;\\r\\n margin-top: 1px\\r\\n}\\r\\n\\r\\n.ui.basic[class*=\\\"left pointing\\\"].label:before {\\r\\n top: 50%;\\r\\n left: -1px\\r\\n}\\r\\n\\r\\n.ui.basic[class*=\\\"right pointing\\\"].label:before {\\r\\n top: 50%;\\r\\n right: -1px\\r\\n}\\r\\n\\r\\n.ui.floating.label {\\r\\n position: absolute;\\r\\n z-index: 100;\\r\\n top: -1em;\\r\\n left: 100%;\\r\\n margin: 0 0 0 -1.5em !important\\r\\n}\\r\\n\\r\\n.ui.mini.label, .ui.mini.labels .label {\\r\\n font-size: .64285714rem\\r\\n}\\r\\n\\r\\n.ui.tiny.label, .ui.tiny.labels .label {\\r\\n font-size: .71428571rem\\r\\n}\\r\\n\\r\\n.ui.small.label, .ui.small.labels .label {\\r\\n font-size: .78571429rem\\r\\n}\\r\\n\\r\\n.ui.label, .ui.labels .label {\\r\\n font-size: .85714286rem\\r\\n}\\r\\n\\r\\n.ui.large.label, .ui.large.labels .label {\\r\\n font-size: 1rem\\r\\n}\\r\\n\\r\\n.ui.big.label, .ui.big.labels .label {\\r\\n font-size: 1.28571429rem\\r\\n}\\r\\n\\r\\n.ui.huge.label, .ui.huge.labels .label {\\r\\n font-size: 1.42857143rem\\r\\n}\\r\\n\\r\\n.ui.massive.label, .ui.massive.labels .label {\\r\\n font-size: 1.71428571rem\\r\\n}\\r\\n\\r\\n/*@media (max-width: 768px) {\\r\\n .action-box {\\r\\n margin: 0 14px;\\r\\n }\\r\\n}\\r\\n\\r\\n::-webkit-scrollbar {\\r\\n display: none;\\r\\n}\\r\\n\\r\\niframe {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: \\\"Avenir Bold\\\";\\r\\n src: url(\\\"Avenir-Bold.ttf\\\")*/\\r\\n\\r\\n/* TTF file for CSS3 browsers */\\r\\n\\r\\n/*}\\r\\n\\r\\n@font-face {\\r\\n font-family: \\\"Avenir\\\";\\r\\n src: url(\\\"Avenir-Regular.ttf\\\")*/\\r\\n\\r\\n/* TTF file for CSS3 browsers */\\r\\n\\r\\n/*}\\r\\n\\r\\n#overlap {\\r\\n position: absolute;\\r\\n visibility: hidden;\\r\\n top: 0px;\\r\\n left: 0px;\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n width: 1080px;\\r\\n height: 1920px;\\r\\n}*/\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy93YXlmaW5kZXItdmlldy93YXlmaW5kZXItdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixhQUFhO0FBQ2pCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixnQkFBZ0I7QUFDcEI7O0FBRUE7RUFDRSwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxtQ0FBbUM7RUFDbkMseUJBQXlCO0VBQ3pCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixNQUFNO0VBQ04sWUFBWTtFQUNaLHNCQUFzQjtFQUN0QixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsVUFBVTtFQUNWLGFBQWE7RUFDYixhQUFhO0VBQ2Isb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQix3QkFBd0I7RUFDeEIsdUNBQXVDO0VBQ3ZDLGlDQUFpQztBQUNuQzs7QUFHQTtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFFBQVE7RUFDUixnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLFNBQVM7RUFDVCx5Q0FBeUM7RUFDekMsc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0Qix3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixTQUFTO0VBQ1QseUNBQXlDO0VBQ3pDLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixhQUFh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Rjs7QUFFRTtJQUNFLHlCQUF5QjtJQUV6Qix5REFBeUQ7SUFDekQsUUFBUTtJQUNSLFFBQVE7SUFDUixZQUFZO0lBQ1o7RUFDRjs7QUFFRjtFQUNFO0FBQ0Y7O0FBRUE7RUFDRSxZQUFZO0VBQ1osU0FBUztFQUNUO0FBQ0Y7O0FBRUE7RUFDRSxRQUFRO0VBQ1I7QUFDRjs7QUFFQTtFQUNFLFFBQVE7RUFDUjtBQUNGOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixTQUFTO0VBQ1QsVUFBVTtFQUNWO0FBQ0Y7O0FBRUE7RUFDRTtBQUNGOztBQUVBO0VBQ0U7QUFDRjs7QUFFQTtFQUNFO0FBQ0Y7O0FBRUE7RUFDRTtBQUNGOztBQUVBO0VBQ0U7QUFDRjs7QUFFQTtFQUNFO0FBQ0Y7O0FBRUE7RUFDRTtBQUNGOztBQUVBO0VBQ0U7QUFDRjs7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFnQjhCOztBQUFFLCtCQUErQjs7QUFDL0Q7Ozs7aUNBSWlDOztBQUFFLCtCQUErQjs7QUFDbEU7Ozs7Ozs7Ozs7O0VBV0UiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL3dheWZpbmRlci12aWV3L3dheWZpbmRlci12aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLmNvbnRyb2wtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLnNlYXJjaC1ib3gge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCB7XHJcbiAgICBtYXJnaW46IDAgNTBweCAwIDA7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG59XHJcblxyXG4uYWN0aW9uLWJveCAudG9vbGJhcml0ZW0gYSB7XHJcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcclxuICAgIG1pbi13aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBcIkF2ZW5pciBCb2xkXCI7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiBcIkF2ZW5pclwiO1xyXG59XHJcblxyXG4udGl0IHtcclxuICBmb250OiA0MDAgMXJlbSAnUm9ib3RvJywgc2Fucy1zZXJpZjtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnRvcCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICB6LWluZGV4OiA5OTk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLnNsaWRlIHtcclxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgcGFkZGluZzogMDtcclxuICB3aWR0aDogMTA4MHB4O1xyXG4gIGhlaWdodDogMjgwcHg7XHJcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5zbGlkZV9faXRlbSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uaXRlbSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICBoZWlnaHQ6IDI4MHB4ICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXIgIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbi5zbGlkZS1jYXB0aW9uIHtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRvcDogNzAlO1xyXG4gIGxlZnQ6IDAlO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xyXG4gIG1hcmdpbjogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNCwgMTEsIDg2LCAwLjc1KTtcclxuICBoZWlnaHQ6IDMwJSAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMTBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2xpZGUtZGF0ZSB7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0b3A6IC0yNSU7XHJcbiAgbGVmdDogNzUlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBmb250LWZhbWlseTogJ1JvYm90byc7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI0LCAxMSwgODYsIDAuNzUpO1xyXG4gIGhlaWdodDogMjclICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xyXG4gIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLnNsaWRlLWRhdGUtdHh0IHtcclxuICBmb250LXNpemU6IDI4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtZmFtaWx5OiBBdmVuaXI7XHJcbn1cclxuXHJcbi5zbGlkZS1tb250aCB7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtZmFtaWx5OiBBdmVuaXI7XHJcbn1cclxuXHJcblxyXG5cclxuLnNsaWRlLWNhcHRpb25fX3RpdGxlIHtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC1mYW1pbHk6IEF2ZW5pcjtcclxufVxyXG5cclxuXHJcbi5zbGlkZS1jYXB0aW9uX19kZXNjIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIGZvbnQtZmFtaWx5OiBBdmVuaXI7XHJcbn1cclxuXHJcbi5vd2wtaXRlbS5hY3RpdmUuY2VudGVyIC5zbGlkZS1jYXB0aW9uIHtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiAxcyAuMnMgZmFkZUluVXAgYm90aDtcclxuICBhbmltYXRpb246IDFzIC4ycyBmYWRlSW5VcCBib3RoO1xyXG59XHJcblxyXG4ub3dsLWl0ZW0uYWN0aXZlLmNlbnRlciAuc2xpZGUtZGF0ZSB7XHJcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxufVxyXG5cclxuLm93bC1pdGVtLmFjdGl2ZS5jZW50ZXIgLnNsaWRlLWNhcHRpb25fX3RpdGxlIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogMXMgLjJzIGZhZGVJblVwIGJvdGg7XHJcbiAgYW5pbWF0aW9uOiAxcyAuMnMgZmFkZUluVXAgYm90aDtcclxufVxyXG5cclxuLm93bC1pdGVtLmFjdGl2ZS5jZW50ZXIgLnNsaWRlLWNhcHRpb25fX2Rlc2Mge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiAxcyAuNnMgZmFkZUluVXAgYm90aDtcclxuICBhbmltYXRpb246IDFzIC42cyBmYWRlSW5VcCBib3RoO1xyXG59XHJcblxyXG4ub3dsLWl0ZW0uYWN0aXZlLmNlbnRlciAuYnRuIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogMXMgLjlzIGZsaXBJblggYm90aDtcclxuICBhbmltYXRpb246IDFzIC45cyBmbGlwSW5YIGJvdGg7XHJcbn1cclxuXHJcbi5vd2wtaXRlbS5hY3RpdmUgLnNsaWRlLWNhcHRpb24ge1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbn1cclxuXHJcbi5vd2wtaXRlbS5hY3RpdmUgLnNsaWRlLWRhdGUge1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbn1cclxuXHJcbi5zbGlkZS1jYXB0aW9uX19kZXNjIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIGZvbnQtZmFtaWx5OiBBdmVuaXI7XHJcbn1cclxuXHJcbi5idG4ge1xyXG4gIGZvbnQtc2l6ZTogMTZweDtcclxuICBmb250LXdlaWdodDogMzAwO1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgcGFkZGluZzogLjZyZW0gMnJlbTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIG1hcmdpbi10b3A6IC41cmVtO1xyXG59XHJcblxyXG4ubWFwIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcblxyXG5cclxuLypTZW1hbnRpYyBjc3MqL1xyXG4qIVxyXG4qICMgU2VtYW50aWMgVUkgMi4yLjEyIC0gTGFiZWxcclxuKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXHJcbipcclxuKlxyXG4qIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxyXG4qIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcclxuKlxyXG4qL1xyXG5cclxuLnVpLmxhYmVsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG4gIG1hcmdpbjogMCAuMTQyODU3MTRlbTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThlOGU4O1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgcGFkZGluZzogLjU4MzNlbSAuODMzZW07XHJcbiAgY29sb3I6IHJnYmEoMCwwLDAsLjYpO1xyXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgYm9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1yYWRpdXM6IC4yODU3MTQyOXJlbTtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgLjFzIGVhc2U7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZVxyXG59XHJcblxyXG4udWkubGFiZWw6Zmlyc3QtY2hpbGQge1xyXG4gIG1hcmdpbi1sZWZ0OiAwXHJcbn1cclxuXHJcbi51aS5sYWJlbDpsYXN0LWNoaWxkIHtcclxuICBtYXJnaW4tcmlnaHQ6IDBcclxufVxyXG5cclxuYS51aS5sYWJlbCB7XHJcbiAgY3Vyc29yOiBwb2ludGVyXHJcbn1cclxuXHJcbi51aS5sYWJlbCA+IGEge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBjb2xvcjogaW5oZXJpdDtcclxuICBvcGFjaXR5OiAuNTtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IC4xcyBvcGFjaXR5IGVhc2U7XHJcbiAgdHJhbnNpdGlvbjogLjFzIG9wYWNpdHkgZWFzZVxyXG59XHJcblxyXG4gIC51aS5sYWJlbCA+IGE6aG92ZXIge1xyXG4gICAgb3BhY2l0eTogMVxyXG4gIH1cclxuXHJcbi51aS5sYWJlbCA+IGltZyB7XHJcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIGhlaWdodDogMi4xNjY2ZW0gIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkubGFiZWwgPiAuaWNvbiB7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgbWFyZ2luOiAwIC43NWVtIDAgMFxyXG59XHJcblxyXG4udWkubGFiZWwgPiAuZGV0YWlsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIG1hcmdpbi1sZWZ0OiAxZW07XHJcbiAgb3BhY2l0eTogLjhcclxufVxyXG5cclxuICAudWkubGFiZWwgPiAuZGV0YWlsIC5pY29uIHtcclxuICAgIG1hcmdpbjogMCAuMjVlbSAwIDBcclxuICB9XHJcblxyXG4udWkubGFiZWwgPiAuY2xvc2UuaWNvbiwgLnVpLmxhYmVsID4gLmRlbGV0ZS5pY29uIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gIG1hcmdpbi1sZWZ0OiAuNWVtO1xyXG4gIGZvbnQtc2l6ZTogLjkyODU3MTQzZW07XHJcbiAgb3BhY2l0eTogLjU7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xcyBlYXNlO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjFzIGVhc2VcclxufVxyXG5cclxuICAudWkubGFiZWwgPiAuZGVsZXRlLmljb246aG92ZXIge1xyXG4gICAgb3BhY2l0eTogMVxyXG4gIH1cclxuXHJcbi51aS5sYWJlbHMgPiAubGFiZWwge1xyXG4gIG1hcmdpbjogMCAuNWVtIC41ZW0gMFxyXG59XHJcblxyXG4udWkuaGVhZGVyID4gLnVpLmxhYmVsIHtcclxuICBtYXJnaW4tdG9wOiAtLjI5MTY1ZW1cclxufVxyXG5cclxuLnVpLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkudG9wLmxlZnQuYXR0YWNoZWQubGFiZWwsIC51aS5ib3R0b20uYXR0YWNoZWQuc2VnbWVudCA+IC51aS50b3AubGVmdC5hdHRhY2hlZC5sYWJlbCB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMFxyXG59XHJcblxyXG4udWkuYXR0YWNoZWQuc2VnbWVudCA+IC51aS50b3AucmlnaHQuYXR0YWNoZWQubGFiZWwsIC51aS5ib3R0b20uYXR0YWNoZWQuc2VnbWVudCA+IC51aS50b3AucmlnaHQuYXR0YWNoZWQubGFiZWwge1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwXHJcbn1cclxuXHJcbi51aS50b3AuYXR0YWNoZWQuc2VnbWVudCA+IC51aS5ib3R0b20ubGVmdC5hdHRhY2hlZC5sYWJlbCB7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMFxyXG59XHJcblxyXG4udWkudG9wLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkuYm90dG9tLnJpZ2h0LmF0dGFjaGVkLmxhYmVsIHtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMFxyXG59XHJcblxyXG4udWkudG9wLmF0dGFjaGVkLmxhYmVsICsgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0gKyAqLCAudWkudG9wLmF0dGFjaGVkLmxhYmVsOmZpcnN0LWNoaWxkICsgOm5vdCguYXR0YWNoZWQpIHtcclxuICBtYXJnaW4tdG9wOiAycmVtICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmJvdHRvbS5hdHRhY2hlZC5sYWJlbDpmaXJzdC1jaGlsZCB+IDpsYXN0LWNoaWxkOm5vdCguYXR0YWNoZWQpIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDJyZW0gIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkuaW1hZ2UubGFiZWwge1xyXG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIG1heC13aWR0aDogOTk5OXB4O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xyXG4gIHBhZGRpbmc6IC41ODMzZW0gLjgzM2VtIC41ODMzZW0gLjVlbTtcclxuICBib3JkZXItcmFkaXVzOiAuMjg1NzE0MjlyZW07XHJcbiAgYm94LXNoYWRvdzogbm9uZVxyXG59XHJcblxyXG4gIC51aS5pbWFnZS5sYWJlbCBpbWcge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIGhlaWdodDogMi4xNjY2ZW07XHJcbiAgICBtYXJnaW46IC0uNTgzM2VtIC41ZW0gLS41ODMzZW0gLS41ZW07XHJcbiAgICBib3JkZXItcmFkaXVzOiAuMjg1NzE0MjlyZW0gMCAwIC4yODU3MTQyOXJlbVxyXG4gIH1cclxuXHJcbiAgLnVpLmltYWdlLmxhYmVsIC5kZXRhaWwge1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuMSk7XHJcbiAgICBtYXJnaW46IC0uNTgzM2VtIC0uODMzZW0gLS41ODMzZW0gLjVlbTtcclxuICAgIHBhZGRpbmc6IC41ODMzZW0gLjgzM2VtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMCAuMjg1NzE0MjlyZW0gLjI4NTcxNDI5cmVtIDBcclxuICB9XHJcblxyXG4udWkudGFnLmxhYmVsLCAudWkudGFnLmxhYmVscyAubGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiAxZW07XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmctbGVmdDogMS41ZW07XHJcbiAgcGFkZGluZy1yaWdodDogMS41ZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMCAuMjg1NzE0MjlyZW0gLjI4NTcxNDI5cmVtIDA7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xyXG4gIHRyYW5zaXRpb246IG5vbmVcclxufVxyXG5cclxuICAudWkudGFnLmxhYmVsOmJlZm9yZSwgLnVpLnRhZy5sYWJlbHMgLmxhYmVsOmJlZm9yZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDUwJSkgcm90YXRlKC00NWRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCg1MCUpIHJvdGF0ZSgtNDVkZWcpO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICByaWdodDogMTAwJTtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgICB3aWR0aDogMS41NmVtO1xyXG4gICAgaGVpZ2h0OiAxLjU2ZW07XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7XHJcbiAgICB0cmFuc2l0aW9uOiBub25lXHJcbiAgfVxyXG5cclxuICAudWkudGFnLmxhYmVsOmFmdGVyLCAudWkudGFnLmxhYmVscyAubGFiZWw6YWZ0ZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIGxlZnQ6IC0uMjVlbTtcclxuICAgIG1hcmdpbi10b3A6IC0uMjVlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICAgIHdpZHRoOiAuNWVtO1xyXG4gICAgaGVpZ2h0OiAuNWVtO1xyXG4gICAgYm94LXNoYWRvdzogMCAtMXB4IDFweCAwIHJnYmEoMCwwLDAsLjMpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAwcmVtXHJcbiAgfVxyXG5cclxuLnVpLmNvcm5lci5sYWJlbCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZThlOGU4O1xyXG4gIHdpZHRoOiA0ZW07XHJcbiAgaGVpZ2h0OiA0ZW07XHJcbiAgei1pbmRleDogMTtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMXMgZWFzZTtcclxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjFzIGVhc2VcclxufVxyXG5cclxuLnVpLmNvcm5lci5sYWJlbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudFxyXG59XHJcblxyXG4gIC51aS5jb3JuZXIubGFiZWw6YWZ0ZXIge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgei1pbmRleDogLTE7XHJcbiAgICB3aWR0aDogMDtcclxuICAgIGhlaWdodDogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItdG9wOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJpZ2h0OiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItYm90dG9tOiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItbGVmdDogMCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci1yaWdodC1jb2xvcjogaW5oZXJpdDtcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xcyBlYXNlO1xyXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xcyBlYXNlXHJcbiAgfVxyXG5cclxuICAudWkuY29ybmVyLmxhYmVsIC5pY29uIHtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHRvcDogLjY0Mjg1NzE0ZW07XHJcbiAgICBsZWZ0OiAuNzg1NzE0MjllbTtcclxuICAgIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xyXG4gICAgbWFyZ2luOiAwXHJcbiAgfVxyXG5cclxuLnVpLmxlZnQuY29ybmVyLmxhYmVsLCAudWkubGVmdC5jb3JuZXIubGFiZWw6YWZ0ZXIge1xyXG4gIHJpZ2h0OiBhdXRvO1xyXG4gIGxlZnQ6IDBcclxufVxyXG5cclxuICAudWkubGVmdC5jb3JuZXIubGFiZWw6YWZ0ZXIge1xyXG4gICAgYm9yZGVyLXRvcDogNGVtIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJpZ2h0OiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLWxlZnQ6IDAgc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItdG9wLWNvbG9yOiBpbmhlcml0XHJcbiAgfVxyXG5cclxuICAudWkubGVmdC5jb3JuZXIubGFiZWwgLmljb24ge1xyXG4gICAgbGVmdDogLS43ODU3MTQyOWVtXHJcbiAgfVxyXG5cclxuLnVpLnNlZ21lbnQgPiAudWkuY29ybmVyLmxhYmVsIHtcclxuICB0b3A6IC0xcHg7XHJcbiAgcmlnaHQ6IC0xcHhcclxufVxyXG5cclxuLnVpLnNlZ21lbnQgPiAudWkubGVmdC5jb3JuZXIubGFiZWwge1xyXG4gIHJpZ2h0OiBhdXRvO1xyXG4gIGxlZnQ6IC0xcHhcclxufVxyXG5cclxuLnVpLnJpYmJvbi5sYWJlbCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbjogMDtcclxuICBtaW4td2lkdGg6IC13ZWJraXQtbWF4LWNvbnRlbnQ7XHJcbiAgbWluLXdpZHRoOiAtbW96LW1heC1jb250ZW50O1xyXG4gIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XHJcbiAgYm9yZGVyLXJhZGl1czogMCAuMjg1NzE0MjlyZW0gLjI4NTcxNDI5cmVtIDA7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLC4xNSlcclxufVxyXG5cclxuICAudWkucmliYm9uLmxhYmVsOmFmdGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgdG9wOiAxMDAlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAwIDEuMmVtIDEuMmVtIDA7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBpbmhlcml0O1xyXG4gICAgd2lkdGg6IDA7XHJcbiAgICBoZWlnaHQ6IDBcclxuICB9XHJcblxyXG4udWkucmliYm9uLmxhYmVsIHtcclxuICBsZWZ0OiBjYWxjKC0xcmVtIC0gMS4yZW0pO1xyXG4gIG1hcmdpbi1yaWdodDogLTEuMmVtO1xyXG4gIHBhZGRpbmctbGVmdDogY2FsYygxcmVtICsgMS4yZW0pO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDEuMmVtXHJcbn1cclxuXHJcbi51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xyXG4gIGxlZnQ6IGNhbGMoMTAwJSArIDFyZW0gKyAxLjJlbSk7XHJcbiAgcGFkZGluZy1sZWZ0OiAxLjJlbTtcclxuICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDFyZW0gKyAxLjJlbSlcclxufVxyXG5cclxuLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCB7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcclxuICBib3JkZXItcmFkaXVzOiAuMjg1NzE0MjlyZW0gMCAwIC4yODU3MTQyOXJlbVxyXG59XHJcblxyXG4gIC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWw6YWZ0ZXIge1xyXG4gICAgbGVmdDogYXV0bztcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogMS4yZW0gMS4yZW0gMCAwO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci10b3AtY29sb3I6IGluaGVyaXRcclxuICB9XHJcblxyXG4udWkuY2FyZCAuaW1hZ2UgPiAucmliYm9uLmxhYmVsLCAudWkuaW1hZ2UgPiAucmliYm9uLmxhYmVsIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxcmVtXHJcbn1cclxuXHJcbi51aS5jYXJkIC5pbWFnZSA+IC51aS5yaWJib24ubGFiZWwsIC51aS5pbWFnZSA+IC51aS5yaWJib24ubGFiZWwge1xyXG4gIGxlZnQ6IGNhbGMoLjA1cmVtIC0gMS4yZW0pXHJcbn1cclxuXHJcbi51aS5jYXJkIC5pbWFnZSA+IC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwsIC51aS5pbWFnZSA+IC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xyXG4gIGxlZnQ6IGNhbGMoMTAwJSArIC0uMDVyZW0gKyAxLjJlbSk7XHJcbiAgcGFkZGluZy1sZWZ0OiAuODMzZW1cclxufVxyXG5cclxuLnVpLnRhYmxlIHRkID4gLnVpLnJpYmJvbi5sYWJlbCB7XHJcbiAgbGVmdDogY2FsYygtLjc4NTcxNDI5ZW0gLSAxLjJlbSlcclxufVxyXG5cclxuLnVpLnRhYmxlIHRkID4gLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCB7XHJcbiAgbGVmdDogY2FsYygxMDAlICsgLjc4NTcxNDI5ZW0gKyAxLjJlbSk7XHJcbiAgcGFkZGluZy1sZWZ0OiAuODMzZW1cclxufVxyXG5cclxuLnVpLmF0dGFjaGVkLmxhYmVsLCAudWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmxhYmVsIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHBhZGRpbmc6IC43NWVtIDFlbTtcclxuICBib3JkZXItcmFkaXVzOiAuMjE0Mjg1NzFyZW0gLjIxNDI4NTcxcmVtIDAgMFxyXG59XHJcblxyXG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLmxhYmVsIHtcclxuICB0b3A6IGF1dG87XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAgMCAuMjE0Mjg1NzFyZW0gLjIxNDI4NTcxcmVtXHJcbn1cclxuXHJcbi51aVtjbGFzcyo9XCJ0b3AgbGVmdCBhdHRhY2hlZFwiXS5sYWJlbCB7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1yYWRpdXM6IC4yMTQyODU3MXJlbSAwIC4yODU3MTQyOXJlbSAwXHJcbn1cclxuXHJcbi51aVtjbGFzcyo9XCJ0b3AgcmlnaHQgYXR0YWNoZWRcIl0ubGFiZWwge1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIGxlZnQ6IGF1dG87XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm9yZGVyLXJhZGl1czogMCAuMjE0Mjg1NzFyZW0gMCAuMjg1NzE0MjlyZW1cclxufVxyXG5cclxuLnVpW2NsYXNzKj1cImJvdHRvbSBsZWZ0IGF0dGFjaGVkXCJdLmxhYmVsIHtcclxuICB3aWR0aDogYXV0bztcclxuICB0b3A6IGF1dG87XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAgLjI4NTcxNDI5cmVtIDAgLjIxNDI4NTcxcmVtXHJcbn1cclxuXHJcbi51aVtjbGFzcyo9XCJib3R0b20gcmlnaHQgYXR0YWNoZWRcIl0ubGFiZWwge1xyXG4gIHRvcDogYXV0bztcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogYXV0bztcclxuICByaWdodDogMDtcclxuICB3aWR0aDogYXV0bztcclxuICBib3JkZXItcmFkaXVzOiAuMjg1NzE0MjlyZW0gMCAuMjE0Mjg1NzFyZW0gMFxyXG59XHJcblxyXG4udWkubGFiZWwuZGlzYWJsZWQge1xyXG4gIG9wYWNpdHk6IC41XHJcbn1cclxuXHJcbmEudWkubGFiZWw6aG92ZXIsIGEudWkubGFiZWxzIC5sYWJlbDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcclxuICBib3JkZXItY29sb3I6ICNlMGUwZTA7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICBjb2xvcjogcmdiYSgwLDAsMCwuOClcclxufVxyXG5cclxuICAudWkubGFiZWxzIGEubGFiZWw6aG92ZXI6YmVmb3JlLCBhLnVpLmxhYmVsOmhvdmVyOmJlZm9yZSB7XHJcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwuOClcclxuICB9XHJcblxyXG4udWkuYWN0aXZlLmxhYmVsIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkMGQwO1xyXG4gIGJvcmRlci1jb2xvcjogI2QwZDBkMDtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIGNvbG9yOiByZ2JhKDAsMCwwLC45NSlcclxufVxyXG5cclxuICAudWkuYWN0aXZlLmxhYmVsOmJlZm9yZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkMGQwO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICAgIGNvbG9yOiByZ2JhKDAsMCwwLC45NSlcclxuICB9XHJcblxyXG5hLnVpLmFjdGl2ZS5sYWJlbDpob3ZlciwgYS51aS5sYWJlbHMgLmFjdGl2ZS5sYWJlbDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M4YzhjODtcclxuICBib3JkZXItY29sb3I6ICNjOGM4Yzg7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICBjb2xvcjogcmdiYSgwLDAsMCwuOTUpXHJcbn1cclxuXHJcbi51aS5sYWJlbHMgYS5hY3RpdmUubGFiZWw6QWN0aXZlSG92ZXI6YmVmb3JlLCBhLnVpLmFjdGl2ZS5sYWJlbDpBY3RpdmVIb3ZlcjpiZWZvcmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGM4Yzg7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICBjb2xvcjogcmdiYSgwLDAsMCwuOTUpXHJcbn1cclxuXHJcbi51aS5sYWJlbC52aXNpYmxlOm5vdCguZHJvcGRvd24pLCAudWkubGFiZWxzLnZpc2libGUgLmxhYmVsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkubGFiZWwuaGlkZGVuLCAudWkubGFiZWxzLmhpZGRlbiAubGFiZWwge1xyXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkucmVkLmxhYmVsLCAudWkucmVkLmxhYmVscyAubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkYjI4MjggIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICNkYjI4MjggIWltcG9ydGFudDtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50XHJcbn1cclxuXHJcbiAgLnVpLnJlZC5sYWJlbHMgLmxhYmVsOmhvdmVyLCBhLnVpLnJlZC5sYWJlbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxuICB9XHJcblxyXG4udWkucmVkLmNvcm5lci5sYWJlbCwgLnVpLnJlZC5jb3JuZXIubGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLnJlZC5yaWJib24ubGFiZWwge1xyXG4gIGJvcmRlci1jb2xvcjogI2IyMWUxZSAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy5yZWQubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2RiMjgyOCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogI2RiMjgyOCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy5yZWQubGFiZWxzIGEubGFiZWw6aG92ZXIsIGEudWkuYmFzaWMucmVkLmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkub3JhbmdlLmxhYmVsLCAudWkub3JhbmdlLmxhYmVscyAubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMjcxMWMgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICNmMjcxMWMgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50XHJcbn1cclxuXHJcbiAgLnVpLm9yYW5nZS5sYWJlbHMgLmxhYmVsOmhvdmVyLCBhLnVpLm9yYW5nZS5sYWJlbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjI2MjAyICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICNmMjYyMDIgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxuICB9XHJcblxyXG4udWkub3JhbmdlLmNvcm5lci5sYWJlbCwgLnVpLm9yYW5nZS5jb3JuZXIubGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLm9yYW5nZS5yaWJib24ubGFiZWwge1xyXG4gIGJvcmRlci1jb2xvcjogI2NmNTkwYyAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy5vcmFuZ2UubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2YyNzExYyAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogI2YyNzExYyAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy5vcmFuZ2UubGFiZWxzIGEubGFiZWw6aG92ZXIsIGEudWkuYmFzaWMub3JhbmdlLmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICNmMjYyMDIgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICNmMjYyMDIgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkueWVsbG93LmxhYmVsLCAudWkueWVsbG93LmxhYmVscyAubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmYmJkMDggIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICNmYmJkMDggIWltcG9ydGFudDtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50XHJcbn1cclxuXHJcbiAgLnVpLnllbGxvdy5sYWJlbHMgLmxhYmVsOmhvdmVyLCBhLnVpLnllbGxvdy5sYWJlbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxuICB9XHJcblxyXG4udWkueWVsbG93LmNvcm5lci5sYWJlbCwgLnVpLnllbGxvdy5jb3JuZXIubGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLnllbGxvdy5yaWJib24ubGFiZWwge1xyXG4gIGJvcmRlci1jb2xvcjogI2NkOTkwMyAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy55ZWxsb3cubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2ZiYmQwOCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogI2ZiYmQwOCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy55ZWxsb3cubGFiZWxzIGEubGFiZWw6aG92ZXIsIGEudWkuYmFzaWMueWVsbG93LmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkub2xpdmUubGFiZWwsIC51aS5vbGl2ZS5sYWJlbHMgLmxhYmVsIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjVjYzE4ICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjYjVjYzE4ICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudFxyXG59XHJcblxyXG4gIC51aS5vbGl2ZS5sYWJlbHMgLmxhYmVsOmhvdmVyLCBhLnVpLm9saXZlLmxhYmVsOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcclxuICAgIGJvcmRlci1jb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudFxyXG4gIH1cclxuXHJcbi51aS5vbGl2ZS5jb3JuZXIubGFiZWwsIC51aS5vbGl2ZS5jb3JuZXIubGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLm9saXZlLnJpYmJvbi5sYWJlbCB7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMTk4ZjM1ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmJhc2ljLm9saXZlLmxhYmVsIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICNiNWNjMTggIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICNiNWNjMTggIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkuYmFzaWMub2xpdmUubGFiZWxzIGEubGFiZWw6aG92ZXIsIGEudWkuYmFzaWMub2xpdmUubGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5ncmVlbi5sYWJlbCwgLnVpLmdyZWVuLmxhYmVscyAubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMyMWJhNDUgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICMyMWJhNDUgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50XHJcbn1cclxuXHJcbiAgLnVpLmdyZWVuLmxhYmVscyAubGFiZWw6aG92ZXIsIGEudWkuZ3JlZW4ubGFiZWw6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzE2YWIzOSAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50XHJcbiAgfVxyXG5cclxuLnVpLmdyZWVuLmNvcm5lci5sYWJlbCwgLnVpLmdyZWVuLmNvcm5lci5sYWJlbDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkuZ3JlZW4ucmliYm9uLmxhYmVsIHtcclxuICBib3JkZXItY29sb3I6ICMxOThmMzUgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkuYmFzaWMuZ3JlZW4ubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICBjb2xvcjogIzIxYmE0NSAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogIzIxYmE0NSAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy5ncmVlbi5sYWJlbHMgYS5sYWJlbDpob3ZlciwgYS51aS5iYXNpYy5ncmVlbi5sYWJlbDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLnRlYWwubGFiZWwsIC51aS50ZWFsLmxhYmVscyAubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI1YWQgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICMwMGI1YWQgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50XHJcbn1cclxuXHJcbiAgLnVpLnRlYWwubGFiZWxzIC5sYWJlbDpob3ZlciwgYS51aS50ZWFsLmxhYmVsOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcclxuICAgIGJvcmRlci1jb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudFxyXG4gIH1cclxuXHJcbi51aS50ZWFsLmNvcm5lci5sYWJlbCwgLnVpLnRlYWwuY29ybmVyLmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS50ZWFsLnJpYmJvbi5sYWJlbCB7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMDA4MjdjICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmJhc2ljLnRlYWwubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICBjb2xvcjogIzAwYjVhZCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogIzAwYjVhZCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy50ZWFsLmxhYmVscyBhLmxhYmVsOmhvdmVyLCBhLnVpLmJhc2ljLnRlYWwubGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICBjb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5ibHVlLmxhYmVsLCAudWkuYmx1ZS5sYWJlbHMgLmxhYmVsIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE4NWQwICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMjE4NWQwICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudFxyXG59XHJcblxyXG4gIC51aS5ibHVlLmxhYmVscyAubGFiZWw6aG92ZXIsIGEudWkuYmx1ZS5sYWJlbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTY3OGMyICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICMxNjc4YzIgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxuICB9XHJcblxyXG4udWkuYmx1ZS5jb3JuZXIubGFiZWwsIC51aS5ibHVlLmNvcm5lci5sYWJlbDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkuYmx1ZS5yaWJib24ubGFiZWwge1xyXG4gIGJvcmRlci1jb2xvcjogIzFhNjlhNCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy5ibHVlLmxhYmVsIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICMyMTg1ZDAgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICMyMTg1ZDAgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkuYmFzaWMuYmx1ZS5sYWJlbHMgYS5sYWJlbDpob3ZlciwgYS51aS5iYXNpYy5ibHVlLmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICMxNjc4YzIgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICMxNjc4YzIgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkudmlvbGV0LmxhYmVsLCAudWkudmlvbGV0LmxhYmVscyAubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1YzkgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICM2NDM1YzkgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50XHJcbn1cclxuXHJcbiAgLnVpLnZpb2xldC5sYWJlbHMgLmxhYmVsOmhvdmVyLCBhLnVpLnZpb2xldC5sYWJlbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxuICB9XHJcblxyXG4udWkudmlvbGV0LmNvcm5lci5sYWJlbCwgLnVpLnZpb2xldC5jb3JuZXIubGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLnZpb2xldC5yaWJib24ubGFiZWwge1xyXG4gIGJvcmRlci1jb2xvcjogIzUwMmFhMSAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy52aW9sZXQubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICBjb2xvcjogIzY0MzVjOSAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogIzY0MzVjOSAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy52aW9sZXQubGFiZWxzIGEubGFiZWw6aG92ZXIsIGEudWkuYmFzaWMudmlvbGV0LmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkucHVycGxlLmxhYmVsLCAudWkucHVycGxlLmxhYmVscyAubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNhMzMzYzggIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICNhMzMzYzggIWltcG9ydGFudDtcclxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50XHJcbn1cclxuXHJcbiAgLnVpLnB1cnBsZS5sYWJlbHMgLmxhYmVsOmhvdmVyLCBhLnVpLnB1cnBsZS5sYWJlbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxuICB9XHJcblxyXG4udWkucHVycGxlLmNvcm5lci5sYWJlbCwgLnVpLnB1cnBsZS5jb3JuZXIubGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLnB1cnBsZS5yaWJib24ubGFiZWwge1xyXG4gIGJvcmRlci1jb2xvcjogIzgyMjk5ZiAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy5wdXJwbGUubGFiZWwge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICBjb2xvcjogI2EzMzNjOCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogI2EzMzNjOCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy5wdXJwbGUubGFiZWxzIGEubGFiZWw6aG92ZXIsIGEudWkuYmFzaWMucHVycGxlLmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkucGluay5sYWJlbCwgLnVpLnBpbmsubGFiZWxzIC5sYWJlbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwMzk5NyAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogI2UwMzk5NyAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxufVxyXG5cclxuICAudWkucGluay5sYWJlbHMgLmxhYmVsOmhvdmVyLCBhLnVpLnBpbmsubGFiZWw6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50XHJcbiAgfVxyXG5cclxuLnVpLnBpbmsuY29ybmVyLmxhYmVsLCAudWkucGluay5jb3JuZXIubGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLnBpbmsucmliYm9uLmxhYmVsIHtcclxuICBib3JkZXItY29sb3I6ICNjNzFmN2UgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkuYmFzaWMucGluay5sYWJlbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjZTAzOTk3ICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZTAzOTk3ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmJhc2ljLnBpbmsubGFiZWxzIGEubGFiZWw6aG92ZXIsIGEudWkuYmFzaWMucGluay5sYWJlbDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmJyb3duLmxhYmVsLCAudWkuYnJvd24ubGFiZWxzIC5sYWJlbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E1NjczZiAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogI2E1NjczZiAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxufVxyXG5cclxuICAudWkuYnJvd24ubGFiZWxzIC5sYWJlbDpob3ZlciwgYS51aS5icm93bi5sYWJlbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxuICB9XHJcblxyXG4udWkuYnJvd24uY29ybmVyLmxhYmVsLCAudWkuYnJvd24uY29ybmVyLmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5icm93bi5yaWJib24ubGFiZWwge1xyXG4gIGJvcmRlci1jb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy5icm93bi5sYWJlbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjYTU2NzNmICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjYTU2NzNmICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmJhc2ljLmJyb3duLmxhYmVscyBhLmxhYmVsOmhvdmVyLCBhLnVpLmJhc2ljLmJyb3duLmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICM5NzViMzMgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkuZ3JleS5sYWJlbCwgLnVpLmdyZXkubGFiZWxzIC5sYWJlbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxufVxyXG5cclxuICAudWkuZ3JleS5sYWJlbHMgLmxhYmVsOmhvdmVyLCBhLnVpLmdyZXkubGFiZWw6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50XHJcbiAgfVxyXG5cclxuLnVpLmdyZXkuY29ybmVyLmxhYmVsLCAudWkuZ3JleS5jb3JuZXIubGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmdyZXkucmliYm9uLmxhYmVsIHtcclxuICBib3JkZXItY29sb3I6ICM4MDUwMzEgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkuYmFzaWMuZ3JleS5sYWJlbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmJhc2ljLmdyZXkubGFiZWxzIGEubGFiZWw6aG92ZXIsIGEudWkuYmFzaWMuZ3JleS5sYWJlbDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmJsYWNrLmxhYmVsLCAudWkuYmxhY2subGFiZWxzIC5sYWJlbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFiMWMxZCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogIzFiMWMxZCAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxufVxyXG5cclxuICAudWkuYmxhY2subGFiZWxzIC5sYWJlbDpob3ZlciwgYS51aS5ibGFjay5sYWJlbDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjcyOTJhICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnRcclxuICB9XHJcblxyXG4udWkuYmxhY2suY29ybmVyLmxhYmVsLCAudWkuYmxhY2suY29ybmVyLmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5ibGFjay5yaWJib24ubGFiZWwge1xyXG4gIGJvcmRlci1jb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50XHJcbn1cclxuXHJcbi51aS5iYXNpYy5ibGFjay5sYWJlbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjMWIxYzFkICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMWIxYzFkICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmJhc2ljLmJsYWNrLmxhYmVscyBhLmxhYmVsOmhvdmVyLCBhLnVpLmJhc2ljLmJsYWNrLmxhYmVsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudFxyXG59XHJcblxyXG4udWkuYmFzaWMubGFiZWwge1xyXG4gIGJhY2tncm91bmQ6IG5vbmUgI2ZmZjtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LDM2LDM4LC4xNSk7XHJcbiAgY29sb3I6IHJnYmEoMCwwLDAsLjg3KTtcclxuICBib3gtc2hhZG93OiBub25lXHJcbn1cclxuXHJcbmEudWkuYmFzaWMubGFiZWw6aG92ZXIge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBiYWNrZ3JvdW5kOiBub25lICNmZmY7XHJcbiAgY29sb3I6ICMxZTcwYmY7XHJcbiAgYm94LXNoYWRvdzogMXB4IHNvbGlkIHJnYmEoMzQsMzYsMzgsLjE1KTtcclxuICBib3gtc2hhZG93OiBub25lXHJcbn1cclxuXHJcbi51aS5iYXNpYy5wb2ludGluZy5sYWJlbDpiZWZvcmUge1xyXG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdFxyXG59XHJcblxyXG4udWkuZmx1aWQubGFiZWxzID4gLmxhYmVsLCAudWkubGFiZWwuZmx1aWQge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3hcclxufVxyXG5cclxuLnVpLmludmVydGVkLmxhYmVsLCAudWkuaW52ZXJ0ZWQubGFiZWxzIC5sYWJlbCB7XHJcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsLjkpICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLmhvcml6b250YWwubGFiZWwsIC51aS5ob3Jpem9udGFsLmxhYmVscyAubGFiZWwge1xyXG4gIG1hcmdpbjogMCAuNWVtIDAgMDtcclxuICBwYWRkaW5nOiAuNGVtIC44MzNlbTtcclxuICBtaW4td2lkdGg6IDNlbTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXJcclxufVxyXG5cclxuLnVpLmNpcmN1bGFyLmxhYmVsLCAudWkuY2lyY3VsYXIubGFiZWxzIC5sYWJlbCB7XHJcbiAgbWluLXdpZHRoOiAyZW07XHJcbiAgbWluLWhlaWdodDogMmVtO1xyXG4gIHBhZGRpbmc6IC41ZW0gIWltcG9ydGFudDtcclxuICBsaW5lLWhlaWdodDogMWVtO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiA1MDByZW1cclxufVxyXG5cclxuLnVpLmVtcHR5LmNpcmN1bGFyLmxhYmVsLCAudWkuZW1wdHkuY2lyY3VsYXIubGFiZWxzIC5sYWJlbCB7XHJcbiAgbWluLXdpZHRoOiAwO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB3aWR0aDogLjVlbTtcclxuICBoZWlnaHQ6IC41ZW07XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lXHJcbn1cclxuXHJcbi51aS5wb2ludGluZy5sYWJlbCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlXHJcbn1cclxuXHJcbi51aS5hdHRhY2hlZC5wb2ludGluZy5sYWJlbCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlXHJcbn1cclxuXHJcbi51aS5wb2ludGluZy5sYWJlbDpiZWZvcmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogaW5oZXJpdDtcclxuICBib3JkZXItd2lkdGg6IG5vbmU7XHJcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICBib3JkZXItY29sb3I6IGluaGVyaXRcclxufVxyXG5cclxuLnVpLnBvaW50aW5nLmxhYmVsOmJlZm9yZSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIHotaW5kZXg6IDI7XHJcbiAgd2lkdGg6IC42NjY2ZW07XHJcbiAgaGVpZ2h0OiAuNjY2NmVtO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXMgZWFzZTtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xcyBlYXNlXHJcbn1cclxuXHJcbi51aS5wb2ludGluZy5sYWJlbCwgLnVpW2NsYXNzKj1cInBvaW50aW5nIGFib3ZlXCJdLmxhYmVsIHtcclxuICBtYXJnaW4tdG9wOiAxZW1cclxufVxyXG5cclxuICAudWkucG9pbnRpbmcubGFiZWw6YmVmb3JlLCAudWlbY2xhc3MqPVwicG9pbnRpbmcgYWJvdmVcIl0ubGFiZWw6YmVmb3JlIHtcclxuICAgIGJvcmRlci13aWR0aDogMXB4IDAgMCAxcHg7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogNTAlXHJcbiAgfVxyXG5cclxuLnVpW2NsYXNzKj1cImJvdHRvbSBwb2ludGluZ1wiXS5sYWJlbCwgLnVpW2NsYXNzKj1cInBvaW50aW5nIGJlbG93XCJdLmxhYmVsIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDFlbVxyXG59XHJcblxyXG4gIC51aVtjbGFzcyo9XCJib3R0b20gcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlLCAudWlbY2xhc3MqPVwicG9pbnRpbmcgYmVsb3dcIl0ubGFiZWw6YmVmb3JlIHtcclxuICAgIGJvcmRlci13aWR0aDogMCAxcHggMXB4IDA7XHJcbiAgICB0b3A6IGF1dG87XHJcbiAgICByaWdodDogYXV0bztcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XHJcbiAgICB0b3A6IDEwMCU7XHJcbiAgICBsZWZ0OiA1MCVcclxuICB9XHJcblxyXG4udWlbY2xhc3MqPVwibGVmdCBwb2ludGluZ1wiXS5sYWJlbCB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tbGVmdDogLjY2NjZlbVxyXG59XHJcblxyXG4gIC51aVtjbGFzcyo9XCJsZWZ0IHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSB7XHJcbiAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMXB4O1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcclxuICAgIGJvdHRvbTogYXV0bztcclxuICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICBsZWZ0OiAwXHJcbiAgfVxyXG5cclxuLnVpW2NsYXNzKj1cInJpZ2h0IHBvaW50aW5nXCJdLmxhYmVsIHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1yaWdodDogLjY2NjZlbVxyXG59XHJcblxyXG4gIC51aVtjbGFzcyo9XCJyaWdodCBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUge1xyXG4gICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4IDAgMDtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogYXV0bztcclxuICAgIGxlZnQ6IGF1dG9cclxuICB9XHJcblxyXG4udWkuYmFzaWMucG9pbnRpbmcubGFiZWw6YmVmb3JlLCAudWkuYmFzaWNbY2xhc3MqPVwicG9pbnRpbmcgYWJvdmVcIl0ubGFiZWw6YmVmb3JlIHtcclxuICBtYXJnaW4tdG9wOiAtMXB4XHJcbn1cclxuXHJcbi51aS5iYXNpY1tjbGFzcyo9XCJib3R0b20gcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlLCAudWkuYmFzaWNbY2xhc3MqPVwicG9pbnRpbmcgYmVsb3dcIl0ubGFiZWw6YmVmb3JlIHtcclxuICBib3R0b206IGF1dG87XHJcbiAgdG9wOiAxMDAlO1xyXG4gIG1hcmdpbi10b3A6IDFweFxyXG59XHJcblxyXG4udWkuYmFzaWNbY2xhc3MqPVwibGVmdCBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUge1xyXG4gIHRvcDogNTAlO1xyXG4gIGxlZnQ6IC0xcHhcclxufVxyXG5cclxuLnVpLmJhc2ljW2NsYXNzKj1cInJpZ2h0IHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSB7XHJcbiAgdG9wOiA1MCU7XHJcbiAgcmlnaHQ6IC0xcHhcclxufVxyXG5cclxuLnVpLmZsb2F0aW5nLmxhYmVsIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgei1pbmRleDogMTAwO1xyXG4gIHRvcDogLTFlbTtcclxuICBsZWZ0OiAxMDAlO1xyXG4gIG1hcmdpbjogMCAwIDAgLTEuNWVtICFpbXBvcnRhbnRcclxufVxyXG5cclxuLnVpLm1pbmkubGFiZWwsIC51aS5taW5pLmxhYmVscyAubGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogLjY0Mjg1NzE0cmVtXHJcbn1cclxuXHJcbi51aS50aW55LmxhYmVsLCAudWkudGlueS5sYWJlbHMgLmxhYmVsIHtcclxuICBmb250LXNpemU6IC43MTQyODU3MXJlbVxyXG59XHJcblxyXG4udWkuc21hbGwubGFiZWwsIC51aS5zbWFsbC5sYWJlbHMgLmxhYmVsIHtcclxuICBmb250LXNpemU6IC43ODU3MTQyOXJlbVxyXG59XHJcblxyXG4udWkubGFiZWwsIC51aS5sYWJlbHMgLmxhYmVsIHtcclxuICBmb250LXNpemU6IC44NTcxNDI4NnJlbVxyXG59XHJcblxyXG4udWkubGFyZ2UubGFiZWwsIC51aS5sYXJnZS5sYWJlbHMgLmxhYmVsIHtcclxuICBmb250LXNpemU6IDFyZW1cclxufVxyXG5cclxuLnVpLmJpZy5sYWJlbCwgLnVpLmJpZy5sYWJlbHMgLmxhYmVsIHtcclxuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW1cclxufVxyXG5cclxuLnVpLmh1Z2UubGFiZWwsIC51aS5odWdlLmxhYmVscyAubGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbVxyXG59XHJcblxyXG4udWkubWFzc2l2ZS5sYWJlbCwgLnVpLm1hc3NpdmUubGFiZWxzIC5sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxcmVtXHJcbn1cclxuXHJcblxyXG4vKkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLmFjdGlvbi1ib3gge1xyXG4gICAgICAgIG1hcmdpbjogMCAxNHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG5pZnJhbWUge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogXCJBdmVuaXIgQm9sZFwiO1xyXG4gIHNyYzogdXJsKFwiQXZlbmlyLUJvbGQudHRmXCIpKi8gLyogVFRGIGZpbGUgZm9yIENTUzMgYnJvd3NlcnMgKi9cclxuLyp9XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogXCJBdmVuaXJcIjtcclxuICBzcmM6IHVybChcIkF2ZW5pci1SZWd1bGFyLnR0ZlwiKSovIC8qIFRURiBmaWxlIGZvciBDU1MzIGJyb3dzZXJzICovXHJcbi8qfVxyXG5cclxuI292ZXJsYXAge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgdG9wOiAwcHg7XHJcbiAgbGVmdDogMHB4O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHdpZHRoOiAxMDgwcHg7XHJcbiAgaGVpZ2h0OiAxOTIwcHg7XHJcbn0qL1xyXG4iXX0= */\"","module.exports = \"
    \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n\\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\\\" style=\\\"height: 320px; width: 100%; border: none; overflow: hidden;\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    {{d.description}}

    \\r\\n
    {{d.disciplines}}

    \\r\\n
    Contact: {{d.contact}}

    \\r\\n
    Test Information

    \\r\\n
    Other Information

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\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\\\" (click)=\\\"next(mapIndex - 1)\\\" style=\\\"padding-bottom:5px\\\">\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\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\\\" style=\\\"height: 280px; width: 100%; border: none; overflow: hidden;\\\">\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n

    {{slide.displayTitle}}

    \\r\\n

    Venue: {{slide.locationName}}

    \\r\\n

    Start: {{getTime(slide.startDateTime)}}

    \\r\\n
    \\r\\n
    \\r\\n

    {{getDate(slide.startDateTime)}}

    \\r\\n

    {{getMonth(slide.startDateTime)}}

    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    0\\\" style=\\\"height: 280px; width: 100%; border: none; overflow: hidden;\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n

    \\r\\n Route Options\\r\\n

    \\r\\n
    \\r\\n \\r\\n

    Destination : {{to.label}}

    \\r\\n
    \\r\\n Wheelchair Friendly\\r\\n Sheltered\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","import { Component, ViewChild, Inject, ElementRef, OnDestroy, OnInit, ChangeDetectorRef, ViewEncapsulation} from '@angular/core';\r\nimport { fadeInOut } from '../../services/animations';\r\n\r\nimport \"ol/ol.css\";\r\nimport ImageLayer from \"ol/layer/Image\";\r\nimport Map from \"ol/Map\";\r\nimport Projection from \"ol/proj/Projection\";\r\nimport Static from \"ol/source/ImageStatic\";\r\nimport Path from \"ol-ext/featureAnimation/Path\";\r\nimport Text from \"ol/Style/Text\";\r\nimport View from \"ol/View\";\r\nimport RegularShape from 'ol/style/RegularShape';\r\nimport { getCenter } from \"ol/extent\";\r\nimport VectorSource from \"ol/source/Vector\";\r\nimport { Vector as VectorLayer } from \"ol/layer\";\r\nimport Feature from \"ol/Feature\";\r\nimport LineString from \"ol/geom/LineString\";\r\nimport { Circle, Style, Icon } from \"ol/style\";\r\nimport Stroke from \"ol/style/Stroke\";\r\nimport Fill from \"ol/style/Fill\";\r\nimport Point from \"ol/geom/Point\";\r\n\r\nimport { MapService } from 'src/app/services/map.service';\r\nimport { AlertService, MessageSeverity } from 'src/app/services/alert.service';\r\nimport { BuildingService } from 'src/app/services/building.service';\r\nimport { DirectoryListingService } from 'src/app/services/directory-listing.service';\r\nimport { DirectoryListingCategoryService } from 'src/app/services/directory-listing-category.service';\r\nimport { Utilities } from 'src/app/services/utilities';\r\nimport { ReservationService } from 'src/app/services/reservation.service';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\n\r\nimport { KioskSettingsService } from 'src/app/services/kiosk-settings.service';\r\nimport { KioskSettings } from 'src/app/models/kiosk-settings.model';\r\nimport { Playlist } from '../../models/playlist.model';\r\nimport { PlaylistService } from 'src/app/services/playlist.service';\r\nimport { FileService } from 'src/app/services/file.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { PointModel } from '../../models/point.model';\r\nimport { KeyValue } from '@angular/common';\r\n\r\nimport * as moment from 'moment';\r\n\r\ninterface floorPair {\r\n [key: number]: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: \"wayfinder-view\",\r\n templateUrl: \"./wayfinder-view.component.html\",\r\n styleUrls: [\"./wayfinder-view.component.css\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class WayfinderComponent implements OnInit, OnDestroy{\r\n floors: any;\r\n //currentFloor: any;\r\n server_url: any;\r\n directorys: any;\r\n reservations: any;\r\n from: any;\r\n to: any;\r\n paths: any;\r\n maps: any[];\r\n mapMap: {};\r\n currentMap: any;\r\n vectorSource: any;\r\n interval: any;\r\n mapIndex: number;\r\n searchList: any;\r\n selectedCat: any;\r\n selectedLvl: any;\r\n\r\n map: Map;\r\n mode = 0;\r\n searchModel: string;\r\n wheelchair = false;\r\n mapMode: boolean;\r\n userData: any;\r\n defaultFrom: { id: any; };\r\n loadingIndicator: boolean;\r\n private subscription: Subscription = new Subscription();\r\n\r\n setting: KioskSettings;\r\n topBanner: Playlist;\r\n bottomBanner: Playlist;\r\n screenSaver: Playlist;\r\n topSlides = [];\r\n bottomSlides = [];\r\n screenSaverSlides = [];\r\n eventSlideSel = [];\r\n selectedEvent: string;\r\n eventSlides = [];\r\n\r\n active = true;\r\n\r\n dir_cats: any;\r\n\r\n floorPairs: floorPair = {};\r\n\r\n homeIcon = require(\"../../assets/images/home1.jpg\");\r\n wheelIcon = require(\"../../assets/images/wheelchair1.jpg\");\r\n hereIcon = require(\"../../assets/images/pin.png\");\r\n infoIcon = require(\"../../assets/images/info.png\")\r\n\r\n defMap: any;\r\n\r\n dirload = false;\r\n\r\n point_id: string;\r\n\r\n startPoint: any;\r\n\r\n\r\n\r\n customOptions: OwlOptions = {\r\n loop: true,\r\n mouseDrag: false,\r\n touchDrag: false,\r\n pullDrag: false,\r\n dots: false,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n nav: false,\r\n animateOut: 'fadeOut',\r\n autoplay: true,\r\n autoplayTimeout: 5000,\r\n items: 1\r\n }\r\n\r\n eventOptions: OwlOptions = {\r\n loop: true,\r\n dots: false,\r\n animateOut: 'fadeOut',\r\n //autoplay: true,\r\n //autoplayTimeout: 5000,\r\n center: true,\r\n margin: 10,\r\n items: 3,\r\n stagePadding: 80,\r\n }\r\n\r\n pause: any;\r\n vectorLayer: any;\r\n up: boolean;\r\n down: boolean;\r\n showRouteOption: boolean;\r\n sheltered: boolean;\r\n\r\n constructor(\r\n //private navCtrl: NavController,\r\n //private dataS: DataService,\r\n //private http: HTTP,\r\n private chRef: ChangeDetectorRef,\r\n //private storage: Storage,\r\n private mapService: MapService,\r\n private alertService: AlertService,\r\n private buildingService: BuildingService,\r\n private directoryListingService: DirectoryListingService,\r\n private directoryListingCategoryService: DirectoryListingCategoryService,\r\n private kioskSettingsService: KioskSettingsService,\r\n private playlistService: PlaylistService,\r\n private fileService: FileService,\r\n private sanitizer: DomSanitizer,\r\n private route: ActivatedRoute,\r\n private reservationService: ReservationService) {\r\n\r\n this.route.params.subscribe(queryParams => {\r\n this.point_id = queryParams[\"point_id\"];\r\n });\r\n\r\n if (!this.point_id) {\r\n this.route.queryParams.subscribe(queryParams => {\r\n this.point_id = queryParams[\"point_id\"];\r\n });\r\n }\r\n\r\n if (this.point_id) this.getDefPoint(this.point_id);\r\n\r\n }\r\n\r\n async ngOnInit() {\r\n //alert(\"1\");\r\n window.onerror = function (message, file, line, col, error) {\r\n //alert(\"Error occurred: \" + error.message);\r\n return false;\r\n };\r\n window.addEventListener(\"error\", function (e) {\r\n //alert(\"Error occurred: \" + e.error.message);\r\n return false;\r\n });\r\n\r\n window.addEventListener(\"unhandledrejection\", function (e) {\r\n //alert(\"Error occurred: \" + e.reason.message);\r\n });\r\n\r\n this.loadData();\r\n\r\n await this.getDirectory();\r\n\r\n if (this.point_id) {\r\n var intpoint: number = parseInt(this.point_id)\r\n //await this.getDefPoint(intpoint);\r\n }\r\n\r\n await this.getFloors();\r\n\r\n await this.getDirectoryCategories();\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.alertService.resetStickyMessage();\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n async getDefPoint(point_id) {\r\n console.log(\"PP\", point_id);\r\n\r\n this.subscription.add(this.mapService.getPointById(point_id)\r\n .subscribe(results => {\r\n //this.alertService.stopLoadingMessage();\r\n //this.loadingIndicator = false;\r\n\r\n //console.log(results)\r\n\r\n console.log(\"def point res: \", results)\r\n\r\n this.startPoint = results;\r\n\r\n this.subscription.add(this.mapService.getMapById(this.startPoint.mapId).subscribe(resultsMap => {\r\n this.currentMap = resultsMap;\r\n this.defMap = this.currentMap;\r\n console.log(\"maps: \", this.currentMap)\r\n this.initMap();\r\n }));\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n\r\n }\r\n\r\n async getFloors() {\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.buildingService.getBuildings()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //console.log(results)\r\n\r\n let buildings = results[0];\r\n\r\n for (let b of buildings) {\r\n if (b.floors && b.floors.filter((f) => f.map).length > 0) {\r\n this.floors = b.floors.filter((f) => f.map);\r\n\r\n if (!this.currentMap) this.currentMap = this.floors[0].map;\r\n if (!this.defMap) this.defMap = this.currentMap;\r\n\r\n console.log(\"floors: \", this.floors)\r\n this.initMap();\r\n break;\r\n }\r\n }\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n async getDirectoryCategories() {\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.directoryListingCategoryService.getDirectoryListingCategorys()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n console.log(\"categories: \", results)\r\n\r\n this.dir_cats = results[0];\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n async getDirectory() {\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.directoryListingService.getDirectoryListingsExcInt()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //console.log(results)\r\n\r\n this.directorys = results[0];\r\n\r\n for (let d of this.directorys) {\r\n if (d.floorId != null && !this.floorPairs[d.floorId]) {\r\n this.floorPairs[d.floorId] = d.floorLabel;\r\n }\r\n }\r\n\r\n console.log(\"list of used floor: \", this.floorPairs)\r\n\r\n this.directorys = this.directorys.sort((a, b) => {\r\n let r = a.directoryListingCategoryLabel.localeCompare(\r\n b.directoryListingCategoryLabel\r\n );\r\n\r\n if (r != 0) return r;\r\n\r\n return a.label.localeCompare(b.label);\r\n });\r\n\r\n this.searchList = this.directorys;\r\n\r\n console.log(\"first directory: \", this.searchList)\r\n\r\n this.chRef.detectChanges();\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n async getReservation() {\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.reservationService.getKioskReservation()\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n //console.log(\"reservation result :\", results)\r\n\r\n this.reservations = results.data;\r\n\r\n console.log(\"this reservation: \", this.reservations)\r\n\r\n if (this.eventSlideSel.length > 0) {\r\n this.eventSlides = [];\r\n let index = this.getRandomInt(this.eventSlideSel.length)\r\n this.selectedEvent = this.eventSlideSel[index].img\r\n for (let i = 0; i < this.reservations.length; i++) {\r\n var booking = this.reservations[i];\r\n booking.img = this.selectedEvent;\r\n this.eventSlides.push(booking);\r\n }\r\n }\r\n\r\n console.log(\"this event slides: \", this.eventSlides);\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n initMap() {\r\n console.log(\"init map, currentMap: \",this.currentMap)\r\n if (this.currentMap == null || this.currentMap.map_url == null) return;\r\n\r\n var extent = [0, 0, this.currentMap.width, this.currentMap.height];\r\n var projection = new Projection({\r\n code: \"xkcd-image\",\r\n units: \"pixels\",\r\n extent: extent,\r\n });\r\n\r\n console.log(\"after projection\");\r\n\r\n let fullUrl = \"/\" + this.currentMap.map_url;\r\n\r\n console.log(\"url map image: \", fullUrl)\r\n\r\n let source = new Static({\r\n url: fullUrl,\r\n projection: projection,\r\n imageExtent: extent,\r\n });\r\n\r\n this.vectorSource = new VectorSource();\r\n\r\n if (this.map) {\r\n let l = this.map.getLayers().getArray()[0];\r\n l.setSource(source);\r\n\r\n let v = this.map.getLayers().getArray()[1];\r\n v.setSource(this.vectorSource);\r\n } else {\r\n this.vectorLayer = new VectorLayer({\r\n source: this.vectorSource,\r\n });\r\n\r\n this.map = new Map({\r\n layers: [\r\n new ImageLayer({\r\n source: source,\r\n }),\r\n this.vectorLayer,\r\n ],\r\n target: \"map\",\r\n view: new View({\r\n projection: projection,\r\n //center: getCenter(extent),\r\n zoom: this.setting.zoom_level || 2,\r\n maxZoom: 8,\r\n }),\r\n });\r\n\r\n console.log(\"end initmap\")\r\n\r\n const waitForMap = setInterval(function () {\r\n if (document.querySelectorAll(\".ol-viewport\").length) {\r\n console.log(\"Exists!\");\r\n window.dispatchEvent(new Event(\"resize\"));\r\n clearInterval(waitForMap);\r\n }\r\n }, 100);\r\n }\r\n\r\n if (this.currentMap && this.currentMap.paths && this.currentMap.paths[0]) {\r\n this.createLine();\r\n\r\n //setTimeout(() => { if (!this.pause) this.next(this.mapIndex + 1) }, (this.setting.floor_interval || 6) * 1000);\r\n }\r\n\r\n if (this.startPoint.mapId == this.currentMap.id) {\r\n const tt = this;\r\n const img = new Image();\r\n img.onload = function () {\r\n tt.createHereIcon(img.width, img.height);\r\n }\r\n img.src = this.setting.baloon_image;\r\n\r\n this.map.getView().setCenter(getCenter(extent));\r\n }\r\n }\r\n\r\n createHereIcon(width, height) {\r\n const iconFeature = new Feature({\r\n geometry: new Point([this.startPoint.x, this.startPoint.y]),\r\n name: 'You Are Here',\r\n });\r\n\r\n const iconStyle = new Style({\r\n image: new Icon({\r\n //anchor: [this.setting.anchor_h, this.setting.anchor_v],\r\n //anchorXUnits: 'pixels',\r\n //anchorYUnits: 'pixels',\r\n anchor: [0.5, 1],\r\n size: [width, height],\r\n src: this.setting.baloon_image,\r\n scale: this.setting.baloon_width / width,\r\n }),\r\n });\r\n\r\n\r\n\r\n console.log(\"create iconsss\", width, height, this.setting.baloon_width / width)\r\n\r\n iconFeature.setStyle(iconStyle);\r\n\r\n this.vectorSource.addFeature(iconFeature);\r\n }\r\n\r\n animationEnd(e?) {\r\n if (this.maps.length > this.mapIndex + 1 && this.currentMap.floorOrder !== null && this.maps[this.mapIndex + 1].floorOrder !== null) {\r\n if (this.currentMap.floorOrder < this.maps[this.mapIndex + 1].floorOrder) this.up = true;\r\n if (this.currentMap.floorOrder > this.maps[this.mapIndex + 1].floorOrder) this.down = true;\r\n }\r\n\r\n setTimeout(() => {\r\n this.up = false;\r\n this.down = false;\r\n\r\n if (e && e.feature) this.vectorSource.removeFeature(e.feature);\r\n if (!this.pause) this.next(this.mapIndex + 1)\r\n }, this.up || this.down || !this.maps[this.mapIndex + 1] ? 3000 : 500);\r\n }\r\n\r\n createLine() {\r\n if (!this.currentMap || !this.currentMap.paths || !this.currentMap.paths[0]) return;\r\n\r\n\r\n\r\n var points = new Array();\r\n for (let p of this.currentMap.paths) {\r\n points.push([p.x, p.y]);\r\n }\r\n\r\n var featureLine = new Feature({\r\n geometry: new LineString(points),\r\n dashOffset: 0,\r\n });\r\n\r\n var outlineStroke = new Style({\r\n stroke: new Stroke({\r\n color: [25, 25, 255, 1],\r\n width: 9,\r\n }),\r\n });\r\n\r\n // use style caching in production\r\n function getAnimationStrokeStyle() {\r\n return new Style({\r\n stroke: new Stroke({\r\n color: [204, 204, 255, 1],\r\n width: 5,\r\n //lineDash: [2, 7],\r\n //lineDashOffset: featureLine.get(\"dashOffset\"),\r\n }),\r\n });\r\n }\r\n\r\n function getStyle() {\r\n return [outlineStroke, getAnimationStrokeStyle()];\r\n }\r\n\r\n featureLine.setStyle(outlineStroke);\r\n\r\n this.vectorSource.addFeature(featureLine);\r\n\r\n //this.interval = setInterval(function () {\r\n // let offset = featureLine.get(\"dashOffset\");\r\n // offset = offset == 0 ? 8 : offset - 1;\r\n // featureLine.set(\"dashOffset\", offset);\r\n //}, 100);\r\n var anim = new Path({\r\n path: featureLine.getGeometry(),\r\n rotate: true,\r\n //easing: ol.easing[$(\"#easing\").val()],\r\n speed: 0.5,\r\n //revers: $(\"#revers\").prop('checked')\r\n });\r\n\r\n var triangle = new RegularShape({\r\n radius: 14,\r\n points: 3,\r\n fill: new Fill({ color: 'red' }),\r\n stroke: new Stroke({ color: '#fff', width: 2 })\r\n });\r\n\r\n var styleTriangle =\r\n new Style({\r\n image: triangle,\r\n stroke: new Stroke({\r\n color: [0, 0, 255],\r\n width: 2\r\n }),\r\n fill: new Fill({\r\n color: [0, 0, 255, 0.3]\r\n })\r\n });\r\n\r\n\r\n\r\n let start = featureLine.getGeometry().getFirstCoordinate();\r\n let end = featureLine.getGeometry().getLastCoordinate();\r\n\r\n let center = [Math.floor((start[0] + end[0]) / 2), Math.floor((start[1] + end[1]) / 2)];\r\n\r\n this.map.getView().setCenter(center);\r\n\r\n //console.log(\"center\", start, center, end)\r\n //this.createPoint(center, \"#40E000\");\r\n\r\n let begin = new Feature(new Point(start));\r\n begin.setStyle(styleTriangle);\r\n\r\n this.vectorSource.addFeature(begin);\r\n anim.on('animationend', (e) => {\r\n this.animationEnd(e);\r\n });\r\n\r\n anim.on('animating', (e) => {\r\n this.map.getView().setCenter(e.geom.getCoordinates())\r\n //this.map.getView().setRotation(e.rotation||0)\r\n })\r\n\r\n if (points.length > 1) this.vectorLayer.animateFeature(begin, anim);\r\n else this.animationEnd();\r\n\r\n console.log(\"SESE\", start, end);\r\n\r\n //if (this.mapIndex == 0) this.createPoint(start, \"#40E0D0\");\r\n //else this.createPoint(start, \"#FFBF00\");\r\n\r\n //if (this.maps[this.mapIndex + 1]) this.createPoint(end, \"#FFBF00\");\r\n //else this.createPoint(end, \"#DE3163\");\r\n\r\n for (let i in this.currentMap.paths) {\r\n let p = this.currentMap.paths[i];\r\n let coord = [p.x, p.y];\r\n\r\n if (+i == 0) {\r\n if (this.mapIndex == 0) this.createPoint(coord, \"#40E0D0\", p.label);\r\n else this.createPoint(coord, \"#FFBF00\", p.label);\r\n } else if (+i == this.currentMap.paths.length - 1) {\r\n if (this.maps[this.mapIndex + 1]) this.createPoint(coord, \"#FFBF00\", p.label);\r\n else this.createPoint(coord, \"#DE3163\", p.label);\r\n } else if (p.label) {\r\n this.createPoint(coord, null, p.label);\r\n }\r\n }\r\n }\r\n\r\n truncateString(str, num) {\r\n if (str.length > num) {\r\n return str.slice(0, num) + \"...\";\r\n } else {\r\n return str;\r\n }\r\n }\r\n\r\n createPoint(coordinate, strokeColor, label?: string) {\r\n let fill = new Fill({\r\n color: \"white\",\r\n });\r\n let stroke = new Stroke({\r\n color: strokeColor,\r\n width: 4,\r\n });\r\n let pointStyle = strokeColor ? new Style({\r\n image: new Circle({\r\n fill: fill,\r\n stroke: stroke,\r\n radius: 7,\r\n }),\r\n fill: fill,\r\n stroke: stroke,\r\n }) : new Style();\r\n let point = new Feature({\r\n geometry: new Point(coordinate),\r\n isPoint: true,\r\n });\r\n if (label) {\r\n pointStyle.setText(new Text({\r\n text: this.truncateString(label, 12),\r\n font: 'bold 16px Arial',\r\n overflow: true,\r\n outline: '#ffffff',\r\n outlineWidth: 3,\r\n stroke: new Stroke({\r\n color: '#ffffff',\r\n width: 3,\r\n }),\r\n fill: new Fill({\r\n color: \"red\",\r\n })\r\n }));\r\n }\r\n point.setStyle(pointStyle);\r\n this.vectorSource.addFeature(point);\r\n }\r\n\r\n async loadData() {\r\n this.subscription.add(this.kioskSettingsService.getKioskSettingsById(\"4\")\r\n .subscribe(results => {\r\n\r\n let kioskSetting = results;\r\n\r\n console.log(\"Setting is: \", kioskSetting)\r\n this.setting = kioskSetting;\r\n\r\n this.getPlaylist(this.setting.top_banner_id,1);\r\n this.getPlaylist(this.setting.bottom_banner_id, 2);\r\n this.getPlaylist(this.setting.def_event_id, 3);\r\n this.getPlaylist(this.setting.ss_playlist_id, 4);\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve kiosk settings from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getPlaylist(id,pos) {\r\n this.subscription.add(this.playlistService.getPlaylistById(id)\r\n .subscribe(results => {\r\n\r\n let playlist = results;\r\n\r\n let images = playlist.images;\r\n\r\n if (pos == 1) {\r\n this.topBanner = playlist;\r\n for (let i = 0; i < images.length; i++) {\r\n let slide = { id: i, img: images[i].imageLocation}\r\n this.topSlides.push(slide);\r\n }\r\n\r\n } else if (pos == 2) {\r\n this.bottomBanner = playlist;\r\n for (let i = 0; i < images.length; i++) {\r\n let slide = { id: i, img: images[i].imageLocation }\r\n this.bottomSlides.push(slide);\r\n }\r\n } else if (pos == 3) {\r\n for (let i = 0; i < images.length; i++) {\r\n let slide = { id: i, img: images[i].imageLocation }\r\n this.eventSlideSel.push(slide);\r\n }\r\n } else if (pos == 4) {\r\n this.screenSaver = playlist;\r\n for (let i = 0; i < images.length; i++) {\r\n let slide = { id: i, img: images[i].imageLocation }\r\n this.screenSaverSlides.push(slide);\r\n }\r\n }\r\n\r\n if (this.eventSlideSel.length > 0 && this.eventSlides.length == 0) {\r\n let index = this.getRandomInt(this.eventSlideSel.length)\r\n this.selectedEvent = this.eventSlideSel[index].img\r\n for (let i = 0; i < 8; i++) {\r\n let slide = { id: i, img: this.selectedEvent, displayTitle: \"Test\", locationName: \"test Sub\", startDateTime: \"2022-04-22T03:00:00\" }\r\n this.eventSlides.push(slide);\r\n }\r\n\r\n this.getReservation();\r\n }\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve kiosk playlist from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n getFileImage(path) {\r\n let pathTxt = this.fileService.getFile(path);\r\n //console.log(\"image path: \", pathTxt);\r\n return pathTxt;\r\n //return \"Resources/Images/Images/97d672b0-cc3d-4a6c-aefa-c94af06a375bbanner.jpg\";\r\n }\r\n\r\n getSafeFile(path) {\r\n //console.log(\"image Path before safe: \", path)\r\n let newPath = this.sanitizer.bypassSecurityTrustStyle('url(' + path + ')');\r\n //console.log(\"Image Path after safe: \", newPath)\r\n return newPath;\r\n }\r\n\r\n getBackgroundStyle = function (imagepath) {\r\n return {\r\n 'background-image': 'url(' + imagepath + ')'\r\n }\r\n }\r\n\r\n getRandomInt(max) {\r\n return Math.floor(Math.random() * max);\r\n }\r\n\r\n selectSearch(searchModel) {\r\n this.searchModel = searchModel;\r\n this.updateSearchResults();\r\n }\r\n\r\n updateSearchResults() {\r\n console.log(\"searchModel: \", this.searchModel);\r\n\r\n console.log(\"directorys inside search: \", this.directorys)\r\n\r\n if (!this.searchModel && !this.selectedCat && !this.selectedLvl) {\r\n this.searchList = this.directorys;\r\n return;\r\n }\r\n\r\n this.searchList = this.directorys;\r\n\r\n if (this.selectedCat) {\r\n this.searchList = this.searchList\r\n ? this.searchList.filter(\r\n (item) => (item.directoryListingCategoryId == this.selectedCat.id))\r\n : [];\r\n }\r\n\r\n console.log(\"searchList after category filter: \", this.searchList);\r\n\r\n if (this.selectedLvl) {\r\n this.searchList = this.searchList\r\n ? this.searchList.filter(\r\n (item) => (item.floorId == this.selectedLvl))\r\n : [];\r\n }\r\n\r\n console.log(\"searchList after level filter: \", this.searchList);\r\n\r\n if (this.searchModel) {\r\n this.searchList = this.searchList\r\n ? this.searchList.filter(\r\n (item) => (item.label.toLowerCase()).indexOf(this.searchModel.toLowerCase()) !== -1)\r\n : [];\r\n }\r\n\r\n console.log(\"searchList after text search: \", this.searchList);\r\n\r\n console.log(\"searchList: \", this.searchList);\r\n }\r\n\r\n directoryClicked(d) {\r\n this.searchModel = \"\";\r\n this.selectedCat = null;\r\n this.selectedLvl = null;\r\n console.log(\"Go dir: \", d);\r\n\r\n if (!this.to && (this.from || this.point_id)) {\r\n console.log(\"TOTOTO\")\r\n this.to = d;\r\n this.directoryChanged(this.from, this.to);\r\n return;\r\n }\r\n if (!this.from && !this.point_id) {\r\n this.from = d;\r\n return;\r\n }\r\n }\r\n\r\n\r\n clearDirectory() {\r\n if (!this.defaultFrom) this.from = null;\r\n this.to = null;\r\n this.wheelchair = false;\r\n }\r\n\r\n async directoryChanged(from, to) {\r\n console.log(\"starting point id: \", this.point_id)\r\n if ((!this.point_id && !from) || !to) return;\r\n\r\n //if (!this.defaultFrom) this.from = null;\r\n //this.to = null;\r\n //this.wheelchair = false;\r\n\r\n if (this.point_id) {\r\n this.defaultFrom = { id: this.point_id };\r\n from = this.defaultFrom;\r\n }\r\n\r\n this.dirload = true;\r\n\r\n this.paths = null;\r\n clearInterval(this.interval);\r\n\r\n console.log(\"dir changed from to: \", from, to)\r\n\r\n this.from = from;\r\n this.to = to;\r\n\r\n await this.getRoute(from.id, to.id);\r\n\r\n console.log(\"path inside dir change: \", this.paths);\r\n }\r\n\r\n\r\n doMapUpdate() {\r\n if (!this.paths) return;\r\n\r\n this.mapMode = true;\r\n\r\n this.mapMap = {};\r\n this.maps = [];\r\n\r\n console.log(\"map update paths: \", this.paths)\r\n\r\n let i = 1;\r\n for (let p of this.paths) {\r\n if (!this.mapMap[p.mapId]) {\r\n this.mapMap[p.mapId] = p.mapInfo;\r\n this.maps.push(this.mapMap[p.mapId]);\r\n }\r\n\r\n if (!this.mapMap[p.mapId].paths) this.mapMap[p.mapId].paths = [];\r\n\r\n this.mapMap[p.mapId].paths.push(p);\r\n\r\n if (p.label) p.label = i++ + '. ' + p.label;\r\n }\r\n\r\n console.log(\"maps: \", this.maps)\r\n console.log(\"mapmap: \", this.mapMap)\r\n\r\n if (this.maps[0]) {\r\n this.currentMap = this.maps[0];\r\n this.mapIndex = 0;\r\n }\r\n\r\n console.log(\"current map inside map update: \", this.currentMap)\r\n\r\n this.pause = false;\r\n\r\n this.initMap();\r\n\r\n this.mode = 0;\r\n }\r\n\r\n async getRoute(from, to) {\r\n\r\n if (!this.showRouteOption) {\r\n this.showRouteOption = true;\r\n return;\r\n }\r\n\r\n this.showRouteOption = false;\r\n\r\n this.loadingIndicator = true;\r\n\r\n this.subscription.add(this.mapService.getRoute(from, to, this.wheelchair, this.sheltered)\r\n .subscribe(results => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.wheelchair = false;\r\n this.sheltered = false;\r\n this.to = null;\r\n\r\n var res: any = results\r\n\r\n console.log(\"route: \", res)\r\n\r\n if (res.message) {\r\n alert(res.message);\r\n return;\r\n }\r\n\r\n let path = res.data\r\n this.paths = path;\r\n\r\n console.log(\"path inside get route: \", this.paths)\r\n\r\n this.doMapUpdate();\r\n\r\n },\r\n error => {\r\n this.alertService.stopLoadingMessage();\r\n this.loadingIndicator = false;\r\n\r\n this.alertService.showStickyMessage(\"Load Error\", `Unable to retrieve data from the server.\\r\\nErrors: \"${Utilities.getHttpResponseMessage(error)}\"`,\r\n MessageSeverity.error);\r\n }));\r\n }\r\n\r\n next(index) {\r\n if (index >= this.maps.length) index = 0;\r\n\r\n this.currentMap = this.maps[index];\r\n this.mapIndex = index;\r\n\r\n this.initMap();\r\n }\r\n\r\n selectCat(cat) {\r\n console.log(\"cat selected: \", cat)\r\n this.selectedCat = cat;\r\n this.updateSearchResults();\r\n }\r\n\r\n selectLevel(l) {\r\n console.log(\"level selected: \", l);\r\n this.selectedLvl = l;\r\n this.updateSearchResults();\r\n }\r\n\r\n resetSearch() {\r\n this.clearDirectory();\r\n this.selectedCat = null;\r\n this.selectedLvl = null;\r\n this.searchModel = null;\r\n this.updateSearchResults();\r\n this.from = null;\r\n this.to = null;\r\n this.dirload = false;\r\n this.currentMap = this.defMap;\r\n this.paths = null;\r\n this.pause = true;\r\n this.initMap();\r\n }\r\n\r\n changeWheel() {\r\n this.wheelchair = !this.wheelchair;\r\n }\r\n\r\n valueAscOrder = (a: KeyValue, b: KeyValue): number => {\r\n return this.compareFloor(a.value, b.value);\r\n }\r\n\r\n compareFloor = function (a, b) {\r\n if (a.toLowerCase().includes(\"l\") && b.toLowerCase().includes(\"b\"))\r\n return 1;\r\n else if (a.toLowerCase().includes(\"b\") && b.toLowerCase().includes(\"l\"))\r\n return -1;\r\n else {\r\n if (a.toLowerCase().includes(\"l\") && b.toLowerCase().includes(\"l\")) {\r\n if (a > b) { return 1 } else if (a < b) { return -1 }\r\n } else if (a.toLowerCase().includes(\"b\") && b.toLowerCase().includes(\"b\")) {\r\n if (a > b) { return -1 } else if (a < b) { return 1 }\r\n } else {\r\n if (a > b) { return 1 } else if (a < b) { return -1 }\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n getTime(val) {\r\n return moment(val, \"YYYY-MM-DDThh:mm:ss\").format(\"HH:mm\");\r\n }\r\n\r\n getDate(val) {\r\n return moment(val, \"YYYY-MM-DDThh:mm:ss\").format(\"DD\");\r\n }\r\n\r\n getMonth(val) {\r\n return moment(val, \"YYYY-MM-DDThh:mm:ss\").format(\"MMM\");\r\n }\r\n\r\n showInfoBubble(l) {\r\n\r\n if (l.showInfo) {\r\n l.showInfo = false;\r\n } else {\r\n l.showInfo = true;\r\n\r\n setTimeout(function () {\r\n l.showInfo = false;\r\n }, 10000);\r\n }\r\n }\r\n\r\n showIfNotBlank(content) {\r\n if (content == null || content == '' || content == '-') {\r\n return false\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[autofocus]'\r\n})\r\nexport class AutofocusDirective implements OnInit {\r\n constructor(public elementRef: ElementRef) { }\r\n\r\n ngOnInit() {\r\n setTimeout(() => this.elementRef.nativeElement['focus'](), 500);\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\n\r\n\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[bootstrapDatepicker]',\r\n exportAs: 'bootstrap-datepicker'\r\n})\r\nexport class BootstrapDatepickerDirective implements OnInit, OnDestroy {\r\n\r\n private _isShown = false;\r\n private updateTimeout;\r\n private changedSubscription: Subscription;\r\n private shownSubscription: Subscription;\r\n private hiddenSubscription: Subscription;\r\n\r\n get isShown() {\r\n return this._isShown;\r\n }\r\n\r\n @Input()\r\n options = {};\r\n\r\n @Input()\r\n set ngModel(value) {\r\n this.tryUpdate(value);\r\n }\r\n\r\n\r\n @Output()\r\n ngModelChange = new EventEmitter();\r\n\r\n\r\n constructor(private el: ElementRef) {\r\n this.changedSubscription = fromEvent($(this.el.nativeElement), 'change').subscribe((e: any) => setTimeout(() => this.ngModelChange.emit(e.target.value)));\r\n this.shownSubscription = fromEvent($(this.el.nativeElement), 'show').subscribe((e: any) => this._isShown = true);\r\n this.hiddenSubscription = fromEvent($(this.el.nativeElement), 'hide').subscribe((e: any) => this._isShown = false);\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.initialize(this.options);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n\r\n\r\n\r\n initialize(options?: any) {\r\n $(this.el.nativeElement).datepicker(options);\r\n }\r\n\r\n destroy() {\r\n if (this.changedSubscription) {\r\n this.changedSubscription.unsubscribe();\r\n this.shownSubscription.unsubscribe();\r\n this.hiddenSubscription.unsubscribe();\r\n }\r\n\r\n $(this.el.nativeElement).datepicker('destroy');\r\n }\r\n\r\n\r\n\r\n show() {\r\n $(this.el.nativeElement).datepicker('show');\r\n }\r\n\r\n\r\n hide() {\r\n $(this.el.nativeElement).datepicker('hide');\r\n }\r\n\r\n\r\n toggle() {\r\n this.isShown ? this.hide() : this.show();\r\n }\r\n\r\n\r\n private tryUpdate(value) {\r\n\r\n clearTimeout(this.updateTimeout);\r\n\r\n if (!$(this.el.nativeElement).is(\":focus\")) {\r\n this.update(value);\r\n } else {\r\n this.updateTimeout = setTimeout(() => {\r\n this.updateTimeout = null;\r\n this.tryUpdate(value);\r\n }, 100);\r\n }\r\n }\r\n\r\n update(value) {\r\n setTimeout(() => $(this.el.nativeElement).datepicker('update', value));\r\n }\r\n\r\n\r\n setDate(value) {\r\n setTimeout(() => $(this.el.nativeElement).datepicker('setDate', value));\r\n }\r\n\r\n\r\n setUTCDate(value) {\r\n setTimeout(() => $(this.el.nativeElement).datepicker('setUTCDate', value));\r\n }\r\n\r\n\r\n clearDates() {\r\n setTimeout(() => $(this.el.nativeElement).datepicker('clearDates'));\r\n }\r\n\r\n\r\n getDate() {\r\n $(this.el.nativeElement).datepicker('getDate');\r\n }\r\n\r\n\r\n getUTCDate() {\r\n $(this.el.nativeElement).datepicker('getUTCDate');\r\n }\r\n}\r\n","import { Directive, Attribute, ElementRef, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\n\r\n\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[bootstrapSelect]',\r\n exportAs: 'bootstrap-select'\r\n})\r\nexport class BootstrapSelectDirective implements OnInit, OnDestroy {\r\n\r\n private oldValues: string | string[] = \"\";\r\n\r\n private changedSubscription: Subscription;\r\n private shownSubscription: Subscription;\r\n private hiddenSubscription: Subscription;\r\n\r\n @Input()\r\n required: string;\r\n\r\n @Input()\r\n set ngModel(values: string | string[]) {\r\n setTimeout(() => this.selected = values);\r\n }\r\n\r\n\r\n @Output()\r\n ngModelChange = new EventEmitter();\r\n\r\n @Output()\r\n shown = new EventEmitter();\r\n\r\n @Output()\r\n hidden = new EventEmitter();\r\n\r\n\r\n constructor(private el: ElementRef) {\r\n this.changedSubscription = fromEvent($(this.el.nativeElement), 'changed.bs.select').subscribe((e: any) => setTimeout(() => {\r\n if (this.checkIsValuesChanged(this.selected))\r\n this.ngModelChange.emit(this.selected);\r\n }));\r\n this.shownSubscription = fromEvent($(this.el.nativeElement), 'shown.bs.select').subscribe((e: any) => setTimeout(() => this.shown.emit()));\r\n this.hiddenSubscription = fromEvent($(this.el.nativeElement), 'hidden.bs.select').subscribe((e: any) => setTimeout(() => this.hidden.emit()));\r\n }\r\n\r\n\r\n ngOnInit() {\r\n $(this.el.nativeElement).selectpicker();\r\n\r\n if (this.requiredAttribute)\r\n $(this.el.nativeElement).selectpicker('setStyle', 'required', 'add');\r\n\r\n setTimeout(() => {\r\n this.refresh();\r\n this.doValidation();\r\n });\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.changedSubscription)\r\n this.changedSubscription.unsubscribe();\r\n\r\n if (this.shownSubscription)\r\n this.shownSubscription.unsubscribe();\r\n\r\n if (this.hiddenSubscription)\r\n this.hiddenSubscription.unsubscribe();\r\n\r\n $(this.el.nativeElement).selectpicker('destroy');\r\n }\r\n\r\n private checkIsValuesChanged(newValue: string | string[]) {\r\n return !(newValue == this.oldValues ||\r\n (newValue instanceof Array && newValue.length === this.oldValues.length && newValue.every((v, i) => v === this.oldValues[i])));\r\n }\r\n\r\n private doValidation() {\r\n if (this.requiredAttribute) {\r\n $(this.el.nativeElement).selectpicker('setStyle', !this.valid ? 'ng-valid' : 'ng-invalid', 'remove');\r\n $(this.el.nativeElement).selectpicker('setStyle', this.valid ? 'ng-valid' : 'ng-invalid', 'add');\r\n }\r\n }\r\n\r\n private get requiredAttribute() {\r\n return this.required === \"\" || this.required == \"true\";\r\n }\r\n\r\n\r\n refresh() {\r\n setTimeout(() => {\r\n $(this.el.nativeElement).selectpicker('refresh');\r\n });\r\n }\r\n\r\n render() {\r\n setTimeout(() => {\r\n $(this.el.nativeElement).selectpicker('render');\r\n });\r\n }\r\n\r\n\r\n get valid(): boolean {\r\n return this.requiredAttribute ? this.selected && this.selected.length > 0 : true;\r\n }\r\n\r\n\r\n set selected(values: string | string[]) {\r\n\r\n if (!this.checkIsValuesChanged(values))\r\n return;\r\n\r\n this.oldValues = this.selected;\r\n $(this.el.nativeElement).selectpicker('val', values);\r\n this.doValidation();\r\n }\r\n\r\n\r\n get selected(): string | string[] {\r\n return $(this.el.nativeElement).selectpicker('val');\r\n }\r\n}\r\n","import { Directive, ElementRef, Output, EventEmitter, OnDestroy, NgZone } from '@angular/core';\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\n\r\n\r\ndeclare var $: any;\r\n\r\ntype eventArg = { type: string, target: Element, relatedTarget: Element };\r\n\r\n@Directive({\r\n selector: '[bootstrapTab]',\r\n exportAs: 'bootstrap-tab'\r\n})\r\nexport class BootstrapTabDirective implements OnDestroy {\r\n\r\n\r\n @Output()\r\n showBSTab = new EventEmitter();\r\n\r\n @Output()\r\n hideBSTab = new EventEmitter();\r\n\r\n private tabShownSubscription: Subscription;\r\n private tabHiddenSubscription: Subscription;\r\n\r\n\r\n constructor(private el: ElementRef, private zone: NgZone) {\r\n\r\n this.tabShownSubscription = fromEvent($(this.el.nativeElement), 'show.bs.tab')\r\n .subscribe((e: any) => {\r\n this.runInZone(() => this.showBSTab.emit({ type: e.type, target: e.target, relatedTarget: e.relatedTarget }));\r\n });\r\n\r\n this.tabHiddenSubscription = fromEvent($(this.el.nativeElement), 'hidden.bs.tab')\r\n .subscribe((e: any) => {\r\n this.runInZone(() => this.hideBSTab.emit({ type: e.type, target: e.target, relatedTarget: e.relatedTarget }));\r\n });\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.tabShownSubscription.unsubscribe();\r\n this.tabHiddenSubscription.unsubscribe();\r\n }\r\n\r\n\r\n private runInZone(delegate: () => any) {\r\n this.zone.run(() => {\r\n delegate();\r\n });\r\n }\r\n\r\n\r\n show(selector: string) {\r\n $(selector).tab('show');\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\n\r\n\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[bootstrapToggle]',\r\n exportAs: 'bootstrap-toggle'\r\n})\r\nexport class BootstrapToggleDirective implements OnInit, OnDestroy {\r\n\r\n private checkedSubscription: Subscription;\r\n\r\n @Input()\r\n set ngModel(value) {\r\n this.toggle(value);\r\n }\r\n\r\n @Output()\r\n ngModelChange = new EventEmitter();\r\n\r\n\r\n constructor(private el: ElementRef) {\r\n this.checkedSubscription = fromEvent($(this.el.nativeElement), 'change')\r\n .subscribe((e: any) => this.ngModelChange.emit(e.target.checked));\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.initialize();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n\r\n initialize(options?: any) {\r\n $(this.el.nativeElement).bootstrapToggle(options);\r\n }\r\n\r\n destroy() {\r\n if (this.checkedSubscription)\r\n this.checkedSubscription.unsubscribe();\r\n\r\n $(this.el.nativeElement).bootstrapToggle('destroy');\r\n }\r\n\r\n toggleOn() {\r\n $(this.el.nativeElement).bootstrapToggle('on');\r\n }\r\n\r\n toggleOff() {\r\n $(this.el.nativeElement).bootstrapToggle('off');\r\n }\r\n\r\n toggle(value?: boolean) {\r\n if (value == null)\r\n $(this.el.nativeElement).bootstrapToggle('toggle');\r\n else\r\n $(this.el.nativeElement).prop('checked', value).change();\r\n }\r\n\r\n enable() {\r\n $(this.el.nativeElement).bootstrapToggle('enable');\r\n }\r\n\r\n disable() {\r\n $(this.el.nativeElement).bootstrapToggle('disable');\r\n }\r\n}\r\n","import { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n\r\n\r\n@Directive({\r\n selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualValidator), multi: true }\r\n ]\r\n})\r\nexport class EqualValidator implements Validator {\r\n constructor( @Attribute('validateEqual') public validateEqual: string,\r\n @Attribute('reverse') public reverse: string) {\r\n }\r\n\r\n validate(c: AbstractControl): { [key: string]: any } {\r\n let other = c.root.get(this.validateEqual);\r\n\r\n if (!other)\r\n return null;\r\n\r\n return this.reverse === 'true' ? this.validateReverse(c, other) : this.validateNoReverse(c, other);\r\n }\r\n\r\n private validateNoReverse(c: AbstractControl, other: AbstractControl): { [key: string]: any } {\r\n return other.value === c.value ? null : { validateEqual: true }\r\n }\r\n\r\n private validateReverse(c: AbstractControl, other: AbstractControl): { [key: string]: any } {\r\n if (c.value === other.value) {\r\n if (other.errors) {\r\n delete other.errors['validateEqual'];\r\n\r\n if (Object.keys(other.errors).length == 0) {\r\n other.setErrors(null);\r\n };\r\n }\r\n } else {\r\n other.setErrors({ validateEqual: true });\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[lastElement]'\r\n})\r\nexport class LastElementDirective {\r\n @Input()\r\n set lastElement(isLastElement: boolean) {\r\n\r\n if (isLastElement) {\r\n setTimeout(() => {\r\n this.lastFunction.emit();\r\n });\r\n }\r\n }\r\n\r\n @Output()\r\n lastFunction = new EventEmitter();\r\n}\r\n","// tslint:disable: directive-selector\r\nimport { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[componentTypeHost]',\r\n})\r\nexport class SignageComponentTypeDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","export enum ModulePath {\r\n PibDisplay = \"/pibdisplay\",\r\n NurseCheckinCounter = \"/nursecheckincounter\",\r\n PatientCommunicatorDisplay = \"/communicatorpatientdisplay\",\r\n Epaper = \"/epaper\",\r\n SignageDisplay = \"/signagedisplay\",\r\n MeetingRoom = \"/meetingroom\"\r\n}\r\n\r\nenum DeviceRotation {\r\n LEFT = \"Left\",\r\n RIGHT = \"RIGHT\",\r\n NORMAL = \"Normal\",\r\n INVERTED = \"Inverted\"\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class MomentUtcDateAdapter extends MomentDateAdapter {\r\n\r\n constructor(@Optional() @Inject(MAT_DATE_LOCALE) dateLocale: string) {\r\n super(dateLocale);\r\n }\r\n\r\n createDate(year: number, month: number, date: number): Moment {\r\n // Moment.js will create an invalid date if any of the components are out of bounds, but we\r\n // explicitly check each case so we can throw more descriptive errors.\r\n if (month < 0 || month > 11) {\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\r\n }\r\n\r\n if (date < 1) {\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\r\n }\r\n\r\n let result = moment.utc({ year, month, date }).locale(this.locale);\r\n\r\n // If the result isn't valid, the date must have been out of bounds for this month.\r\n if (!result.isValid()) {\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import {A11yModule} from '@angular/cdk/a11y';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport {CdkStepperModule} from '@angular/cdk/stepper';\r\nimport {CdkTableModule} from '@angular/cdk/table';\r\nimport {CdkTreeModule} from '@angular/cdk/tree';\r\nimport {NgModule} from '@angular/core';\r\nimport {\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n} from '@angular/material';\r\n\r\n@NgModule({\r\n exports: [\r\n A11yModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n ScrollingModule,\r\n ]\r\n})\r\nexport class MaterialModule {}\r\n\r\n\r\n/** Copyright 2018 Google Inc. All Rights Reserved.\r\n Use of this source code is governed by an MIT-style license that\r\n can be found in the LICENSE file at http://angular.io/license */\r\n","export class ApplicationSetting {\r\n\r\n constructor() {\r\n }\r\n\r\n public id: string;\r\n public key: string;\r\n public value: string;\r\n public description: string;\r\n public institutionName: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class AssetModel {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public model: string;\r\n public notes: string;\r\n public assetTypeId: string;\r\n public fileId: string;\r\n public filePath: string;\r\n public fileName: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class AssetType {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public fileId: string;\r\n public filePath: string;\r\n public fileName: string;\r\n public institutionId: string;\r\n}\r\n","export class BaseAsset {\r\n public serialNumber: string;\r\n public assetModelId: string;\r\n public assetModelName: string;\r\n public assetTypeName: string;\r\n public purchaseDate?: Date;\r\n public warrantyStart?: Date;\r\n public warrantyEnd?: Date;\r\n public hidden: boolean;\r\n public assetId: string;\r\n}\r\n\r\nexport class Asset extends BaseAsset {\r\n public id: string;\r\n\r\n public locationId: string;\r\n public institutionId: string;\r\n public locationName: string;\r\n public institutionName: string;\r\n\r\n public poNumber: string;\r\n selected: boolean;\r\n}\r\n\r\nexport class LocationAsset extends BaseAsset {\r\n public locationId: string;\r\n\r\n}\r\n\r\nexport class ServiceContractAsset extends BaseAsset {\r\n public serviceContractId: string;\r\n\r\n}\r\n","import { Floor } from \"./floor.model\";\r\n\r\nexport class Building {\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n\r\n floors: Floor[];\r\n}\r\n","\r\nexport class ChannelInfo {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public number: string;\r\n public institutionId: string;\r\n}\r\n","import { ContactGroupMember } from \"./contactgroupmember.model\";\r\n\r\nexport class ContactGroup {\r\n\r\n constructor(id?: string, name?: string, description?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public departmentIds: number[];\r\n public departmentNames: string;\r\n public checked: boolean;\r\n public institutionId: string;\r\n public members: ContactGroupMember[];\r\n}\r\n","\r\nexport class ContactGroupMember {\r\n\r\n constructor(id?: string, name?: string, email?: string, contactGroupId?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.email = email;\r\n this.contactGroupId = contactGroupId;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public email: string;\r\n public contactGroupId: string;\r\n\r\n public department: string;\r\n public company: string;\r\n public designation: string;\r\n public phoneNumber: string;\r\n public homeNo: string;\r\n public mobileNo: string;\r\n public institutionId: string;\r\n public filePath: string;\r\n public userId: string;\r\n}\r\n","import { CommonFilter, Filter, PagedResult } from \"./sieve-filter.model\";\r\n\r\nexport class SignageDashboard {\r\n constructor() {\r\n }\r\n public unreachable: string;\r\n public asleep: string;\r\n public alive: string;\r\n public devices: any[];\r\n public pagedDevices: PagedResult;\r\n}\r\n\r\nexport class SignageDashboardFilter{\r\n\r\n constructor() {\r\n }\r\n\r\n public status: string;\r\n public filter: Filter;\r\n}\r\n","\r\nexport class Department {\r\n\r\n constructor(id?: string, name?: string, description?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public institutionId: string;\r\n}\r\n\r\nexport class PIBTemplate {\r\n\r\n constructor(template_body?: string, name?: string, imgUri?: string, device_api_url?: string, is_post_to_device?: boolean, id?: string, description?: string) {\r\n\r\n this.templateBody = template_body;\r\n this.name = name;\r\n this.imgUrl = imgUri;\r\n this.deviceAPIUrl = device_api_url;\r\n this.isPostToDevice = is_post_to_device;\r\n this.id = id;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public templateBody: string;\r\n public name: string;\r\n public description: string;\r\n public imgUrl: string;\r\n public deviceAPIUrl: string;\r\n public isPostToDevice: boolean;\r\n public isMapToAPI: boolean;\r\n public isStaticLink: boolean;\r\n public macAddress: string;\r\n public epaperUrl: string;\r\n public locationIds: any = [];\r\n public locations: PIBTemplateLocation[] = [];\r\n}\r\n\r\nexport class PIBTemplateLocation {\r\n\r\n constructor() {\r\n }\r\n\r\n //public id: string;\r\n public location_id: string;\r\n public hospital_id: string;\r\n public code: string;\r\n public label: string;\r\n public alias: string;\r\n public sequence: number;\r\n public ward: boolean;\r\n public bed: boolean;\r\n public pibTemplateId: string;\r\n}\r\n\r\nexport class PIBDevice {\r\n\r\n constructor() {\r\n }\r\n\r\n public id: string;\r\n public device_code: string;\r\n public device_status: string;\r\n public device_label: string;\r\n public mac_address: string;\r\n public ip_address: string;\r\n public location_id: string;\r\n public host_address: string;\r\n public last_heartbeat?: Date;\r\n public location_code: string;\r\n public epaper_url: string;\r\n}\r\n","\r\nexport class DeviceType {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public institutionId: string;\r\n}\r\n","import { SignageDashboardFilter } from './dashboard.model';\r\nimport { Permission } from './permission.model';\r\nimport { Filter } from './sieve-filter.model';\r\n\r\nexport class Device {\r\n\r\n constructor(id?: string, code?: string, ipAddress?: string, macAddress?: string, serialNumber?: string, isApproved?: boolean,\r\n startDate?: Date, endDate?: Date, facilityId?: string, facilityName?: string, status?: string, locationId?: string, locationName?: string) {\r\n\r\n this.code = code;\r\n this.ipAddress = ipAddress;\r\n this.macAddress = macAddress;\r\n this.serialNumber = serialNumber;\r\n this.isApproved = isApproved;\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n this.facilityId = facilityId;\r\n this.facilityName = facilityName;\r\n this.status = status\r\n this.locationId = locationId;\r\n this.locationName = locationName;\r\n }\r\n\r\n public id: string;\r\n public code: string;\r\n public ipAddress: string;\r\n public macAddress: string;\r\n public serialNumber: string;\r\n public isApproved: boolean;\r\n public startDate: Date;\r\n public endDate: Date;\r\n public facilityId: string;\r\n public facilityName: string;\r\n public locationId: string;\r\n public locationName: string;\r\n public status: string;\r\n public institutionId: string;\r\n public publicationId: string;\r\n public module_path: string;\r\n public module_path_value: string;\r\n public emergencyMessage1: string;\r\n public emergencyMessage2: string;\r\n public emergencyMessage3: string;\r\n public emergencyMessage4: string;\r\n public moduleId: string;\r\n public device_label: string;\r\n public module_uri: string;\r\n public communicatorMenuId: string;\r\n public pibTemplateId: string;\r\n public isScreenOn: boolean;\r\n public ems_id: string;\r\n public media_id: string;\r\n public external_location_id: string;\r\n public external_ems_id: string;\r\n public external_media_id: string;\r\n public device_status: string;\r\n\r\n public institutionName: string;\r\n public status_display: string;\r\n public scheme: string;\r\n public port: string;\r\n public connection_status_display: string;\r\n public deviceTypeId: string;\r\n}\r\n\r\nexport class DeviceFilter {\r\n public isActive?: boolean;\r\n public isApproved: boolean;\r\n public institutionId?: number;\r\n}\r\n\r\nexport class DevicePushMessage {\r\n public deviceIds?: string[];\r\n public filter: SignageDashboardFilter;\r\n public emergencyMessage1: string;\r\n public emergencyMessage2: string;\r\n public emergencyMessage3: string;\r\n public emergencyMessage4: string;\r\n}\r\n","\r\nexport class DirectoryListingCategory {\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n public icon: string;\r\n}\r\n","\r\nexport class DirectoryListing {\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n\r\n\r\n public description: string;\r\n\r\n public extraField: string;\r\n public iconUrl: string;\r\n public availableForBooking: boolean;\r\n\r\n public isInternal: boolean;\r\n\r\n public aliases: string;\r\n public disciplines: string;\r\n\r\n public contact: string;\r\n\r\n public unitNumber: string;\r\n\r\n public highlightIcon: string;\r\n public highlightText: string;\r\n public pause: boolean;\r\n public pauseTime: number;\r\n\r\n public mapDisplayName: string;\r\n\r\n public directoryListingId: string;\r\n public directoryListingCode: string;\r\n public directoryListingLabel: string;\r\n\r\n public floorId: string;\r\n public floorLabel: string;\r\n\r\n public pointId: string;\r\n public isActive: boolean;\r\n}\r\n","\r\nexport class EmployeeData {\r\n public id: string;\r\n public code: string;\r\n public name: string;\r\n\r\n public employeeDesignationId: number;\r\n public employeeDesignationCode: string;\r\n public employeeDesignationLabel: string;\r\n\r\n public displayName: string;\r\n\r\n public picture_url: string;\r\n}\r\n","\r\nexport class EmployeeDesignation {\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n}\r\n","import { Permission } from './permission.model';\r\nimport { SignageComponent } from './signage-component.model';\r\nimport { SignageCompilation } from './signage-compilation.model';\r\n\r\n\r\nexport class EmployeeScheduleShift {\r\n\r\n public id: string;\r\n public name: string;\r\n\r\n public scheduleId: string;\r\n\r\n public startTime: string;\r\n public endTime: string;\r\n\r\n public monday: boolean;\r\n public tuesday: boolean;\r\n public wednesday: boolean;\r\n public thursday: boolean;\r\n public friday: boolean;\r\n public saturday: boolean;\r\n public sunday: boolean;\r\n\r\n isActive: any;\r\n}\r\n","import { EmployeeScheduleShift } from \"./employee-schedule-shift.model\";\r\n\r\nexport class EmployeeSchedule {\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n\r\n public effectiveDate: string;\r\n public ineffectiveDate: string;\r\n\r\n shifts: EmployeeScheduleShift[];\r\n locations: any[];\r\n slots: any[];\r\n infos: any[];\r\n}\r\n","import { Permission } from './permission.model';\r\nimport { Facility } from './facility.model';\r\nimport { ContactGroup } from './contactgroup.model';\r\nimport { timeInterval } from 'rxjs/operators';\r\n\r\nexport class EmsProfile {\r\n\r\n //constructor(\r\n // code?: string,\r\n // label?: string,\r\n // isScreenOn?: boolean,\r\n\r\n // rotation?: string,\r\n // resolution?: string,\r\n\r\n // brightness?: string,\r\n // volume?: string,\r\n\r\n // module_path?: string,\r\n // module_path_value?: string,\r\n\r\n // communicatorMenuId?: string,\r\n //) {\r\n\r\n // this.code = code;\r\n // this.label = label;\r\n // this.isScreenOn = isScreenOn;\r\n // this.rotation = rotation;\r\n // this.resolution = resolution;\r\n // this.brightness = brightness;\r\n // this.volume = volume;\r\n // this.module_path = module_path;\r\n // this.module_path_value = module_path_value;\r\n // this.communicatorMenuId = communicatorMenuId;\r\n\r\n //}\r\n\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n public screenStatus: number;\r\n\r\n public rotation: string;\r\n public resolution: string;\r\n\r\n public brightness: number;\r\n public volume: number;\r\n\r\n public module_path: string;\r\n public module_path_value: string;\r\n\r\n public communicatorMenuId: string;\r\n}\r\n","import { Permission } from './permission.model';\r\nimport { Facility } from './facility.model';\r\nimport { ContactGroup } from './contactgroup.model';\r\nimport { timeInterval } from 'rxjs/operators';\r\n\r\nexport class EmsSchedule {\r\n effectiveDateObj: Date;\r\n ineffectiveDateObj: Date;\r\n startTimeObj: Date;\r\n endTimeObj: Date;\r\n\r\n constructor(\r\n label?: string,\r\n locationId?: string,\r\n locationCode?: string,\r\n locationLabel?: string,\r\n emsProfileId?: string,\r\n emsProfileCode?: string,\r\n emsProfileLabel?: string,\r\n effectiveDate?: string,\r\n ineffectiveDate?: string,\r\n startTime?: string,\r\n endTime?: string,\r\n monday?: boolean,\r\n tuesday?: boolean,\r\n wednesday?: boolean,\r\n thursday?: boolean,\r\n friday?: boolean,\r\n saturday?: boolean,\r\n sunday?: boolean,\r\n exceptHoliday?: boolean,\r\n emsGroupId?: string,\r\n emsGroupName?: string,\r\n ) {\r\n\r\n\r\n this.label = label;\r\n this.locationId = locationId;\r\n this.locationCode = locationCode;\r\n this.locationLabel = locationLabel;\r\n this.emsProfileId = emsProfileId;\r\n this.emsProfileCode = emsProfileCode;\r\n this.emsProfileLabel = emsProfileLabel;\r\n this.effectiveDate = effectiveDate;\r\n this.ineffectiveDate = ineffectiveDate;\r\n this.startTime = startTime;\r\n this.endTime = endTime;\r\n this.monday = monday;\r\n this.tuesday = tuesday;\r\n this.wednesday = wednesday;\r\n this.thursday = thursday;\r\n this.friday = friday;\r\n this.saturday = saturday;\r\n this.sunday = sunday;\r\n this.exceptHoliday = exceptHoliday;\r\n this.emsGroupId = emsGroupId;\r\n this.emsGroupName = emsGroupName;\r\n }\r\n\r\n id?: string;\r\n label?: string;\r\n locationId?: string;\r\n locationCode?: string;\r\n locationLabel?: string;\r\n emsProfileId?: string;\r\n emsProfileCode?: string;\r\n emsProfileLabel?: string;\r\n effectiveDate?: string;\r\n ineffectiveDate?: string;\r\n startTime?: string;\r\n endTime?: string;\r\n monday?: boolean;\r\n tuesday?: boolean;\r\n wednesday?: boolean;\r\n thursday?: boolean;\r\n friday?: boolean;\r\n saturday?: boolean;\r\n sunday?: boolean;\r\n exceptHoliday?: boolean;\r\n color: any;\r\n rrule?: {\r\n freq: any;\r\n byweekday?: any;\r\n };\r\n emsGroupId?: string;\r\n emsGroupName?: string;\r\n}\r\n","\r\nexport class Ems {\r\n\r\n constructor(id?: string, name?: string, description?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public institutionId?: string;\r\n public institutionName?: string;\r\n}\r\n","export enum Gender {\r\n None,\r\n Female,\r\n Male\r\n}\r\n\r\nexport enum LocType {\r\n Hospital = \"Hospital\",\r\n Building = \"Building\",\r\n Level = \"Level\",\r\n Room = \"Room\"\r\n}\r\n","export class EpaperTemplate {\r\n\r\n constructor(template_body?: string, name?: string, imgUri?: string, device_api_url?: string, is_post_to_device?: boolean, id?: string, description?: string) {\r\n\r\n this.templateBody = template_body;\r\n this.name = name;\r\n this.imgUrl = imgUri;\r\n this.deviceAPIUrl = device_api_url;\r\n this.isPostToDevice = is_post_to_device;\r\n this.id = id;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public templateBody: string;\r\n public name: string;\r\n public description: string;\r\n public imgUrl: string;\r\n public deviceAPIUrl: string;\r\n public isPostToDevice: boolean;\r\n public isMapToAPI: boolean;\r\n public isStaticLink: boolean;\r\n public macAddress: string;\r\n public epaperUrl: string;\r\n public locationIds: any = [];\r\n public locations: EpaperTemplateLocation[] = [];\r\n}\r\n\r\nexport class EpaperTemplateLocation {\r\n\r\n constructor() {\r\n }\r\n\r\n //public id: string;\r\n public locationId: string;\r\n public name: string;\r\n\r\n public epaperTemplateId: string;\r\n}\r\n\r\nexport class EpaperDevice {\r\n\r\n constructor() {\r\n }\r\n\r\n public id: string;\r\n public device_code: string;\r\n public device_status: string;\r\n public device_label: string;\r\n public mac_address: string;\r\n public ip_address: string;\r\n public location_id: string;\r\n public host_address: string;\r\n public last_heartbeat?: Date;\r\n public location_code: string;\r\n public epaper_url: string;\r\n}\r\n","import { Permission } from './permission.model';\r\n\r\n\r\nexport class FacilityType {\r\n\r\n constructor(name?: string, description?: string) {\r\n\r\n this.name = name;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public facilitiesCount: string;\r\n public institutionId: string;\r\n}\r\n","export class Facility {\r\n\r\n constructor(name?: string, description?: string, capacity?: Number, institutionName?: string, link?: string) {\r\n\r\n this.name = name;\r\n this.description = description;\r\n this.institutionName = institutionName;\r\n this.link = link;\r\n this.capacity = capacity;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public institutionName: string;\r\n public capacity: Number;\r\n public filePath: string;\r\n public fileName: string;\r\n public institutionId: number;\r\n public link: string;\r\n}\r\n\r\nexport class UserInfoVal {\r\n constructor(\r\n id: number,\r\n title: string,\r\n color: string\r\n ) {\r\n\r\n }\r\n public id: number;\r\n public title: string;\r\n public color: string;\r\n\r\n}\r\n","\r\nexport class Floor {\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n\r\n order: number;\r\n floorId: string;\r\n\r\n isActive: any;\r\n\r\n map: any;\r\n}\r\n","\r\nexport class ImageReferenceColor {\r\n\r\n constructor(id?: string, name?: string, colorCode?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.colorCode = colorCode;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public colorCode: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class ImageReferenceType {\r\n\r\n constructor(id?: string, name?: string, description?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class Image {\r\n\r\n constructor(id?: string, title?: string, imageLocation?: string, duration?: number, animation?: string) {\r\n\r\n this.id = id;\r\n this.title = title;\r\n this.imageLocation = imageLocation;\r\n this.duration = duration,\r\n this.animation = animation\r\n }\r\n\r\n public id: string;\r\n public title: string;\r\n public imageLocation: string;\r\n public institutionId: string;\r\n\r\n public isVideo: boolean;\r\n\r\n public mediaId: string;\r\n\r\n public description: string;\r\n\r\n public tags: string;\r\n\r\n public duration?: number;\r\n public animation?: string;\r\n}\r\n","\r\nexport class Institution {\r\n\r\n constructor(id?: string, name?: string, description?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public startTime: number;\r\n public endTime: number;\r\n public isRestrictDuplicateBooking: boolean;\r\n public restriction: string;\r\n}\r\n","import { Image } from '../models/image.model';\r\nimport { Playlist } from '../models/playlist.model';\r\n\r\nexport class KioskSettings {\r\n public floor_interval: number;\r\n public arrow_image: string;\r\n arrow_color: string;\r\n arrow_speed: number;\r\n line_color: string;\r\n\r\n constructor(id?: string, label?: string) {\r\n\r\n this.id = id;\r\n this.label = label;\r\n }\r\n\r\n public id: string;\r\n public label: string;\r\n public screenSaveTime: number;\r\n public screen_save_time: number;\r\n public ssPlaylistId: string;\r\n public ss_playlist_id: string;\r\n public ssPlaylist: Playlist;\r\n public bannerId: string;\r\n public banner_id: string;\r\n public bannerImage: Image;\r\n public topBannerId: string;\r\n public top_banner_id: string;\r\n public topBanner: Playlist;\r\n public bottomBannerId: string;\r\n public bottom_banner_id: string;\r\n public bottomBanner: Playlist;\r\n public routeWeight: number;\r\n public route_weight: number;\r\n public routeSpeed: number;\r\n public route_speed: number;\r\n public zoom_level: number;\r\n public routeColor: string;\r\n public route_color: string;\r\n public jan: string;\r\n public feb: string;\r\n public mar: string;\r\n public apr: string;\r\n public may: string;\r\n public jun: string;\r\n public jul: string;\r\n public aug: string;\r\n public sep: string;\r\n public okt: string;\r\n public nov: string;\r\n public des: string;\r\n\r\n public dirColor: string;\r\n public dir_color: string;\r\n public dirFontColor: string;\r\n public dir_font_color: string;\r\n public dirFontType: string;\r\n public dir_font_type: string;\r\n\r\n public dir_font_type2: string;\r\n\r\n public dir_font_size: number;\r\n\r\n public baloon_image: string;\r\n\r\n public baloon_width: number;\r\n\r\n public baloon_height: number;\r\n\r\n public anchor_h: number;\r\n\r\n public anchor_v: number;\r\n\r\n public defEventId: number;\r\n public def_event_id: number;\r\n public defEvent: Playlist;\r\n}\r\n","\r\nexport class LineModel {\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n\r\n public mapId: string;\r\n\r\n public point0Id: string;\r\n\r\n public point1Id: string;\r\n\r\n public code0: string;\r\n public code1: string;\r\n\r\n public isActive: boolean;\r\n isFloorConnector: boolean;\r\n displayLabel: string;\r\n}\r\n","export class LocationTree {\r\n\r\n constructor(id: number, value: string, type: string, children: LocationTree[]) {\r\n\r\n this.value = value;\r\n this.id = id;\r\n this.children = children;\r\n }\r\n\r\n public id: number;\r\n public value: string;\r\n public type: string;\r\n public children: LocationTree[];\r\n}\r\n\r\n","import { Permission } from './permission.model';\r\nimport { Facility } from './facility.model';\r\nimport { eachDay } from 'date-fns';\r\nimport { FacilityType } from './facility-type.model';\r\nimport { Asset, LocationAsset } from './asset.model';\r\n\r\nexport class Location {\r\n\r\n constructor(name?: string, description?: string, locationTypeId?: string, locationTypeName?: string, institutionName?: string,\r\n facilities?: Facility[], facilityIds?: number[], institutionIds?: number[], facilityNames?: string, directoryName?: string, directoryId?: string,\r\n capacity?: number,parentLocationId?: number, institutionId?: string, colorTheme?: string, locationGroup?: string) {\r\n\r\n this.name = name;\r\n this.description = description;\r\n this.locationTypeId = locationTypeId;\r\n this.locationTypeName = locationTypeName;\r\n this.institutionName = institutionName;\r\n this.facilityNames = facilityNames;\r\n this.directoryName = directoryName;\r\n this.directoryId = directoryId;\r\n this.facilities = facilities;\r\n this.facilityIds = facilityIds;\r\n this.institutionIds = institutionIds;\r\n this.capacity = capacity;\r\n this.parentLocationId = parentLocationId;\r\n this.institutionId = institutionId;\r\n this.colorTheme = colorTheme;\r\n this.locationGroup = locationGroup;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public locationTypeId: string;\r\n public locationTypeName: string;\r\n public facilityNames: string;\r\n public institutionName: string;\r\n public directoryName: string;\r\n public directoryId: string;\r\n public facilities: Facility[];\r\n public facilityIds?: number[];\r\n public facilityTypes: Facility[];\r\n public facilityTypeIds?: number[];\r\n public institutionIds?: number[];\r\n public capacity: number;\r\n public parentLocationId: number;\r\n public parentLocation: Location;\r\n public filePath: string;\r\n public fileName: string;\r\n public availableFrom: string;\r\n public availableTo: string;\r\n public availableTimeDisplay: string;\r\n public institutionId: string;\r\n public colorTheme: string;\r\n public locationGroup: string;\r\n public isBooking: boolean;\r\n public facePlateNumber: string;\r\n public imageReferences: ImageReference[];\r\n public locationAssets: LocationAsset[];\r\n\r\n public FloorId: number;\r\n public ExchangeId: string;\r\n public Extension: string;\r\n public IP: string;\r\n public deviceName: string;\r\n public category: string;\r\n public remarks: string;\r\n public floorX: number;\r\n public floorY: number;\r\n public seatingCapacity: number;\r\n}\r\n\r\nexport class LocationType {\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n}\r\n\r\nexport class ImageReference {\r\n constructor(locationId?: string, filePath?: string, remarks?: string, fileId?: number, fileName?: string, imageReferenceTypeId?: string, referenceDate?: Date) {\r\n this.locationId = locationId;\r\n this.filePath = filePath;\r\n this.remarks = remarks;\r\n this.fileId = fileId;\r\n this.fileName = fileName;\r\n this.referenceDate = referenceDate;\r\n this.imageReferenceTypeId = imageReferenceTypeId;\r\n }\r\n\r\n public fileId: number;\r\n public id: string;\r\n public locationId: string;\r\n public filePath: string;\r\n public fileName: string;\r\n public remarks: string;\r\n public referenceDate: Date;\r\n public imageReferenceTypeId: string;\r\n public imageReferenceColorId: string;\r\n public imageReferenceColorCode: string;\r\n public hidden: boolean;\r\n}\r\n\r\n\r\nexport class LocationTreeFilter {\r\n constructor(\r\n ) {\r\n\r\n }\r\n public currentUserInstitutionId?: string;\r\n public institutionId?: string;\r\n public imageReferenceColorId?: string;\r\n public keyword?: string;\r\n public isBookingOnly: boolean;\r\n}\r\n","import { PointModel } from \"./point.model\";\r\nimport { LineModel } from \"./line.model\";\r\n\r\nexport class MapModel {\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n\r\n public floorId: string;\r\n\r\n public map_url: string;\r\n\r\n public points: PointModel[];\r\n public lines: LineModel[];\r\n}\r\n","\r\nexport class Address {\r\n public city: string;\r\n public country: string;\r\n public dependentLocality: string;\r\n public organization: string;\r\n public phone: string;\r\n public postalCode: string;\r\n public recipient: string;\r\n public region: string;\r\n public addressLine: string[];\r\n}\r\n","export class BodyPayLoad\r\n{\r\n public OrderId: string;\r\n public OrderNo: string;\r\n public TransactionId: string;\r\n public TransactionNo: string;\r\n}\r\n","\r\nexport class FomoPaymentResponse{\r\n public id: string; \r\n public orderNo: string; \r\n public mode: string;\r\n public subject: string;\r\n public description: string;\r\n public returnUrl: string;\r\n public backUrl: string;\r\n public notifyUrl: string;\r\n public currencyCode: string;\r\n public amount: string;\r\n public createdAt: number;\r\n public status: string;\r\n public url: string;\r\n\r\n public tokenOrderId: string; \r\n\r\n}\r\n","import { PaymentItem } from './payment-item.model';\r\nimport { TransactionOptions } from './transaction-options.model';\r\n\r\nexport class OrderPaymentRequest {\r\n public userId: number;\r\n public institutionId: number;\r\n public discountId: number;\r\n public priceId: number;\r\n public amount: string;\r\n public currencyCode: string;\r\n public mode: string;\r\n public subject: string;\r\n public notifyUrl: string;\r\n public returnUrl: string;\r\n public backUrl: string;\r\n public orderNo: string; // our unique generated id for each request\r\n public tokenOrderId: string; // id for the token being paid\r\n public sourceOfFunds: string;\r\n public transactionDate: Date;\r\n // public transactionOption: TransactionOptions;\r\n \r\n}\r\n\r\n \r\n","\r\nexport class OrderPaymentResponse {\r\n public paymentRequestId : string;\r\n public userId: string;\r\n public institutionId: string;\r\n public isSuccessful: Boolean;\r\n public isCancelled: Boolean;\r\n public isConfirmedPaid: Boolean;\r\n public statusCode: string;\r\n public responseStatus: string;\r\n public mode: string;\r\n public paymentTransactionId: string; // from fomopay\r\n public orderNo: string; // our unique generate id for request\r\n public tokenOrderId: string; // id for the token being paid\r\n public subject: string;\r\n public amount: string;\r\n public currencyCode: string;\r\n public paymentUrl: string;\r\n public paymentDate: Date;\r\n}\r\n\r\n","import { TransactionOptions } from './transaction-options.model';\r\n \r\nexport class Order {\r\n public mode: string;\r\n public orderNo: string;\r\n public tokenOrderId: string;\r\n public subject: string;\r\n public description: string;\r\n public amount: string;\r\n public currencyCode: string;\r\n public notifyUrl: string;\r\n public returnUrl: string;\r\n public backUrl: string;\r\n public sourceOfFunds: string[];\r\n public transactionOptions: TransactionOptions;\r\n}\r\n","\r\nexport class PaymentItem {\r\n public label: string;\r\n public amount: Amount;\r\n public sku: string;\r\n public quantity: number;\r\n}\r\n\r\n\r\nexport class Amount {\r\n public currency: string;\r\n public value: string;\r\n}\r\n","export class PaymentOptions {\r\n public paymentName: string;\r\n public paymentCode: string;\r\n public isEnabled: Boolean;\r\n public paymentDiscount: number;\r\n public discountedPaymentAmount: number;\r\n public imageSrc: string;\r\n}\r\n\r\n\r\n","import { FomoPaymentResponse } from './fomo-payment-response.model';\r\nimport { TransException } from './trans-exception.model';\r\n \r\nexport class PaymentResult {\r\n public isSuccessful: boolean;\r\n public isCancelled: boolean;\r\n public message: string;\r\n public statusCode: string;\r\n public responseStatus: string;\r\n public responseURI: string;\r\n public server: string;\r\n public paymentTime: Date;\r\n public fomoPaymentResponse: FomoPaymentResponse;\r\n public transException: TransException;\r\n}\r\n\r\n","\r\nexport class TokenOrderedPayment {\r\n public id: string;\r\n public tokenId: string;\r\n public tokenDesc: string;\r\n public subtotal: number;\r\n public paymentMethod: string;\r\n}\r\n","import { Address } from './address.model';\r\nimport { PaymentItem } from './payment-item.model';\r\n\r\nexport class TransactionOptions {\r\n public payerName: string;\r\n public payerEmail: string;\r\n public payerPhone: string;\r\n public shippingAddress: Address;\r\n public billingAddress: Address;\r\n public paymentItem: PaymentItem[];\r\n}\r\n","\r\nexport class BentoAsset {\r\n\r\n\r\n public id: string;\r\n public code: string;\r\n public institutionId: string;\r\n\r\n public bentoBoxTypeId: string; \r\n\r\n public bentoBoxTypeCode: string;\r\n\r\n public cartonAssetId: string;\r\n\r\n public cartonAssetCode: string;\r\n\r\n public dishId: string;\r\n\r\n public dishCode: string;\r\n\r\n public date: Date;\r\n\r\n public timeStamp: Date;\r\n}\r\n","\r\nexport class BentoBoxType {\r\n\r\n public id: string;\r\n public code: string;\r\n public institutionId: string;\r\n\r\n public length?: number;\r\n public width?: number;\r\n public height?: number;\r\n\r\n public catererInfoId?: string;\r\n\r\n public catererInfoName?: string;\r\n\r\n public picture?: string;\r\n}\r\n","\r\nexport class CancelOrderRequest {\r\n\r\n constructor(id?: string) {\r\n\r\n this.id = id;\r\n }\r\n\r\n public id: string;\r\n public orderId: string;\r\n public userId: string;\r\n public userName: string;\r\n public reason: string;\r\n public note: string;\r\n public imgUrl: string;\r\n public fileName: string;\r\n public filePath: string;\r\n public status: string;\r\n public response: string;\r\n public cancellationDate: Date;\r\n public submissionDate: Date;\r\n public isApproved: boolean;\r\n}\r\n\r\nexport class CancelOrderRequestApproval {\r\n public id: string;\r\n public isApproved: boolean;\r\n public response: string;\r\n}\r\n","\r\nexport class CartonAsset {\r\n\r\n\r\n public id: string;\r\n public code: string;\r\n public institutionId: string;\r\n\r\n public cartonTypeId: string; \r\n\r\n public cartonTypeCode: string;\r\n\r\n public bentoAssets: any;\r\n\r\n public date: Date;\r\n\r\n public timeStamp: Date;\r\n}\r\n","\r\nexport class CartonType {\r\n\r\n public id: string;\r\n public code: string;\r\n public institutionId: string;\r\n\r\n public length?: number;\r\n public width?: number;\r\n public height?: number;\r\n\r\n public catererInfoId?: string;\r\n\r\n public catererInfoName?: string;\r\n}\r\n","import { Outlet } from \"./outlet.model\";\r\n\r\nexport class CatererInfo {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public code: string;\r\npublic address: string;\r\n public institutionId: string;\r\n public status: string;\r\n public catererOutlets: CatererOutlet[]; \r\n}\r\n\r\nexport class CatererOutlet {\r\n\r\n constructor() {\r\n }\r\n\r\n public catererInfoId: string;\r\n public outletId: string;\r\n public isRsp: boolean;\r\n public outletName: string;\r\n public catererName: string;\r\n public outletProfileName: string;\r\n public outletProfileId: string;\r\n public status: string;\r\n public outlet: Outlet;\r\n}\r\n","\r\nexport class ClassBatch {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public year: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class ClassLevel {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public year: string;\r\n public institutionId: string;\r\n public outletId: string;\r\n public outletName: string;\r\n}\r\n","\r\nexport class Class {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public classLevelId: string;\r\n public classLevelName: string;\r\n}\r\n","\r\nexport class ContactUsSubject {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public institutionId: string;\r\n}\r\n\r\n\r\nexport class ContactUsDetail {\r\n\r\n constructor(id?: string, label?: string) {\r\n\r\n this.id = id;\r\n this.label = label;\r\n }\r\n\r\n public id: string;\r\n public label: string;\r\n public institutionId: string;\r\n public contactUsSubjectId: string;\r\n public contactUsSubjectName: string;\r\n public contactUsSubjectDescription: string;\r\n}\r\n","\r\nexport class Cuisine {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class DeliveryOrder {\r\n\r\n public id: string;\r\n public doNumber: string;\r\n public institutionId: string;\r\n\r\n public deliveryAddress: string;\r\n\r\n public catererInfoId?: string;\r\n\r\n public catererInfoName?: string;\r\n\r\n public fromStoreId?: string;\r\n\r\n public fromStoreName?: string;\r\n\r\n public toStoreId?: string;\r\n\r\n public toStoreName?: string;\r\n\r\n public deliveryDetails: any;\r\n\r\n public completed: Boolean;\r\n}\r\n","import { Menu } from \"../menu.model\";\r\nimport { DishType } from \"./dish-type.model\";\r\nimport { Dish } from \"./dish.model\";\r\nimport { MealType } from \"./meal-type.model\";\r\n\r\nexport class DishCycle {\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n public id: string;\r\n public label: string;\r\n public sequence: number;\r\n public dishTypeId: string;\r\n public dishTypeName: string;\r\n public startDate: Date;\r\n public endDate: Date;\r\n public numOfDays: number;\r\n public numOfSets: number;\r\n public outletProfileId: string;\r\n public catererId: string;\r\n public cycleType: string;\r\n public cycleTypeId: string;\r\n public mealTypeId: string;\r\n public dishType: DishType;\r\n public dishCyclePeriods: DishCyclePeriod[];\r\n public schedules: DishCycleSchedule[];\r\n public sets: DishCycleScheduleSet[];\r\n public blockedDates: DishCycleBlockedDate[];\r\n public outletDishBlockedDates: OutletDishBlockedDate[];\r\n public days: number[];\r\n public color: any;\r\n public isBlocked: boolean;\r\n public rrule?: {\r\n freq: any;\r\n byweekday?: any;\r\n };\r\n}\r\n\r\nexport class DishCyclePeriod {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public id: string;\r\n public dishCycleId: string;\r\n public mealPeriodId: string;\r\n public mealPeriodName: string;\r\n public sets: DishCycleScheduleSet[];\r\n public excludedMenus: OutletDishCyclePeriodMenu[];\r\n}\r\n\r\nexport class OutletDishCyclePeriodMenu {\r\n public dishCyclePeriodId: string;\r\n public dishId: string;\r\n public outletId: string;\r\n public dishCycleScheduleSetId: string;\r\n}\r\n\r\nexport class DishCycleSchedule {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public id: string;\r\n public dishCycleId: string;\r\n public day: number;\r\n public details: DishCycleScheduleDetail[];\r\n}\r\n\r\nexport class DishCycleScheduleDetail {\r\n\r\n constructor() {\r\n }\r\n\r\n public id: string;\r\n public dishCycleScheduleId: string;\r\n public label: string;\r\n public sequence: number;\r\n public menus: DishCycleScheduleDetailMenu[];\r\n public displayMenus: DishCycleScheduleDetailMenu[];\r\n public selectedDish: Dish;\r\n public selectedCycle: DishCycle;\r\n}\r\n\r\nexport class OutletDishViewMenu {\r\n public outletId: string;\r\n public excludedMenus: OutletDishCyclePeriodMenu[];\r\n}\r\n\r\nexport class DishCycleScheduleDetailMenu {\r\n\r\n constructor() {\r\n }\r\n\r\n public id: string;\r\n public dishCycleScheduleDetailId: string;\r\n public dishId: string;\r\n public dishLabel: string;\r\n public dishCode: string;\r\n public dishCycleId: string;\r\n public dishCycleLabel: string;\r\n public checked: boolean;\r\n}\r\n\r\n\r\nexport class DishCycleScheduleSet {\r\n\r\n constructor(dishCycleId?: string, sequence?: number, label?: string, cycleType?: string, cycleTypeId?: string) {\r\n this.sequence = sequence;\r\n this.label = label;\r\n this.cycleType = cycleType;\r\n this.cycleTypeId = cycleTypeId;\r\n this.dishCycleId = dishCycleId;\r\n }\r\n\r\n public id: string;\r\n public sequence: number;\r\n public label: string;\r\n public cycleType: string;\r\n public cycleTypeId: string;\r\n public cycleTypeSequence: number;\r\n public cycleTypeLabel: string;\r\n public dishCycleId: string;\r\n public mealTypeId: string;\r\n public options: any[];\r\n public price: string;\r\n public menus: DishCycleScheduleDetailMenu[];\r\n}\r\n\r\nexport class DishCycleBlockedDate {\r\n\r\n constructor() {\r\n }\r\n\r\n public dishCycleId: string;\r\n public effectiveDate: string;\r\n public label: string;\r\n}\r\n\r\nexport class DishBlockUnblockDateModel {\r\n\r\n constructor() {\r\n }\r\n\r\n public blockedDates: DishCycleBlockedDate[];\r\n public isUnblock: boolean;\r\n}\r\n\r\nexport class DishCycleScheduleMenu {\r\n\r\n constructor(id?: string, mealPeriodId?: string) {\r\n }\r\n\r\n public setId: string;\r\n public menuId: string;\r\n public label: string;\r\n public code: string;\r\n public checked: boolean;\r\n public menu: Menu;\r\n public mealTypes: MealType[];\r\n}\r\n\r\n\r\nexport class OutletDishBlockedDate {\r\n\r\n constructor() {\r\n }\r\n\r\n public dishCycleId: string;\r\n public outletId: string;\r\n public effectiveDate: string;\r\n public label: string;\r\n}\r\n\r\nexport class BlockUnblockOutletDishDateModel {\r\n\r\n constructor() {\r\n }\r\n\r\n public blockedDates: OutletDishBlockedDate[];\r\n public isUnblock: boolean;\r\n}\r\n","\r\nexport class DishType {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public institutionId: string;\r\n public catererId: string;\r\n public dishTypePeriods: DishTypePeriod[];\r\n}\r\n\r\nexport class DishTypePeriod {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public dishTypeId: string;\r\n public periodId: string;\r\n public dishTypeName: string;\r\n public periodName: string;\r\n}\r\n","\r\nexport class Dish {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.code = name;\r\n }\r\n\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n public rrPrice: string;\r\n public cost: string;\r\n public dishTypeId: string;\r\n public dishTypeName: string;\r\n public cuisineId: string;\r\n public cuisineName: string;\r\n public isEnabled: boolean;\r\n\r\n public fileId: string;\r\n public fileName: string;\r\n public filePath: string;\r\n\r\n public productionPictureId: string;\r\n public productionPictureName: string;\r\n public productionPicturePath: string;\r\n\r\n public parentDishId: string;\r\n public bentoBoxTypeId: string;\r\n public bentoBoxTypeCode: string;\r\n public checked: boolean;\r\n public parentDishLabel: string;\r\n public cookedWeight: number;\r\n public catererId: string;\r\n public dishPeriods: DishPeriod[];\r\n public subDishes: DishDetail[];\r\n public restrictions: DishRestriction[];\r\n}\r\n\r\nexport class DishPeriod {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public dishId: string;\r\n public periodId: string;\r\n public dishName: string;\r\n public periodName: string;\r\n}\r\n\r\nexport class DishRestriction {\r\n\r\n constructor() {\r\n }\r\n\r\n public dishId: string;\r\n public restrictionId: string;\r\n public checked: boolean;\r\n}\r\n\r\nexport class DishDetail {\r\n\r\n constructor() {\r\n }\r\n\r\n public dishId: string;\r\n public parentDishId: string;\r\n public code: string;\r\n public label: string;\r\n public checked: boolean;\r\n public cookedWeight: number;\r\n public dish: Dish;\r\n}\r\n","\r\nexport class Driver {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public price: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class EmailTemplate {\r\n\r\n constructor(id?: string, subject?: string) {\r\n\r\n this.id = id;\r\n this.subject = subject;\r\n }\r\n\r\n public id: string;\r\n public subject: string;\r\n public body: string;\r\n public fromName: string;\r\n public fromEmail: string;\r\n public institutionId: string;\r\n public outletId: string;\r\n}\r\n","\r\nexport class InterestGroup {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class MealPeriod {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public sequence: number;\r\n public institutionId: string;\r\n public outletProfileId: string;\r\n public outletProfileName: string;\r\n public catererId: string;\r\n public startDate: Date;\r\n public endDate?: Date;\r\n public checked: boolean;\r\n}\r\n","import { MealPeriod } from \"./meal-period.model\";\r\nimport { OutletClassRoster } from \"./outlet-class-roster.model\";\r\n\r\nexport class MealSession {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public sequence: number;\r\n public institutionId: string;\r\n public outletId: string;\r\n public outletName: string;\r\n public mealPeriodId: string;\r\n public mealPeriodName: string;\r\n public startDate: Date;\r\n public endDate?: Date;\r\n public checked: boolean;\r\n public catererId: string;\r\n public details: MealSessionDetail[];\r\n public classRosters: OutletClassRoster[];\r\n}\r\n\r\nexport class MealSessionDetail {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public sequence: number;\r\n public mealSessionId: string;\r\n public mealSessionName: string;\r\n public startDate: Date;\r\n public endDate?: Date;\r\n public routeTime?: Date;\r\n public overheadTime?: Date;\r\n public calSourceTime?: Date;\r\n public routeId?: Date;\r\n public routeName?: Date;\r\n public checked: boolean;\r\n public sTime: string;\r\n public eTime: string;\r\n public rTime: string;\r\n public oTime: string;\r\n public cTime: string;\r\n\r\n public routeInterval: number;\r\n public overheadInterval: number;\r\n}\r\n\r\nexport class MealSessionMealPeriod {\r\n public mealPeriod: MealPeriod;\r\n public mealSessions: MealSession[];\r\n}\r\n","\r\nexport class MealType {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public price: number;\r\n public institutionId: string;\r\n public chargeType: string;\r\n public cuisineId: string;\r\n public cuisineName: string;\r\n public dishNames: string;\r\n public catererId: string;\r\n public isSubMenu: boolean;\r\n public dishes: MealTypeDish[];\r\n}\r\n\r\nexport class MealTypeDish {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public dishId: string;\r\n public mealTypeId: string;\r\n public mealTypeName: string;\r\n public dishName: string;\r\n public checked: boolean;\r\n}\r\n","import { MealType } from \"./meal-type.model\";\r\nimport { MealTypeMenuDish, Menu, OutletMenuDish } from \"./menu.model\";\r\n\r\nexport class MenuCycle {\r\n\r\n constructor(id?: string) {\r\n\r\n this.id = id;\r\n }\r\n\r\n public id: string;\r\n public label: string;\r\n public startDate: Date;\r\n public endDate?: Date;\r\n public institutionId: string;\r\n public outletProfileId: string;\r\n public outletProfileName: string;\r\n public catererId: string;\r\n public schedules: MenuCycleSchedule[];\r\n public blockedDates: MenuCycleBlockedDate[];\r\n public outletBlockedDates: OutletBlockedDate[];\r\n public days: number[];\r\n public color: any;\r\n public isBlocked: boolean;\r\n public rrule?: {\r\n freq: any;\r\n byweekday?: any;\r\n };\r\n}\r\n\r\nexport class MenuCycleSchedule {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public id: string;\r\n public menuCycleId: string;\r\n public day: number;\r\n public periods: MenuCycleSchedulePeriod[];\r\n}\r\n\r\nexport class MenuCycleSchedulePeriod {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public menuCycleScheduleId: string;\r\n public mealPeriodId: string;\r\n public menus: MenuCycleScheduleMenu[];\r\n public outletMenus: OutletMenuCycleScheduleMenu[];\r\n public outletMenuDishes: OutletMenuDish[];\r\n}\r\n\r\nexport class MenuCycleScheduleMenu {\r\n\r\n constructor(id?: string, mealPeriodId?: string) {\r\n }\r\n\r\n public mealPeriodId: string;\r\n public menuId: string;\r\n public label: string;\r\n public code: string;\r\n public checked: boolean;\r\n public menu: Menu;\r\n public mealTypes: MealType[];\r\n}\r\n\r\nexport class OutletMenuCycleScheduleMenu extends MenuCycleScheduleMenu {\r\n public outletId: string;\r\n}\r\n\r\nexport class MenuCycleBlockedDate {\r\n\r\n constructor() {\r\n }\r\n\r\n public menuCycleId: string;\r\n public effectiveDate: string;\r\n public label: string;\r\n}\r\n\r\nexport class BlockUnblockDateModel {\r\n\r\n constructor() {\r\n }\r\n\r\n public blockedDates: MenuCycleBlockedDate[];\r\n public isUnblock: boolean;\r\n}\r\n\r\nexport class OutletBlockedDate {\r\n\r\n constructor() {\r\n }\r\n\r\n public menuCycleId: string;\r\n public outletId: string;\r\n public effectiveDate: string;\r\n public label: string;\r\n}\r\n\r\nexport class BlockUnblockOutletDateModel {\r\n\r\n constructor() {\r\n }\r\n\r\n public blockedDates: OutletBlockedDate[];\r\n public isUnblock: boolean;\r\n}\r\n","\r\nexport class Menu {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.code = name;\r\n }\r\n\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n public startDate: Date;\r\n public endDate: Date;\r\n public cuisineId: string;\r\n public cuisineName: string;\r\n public catererId: string;\r\n public menuDishes: MenuDish[];\r\n public outletMenuDishes: MenuDish[];\r\n public mealTypeMenuDishes: MealTypeMenuDish[];\r\n}\r\n\r\nexport class MealTypeMenuDish {\r\n public mealTypeId: string;\r\n public mealTypeName: string;\r\n public menuId: string;\r\n public menuDishes: MenuDish[];\r\n}\r\n\r\nexport class MenuDish {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public dishId: string;\r\n public menuId: string;\r\n public menuName: string;\r\n public dishName: string;\r\n public mealTypeId: string;\r\n public mealTypeName: string;\r\n public checked: boolean;\r\n}\r\nexport class OutletMenuDish extends MenuDish {\r\n public outletId: string;\r\n public mealPeriodId: string;\r\n}\r\n","\r\nexport class NotificationEvent {\r\n\r\n constructor() {\r\n }\r\n\r\n public id: string;\r\n public type: string;\r\n public title: string;\r\n public template: string;\r\n}\r\n","import { MealType } from \"./meal-type.model\";\r\nimport { Class } from \"./class.model\";\r\nimport { MealSession } from \"./meal-session.model\";\r\n\r\nexport class OutletClassRoster {\r\n\r\n constructor(id?: string) {\r\n\r\n this.id = id;\r\n }\r\n\r\n public id: string;\r\n public label: string;\r\n public startDate: Date;\r\n public endDate?: Date;\r\n public institutionId: string;\r\n public mealSessionId: string;\r\n public outletProfileId: string;\r\n public outletProfileName: string;\r\n public catererId: string;\r\n public outletId: string;\r\n public schedules: OutletClassRosterSchedule[];\r\n public mealSession: MealSession;\r\n public days: number[];\r\n public color: any;\r\n public isBlocked: boolean;\r\n public rrule?: {\r\n freq: any;\r\n byweekday?: any;\r\n };\r\n}\r\n\r\nexport class OutletClassRosterSchedule {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public id: string;\r\n public outletClassRosterId: string;\r\n public outletClassRoster: OutletClassRoster;\r\n public day: number;\r\n public periods: OutletClassRosterSchedulePeriod[];\r\n public hasClass: boolean;\r\n public color: any;\r\n public rrule?: {\r\n freq: any;\r\n byweekday?: any;\r\n };\r\n}\r\n\r\nexport class OutletClassRosterSchedulePeriod {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public id: string;\r\n public classCycleScheduleId: string;\r\n public mealSessionDetailId: string;\r\n public mealSessionDetailName: string;\r\n public mealSessionDetailStartDate: Date;\r\n public mealSessionDetailEndDate: Date;\r\n public outletClassRosterStartDate: Date;\r\n public outletClassRosterEndDate: Date;\r\n public startDate: Date;\r\n public endDate: Date;\r\n public classes: OutletClassRosterScheduleClass[];\r\n public outletClasses: OutletOutletClassRosterScheduleClass[];\r\n public color: any;\r\n public rrule?: {\r\n freq: any;\r\n byweekday?: any;\r\n };\r\n}\r\n\r\nexport class OutletClassRosterScheduleClass {\r\n\r\n constructor(id?: string, mealSessionId?: string) {\r\n }\r\n\r\n public mealSessionDetailId: string;\r\n\r\n public outletClassRosterSchedulePeriodId: string;\r\n public classId: string;\r\n public name: string;\r\n public code: string;\r\n public checked: boolean;\r\n public class: Class;\r\n public mealTypes: MealType[];\r\n}\r\n\r\nexport class OutletOutletClassRosterScheduleClass extends OutletClassRosterScheduleClass {\r\n public outletId: string;\r\n}\r\n\r\nexport class OutletClassRosterScheduleByDay {\r\n public day: number;\r\n public periods: OutletClassRosterSchedulePeriod[];\r\n public schedules: OutletClassRosterSchedule[];\r\n public color: any;\r\n public rrule?: {\r\n freq: any;\r\n byweekday?: any;\r\n };\r\n}\r\n","import { CatererOutlet } from \"./caterer-info.model\";\r\nimport { MealSession } from \"./meal-session.model\";\r\nimport { StoreInfo } from \"./store-info.model\";\r\n\r\nexport class OutletProfile {\r\n\r\n constructor(id?: string, label?: string) {\r\n\r\n this.id = id;\r\n this.label = label;\r\n }\r\n\r\n public id: string;\r\n public label: string;\r\n public catererId: string;\r\n public outlets: Outlet[]; \r\n}\r\n\r\nexport class Outlet {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public address: string;\r\n public locationId: string;\r\n public locationName: string;\r\n public outletProfileId: string;\r\n public daysToFreezeOrdering: string;\r\n public catererOutlets: CatererOutlet[];\r\n public mealSessions: MealSession[];\r\n public stores: StoreInfo[];\r\n}\r\n","\r\nexport class PaymentType {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class RestrictionType {\r\n\r\n constructor(id?: string, code?: string) {\r\n\r\n this.id = id;\r\n this.code = code;\r\n this.isHandledEMR = false;\r\n this.isMealFiltering = false;\r\n this.isDishTypeCustomisation = false;\r\n this.isSpecialCondition = false;\r\n this.isCarriedForward = false;\r\n this.isMealFiltering = false;\r\n this.sequence = 0;\r\n this.dietCondition = 'Optional';\r\n }\r\n\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n public isHandledEMR: boolean;\r\n public isDishTypeCustomisation: boolean;\r\n public isSpecialCondition: boolean;\r\n public isCarriedForward: boolean;\r\n public isMealFiltering: boolean;\r\n public sequence: number;\r\n public dietCondition: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class Restriction {\r\n\r\n constructor(id?: string, label?: string) {\r\n\r\n this.id = id;\r\n this.label = label;\r\n this.isHighPriority = false;\r\n this.isIncludeHighPriorityFiltering = false;\r\n this.isAvailableDateSpecific = false;\r\n this.isMealFiltering = false;\r\n this.sequence = 0;\r\n }\r\n\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n public isHighPriority: boolean;\r\n public isIncludeHighPriorityFiltering: boolean;\r\n public isAvailableDateSpecific: boolean;\r\n public isMealFiltering: boolean;\r\n public sequence: number;\r\n public restrictionTypeId: string;\r\n}\r\n","\r\nexport class Route {\r\n\r\n constructor(id?: string, label?: string) {\r\n\r\n this.id = id;\r\n this.label = label;\r\n }\r\n\r\n public id: string;\r\n public label: string;\r\n public details: string;\r\n public pickup: Date;\r\n public institutionId: string;\r\n\r\n public nodes: RouteNode[];\r\n}\r\n\r\nexport class RouteNode {\r\n\r\n constructor() {\r\n }\r\n\r\n public routeId: string;\r\n public storeId: string;\r\n public order: number;\r\n public interval: Date;\r\n}\r\n","\r\nexport class StaffType {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public institutionId: string;\r\n}\r\n","import { UserCardId } from \"../usercardid.model\";\r\n\r\nexport class Staff {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public gender: string;\r\n public departmentId: string;\r\n public departmentName: string;\r\n public staffTypeId: string;\r\n public staffTypeName: string;\r\n\r\n public userId: string;\r\n public username: string;\r\n public email: string;\r\n public fullName: string;\r\n public newPassword: string;\r\n public currentPassword: string;\r\n public confirmPassword: string;\r\n\r\n public cards: UserCardId[];\r\n}\r\n","\r\nexport class StoreInfo {\r\n\r\n public id: string;\r\n public name: string;\r\n public address: string;\r\n\r\n public code: string;\r\n\r\n\r\n public storeType: string;\r\n\r\n public institutionId: string;\r\n\r\n\r\n public catererInfoId: string;\r\n\r\n\r\n public catererInfoName: string;\r\n\r\n public outletId: string;\r\n\r\n public status: string;\r\n\r\n public checked: boolean;\r\n}\r\n","\r\nexport class StoreInventory {\r\n\r\n constructor(id?: string) {\r\n\r\n this.id = id;\r\n }\r\n\r\n public id: string;\r\n public storeInfoId: string;\r\n public deliveryOrderId: string;\r\n public timeReceived: Date;\r\n public remarks: string;\r\n public deliveredBy: string;\r\n public storeInventoryDetails: StoreInventoryDetail[];\r\n}\r\n\r\nexport class StoreInventoryDetail {\r\n\r\n constructor() {\r\n }\r\n\r\n public id: string;\r\n public storeInventoryId: string;\r\n public dishId: string;\r\n public cartonId: string;\r\n public storeInfoId: string;\r\n public timeReceived: Date;\r\n public remarks: string;\r\n public qtyExpected: number;\r\n public qtyReceived: number;\r\n}\r\n","\r\nexport class StudentGroup {\r\n\r\n constructor(id?: string) {\r\n\r\n this.id = id;\r\n }\r\n public id: string;\r\n public code: string;\r\n public name: string;\r\n public outletId: string;\r\n public sgdetails: StudentGroupDetail[];\r\n}\r\n\r\nexport class StudentGroupDetail {\r\n public id: string;\r\n public studentGroupId: string;\r\n public studentId: string;\r\n}\r\n","import { UserCardId } from \"../usercardid.model\";\r\n\r\nexport class Student {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public gender: string;\r\n public classId: string;\r\n public classLevelId: string;\r\n public classBatchId: string;\r\n public outletId: string;\r\n public outletName: string;\r\n public isFAS: boolean;\r\n public weight: string;\r\n public height: string;\r\n public className: string;\r\n public classLevel: string;\r\n public userId: string;\r\n public username: string;\r\n public email: string;\r\n public fullName: string;\r\n public newPassword: string;\r\n public currentPassword: string;\r\n public confirmPassword: string;\r\n\r\n public cards: UserCardId[];\r\n public studentCards: StudentCard[];\r\n public restrictions: StudentRestriction[];\r\n public interestGroups: StudentInterestGroup[];\r\n public vouchers: StudentVoucher[];\r\n \r\n}\r\n\r\nexport class StudentCard {\r\n\r\n constructor(id?: string, cardId?: string, remarks?: string) {\r\n\r\n this.id = id;\r\n this.cardId = cardId;\r\n this.remarks = remarks;\r\n }\r\n\r\n public id: string;\r\n public cardId: string;\r\n public status: string;\r\n public remarks: string;\r\n public studentId: string;\r\n public userName: string;\r\n public isApprove: boolean;\r\n}\r\n\r\nexport class StudentRestriction {\r\n\r\n constructor() {\r\n }\r\n\r\n public studentId: string;\r\n public restrictionId: string;\r\n public checked: boolean;\r\n}\r\n\r\nexport class StudentInterestGroup {\r\n\r\n constructor() {\r\n }\r\n\r\n public studentId: string;\r\n public interestGroupId: string;\r\n public checked: boolean;\r\n}\r\n\r\nexport class StudentVoucher {\r\n\r\n constructor() {\r\n }\r\n\r\n public studentId: string;\r\n public voucherId: string;\r\n public status: string;\r\n public voucherCode: string;\r\n}\r\n","import { StudentGroup } from './student-group.model'\r\n\r\nexport class TokenOrder {\r\n\r\n constructor(id?: string) {\r\n\r\n this.id = id;\r\n }\r\n\r\n public id: string;\r\n public transactionTime: Date;\r\n public schoolId: string;\r\n public orderProfile: string;\r\n public profileId: string;\r\n public deliveryDate: Date;\r\n public periodId: string;\r\n public totalAmount: number;\r\n public paymentTime: Date;\r\n public totalPayment: number;\r\n public status: string;\r\n public remarks: string;\r\n public tokens: TokenOrdered[];\r\n public studentGroupId: string;\r\n public studentGroup: StudentGroup;\r\n public mealSessionDetailId: string;\r\n public storeId: string;\r\n public profileName: string;\r\n public periodName: string;\r\n public paymentTypeName: string;\r\n}\r\n\r\nexport class TokenOrdered {\r\n public id: string;\r\n public tokenId: string;\r\n public mealTypeId: string;\r\n public tokenDesc: string;\r\n public qty: number;\r\n public orderId: string;\r\n public price: number;\r\n public subtotal: number;\r\n public groupQty: number;\r\n public selectedDishes: TokenOrderDish[];\r\n public tokenAltDishes: TokenAltDish[];\r\n public selectedCombinedDishes: TokenOrderCombinedDish[];\r\n public listCombinedDishes: any[];\r\n}\r\n\r\nexport class TokenOrderDish {\r\n public id: string;\r\n public tokenOrderedId: string;\r\n public dishId: string;\r\n public qty: number;\r\n public dishLabel: string;\r\n}\r\n\r\nexport class TokenOrderCombinedDish {\r\n public id: string;\r\n public tokenOrderedId: string;\r\n public cDishLabel: string;\r\n public cDishCode: string;\r\n public qty: number;\r\n public menuQty: number;\r\n}\r\n\r\nexport class TokenAltDish {\r\n public id: string;\r\n public tokenOrderedId: string;\r\n public dishId: string;\r\n}\r\n\r\nexport class PackingAllocation {\r\n public id: string;\r\n public packingDate: Date;\r\n public routeId: string;\r\n public outletId: string;\r\n public allocations: MealAllocation[];\r\n public dishes: DishAllocation[];\r\n}\r\n\r\nexport class DishAllocation {\r\n public id: string;\r\n public packingId: string;\r\n public dishId: string;\r\n public qty: number;\r\n}\r\n\r\nexport class MealAllocation {\r\n public id: string;\r\n public deliveryDate: Date;\r\n public mealSessionId: string;\r\n public outletId: string;\r\n public tokens: TokenLabel[];\r\n}\r\n\r\nexport class TokenLabel {\r\n public id: string;\r\n public meal_allocation_id: string;\r\n public token_id: string;\r\n public token_name: string;\r\n public qty: number;\r\n public qty_dishes: number;\r\n public qty_pdishes: number;\r\n public qty_tdishes: number;\r\n public qty_menus: number;\r\n public deliveryDate: string;\r\n public deliveryDate2: Date;\r\n public dishes: TokenDishLabel[];\r\n}\r\n\r\nexport class TokenDishLabel {\r\n public id: string;\r\n public token_lable_id: string;\r\n public token_id: string;\r\n public token_name: string;\r\n public dish_id: string;\r\n public dish_name: string;\r\n public dish_code: string;\r\n public o_qty: number;\r\n public p_qty: number;\r\n public a_qty: number;\r\n public t_qty: number;\r\n}\r\n","\r\nexport class TrackingStatus {\r\n\r\n public id: string;\r\n public status: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class TransactionFee {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public paymentTypeId: string;\r\n public amount: number;\r\n public isFixed: boolean;\r\n public paymentTypeName: string;\r\n public transactionFeeDetails: TransactionFeeDetail[];\r\n}\r\n\r\nexport class TransactionFeeDetail {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public amount: number;\r\n public transactionFeeId: string;\r\n}\r\n\r\n","\r\nexport class VoucherType {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public institutionId: string;\r\n}\r\n","\r\nexport class Voucher {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public institutionId: string;\r\n public voucherTypeId: string;\r\n public outletProfileId: string;\r\n public startDateTime: Date;\r\n public endDateTime: Date;\r\n public discountType: string;\r\n public discountAmount: number;\r\n public minimumBasketPrice: number;\r\n public usageQuantity: number;\r\n public maxDistribution: number;\r\n public isDisplayAllPages: boolean;\r\n public voucherMealPeriods: VoucherMealPeriod[];\r\n}\r\n\r\nexport class VoucherMealPeriod {\r\n\r\n constructor(id?: string, name?: string) {\r\n }\r\n\r\n public id: string;\r\n public VoucherId: string;\r\n public mealPeriodId: string;\r\n public mealPeriodName: string;\r\n}\r\n","\r\nexport class Waiver {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public label: string;\r\n public amount: string;\r\n public institutionId: string;\r\n public transactionFeeId: string;\r\n public transactionFeePaymentType: string;\r\n public transactionFeeLabel: string;\r\n}\r\n","\r\nexport class MediaExtension {\r\n public id: string;\r\n public extension: string;\r\n public label: string;\r\n public min?: number;\r\n public max?: number;\r\n}\r\n","\r\nexport class Media {\r\n\r\n constructor(id?: string, name?: string, description?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public institutionId?: string;\r\n public institutionName?: string;\r\n}\r\n","import { PermissionValues } from \"./permission.model\";\r\n\r\nexport class Menu {\r\n\r\n constructor(label?: string, active?: string) {\r\n this.label = label;\r\n this.active = active;\r\n }\r\n\r\n public id: string;\r\n public label: string;\r\n public active: string;\r\n public link: string;\r\n public logoClass: string;\r\n public permissions: PermissionValues[];\r\n}\r\n\r\n","\r\nexport class Module {\r\n\r\n constructor(id?: string, name?: string, route?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.route = route;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public route: string;\r\n public uri?: string;\r\n public moduleParameters: ModuleParameter[];\r\n}\r\n\r\nexport class ModuleParameter {\r\n\r\n constructor(id?: string, name?: string, url?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.url = url;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public url: string;\r\n}\r\n","import { Utilities } from \"../services/utilities\";\r\n\r\n\r\nexport class Notification {\r\n\r\n public static Create(data: {}) {\r\n let n = new Notification();\r\n Object.assign(n, data);\r\n\r\n if (n.date)\r\n n.date = Utilities.parseDate(n.date);\r\n\r\n return n;\r\n }\r\n\r\n\r\n public id: number;\r\n public userId: number;\r\n public eventId: number;\r\n public header: string;\r\n public body: string;\r\n public isRead: boolean;\r\n public isPinned: boolean;\r\n public date: Date;\r\n}\r\n","\r\nexport class OccupancyLog {\r\n public id: string;\r\n public datetime?: Date;\r\n public deviceId: string;\r\n public sensorId: string;\r\n public status: string;\r\n}\r\n","export type PermissionNames =\r\n \"View Users\" | \"Manage Users\" |\r\n \"View Roles\" | \"Manage Roles\" | \"Assign Roles\";\r\n\r\nexport type PermissionValues =\r\n \"systemsetting.user.view\" | \"systemsetting.user.manage\" |\r\n \"systemsetting.role.view\" | \"systemsetting.role.manage\" | \"systemsetting.role.assign\" |\r\n \"frsmgt.equipment.view\" | \"frsmgt.equipment.manage\" |\r\n \"frsmgt.equipmenttype.view\" | \"frsmgt.equipmenttype.manage\" | \"frsmgt.smartroomschedulerlog.view\" |\r\n \"frsmgt.calendar.view\" | \"reservations.manage\" |\r\n \"sgnmanagement.devicemgt.device.view\" | \"sgnmanagement.devicemgt.device.manage\" | \"sgnmanagement.devicemgt.device.approve\" |\r\n \"systemsetting.locationtree.view\" | \"systemsetting.locationtree.manage\" |\r\n \"systemsetting.institution.view\" | \"systemsetting.institution.manage\" |\r\n \"systemsetting.department.view\" | \"systemsetting.department.manage\" |\r\n \"frsmgt.accesscontrol.contactgroup.view\" | \"frsmgt.accesscontrol.contactgroup.manage\" |\r\n \"frsmgt.accesscontrol.phonebook.view\" | \"frsmgt.accesscontrol.phonebook.manage\" |\r\n \"pibtemplates.view\" | \"pibtemplates.manage\" |\r\n \"pibdevices.view\" | \"pibdevices.manage\" |\r\n \"sgnmanagement.epapermgt.view\" | \"sgnmanagement.epapermgt.manage\" |\r\n \"epaperdevices.view\" | \"epaperdevices.manage\" |\r\n //\"calendar.view\" |\r\n \"systemsetting.dashboard.view\" |\r\n \"reportmgt.facilitymgt.view\" | \"reportmgt.facilitymgt.vehiclelog.view\" | \"reportmgt.facilitymgt.occupancylog.view\" |\r\n \"frsmgt.accesscontrol.uservehicle.manage\" |\r\n \"frsmgt.accesscontrol.publication.approve\" |\r\n \"frsmgt.accesscontrol.publication.email\" |\r\n \"systemsetting.dashboard.sgn.view\" | \"systemsetting.dashboard.sgn.controls.preview\" | \"systemsetting.dashboard.sgn.controls.reboot\" | \"systemsetting.dashboard.sgn.controls.refresh\" | \"systemsetting.dashboard.sgn.controls.screenshot\" | \"systemsetting.dashboard.sgn.controls.pushmessage\" | \"systemsetting.dashboard.sgn.controls.deviceinfo\" | \"systemsetting.dashboard.sgn.controls.publication\" |\r\n \"systemsetting.usergroup.view\" | \"systemsetting.usergroup.manage\" |\r\n \"systemsetting.imagereferencetype.view\" | \"systemsetting.imagereferencetype.manage\" |\r\n \"systemsetting.imagereferencecolor.view\" | \"systemsetting.imagereferencecolor.manage\" |\r\n \"systemsetting.devicetype.view\" | \"systemsetting.devicetype.manage\" |\r\n \"systemsetting.audit.view\" | \"systemsetting.audit.authlog.view\" | \"reportmgt.sgn.updownlog.view\" | \"systemsetting.audit.datalog.view\" |\r\n \"assetmgt.assettype.view\" | \"assetmgt.assettype.manage\" |\r\n \"assetmgt.assetmodel.view\" | \"assetmgt.assetmodel.manage\" |\r\n \"assetmgt.asset.view\" | \"assetmgt.asset.manage\" |\r\n \"assetmgt.servicecontract.view\" | \"assetmgt.servicecontract.manage\" | \"sgnmanagement.contentmanagement.component.create\" | \"sgnmanagement.contentmanagement.component.update\" | \"sgnmanagement.contentmanagement.component.delete\" | \"sgnmanagement.contentmanagement.compilation.create\" | \"sgnmanagement.contentmanagement.compilation.update\" | \"sgnmanagement.contentmanagement.compilation.delete\" | \"sgnmanagement.contentmanagement.publication.create\" | \"sgnmanagement.contentmanagement.publication.update\" | \"sgnmanagement.contentmanagement.publication.delete\" |\r\n \"systemsetting.emailqueue.view\" |\r\n \"mosmgt.accountmgt.view\" |\r\n \"mosmgt.mealmgt.order.view\" |\r\n \"mosmgt.orgmgt.view\" |\r\n \"mosmgt.settingmgt.view\" |\r\n \"mosmgt.reportmgt.view\" |\r\n \"mosmgt.sysadminmgt.view\" |\r\n \"mosmgt.mealmgt.order.restrictiontypes.view\" |\r\n \"mosmgt.mealmgt.order.restrictions.view\" |\r\n \"mosmgt.mealmgt.order.cuisines.view\" |\r\n \"mosmgt.mealmgt.order.delivery.view\" |\r\n \"mosmgt.mealmgt.order.delivery.bentoboxtypes.view\" |\r\n \"mosmgt.mealmgt.order.delivery.bentoassets.view\" |\r\n \"mosmgt.mealmgt.order.delivery.cartontypes.view\" |\r\n \"mosmgt.mealmgt.order.delivery.cartonassets.view\" |\r\n \"mosmgt.mealmgt.order.delivery.trackingstatus.view\" |\r\n \"mosmgt.mealmgt.order.delivery.deliveryorders.view\" |\r\n \"mosmgt.mealmgt.order.delivery.dishingprocess.view\" |\r\n \"mosmgt.mealmgt.order.delivery.packingprocess.view\" |\r\n \"mosmgt.mealmgt.order.delivery.drivers.view\" |\r\n \"mosmgt.mealmgt.order.delivery.routes.view\" |\r\n \"mosmgt.settingmgt.caterers.view\" |\r\n \"mosmgt.settingmgt.outletprofiles.view\" |\r\n \"mosmgt.settingmgt.outlets.view\" |\r\n \"mosmgt.settingmgt.storeinfo.view\" |\r\n \"mosmgt.mealmgt.order.restrictiontypes.manage\" |\r\n \"mosmgt.mealmgt.order.restrictions.manage\" |\r\n \"mosmgt.mealmgt.order.cuisines.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.bentoboxtypes.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.bentoassets.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.cartontypes.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.cartonassets.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.trackingstatus.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.deliveryorders.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.dishingprocess.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.packingprocess.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.drivers.manage\" |\r\n \"mosmgt.mealmgt.order.delivery.routes.manage\" |\r\n \"mosmgt.settingmgt.caterers.manage\" |\r\n \"mosmgt.settingmgt.outletprofiles.manage\" |\r\n \"mosmgt.settingmgt.outlets.manage\" |\r\n \"mosmgt.settingmgt.storeinfo.manage\" |\r\n \"mosmgt.settingmgt.payment.paymenttype.manage\" |\r\n \"mosmgt.settingmgt.payment.transactionfee.manage\" |\r\n \"mosmgt.settingmgt.payment.vouchertype.manage\" |\r\n \"mosmgt.settingmgt.payment.voucher.manage\" |\r\n \"mosmgt.settingmgt.payment.waiver.manage\" |\r\n \"sgnmanagement.devicemgt.ems.create\" |\r\n \"sgnmanagement.devicemgt.ems.update\" |\r\n \"sgnmanagement.devicemgt.ems.delete\" |\r\n \"sgnmanagement.devicemgt.emsprofile.create\" |\r\n \"sgnmanagement.devicemgt.emsprofile.update\" |\r\n \"sgnmanagement.devicemgt.emsprofile.delete\" |\r\n \"sgnmanagement.devicemgt.emsschedule.create\" |\r\n \"sgnmanagement.devicemgt.emsschedule.update\" |\r\n \"sgnmanagement.devicemgt.emsschedule.delete\" |\r\n \"frsmgt.workforcemanagement.employeemaster.manage\" |\r\n \"frsmgt.workforcemanagement.employeeroster.manage\" |\r\n \"sgnmanagement.contentmanagement.mediagroup.manage\" |\r\n \"sgnmanagement.contentmanagement.playlist.manage\" |\r\n \"sgnmanagement.contentmanagement.medialibrary.manage\";\r\n\r\nexport class Permission {\r\n\r\n public static readonly viewUsersPermission: PermissionValues = \"systemsetting.user.view\";\r\n public static readonly manageUsersPermission: PermissionValues = \"systemsetting.user.manage\";\r\n\r\n public static readonly viewRolesPermission: PermissionValues = \"systemsetting.role.view\";\r\n public static readonly manageRolesPermission: PermissionValues = \"systemsetting.role.manage\";\r\n public static readonly assignRolesPermission: PermissionValues = \"systemsetting.role.assign\";\r\n\r\n public static readonly viewFacilitiesPermission: PermissionValues = \"frsmgt.equipment.view\";\r\n public static readonly manageFacilitiesPermission: PermissionValues = \"frsmgt.equipment.manage\";\r\n\r\n public static readonly viewFacilityTypesPermission: PermissionValues = \"frsmgt.equipmenttype.view\";\r\n public static readonly manageFacilityTypesPermission: PermissionValues = \"frsmgt.equipmenttype.manage\";\r\n\r\n public static readonly viewSmartRoomSchedulerLogsPermission: PermissionValues = \"frsmgt.smartroomschedulerlog.view\";\r\n\r\n public static readonly addReservationsPermission: PermissionValues = \"frsmgt.calendar.view\";\r\n public static readonly manageReservationsPermission: PermissionValues = \"frsmgt.calendar.view\";\r\n\r\n public static readonly viewDevicesPermission: PermissionValues = \"sgnmanagement.devicemgt.device.view\";\r\n public static readonly manageDevicesPermission: PermissionValues = \"sgnmanagement.devicemgt.device.manage\";\r\n public static readonly approveDevicesPermission: PermissionValues = \"sgnmanagement.devicemgt.device.approve\";\r\n\r\n public static readonly viewLocationsPermission: PermissionValues = \"systemsetting.locationtree.view\";\r\n public static readonly manageLocationsPermission: PermissionValues = \"systemsetting.locationtree.manage\";\r\n\r\n public static readonly viewInstitutionsPermission: PermissionValues = \"systemsetting.institution.view\";\r\n public static readonly manageInstitutionsPermission: PermissionValues = \"systemsetting.institution.manage\";\r\n\r\n public static readonly viewDepartmentsPermission: PermissionValues = \"systemsetting.department.view\";\r\n public static readonly manageDepartmentsPermission: PermissionValues = \"systemsetting.department.manage\";\r\n\r\n public static readonly viewContactGroupsPermission: PermissionValues = \"frsmgt.accesscontrol.contactgroup.view\";\r\n public static readonly manageContactGroupsPermission: PermissionValues = \"frsmgt.accesscontrol.contactgroup.manage\";\r\n\r\n public static readonly viewUserPhonebooksPermission: PermissionValues = \"frsmgt.accesscontrol.phonebook.view\";\r\n public static readonly manageUserPhonebooksPermission: PermissionValues = \"frsmgt.accesscontrol.phonebook.manage\";\r\n\r\n public static readonly viewReportsPermission: PermissionValues = \"reportmgt.facilitymgt.view\";\r\n public static readonly viewVehicleLogsPermission: PermissionValues = \"reportmgt.facilitymgt.vehiclelog.view\";\r\n public static readonly viewOccupancyLogsPermission: PermissionValues = \"reportmgt.facilitymgt.occupancylog.view\";\r\n\r\n public static readonly viewPIBTemplatesPermission: PermissionValues = \"pibtemplates.view\";\r\n public static readonly managePIBTemplatesPermission: PermissionValues = \"pibtemplates.manage\";\r\n\r\n public static readonly viewPIBDevicesTemplatesPermission: PermissionValues = \"pibdevices.view\";\r\n public static readonly managePIBDevicesTemplatesPermission: PermissionValues = \"pibdevices.manage\";\r\n\r\n public static readonly viewEpaperTemplatesPermission: PermissionValues = \"sgnmanagement.epapermgt.view\";\r\n public static readonly manageEpaperTemplatesPermission: PermissionValues = \"sgnmanagement.epapermgt.manage\";\r\n\r\n public static readonly viewEpaperDevicesPermission: PermissionValues = \"epaperdevices.view\";\r\n public static readonly manageEpaperDevicesPermission: PermissionValues = \"epaperdevices.manage\";\r\n\r\n public static readonly viewDashboardPermission: PermissionValues = \"systemsetting.dashboard.view\";\r\n\r\n public static readonly manageUserVehiclesPermission: PermissionValues = \"frsmgt.accesscontrol.uservehicle.manage\";\r\n //public static readonly viewCalendarPermission: PermissionValues = \"calendar.view\";\r\n\r\n public static readonly approvePublicationsPermission: PermissionValues = \"frsmgt.accesscontrol.publication.approve\";\r\n public static readonly emailPublicationsPermission: PermissionValues = \"frsmgt.accesscontrol.publication.email\";\r\n public static readonly createComponentsPermission: PermissionValues = \"sgnmanagement.contentmanagement.component.create\";\r\n public static readonly updateComponentsPermission: PermissionValues = \"sgnmanagement.contentmanagement.component.update\";\r\n public static readonly deleteComponentsPermission: PermissionValues = \"sgnmanagement.contentmanagement.component.delete\";\r\n\r\n public static readonly createCompilationsPermission: PermissionValues = \"sgnmanagement.contentmanagement.compilation.create\";\r\n public static readonly updateCompilationsPermission: PermissionValues = \"sgnmanagement.contentmanagement.compilation.update\";\r\n public static readonly deleteCompilationsPermission: PermissionValues = \"sgnmanagement.contentmanagement.compilation.delete\";\r\n\r\n public static readonly createPublicationsPermission: PermissionValues = \"sgnmanagement.contentmanagement.publication.create\";\r\n public static readonly updatePublicationsPermission: PermissionValues = \"sgnmanagement.contentmanagement.publication.update\";\r\n public static readonly deletePublicationsPermission: PermissionValues = \"sgnmanagement.contentmanagement.publication.delete\";\r\n\r\n public static readonly createEMSsPermission: PermissionValues = \"sgnmanagement.devicemgt.ems.create\";\r\n public static readonly updateEMSsPermission: PermissionValues = \"sgnmanagement.devicemgt.ems.update\";\r\n public static readonly deleteEMSsPermission: PermissionValues = \"sgnmanagement.devicemgt.ems.delete\";\r\n\r\n public static readonly createEMSProfilesPermission: PermissionValues = \"sgnmanagement.devicemgt.emsprofile.create\";\r\n public static readonly updateEMSProfilesPermission: PermissionValues = \"sgnmanagement.devicemgt.emsprofile.update\";\r\n public static readonly deleteEMSProfilesPermission: PermissionValues = \"sgnmanagement.devicemgt.emsprofile.delete\";\r\n\r\n public static readonly createEMSSchedulesPermission: PermissionValues = \"sgnmanagement.devicemgt.emsschedule.create\";\r\n public static readonly updateEMSSchedulesPermission: PermissionValues = \"sgnmanagement.devicemgt.emsschedule.update\";\r\n public static readonly deleteEMSSchedulesPermission: PermissionValues = \"sgnmanagement.devicemgt.emsschedule.delete\";\r\n\r\n public static readonly viewSignageDashboardPermission: PermissionValues = \"systemsetting.dashboard.sgn.view\";\r\n public static readonly pushmessageSignageControlPermission: PermissionValues = \"systemsetting.dashboard.sgn.controls.pushmessage\";\r\n public static readonly previewSignageControlPermission: PermissionValues = \"systemsetting.dashboard.sgn.controls.preview\";\r\n public static readonly rebootSignageControlPermission: PermissionValues = \"systemsetting.dashboard.sgn.controls.reboot\";\r\n public static readonly refreshSignageControlPermission: PermissionValues = \"systemsetting.dashboard.sgn.controls.refresh\";\r\n public static readonly screenshotSignageControlPermission: PermissionValues = \"systemsetting.dashboard.sgn.controls.screenshot\";\r\n public static readonly deviceinfoSignageControlPermission: PermissionValues = \"systemsetting.dashboard.sgn.controls.deviceinfo\";\r\n public static readonly publicationSignageControlPermission: PermissionValues = \"systemsetting.dashboard.sgn.controls.publication\";\r\n\r\n public static readonly viewUserGroupsPermission: PermissionValues = \"systemsetting.usergroup.view\";\r\n public static readonly manageUserGroupsPermission: PermissionValues = \"systemsetting.usergroup.manage\";\r\n\r\n public static readonly viewAuthLogsPermission: PermissionValues = \"systemsetting.audit.authlog.view\";\r\n public static readonly viewUpDownTimeLogsPermission: PermissionValues = \"reportmgt.sgn.updownlog.view\";\r\n public static readonly viewDataLogsPermission: PermissionValues = \"systemsetting.audit.datalog.view\";\r\n\r\n public static readonly viewImageReferenceTypesPermission: PermissionValues = \"systemsetting.imagereferencetype.view\";\r\n public static readonly manageImageReferenceTypesPermission: PermissionValues = \"systemsetting.imagereferencetype.manage\";\r\n\r\n public static readonly viewImageReferenceColorsPermission: PermissionValues = \"systemsetting.imagereferencecolor.view\";\r\n public static readonly manageImageReferenceColorsPermission: PermissionValues = \"systemsetting.imagereferencecolor.manage\";\r\n\r\n public static readonly viewDeviceTypesPermission: PermissionValues = \"systemsetting.devicetype.view\";\r\n public static readonly manageDeviceTypesPermission: PermissionValues = \"systemsetting.devicetype.manage\";\r\n\r\n public static readonly viewAssetTypesPermission: PermissionValues = \"assetmgt.assettype.view\";\r\n public static readonly manageAssetTypesPermission: PermissionValues = \"assetmgt.assettype.manage\";\r\n\r\n public static readonly viewAssetModelsPermission: PermissionValues = \"assetmgt.assetmodel.view\";\r\n public static readonly manageAssetModelsPermission: PermissionValues = \"assetmgt.assetmodel.manage\";\r\n\r\n public static readonly viewAssetsPermission: PermissionValues = \"assetmgt.asset.view\";\r\n public static readonly manageAssetsPermission: PermissionValues = \"assetmgt.asset.manage\";\r\n\r\n public static readonly viewServiceContractsPermission: PermissionValues = \"assetmgt.servicecontract.view\";\r\n public static readonly manageServiceContractsPermission: PermissionValues = \"assetmgt.servicecontract.manage\";\r\n\r\n public static readonly manageEmployeeDataPermission: PermissionValues = \"frsmgt.workforcemanagement.employeemaster.manage\";\r\n public static readonly manageEmployeeSchedulePermission: PermissionValues = \"frsmgt.workforcemanagement.employeeroster.manage\";\r\n public static readonly manageMediaGroupsPermission: PermissionValues = \"sgnmanagement.contentmanagement.mediagroup.manage\";\r\n public static readonly manageMediaLibraryPermission: PermissionValues = \"sgnmanagement.contentmanagement.medialibrary.manage\";\r\n public static readonly managePlaylistPermission: PermissionValues = \"sgnmanagement.contentmanagement.playlist.manage\";\r\n\r\n //MEAL ORDER SYSTEM ACL\r\n public static readonly viewMOSAccountMgtPermission: PermissionValues = \"mosmgt.accountmgt.view\";\r\n public static readonly viewMOSMealMgtPermission: PermissionValues = \"mosmgt.mealmgt.order.view\";\r\n public static readonly viewMOSOrgMgtPermission: PermissionValues = \"mosmgt.orgmgt.view\";\r\n public static readonly viewMOSSettingMgtPermission: PermissionValues = \"mosmgt.settingmgt.view\";\r\n public static readonly viewMOSReportMgtPermission: PermissionValues = \"mosmgt.reportmgt.view\";\r\n public static readonly viewMOSSysAdminMgtPermission: PermissionValues = \"mosmgt.sysadminmgt.view\";\r\n\r\n public static readonly viewMOSOrderMgtRestrictionTypesPermission: PermissionValues = \"mosmgt.mealmgt.order.restrictiontypes.view\";\r\n public static readonly viewMOSOrderMgtRestrictionsPermission: PermissionValues = \"mosmgt.mealmgt.order.restrictions.view\";\r\n public static readonly viewMOSOrderMgtCuisinesPermission: PermissionValues = \"mosmgt.mealmgt.order.cuisines.view\";\r\n public static readonly viewMOSOrderMgtDeliveryPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.view\";\r\n public static readonly viewMOSOrderMgtBentoBoxTypesPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.bentoboxtypes.view\";\r\n public static readonly viewMOSOrderMgtBentoAssetsPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.bentoassets.view\";\r\n public static readonly viewMOSOrderMgtCartonTypesPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.cartontypes.view\";\r\n public static readonly viewMOSOrderMgtCartonAssetsPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.cartonassets.view\";\r\n public static readonly viewMOSOrderMgtTrackingStatusPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.trackingstatus.view\";\r\n public static readonly viewMOSOrderMgtDeliveryOrdersPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.deliveryorders.view\";\r\n public static readonly viewMOSOrderMgtDishingProcessPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.dishingprocess.view\";\r\n public static readonly viewMOSOrderMgtPackingProcessPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.packingprocess.view\";\r\n public static readonly viewMOSOrderMgtDriversPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.drivers.view\";\r\n public static readonly viewMOSOrderMgtRoutesPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.routes.view\";\r\n public static readonly viewMOSOrderMgtCaterersPermission: PermissionValues = \"mosmgt.settingmgt.caterers.view\";\r\n public static readonly viewMOSOrderMgtOutletProfilesPermission: PermissionValues = \"mosmgt.settingmgt.outletprofiles.view\";\r\n public static readonly viewMOSOrderMgtOutletsPermission: PermissionValues = \"mosmgt.settingmgt.outlets.view\";\r\n public static readonly viewMOSOrderMgtStoreInfoPermission: PermissionValues = \"mosmgt.settingmgt.storeinfo.view\";\r\n public static readonly manageMOSOrderMgtRestrictionTypesPermission: PermissionValues = \"mosmgt.mealmgt.order.restrictiontypes.manage\";\r\n public static readonly manageMOSOrderMgtRestrictionsPermission: PermissionValues = \"mosmgt.mealmgt.order.restrictions.manage\";\r\n public static readonly manageMOSOrderMgtCuisinesPermission: PermissionValues = \"mosmgt.mealmgt.order.cuisines.manage\";\r\n public static readonly manageMOSOrderMgtDeliveryPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.manage\";\r\n public static readonly manageMOSOrderMgtBentoBoxTypesPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.bentoboxtypes.manage\";\r\n public static readonly manageMOSOrderMgtBentoAssetsPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.bentoassets.manage\";\r\n public static readonly manageMOSOrderMgtCartonTypesPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.cartontypes.manage\";\r\n public static readonly manageMOSOrderMgtCartonAssetsPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.cartonassets.manage\";\r\n public static readonly manageMOSOrderMgtTrackingStatusPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.trackingstatus.manage\";\r\n public static readonly manageMOSOrderMgtDeliveryOrdersPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.deliveryorders.manage\";\r\n public static readonly manageMOSOrderMgtDishingProcessPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.dishingprocess.manage\";\r\n public static readonly manageMOSOrderMgtPackingProcessPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.packingprocess.manage\";\r\n public static readonly manageMOSOrderMgtDriversPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.drivers.manage\";\r\n public static readonly manageMOSOrderMgtRoutesPermission: PermissionValues = \"mosmgt.mealmgt.order.delivery.routes.manage\";\r\n public static readonly manageMOSOrderMgtCaterersPermission: PermissionValues = \"mosmgt.settingmgt.caterers.manage\";\r\n public static readonly manageMOSOrderMgtOutletProfilesPermission: PermissionValues = \"mosmgt.settingmgt.outletprofiles.manage\";\r\n public static readonly manageMOSOrderMgtOutletsPermission: PermissionValues = \"mosmgt.settingmgt.outlets.manage\";\r\n public static readonly manageMOSOrderMgtStoreInfoPermission: PermissionValues = \"mosmgt.settingmgt.storeinfo.manage\";\r\n public static readonly manageMOSOrderMgtPaymentTypesPermission: PermissionValues = \"mosmgt.settingmgt.payment.paymenttype.manage\";\r\n public static readonly manageMOSOrderMgtTransactionFeesPermission: PermissionValues = \"mosmgt.settingmgt.payment.transactionfee.manage\";\r\n public static readonly manageMOSOrderMgtVoucherTypesPermission: PermissionValues = \"mosmgt.settingmgt.payment.vouchertype.manage\";\r\n public static readonly manageMOSOrderMgtVouchersPermission: PermissionValues = \"mosmgt.settingmgt.payment.voucher.manage\";\r\n public static readonly manageMOSOrderMgtWaiversPermission: PermissionValues = \"mosmgt.settingmgt.payment.waiver.manage\";\r\n\r\n public static readonly viewEmailQueuesPermission: PermissionValues = \"systemsetting.emailqueue.view\";\r\n constructor(name?: PermissionNames, value?: PermissionValues, groupName?: string, description?: string) {\r\n this.name = name;\r\n this.value = value;\r\n this.groupName = groupName;\r\n this.description = description;\r\n }\r\n\r\n public name: PermissionNames;\r\n public value: PermissionValues;\r\n public groupName: string;\r\n public description: string;\r\n}\r\n\r\n\r\nexport class PermissionTree {\r\n\r\n constructor(id?: number, value?: string, type?: string, children?: PermissionTree[]) {\r\n this.id = id;\r\n this.value = value;\r\n this.children = children;\r\n }\r\n\r\n public id: number;\r\n public value: string;\r\n public type: string;\r\n public parent: PermissionTree;\r\n public children: PermissionTree[];\r\n}\r\n\r\n","import { Image } from '../models/image.model';\r\n\r\nexport class Playlist {\r\n\r\n constructor(id?: string, name?: string, description?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public imageIds: imageIndex[];\r\n public images: Image[];\r\n public imageTitle: string;\r\n public institutionId: string;\r\n\r\n public userGroupsArr: any[];\r\n}\r\n\r\nexport class imageIndex {\r\n\r\n constructor(imageId?: number, imgIndex?: number, duration?: number, animation?: string) {\r\n\r\n this.imageId = imageId;\r\n this.imgIndex = imgIndex;\r\n this.duration = duration;\r\n this.animation = animation;\r\n }\r\n\r\n public imageId: number;\r\n public imgIndex: number;\r\n public duration: number;\r\n public animation: string;\r\n}\r\n","import { DirectoryListing } from \"./directory-listing.model\";\r\nimport { LineModel } from \"./line.model\";\r\n\r\nexport class PointModel {\r\n public id: string;\r\n public code: string;\r\n public label: string;\r\n\r\n public x: number;\r\n public y: number;\r\n\r\n public isFloorConnector: boolean;\r\n\r\n public noWheelchair: boolean;\r\n\r\n public noSheltered: boolean;\r\n\r\n public MapId: string;\r\n\r\n public isActive: boolean;\r\n directorys: DirectoryListing[];\r\n connectors: LineModel[];\r\n}\r\n","\r\nexport class PublicHoliday {\r\n\r\n constructor(id?: string, name?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public date: Date;\r\n public institutionId: string;\r\n}\r\n","import { QueueTableMap } from \"./queue-table-map.model\";\r\n\r\nexport class QueueTableMapGroup {\r\n \r\n\r\n public queueId: string;\r\n public roomName: string;\r\n\r\n public list: QueueTableMap[];\r\n devices: any;\r\n}\r\n","import { Permission } from './permission.model';\r\nimport { Facility } from './facility.model';\r\nimport { ContactGroup } from './contactgroup.model';\r\nimport { ReservationTime } from './reservationtime.model';\r\n//import { timeInterval } from 'rxjs/operators';\r\nimport { UserVehicle } from './uservehicle.model';\r\n\r\nexport class Reservation {\r\n\r\n constructor(shortDescription?: string, longDescription?: string, startDate?: Date, startTime?: ReservationTime, endDate?: Date, endTime?: ReservationTime, repeatEndDateTime?: Date,\r\n facilityName?: string, facilityId?: string, locationName?: string, locationId?: string, isAllDay?: boolean, status?: string, repeatType?: string, repeatEndDate?: Date,\r\n facilities?: Facility[], locationObj?: Location, timeIntervals?: ReservationTime[], invitees?: ReservationInvitee[], isAttendee?: boolean) {\r\n\r\n this.shortDescription = shortDescription;\r\n this.longDescription = longDescription;\r\n this.startDate = startDate;\r\n \r\n this.startTime = startTime;\r\n this.endDate = endDate;\r\n this.endTime = endTime;\r\n this.repeatEndDateTime = repeatEndDateTime;\r\n this.facilityName = facilityName;\r\n this.facilityId = facilityId;\r\n this.locationName = locationName;\r\n this.locationId = locationId;\r\n this.locationObj = locationObj;\r\n this.isAllDay = isAllDay;\r\n this.status = status;\r\n this.repeatType = repeatType;\r\n this.repeatEndDate = repeatEndDate;\r\n this.facilities = facilities;\r\n this.timeIntervals = timeIntervals;\r\n this.invitees = invitees;\r\n this.isAttendee = isAttendee;\r\n if (this.startTime == undefined) {\r\n this.startTime = new ReservationTime();\r\n }\r\n\r\n if (this.endTime == undefined) {\r\n this.endTime = new ReservationTime();\r\n }\r\n }\r\n\r\n public id: string;\r\n public shortDescription: string;\r\n public longDescription: string;\r\n public startDateTime: Date;\r\n public endDateTime: Date;\r\n public startDate: Date;\r\n public startTime: ReservationTime;\r\n public endDate: Date;\r\n public endTime: ReservationTime;\r\n public repeatEndDateTime?: Date;\r\n public repeatEndDate: Date;\r\n public facilityName: string;\r\n public facilityId: string;\r\n public isAllDay: boolean;\r\n public isRecurring: boolean;\r\n public status: string;\r\n public repeatType: string;\r\n public locationName: string;\r\n public locationId: string;\r\n public locationObj: Location;\r\n public facilities: any[];\r\n public timeIntervals: ReservationTime[];\r\n public invitees: ReservationInvitee[];\r\n public institutionId: string;\r\n public isAttendee: boolean;\r\n public parentId: string;\r\n public recurApplyChangesType: string;\r\n\r\n public selectedStartTime: string;\r\n public selectedEndTime: string;\r\n\r\n public contactGroups: ContactGroup[];\r\n public bookedBy: string;\r\n public lastUpdatedByName: string;\r\n public createdDate: Date;\r\n public updatedDate: Date;\r\n public notes: string;\r\n public createdBy: string;\r\n public requestedBy: string;\r\n public meetingContactNo: string;\r\n public createdOn: Date;\r\n public lastUpdatedOn: Date;\r\n public smartRoomScheduleId: string;\r\n public alternateMeetingTitle: string;\r\n public isSignage: boolean;\r\n public isKiosk: boolean;\r\n\r\n public DisplayTitle: string;\r\n public MeetingPurpose: string;\r\n public StatusRemark: string;\r\n\r\n public filePath: string;\r\n public fileName: string;\r\n\r\n public reservationPictures: ReservationPicture[];\r\n}\r\n\r\nexport class ReservationPicture {\r\n constructor(reservationId?: string, pictureUrl?: string) {\r\n this.reservationId = reservationId;\r\n this.pictureUrl = pictureUrl;\r\n }\r\n\r\n public id: string;\r\n public reservationId: string;\r\n public pictureUrl: string;\r\n}\r\n\r\nexport class ImageReference {\r\n constructor(reservationId?: string, filePath?: string, remarks?: string, fileId?: number, fileName?: string, imageReferenceTypeId?: string, referenceDate?: Date) {\r\n this.reservationId = reservationId;\r\n this.filePath = filePath;\r\n this.remarks = remarks;\r\n this.fileId = fileId;\r\n this.fileName = fileName;\r\n this.referenceDate = referenceDate;\r\n this.imageReferenceTypeId = imageReferenceTypeId;\r\n }\r\n\r\n public fileId: number;\r\n public id: string;\r\n public reservationId: string;\r\n public filePath: string;\r\n public fileName: string;\r\n public remarks: string;\r\n public referenceDate: Date;\r\n public imageReferenceTypeId: string;\r\n public imageReferenceColorId: string;\r\n public imageReferenceColorCode: string;\r\n public hidden: boolean;\r\n}\r\n\r\nexport class ReservationInvitee {\r\n constructor(id?: number, email?: string, userId?: string, name?: string) {\r\n this.id = id;\r\n this.email = email\r\n this.userId = userId;\r\n this.name = name;\r\n }\r\n public id: number;\r\n public email: string;\r\n public userId: string;\r\n public name: string;\r\n public phoneNumber: string;\r\n public plateNumber: string;\r\n public vehicle: string;\r\n public issueDate?: Date;\r\n public expiryDate?: Date;\r\n public cardType: string;\r\n public contactGroupId?: string;\r\n public userVehicles: UserVehicle[];\r\n}\r\nexport class CalendarFilter {\r\n constructor(\r\n locationIds?: number[],\r\n facilityIds?: number[],\r\n viewDate?: Date,\r\n startDate?: Date,\r\n endDate?: Date,\r\n startTime?: Date,\r\n endTime?: Date,\r\n capacity?: number,\r\n currentUserId?: number,\r\n isForAttendance?: boolean,\r\n institutionId?: string,\r\n isForKiosk?: boolean\r\n ) {\r\n\r\n }\r\n public locationIds: number[];\r\n public facilityIds: number[];\r\n public viewDate: Date;\r\n public start: Date;\r\n public end: Date;\r\n public startTime: Date;\r\n public endTime: Date;\r\n public startTimeInterval: ReservationTime;\r\n public endTimeInterval: ReservationTime;\r\n public capacity: number;\r\n public bookedById: number;\r\n public hasAvailableTimeSlot: boolean;\r\n public currentUserId: number;\r\n public isForAttendance: boolean;\r\n public institutionId: string;\r\n public isBooking: boolean\r\n}\r\n\r\nexport class VehicleLogFilter {\r\n constructor(\r\n ) {\r\n\r\n }\r\n public start: Date;\r\n public end: Date;\r\n}\r\n","import { Reservation } from \"./reservation.model\";\r\n\r\nexport class ReservationTime {\r\n\r\n constructor(id?: number, description?: string, value?: string, hour?: number, minutes?: number) {\r\n\r\n this.id = id;\r\n this.description = description;\r\n this.hour = hour;\r\n this.minutes = minutes;\r\n\r\n let d = new Date();\r\n d.setHours(hour, minutes);\r\n this.value = d;\r\n }\r\n\r\n public id: number;\r\n public description: string;\r\n public value: Date;\r\n public hour: number;\r\n public minutes: number;\r\n\r\n\r\n public toTimeIntervalId: number;\r\n public toTimeIntervalDescription: string;\r\n public toTimeIntervalValue: Date;\r\n public toTimeIntervalHour: number;\r\n public toTimeIntervalMinutes: number;\r\n //public toTimeInterval: ReservationTime;\r\n}\r\n\r\nexport class TimeIntervalFilter {\r\n constructor(locationId?: number, startDate?: Date, endDate?: Date, startTimeInterval?: ReservationTime, endTimeInterval?: ReservationTime) {\r\n this.locationId = locationId;\r\n this.startDate = startDate;\r\n this.endDate = endDate;\r\n this.startTimeInterval = startTimeInterval;\r\n this.endTimeInterval = endTimeInterval;\r\n }\r\n\r\n public locationId: number;\r\n public startDate: Date;\r\n public endDate: Date;\r\n public startTimeInterval: ReservationTime;\r\n public endTimeInterval: ReservationTime;\r\n}\r\n","import { Permission } from './permission.model';\r\n\r\n\r\nexport class Role {\r\n\r\n constructor(name?: string, description?: string, institutionId?: string, permissions?: Permission[]) {\r\n\r\n this.name = name;\r\n this.description = description;\r\n this.permissions = permissions;\r\n this.institutionId = institutionId;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public usersCount: string;\r\n public institutionId: string;\r\n public permissions: Permission[];\r\n}\r\n","import { ServiceContractAsset } from \"./asset.model\";\r\n\r\nexport class ServiceContract {\r\n\r\n constructor() {\r\n }\r\n\r\n public id: string;\r\n public identifier: string;\r\n public reference: string;\r\n public coverage: string;\r\n public details: string;\r\n public renewalAlert: number;\r\n public startDate?: Date;\r\n public endDate?: Date;\r\n public serviceContractAssets: ServiceContractAsset[];\r\n}\r\n","import { extend } from \"jquery\";\r\n\r\nexport class Filter {\r\n\r\n constructor(page?: number, pageSize?: number) {\r\n }\r\n\r\n public sorts: string;\r\n public filters: string;\r\n public page: number;\r\n public pageSize: number;\r\n}\r\n\r\nexport class PagedResult {\r\n\r\n constructor() {\r\n }\r\n\r\n public filter: Filter;\r\n public totalCount: number;\r\n public pagedData: any;\r\n}\r\n\r\nexport class CommonFilter extends Filter {\r\n constructor(page?: number, pageSize?: number) {\r\n super(page, pageSize);\r\n }\r\n\r\n public institutionId: string;\r\n}\r\n\r\nexport class ServiceContractFilter {\r\n constructor(includeAssets, filter) {\r\n this.includeAssets = includeAssets;\r\n this.filter = filter;\r\n }\r\n\r\n public includeAssets: boolean;\r\n public filter: Filter; \r\n}\r\n\r\nexport class ClassRosterFilter extends Filter {\r\n public catererId: string;\r\n public outletId: string;\r\n}\r\n\r\nexport class AssetLabelFilter extends Filter {\r\n public showWarranty: boolean;\r\n public qrUrl: boolean;\r\n public url: string;\r\n public showSerial: boolean;\r\n public showModelType: boolean;\r\n}\r\n\r\nexport class RoleReportFilter extends Filter {\r\n public permissions: string[];\r\n}\r\n","import { Permission } from './permission.model';\r\nimport { SignageComponent } from './signage-component.model';\r\n\r\n\r\nexport class SignageCompilation {\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n\r\n public width: number;\r\n public height: number;\r\n\r\n public backgroundColor: string;\r\n public backgroundImage: string;\r\n\r\n\r\n compilationId: string;\r\n\r\n components: SignageComponent[];\r\n\r\n isActive: any;\r\n\r\n interval: number;\r\n}\r\n","import { Type } from '@angular/core';\r\nexport class SignageComponentType {\r\n\r\n constructor(\r\n id: string,\r\n component: Type,\r\n name: string,\r\n configuration: Type) {\r\n this.id = id;\r\n this.component = component;\r\n this.name = name;\r\n this.configuration = configuration;\r\n }\r\n\r\n public id: string;\r\n public component: Type;\r\n public name: string;\r\n public configuration: Type;\r\n}\r\n","import { Permission } from './permission.model';\r\nimport { SignageComponentType } from './signage-component-type.model';\r\n\r\n\r\nexport class SignageComponent {\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n\r\n public fixWidth: number;\r\n public fixHeight: number;\r\n public isRatio: boolean;\r\n\r\n public backgroundColor: string;\r\n public backgroundImage: string;\r\n\r\n public componentType: string;\r\n\r\n public configurations: string;\r\n\r\n public previewWidth: number;\r\n public previewHeight: number;\r\n\r\n componentTypeObj: SignageComponentType;\r\n prevComponentType: string;\r\n configurationsObj: any;\r\n x: number;\r\n y: number;\r\n width: number;\r\n height: number;\r\n order: number;\r\n componentId: string;\r\n\r\n isActive: any;\r\n}\r\n","import { Permission } from './permission.model';\r\nimport { SignageComponent } from './signage-component.model';\r\nimport { SignageSchedule } from './signage-schedule.model';\r\n\r\n\r\nexport class SignagePublication {\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public approved: boolean;\r\n\r\n schedules: SignageSchedule[];\r\n rejected: boolean;\r\n remark: any;\r\n approvedDate?: any;\r\n rejectedDate: any;\r\n approvedByUser: any;\r\n approvedByName: any;\r\n rejectedByUser: any;\r\n rejectedByName: any;\r\n}\r\n","import { Permission } from './permission.model';\r\nimport { SignageComponent } from './signage-component.model';\r\nimport { SignageCompilation } from './signage-compilation.model';\r\n\r\n\r\nexport class SignageSchedule {\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n\r\n public publicationId: string;\r\n\r\n public effectiveDate: string;\r\n public ineffectiveDate: string;\r\n\r\n public startTime: string;\r\n public endTime: string;\r\n\r\n public startTimeObj: string;\r\n public endTimeObj: string;\r\n\r\n public monday: boolean;\r\n public tuesday: boolean;\r\n public wednesday: boolean;\r\n public thursday: boolean;\r\n public friday: boolean;\r\n public saturday: boolean;\r\n public sunday: boolean;\r\n\r\n compilations: SignageCompilation[];\r\n\r\n isActive: any;\r\n effectiveDateObj: Date;\r\n ineffectiveDateObj: Date;\r\n}\r\n","import { User } from './user.model';\r\n\r\n\r\nexport class UserEdit extends User {\r\n students: any;\r\n constructor(currentPassword?: string, newPassword?: string, confirmPassword?: string) {\r\n super();\r\n\r\n this.currentPassword = currentPassword;\r\n this.newPassword = newPassword;\r\n this.confirmPassword = confirmPassword\r\n }\r\n\r\n public currentPassword: string;\r\n public newPassword: string;\r\n public confirmPassword: string;\r\n\r\n}\r\n","export class UserLogin {\r\n constructor(email?: string, password?: string, rememberMe?: boolean) {\r\n this.email = email;\r\n this.password = password;\r\n this.rememberMe = rememberMe;\r\n }\r\n\r\n email: string;\r\n password: string;\r\n institutionCode: string;\r\n rememberMe: boolean;\r\n isAD: boolean;\r\n}\r\n\r\nexport class ResetPassword {\r\n constructor(code?: string, userId?: string, password?: string) {\r\n this.userId = userId;\r\n this.password = password;\r\n this.code = code;\r\n }\r\n\r\n userId: string;\r\n password: string;\r\n institutionCode: string;\r\n code: string;\r\n}\r\n","import { UserPhonebook } from \"./userphonebook.model\";\r\nimport { AccountService } from \"../services/account.service\";\r\nimport { Permission } from \"./permission.model\";\r\nimport { UserVehicle } from \"./uservehicle.model\";\r\nimport { UserCardId } from \"./usercardid.model\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport * as signalRCore from '@aspnet/signalr';\r\nimport { UserGroup, UserGroupMember } from \"./userGroup.model\";\r\nimport { UserWallet } from \"./userwallet.model\";\r\nimport { UserReward } from \"./userreward.model\";\r\n\r\nexport class User {\r\n students: any;\r\n // Note: Using only optional constructor properties without backing store disables typescript's type checking for the type\r\n constructor(id?: string, userName?: string, fullName?: string, email?: string, jobTitle?: string, phoneNumber?: string, roles?: string[], institutionId?: string, pin?: string, departmentId?: string, employeeId?: string, registeredDepartment?: string, unitNumber?: string) {\r\n\r\n this.id = id;\r\n this.userName = userName;\r\n this.fullName = fullName;\r\n this.email = email;\r\n this.jobTitle = jobTitle;\r\n this.phoneNumber = phoneNumber;\r\n this.roles = roles;\r\n this.institutionId = institutionId;\r\n this.pin = pin;\r\n this.departmentId = departmentId;\r\n this.employeeId = employeeId;\r\n this.registeredDepartment = registeredDepartment;\r\n this.unitNumber = unitNumber;\r\n }\r\n\r\n\r\n get friendlyName(): string {\r\n let name = this.fullName || this.userName;\r\n\r\n if (this.jobTitle)\r\n name = this.jobTitle + \" \" + name;\r\n\r\n return name;\r\n }\r\n\r\n public id: string;\r\n public userName: string;\r\n public fullName: string;\r\n public email: string;\r\n public jobTitle: string;\r\n public phoneNumber: string;\r\n public isEnabled: boolean;\r\n public isLockedOut: boolean;\r\n public roles: string[];\r\n public institutionId?: string;\r\n public institutionCode: string;\r\n public pin?: string;\r\n public employeeId?: string;\r\n public departmentId?: string;\r\n public departmentName?: string;\r\n public registeredDepartment?: string;\r\n public provider?: string;\r\n public key?: string;\r\n public isExternal: boolean;\r\n public checked: boolean;\r\n public userPhonebooks: UserPhonebook[];\r\n public mobileNo: string;\r\n public homeNo: string;\r\n public unitNumber: string;\r\n public filePath: string;\r\n public fileId: string;\r\n public plateNumber: string;\r\n public vehicle: string;\r\n public issueDate?: Date;\r\n public expiryDate?: Date;\r\n public cardType: string;\r\n public status: string;\r\n public isConnected: boolean;\r\n public userVehicles: UserVehicle[];\r\n public userCardIds: UserCardId[];\r\n public userGroupMembers: UserGroupMember[];\r\n public userGroupIds: string[];\r\n public userWallets: UserWallet[];\r\n public userRewards: UserReward[];\r\n public isAD: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class FRSHubConnections {\r\n userHubConnection: signalRCore.HubConnection;\r\n forceStop: boolean;\r\n sessionInterval: any;\r\n}\r\n\r\nexport class UserReportFilter {\r\n public keyword: string;\r\n public departmentId: string;\r\n public userGroupId: string;\r\n public createdStart?: Date;\r\n public createdEnd?: Date;\r\n public lastLoginStart?: Date;\r\n public lastLoginEnd?: Date;\r\n public deletedDate?: Date;\r\n public status?: boolean;\r\n}\r\n\r\nexport class UserRoleReportFilter {\r\n public keyword: string;\r\n public permissions: string[];\r\n public roleId: string;\r\n public createdStart?: Date;\r\n public createdEnd?: Date;\r\n public lastUpdatedStart?: Date;\r\n public lastUpdatedEnd?: Date;\r\n}\r\n","\r\nexport class UserGroup {\r\n\r\n constructor(id?: string, name?: string, description?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n public institutionId: string;\r\n\r\n public members: UserGroupMember[];\r\n public locations: UserGroupLocation[];\r\n}\r\n\r\n\r\nexport class UserGroupMember {\r\n\r\n constructor(id?: string, userGroupId?: string, userId?: string) {\r\n\r\n this.id = id;\r\n this.userGroupId = userGroupId;\r\n this.userId = userId;\r\n }\r\n\r\n public id: string;\r\n public userGroupId: string;\r\n public userId: string;\r\n public name: string;\r\n}\r\n\r\nexport class UserGroupLocation {\r\n\r\n constructor(id?: string, userGroupId?: string, locationId?: string) {\r\n\r\n this.id = id;\r\n this.userGroupId = userGroupId;\r\n this.locationId = locationId;\r\n }\r\n\r\n public id: string;\r\n public userGroupId: string;\r\n public locationId: string;\r\n}\r\n","\r\nexport class UserCardId {\r\n\r\n constructor(id?: string, cardId?: string, remarks?: string) {\r\n\r\n this.id = id;\r\n this.cardId = cardId;\r\n this.remarks = remarks;\r\n }\r\n\r\n public id: string;\r\n public cardId: string;\r\n public status: string;\r\n public remarks: string;\r\n public userId: string;\r\n public userName: string;\r\n public isApprove: boolean;\r\n}\r\n\r\n\r\n","import { UserVehicle } from \"./uservehicle.model\";\r\n\r\nexport class UserPhonebook {\r\n\r\n constructor(id?: string, name?: string, email?: string) {\r\n\r\n this.id = id;\r\n this.name = name;\r\n this.email = email;\r\n }\r\n\r\n public id: string;\r\n public name: string;\r\n public email: string;\r\n public phoneNumber: string;\r\n public homeNo: string;\r\n public mobileNo: string;\r\n public designation: string;\r\n public filePath: string;\r\n public userId: string;\r\n public checked: boolean;\r\n public plateNumber: string;\r\n public vehicle: string;\r\n public issueDate?: Date;\r\n public expiryDate?: Date;\r\n public cardType: string;\r\n public selectedVehicle: UserVehicle;\r\n public vehicles: UserVehicle[];\r\n}\r\n","\r\nexport class UserReward {\r\n\r\n constructor() {\r\n }\r\n\r\n public id: string;\r\n public userId: string;\r\n public balance: number;\r\n public concurrencyStamp: string;\r\n public userName: string;\r\n}\r\n\r\n\r\nexport class RewardOperation {\r\n\r\n constructor() {\r\n }\r\n\r\n public rewardId: string;\r\n public amount: number;\r\n public concurrencyStamp: string;\r\n public transactionType: string;\r\n public description: string;\r\n\r\n}\r\n\r\n","\r\nexport class UserVehicle {\r\n\r\n constructor(id?: string, cardType?: string, plateNumber?: string) {\r\n\r\n this.id = id;\r\n this.cardType = cardType;\r\n this.plateNumber = plateNumber;\r\n }\r\n\r\n public id: string;\r\n public cardType: string;\r\n public plateNumber: string;\r\n public vehicleStatus: string;\r\n public userId: string;\r\n public userName: string;\r\n public isApprove: boolean;\r\n}\r\n\r\n\r\nexport class VMSVehicleLog {\r\n\r\n constructor() {\r\n }\r\n\r\n public bookingDescription: string;\r\n public seasonId: string;\r\n public personName: string;\r\n public cardType: string;\r\n public vehicle: string;\r\n public issueDate?: Date;\r\n public expiryDate?: Date;\r\n public entryDate?: Date;\r\n public exitDate?: Date;\r\n\r\n}\r\n\r\n","\r\nexport class UserWallet {\r\n\r\n constructor() {\r\n }\r\n\r\n public id: string;\r\n public userId: string;\r\n public balance: number;\r\n public concurrencyStamp: string;\r\n public userName: string;\r\n}\r\n\r\n\r\nexport class WalletOperation {\r\n\r\n constructor() {\r\n }\r\n\r\n public walletId: string;\r\n public amount: number;\r\n public concurrencyStamp: string;\r\n public transactionType: string;\r\n public description: string;\r\n\r\n}\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n\r\n@Pipe({ name: 'dateOnly' })\r\nexport class DateOnlyPipe extends DatePipe implements PipeTransform {\r\n\r\n transform(value: any): any {\r\n\r\n return super.transform(value, 'dd/MM/yyyy');\r\n }\r\n}\r\n\r\n\r\n@Pipe({ name: 'dateTimeOnly' })\r\nexport class DateTimeOnlyPipe extends DatePipe implements PipeTransform {\r\n\r\n transform(value: any): any {\r\n\r\n return super.transform(value, 'dd/MM/yyyy h:mm a');\r\n }\r\n}\r\n\r\n@Pipe({ name: 'timeOnly' })\r\nexport class TimeOnlyPipe extends DatePipe implements PipeTransform {\r\n\r\n transform(value: any): any {\r\n\r\n return super.transform(value, 'h:mm a');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n\r\n@Pipe({ name: 'groupBy' })\r\nexport class GroupByPipe implements PipeTransform {\r\n\r\n transform(value: Array, field: string): Array {\r\n\r\n if (!value)\r\n return value;\r\n\r\n const groupedObj = value.reduce((prev, cur) => {\r\n if (!prev[cur[field]]) {\r\n prev[cur[field]] = [cur];\r\n }\r\n else {\r\n prev[cur[field]].push(cur);\r\n }\r\n\r\n return prev;\r\n }, {});\r\n\r\n return Object.keys(groupedObj).map(key => ({ key, value: groupedObj[key] }));\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { HttpParamsOptions } from '@angular/common/http/src/params';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { WalletOperation } from '../models/userwallet.model';\r\nimport { RewardOperation } from '../models/userreward.model';\r\n\r\n\r\n@Injectable()\r\nexport class AccountEndpoint extends EndpointFactory {\r\n\r\n private readonly _usersUrl: string = \"/api/account/users\";\r\n private readonly _usersRegisterUrl: string = \"/api/account/users/register\";\r\n private readonly _userByUserNameUrl: string = \"/api/account/users/username\";\r\n private readonly _currentUserUrl: string = \"/api/account/users/me\";\r\n private readonly _currentUserPreferencesUrl: string = \"/api/account/users/me/preferences\";\r\n private readonly _unblockUserUrl: string = \"/api/account/users/unblock\";\r\n private readonly _rolesUrl: string = \"/api/account/roles\";\r\n private readonly _roleByRoleNameUrl: string = \"/api/account/roles/name\";\r\n private readonly _permissionsUrl: string = \"/api/account/permissions\";\r\n private readonly _permissionsTreeUrl: string = \"/api/account/permissionstree\";\r\n private readonly _userPhonebooksUrl: string = \"/api/account/phonebooks\";\r\n private readonly _userVehiclesUrl: string = \"/api/account/vehicles\";\r\n private readonly _userCardIdsUrl: string = \"/api/account/cardids\";\r\n private readonly _configUrl: string = \"/api/configuration\";\r\n private readonly _walletTransactUrl: string = \"/api/account/wallet/operation\";\r\n private readonly _rewardTransactUrl: string = \"/api/account/reward/operation\";\r\n private readonly _walletUrl: string = \"/api/account/wallet\";\r\n\r\n get usersRegisterUrl() { return this.configurations.baseUrl + this._usersRegisterUrl; }\r\n get usersUrl() { return this.configurations.baseUrl + this._usersUrl; }\r\n get userByUserNameUrl() { return this.configurations.baseUrl + this._userByUserNameUrl; }\r\n get currentUserUrl() { return this.configurations.baseUrl + this._currentUserUrl; }\r\n get currentUserPreferencesUrl() { return this.configurations.baseUrl + this._currentUserPreferencesUrl; }\r\n get unblockUserUrl() { return this.configurations.baseUrl + this._unblockUserUrl; }\r\n get rolesUrl() { return this.configurations.baseUrl + this._rolesUrl; }\r\n get roleByRoleNameUrl() { return this.configurations.baseUrl + this._roleByRoleNameUrl; }\r\n get permissionsUrl() { return this.configurations.baseUrl + this._permissionsUrl; }\r\n get permissionsTreeUrl() { return this.configurations.baseUrl + this._permissionsTreeUrl; }\r\n get userPhonebooksUrl() { return this.configurations.baseUrl + this._userPhonebooksUrl; }\r\n get userVehiclesUrl() { return this.configurations.baseUrl + this._userVehiclesUrl; }\r\n get userCardIdsUrl() { return this.configurations.baseUrl + this._userCardIdsUrl; }\r\n get configUrl() { return this.configurations.baseUrl + this._configUrl; }\r\n get walletTransactUrl() { return this.configurations.baseUrl + this._walletTransactUrl; }\r\n get walletByUserUrl() { return this.configurations.baseUrl + this._walletUrl + '/user'; }\r\n get rewardTransactUrl() { return this.configurations.baseUrl + this._rewardTransactUrl; }\r\n\r\n constructor(http: HttpClient, public configurations: ConfigurationService, injector: Injector) {\r\n\r\n super(http, configurations, injector);\r\n }\r\n\r\n\r\n loadConfig(): Observable {\r\n return this.http.get(this.configUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.loadConfig());\r\n }));\r\n }\r\n\r\n getUserEndpoint(userId?: string): Observable {\r\n let endpointUrl = userId ? `${this.usersUrl}/${userId}` : this.currentUserUrl;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserEndpoint(userId));\r\n }));\r\n }\r\n\r\n\r\n getUserByUserNameEndpoint(userName: string): Observable {\r\n let endpointUrl = `${this.userByUserNameUrl}/${userName}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserByUserNameEndpoint(userName));\r\n }));\r\n }\r\n\r\n\r\n getUsersEndpoint(page?: number, pageSize?: number, institutionId?: string): Observable {\r\n let endpointUrl = page && pageSize ? `${this.usersUrl}/${page}/${pageSize}` : `${this.usersUrl}?institutionId=${institutionId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUsersEndpoint(page, pageSize, institutionId));\r\n }));\r\n }\r\n\r\n getUsersSieveEndpoint(filter?: Filter): Observable {\r\n return this.getSieve(this.usersUrl + '/sieve/list', filter);\r\n }\r\n\r\n getNewUserEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this.usersUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewUserEndpoint(userObject));\r\n }));\r\n }\r\n\r\n getRegisterUserEndpoint(userObject: any): Observable {\r\n\r\n return this.http.post(this.usersRegisterUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getRegisterUserEndpoint(userObject));\r\n }));\r\n }\r\n\r\n getUpdateUserEndpoint(userObject: any, userId?: string): Observable {\r\n let endpointUrl = userId ? `${this.usersUrl}/${userId}` : this.currentUserUrl;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateUserEndpoint(userObject, userId));\r\n }));\r\n }\r\n\r\n getPatchUpdateUserEndpoint(patch: {}, userId?: string): Observable\r\n getPatchUpdateUserEndpoint(value: any, op: string, path: string, from?: any, userId?: string): Observable\r\n getPatchUpdateUserEndpoint(valueOrPatch: any, opOrUserId?: string, path?: string, from?: any, userId?: string): Observable {\r\n let endpointUrl: string;\r\n let patchDocument: {};\r\n\r\n if (path) {\r\n endpointUrl = userId ? `${this.usersUrl}/${userId}` : this.currentUserUrl;\r\n patchDocument = from ?\r\n [{ \"value\": valueOrPatch, \"path\": path, \"op\": opOrUserId, \"from\": from }] :\r\n [{ \"value\": valueOrPatch, \"path\": path, \"op\": opOrUserId }];\r\n }\r\n else {\r\n endpointUrl = opOrUserId ? `${this.usersUrl}/${opOrUserId}` : this.currentUserUrl;\r\n patchDocument = valueOrPatch;\r\n }\r\n\r\n return this.http.patch(endpointUrl, JSON.stringify(patchDocument), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPatchUpdateUserEndpoint(valueOrPatch, opOrUserId, path, from, userId));\r\n }));\r\n }\r\n\r\n\r\n getUserPreferencesEndpoint(): Observable {\r\n\r\n return this.http.get(this.currentUserPreferencesUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserPreferencesEndpoint());\r\n }));\r\n }\r\n\r\n getUpdateUserPreferencesEndpoint(configuration: string): Observable {\r\n return this.http.put(this.currentUserPreferencesUrl, JSON.stringify(configuration), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateUserPreferencesEndpoint(configuration));\r\n }));\r\n }\r\n\r\n getUnblockUserEndpoint(userId: string): Observable {\r\n let endpointUrl = `${this.unblockUserUrl}/${userId}`;\r\n\r\n return this.http.put(endpointUrl, null, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUnblockUserEndpoint(userId));\r\n }));\r\n }\r\n\r\n getDeleteUserEndpoint(userId: string): Observable {\r\n let endpointUrl = `${this.usersUrl}/${userId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeleteUserEndpoint(userId));\r\n }));\r\n }\r\n\r\n\r\n\r\n\r\n\r\n getRoleEndpoint(roleId: string): Observable {\r\n let endpointUrl = `${this.rolesUrl}/${roleId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getRoleEndpoint(roleId));\r\n }));\r\n }\r\n\r\n\r\n getRoleByRoleNameEndpoint(roleName: string): Observable {\r\n let endpointUrl = `${this.roleByRoleNameUrl}/${roleName}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getRoleByRoleNameEndpoint(roleName));\r\n }));\r\n }\r\n\r\n\r\n\r\n getRolesEndpoint(page?: number, pageSize?: number, institutionId?: string): Observable {\r\n let endpointUrl = page && pageSize ? `${this.rolesUrl}/${page}/${pageSize}` : `${this.rolesUrl}?institutionId=${institutionId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getRolesEndpoint(page, pageSize, institutionId));\r\n }));\r\n }\r\n\r\n getRolesSieveEndpoint(filter?: Filter): Observable {\r\n return this.getSieve(this.rolesUrl + '/sieve/list', filter);\r\n }\r\n\r\n getNewRoleEndpoint(roleObject: any): Observable {\r\n\r\n return this.http.post(this.rolesUrl, JSON.stringify(roleObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewRoleEndpoint(roleObject));\r\n }));\r\n }\r\n\r\n getUpdateRoleEndpoint(roleObject: any, roleId: string): Observable {\r\n let endpointUrl = `${this.rolesUrl}/${roleId}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(roleObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateRoleEndpoint(roleObject, roleId));\r\n }));\r\n }\r\n\r\n getDeleteRoleEndpoint(roleId: string): Observable {\r\n let endpointUrl = `${this.rolesUrl}/${roleId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeleteRoleEndpoint(roleId));\r\n }));\r\n }\r\n\r\n\r\n getPermissionsEndpoint(): Observable {\r\n\r\n return this.http.get(this.permissionsUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPermissionsEndpoint());\r\n }));\r\n }\r\n\r\n getPermissionsTreeEndpoint(): Observable {\r\n\r\n return this.http.get(this.permissionsTreeUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPermissionsTreeEndpoint());\r\n }));\r\n }\r\n\r\n //phonebooks\r\n getUserPhonebooksEndpoint(userId?: string, page?: number, pageSize?: number): Observable {\r\n let endpointUrl = page && pageSize ? `${this.userPhonebooksUrl}/list/${page}/${pageSize}?userId=${userId}` : `${this.userPhonebooksUrl}/list?userId=${userId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserPhonebooksEndpoint(userId, page, pageSize));\r\n }));\r\n }\r\n\r\n getNewUserPhonebookEndpoint(userPhonebookObject: any): Observable {\r\n\r\n return this.http.post(this.userPhonebooksUrl, JSON.stringify(userPhonebookObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewUserPhonebookEndpoint(userPhonebookObject));\r\n }));\r\n }\r\n\r\n getUpdateUserPhonebookEndpoint(userPhonebookObject: any, userPhonebookId: string): Observable {\r\n let endpointUrl = `${this.userPhonebooksUrl}/update/${userPhonebookId}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(userPhonebookObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateUserPhonebookEndpoint(userPhonebookObject, userPhonebookId));\r\n }));\r\n }\r\n\r\n getDeleteUserPhonebookEndpoint(userPhonebookId: string): Observable {\r\n let endpointUrl = `${this.userPhonebooksUrl}/delete/${userPhonebookId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeleteUserPhonebookEndpoint(userPhonebookId));\r\n }));\r\n }\r\n\r\n //vehicles\r\n getUserVehiclesEndpoint(userId?: string, page?: number, pageSize?: number): Observable {\r\n let endpointUrl = page && pageSize ? `${this.userVehiclesUrl}/list/${page}/${pageSize}?userId=${userId}` : `${this.userVehiclesUrl}/list?userId=${userId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserPhonebooksEndpoint(userId, page, pageSize));\r\n }));\r\n }\r\n\r\n getNewUserVehicleEndpoint(obj: any): Observable {\r\n\r\n return this.http.post(this.userVehiclesUrl, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewUserPhonebookEndpoint(obj));\r\n }));\r\n }\r\n\r\n getUpdateUserVehicleEndpoint(obj: any, id: string): Observable {\r\n let endpointUrl = `${this.userVehiclesUrl}/update/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateUserVehicleEndpoint(obj, id));\r\n }));\r\n }\r\n\r\n getDeleteUserVehicleEndpoint(id: string): Observable {\r\n let endpointUrl = `${this.userVehiclesUrl}/delete/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeleteUserVehicleEndpoint(id));\r\n }));\r\n }\r\n\r\n //card ids\r\n getUserCardIdsEndpoint(userId?: string, page?: number, pageSize?: number): Observable {\r\n let endpointUrl = page && pageSize ? `${this.userCardIdsUrl}/list/${page}/${pageSize}?userId=${userId}` : `${this.userCardIdsUrl}/list?userId=${userId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUserPhonebooksEndpoint(userId, page, pageSize));\r\n }));\r\n }\r\n\r\n getNewUserCardIdEndpoint(obj: any): Observable {\r\n\r\n return this.http.post(this.userCardIdsUrl, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewUserPhonebookEndpoint(obj));\r\n }));\r\n }\r\n\r\n getNewUserCardIdActivateEndpoint(obj: any): Observable {\r\n\r\n return this.http.post(this.userCardIdsUrl, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewUserPhonebookEndpoint(obj));\r\n }));\r\n }\r\n\r\n getUpdateUserCardIdEndpoint(obj: any, id: string): Observable {\r\n let endpointUrl = `${this.userCardIdsUrl}/update/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateUserCardIdEndpoint(obj, id));\r\n }));\r\n }\r\n\r\n getDeleteUserCardIdEndpoint(id: string): Observable {\r\n let endpointUrl = `${this.userCardIdsUrl}/delete/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeleteUserCardIdEndpoint(id));\r\n }));\r\n }\r\n\r\n getWalletByUserId(userId: string): Observable {\r\n let endpointUrl = `${this.walletByUserUrl}/${userId}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getWalletByUserId(userId));\r\n }));\r\n }\r\n\r\n getTransactWalletEndpoint(model: WalletOperation): Observable {\r\n let endpointUrl = `${this.walletTransactUrl}/${model.walletId}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(model), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getTransactWalletEndpoint(model,));\r\n }));\r\n }\r\n\r\n getTransactRewardEndpoint(model: RewardOperation): Observable {\r\n let endpointUrl = `${this.rewardTransactUrl}/${model.rewardId}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(model), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getTransactRewardEndpoint(model,));\r\n }));\r\n }\r\n\r\n getSieve(url: string, filter: any): Observable {\r\n const headers = this.getRequestHeaders();\r\n\r\n const httpParams: HttpParamsOptions = { fromObject: filter } as HttpParamsOptions;\r\n\r\n const options = { params: new HttpParams(httpParams), headers: headers.headers };\r\n\r\n return this.http.get(url, options).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSieve(url, filter));\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { User } from '../models/user.model';\r\nimport { Role } from '../models/role.model';\r\nimport { Permission, PermissionNames, PermissionTree, PermissionValues } from '../models/permission.model';\r\nimport { UserEdit } from '../models/user-edit.model';\r\nimport { Facility } from '../models/facility.model';\r\nimport { DepartmentService } from './department.service';\r\nimport { Department } from '../models/department.model';\r\nimport { UserPhonebook } from '../models/userphonebook.model';\r\nimport * as coreSignalR from '@aspnet/signalr';\r\nimport { HubConnection } from '@aspnet/signalr';\r\nimport * as signalR from '@aspnet/signalr';\r\nimport { UserVehicle } from '../models/uservehicle.model';\r\nimport { UserCardId } from '../models/usercardid.model';\r\nimport { CommonFilter, Filter, PagedResult, RoleReportFilter } from '../models/sieve-filter.model';\r\nimport { WalletOperation } from '../models/userwallet.model';\r\nimport { RewardOperation } from '../models/userreward.model';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type RolesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type RolesChangedEventArg = { roles: Role[] | string[], operation: RolesChangedOperation };\r\n\r\n@Injectable()\r\nexport class AccountService {\r\n\r\n public static readonly roleAddedOperation: RolesChangedOperation = \"add\";\r\n public static readonly roleDeletedOperation: RolesChangedOperation = \"delete\";\r\n public static readonly roleModifiedOperation: RolesChangedOperation = \"modify\";\r\n\r\n private _rolesChanged = new Subject();\r\n private connection: coreSignalR.HubConnection;\r\n private connections = {};\r\n private pibConnection: signalR.HubConnection;\r\n private readonly _accountUserUrl: string = \"/api/account/users\";\r\n get accountUserUrl() { return this.configurations.baseUrl + this._accountUserUrl; }\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private departmentService: DepartmentService, private commonEndpoint: CommonEndpoint,\r\n public configurations: ConfigurationService ) {\r\n\r\n }\r\n\r\n loadConfig() {\r\n return this.accountEndpoint.loadConfig();\r\n }\r\n\r\n getUser(userId?: string) {\r\n return this.accountEndpoint.getUserEndpoint(userId);\r\n }\r\n\r\n getUserAndRoles(userId?: string, institutionId?: string) {\r\n return forkJoin(\r\n this.accountEndpoint.getUserEndpoint(userId),\r\n this.accountEndpoint.getRolesEndpoint(null, null, institutionId),\r\n this.departmentService.getDepartments(null, null, institutionId),\r\n this.accountEndpoint.getUserPhonebooksEndpoint());\r\n }\r\n\r\n getUsers(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return this.accountEndpoint.getUsersEndpoint(page, pageSize, institutionId);\r\n }\r\n\r\n getUsersAndRoles(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return forkJoin(\r\n this.accountEndpoint.getUsersEndpoint(page, pageSize, institutionId),\r\n this.accountEndpoint.getRolesEndpoint(null, null, institutionId),\r\n this.departmentService.getDepartments(null, null, institutionId),\r\n this.accountEndpoint.getUserPhonebooksEndpoint());\r\n }\r\n\r\n getUsersByFilter(userFilter: CommonFilter) {\r\n\r\n return this.accountEndpoint.getUsersSieveEndpoint(userFilter);\r\n }\r\n\r\n getUsersAndRolesByFilters(userFilter: CommonFilter) {\r\n\r\n return forkJoin(\r\n this.accountEndpoint.getUsersSieveEndpoint(userFilter),\r\n this.accountEndpoint.getRolesEndpoint(null, null, userFilter.institutionId),\r\n this.departmentService.getDepartments(null, null, userFilter.institutionId),\r\n this.accountEndpoint.getUserPhonebooksEndpoint());\r\n }\r\n\r\n updateUser(user: UserEdit) {\r\n if (user.id) {\r\n return this.accountEndpoint.getUpdateUserEndpoint(user, user.id);\r\n }\r\n else {\r\n return this.accountEndpoint.getUserByUserNameEndpoint(user.userName).pipe(\r\n mergeMap(foundUser => {\r\n user.id = foundUser.id;\r\n return this.accountEndpoint.getUpdateUserEndpoint(user, user.id)\r\n }));\r\n }\r\n }\r\n\r\n\r\n newUser(user: UserEdit) {\r\n return this.accountEndpoint.getNewUserEndpoint(user);\r\n }\r\n\r\n registerUser(user: UserEdit) {\r\n return this.accountEndpoint.getRegisterUserEndpoint(user);\r\n }\r\n\r\n getUserPreferences() {\r\n return this.accountEndpoint.getUserPreferencesEndpoint();\r\n }\r\n\r\n updateUserPreferences(configuration: string) {\r\n return this.accountEndpoint.getUpdateUserPreferencesEndpoint(configuration);\r\n }\r\n\r\n\r\n deleteUser(userOrUserId: string | UserEdit): Observable {\r\n\r\n if (typeof userOrUserId === 'string' || userOrUserId instanceof String ||\r\n typeof userOrUserId === 'number' || userOrUserId instanceof Number) {\r\n return this.accountEndpoint.getDeleteUserEndpoint(userOrUserId).pipe(\r\n tap(data => this.onRolesUserCountChanged(data.roles)));\r\n }\r\n else {\r\n\r\n if (userOrUserId.id) {\r\n return this.deleteUser(userOrUserId.id);\r\n }\r\n else {\r\n return this.accountEndpoint.getUserByUserNameEndpoint(userOrUserId.userName).pipe(\r\n mergeMap(user => this.deleteUser(user.id)));\r\n }\r\n }\r\n }\r\n\r\n\r\n unblockUser(userId: string) {\r\n return this.accountEndpoint.getUnblockUserEndpoint(userId);\r\n }\r\n\r\n getUserReportByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.accountUserUrl + '/report/sieve/list', filter);\r\n }\r\n\r\n downloadUserReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.accountUserUrl + '/report/export', filter);\r\n }\r\n\r\n getWallet(userId) {\r\n\r\n return this.accountEndpoint.getWalletByUserId(userId);\r\n }\r\n\r\n transactWallet(model: WalletOperation) {\r\n return this.accountEndpoint.getTransactWalletEndpoint(model);\r\n }\r\n\r\n transactReward(model: RewardOperation) {\r\n return this.accountEndpoint.getTransactRewardEndpoint(model);\r\n }\r\n\r\n userHasPermission(permissionValue: PermissionValues): boolean {\r\n return this.permissions.some(p => p == permissionValue);\r\n }\r\n\r\n userHasPermissions(permissionValues: PermissionValues[]): boolean {\r\n let isAllowed = true; //default allow menu as some have no acl yet\r\n if (permissionValues) {\r\n for (let pv of permissionValues) {\r\n isAllowed = this.permissions.some(p => p == pv);\r\n if (!isAllowed) break;\r\n }\r\n }\r\n \r\n\r\n return isAllowed;\r\n }\r\n\r\n refreshLoggedInUser() {\r\n return this.authService.refreshLogin();\r\n }\r\n\r\n\r\n\r\n\r\n getRoles(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return this.accountEndpoint.getRolesEndpoint(page, pageSize, institutionId);\r\n }\r\n\r\n getRolesAndPermissionsByFilters(filter: CommonFilter) {\r\n\r\n return forkJoin(\r\n this.accountEndpoint.getRolesSieveEndpoint(filter),\r\n this.accountEndpoint.getPermissionsTreeEndpoint());\r\n }\r\n\r\n getRolesAndPermissions(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return forkJoin(\r\n this.accountEndpoint.getPermissionsEndpoint(),\r\n this.accountEndpoint.getPermissionsTreeEndpoint());\r\n }\r\n\r\n\r\n updateRole(role: Role) {\r\n if (role.id) {\r\n return this.accountEndpoint.getUpdateRoleEndpoint(role, role.id).pipe(\r\n tap(data => this.onRolesChanged([role], AccountService.roleModifiedOperation)));\r\n }\r\n else {\r\n return this.accountEndpoint.getRoleByRoleNameEndpoint(role.name).pipe(\r\n mergeMap(foundRole => {\r\n role.id = foundRole.id;\r\n return this.accountEndpoint.getUpdateRoleEndpoint(role, role.id)\r\n }),\r\n tap(data => this.onRolesChanged([role], AccountService.roleModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newRole(role: Role) {\r\n return this.accountEndpoint.getNewRoleEndpoint(role).pipe(\r\n tap(data => this.onRolesChanged([role], AccountService.roleAddedOperation)));\r\n }\r\n\r\n\r\n deleteRole(roleOrRoleId: string | Role): Observable {\r\n\r\n if (typeof roleOrRoleId === 'number' || typeof roleOrRoleId === 'string' || roleOrRoleId instanceof String) {\r\n return this.accountEndpoint.getDeleteRoleEndpoint(roleOrRoleId).pipe(\r\n tap(data => this.onRolesChanged([data], AccountService.roleDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (roleOrRoleId.id) {\r\n return this.deleteRole(roleOrRoleId.id);\r\n }\r\n else {\r\n return this.accountEndpoint.getRoleByRoleNameEndpoint(roleOrRoleId.name).pipe(\r\n mergeMap(role => this.deleteRole(role.id)));\r\n }\r\n }\r\n }\r\n\r\n getPermissions() {\r\n\r\n return this.accountEndpoint.getPermissionsEndpoint();\r\n }\r\n\r\n\r\n private onRolesChanged(roles: Role[] | string[], op: RolesChangedOperation) {\r\n this._rolesChanged.next({ roles: roles, operation: op });\r\n }\r\n\r\n\r\n onRolesUserCountChanged(roles: Role[] | string[]) {\r\n return this.onRolesChanged(roles, AccountService.roleModifiedOperation);\r\n }\r\n\r\n\r\n getRolesChangedEvent(): Observable {\r\n return this._rolesChanged.asObservable();\r\n }\r\n\r\n\r\n\r\n get permissions(): PermissionValues[] {\r\n return this.authService.userPermissions;\r\n }\r\n\r\n get currentUser() {\r\n return this.authService.currentUser;\r\n }\r\n\r\n signalRConnection(url: string, skipAuth?: boolean): coreSignalR.HubConnection {\r\n let connection: coreSignalR.HubConnection;\r\n console.log(this.connections);\r\n //if (this.connections.hasOwnProperty(url)) {\r\n // connection = this.connections[url];\r\n //}\r\n //else {\r\n if (this.authService.currentUser != null || skipAuth) {\r\n connection = new coreSignalR.HubConnectionBuilder()\r\n .withUrl(url)\r\n .configureLogging({\r\n log: function (logLevel, message) {\r\n console.log(url + \" - \" + new Date().toISOString() + \": \" + message);\r\n }\r\n })\r\n .build();\r\n\r\n this.connections[url] = connection;\r\n }\r\n //}\r\n\r\n if (connection.state !== coreSignalR.HubConnectionState.Connected) {\r\n connection.start().catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n return connection;\r\n }\r\n\r\n disconnectSignalRConnection(connection: coreSignalR.HubConnection, url: string) {\r\n if (connection != null) {\r\n connection.stop().catch(err => {\r\n console.log(err);\r\n });\r\n\r\n if (this.connections.hasOwnProperty(url)) {\r\n //connection = this.connections[url];\r\n delete this.connections[url];\r\n }\r\n\r\n }\r\n }\r\n\r\n get pibSignalRConnection(): HubConnection {\r\n if (this.authService.currentUser != null) {\r\n if (this.pibConnection == null) {\r\n this.pibConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(\"http://localhost:91/signalr/patientHub\")\r\n .build();\r\n\r\n }\r\n if (this.pibConnection.state !== signalR.HubConnectionState.Connected) {\r\n this.pibConnection.start().catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n return this.pibConnection;\r\n }\r\n return null;\r\n }\r\n\r\n getUserPhonebooks(userId?: string, page?: number, pageSize?: number) {\r\n\r\n return this.accountEndpoint.getUserPhonebooksEndpoint(userId, page, pageSize);\r\n }\r\n\r\n updateUserPhonebook(userPhonebook: UserPhonebook) {\r\n if (userPhonebook.id) {\r\n return this.accountEndpoint.getUpdateUserPhonebookEndpoint(userPhonebook, userPhonebook.id);\r\n }\r\n }\r\n\r\n\r\n newUserPhonebook(userPhonebook: UserPhonebook) {\r\n return this.accountEndpoint.getNewUserPhonebookEndpoint(userPhonebook);\r\n }\r\n\r\n\r\n deleteUserPhonebook(userPhonebookOrUserPhonebookId: string | UserPhonebook): Observable {\r\n return this.accountEndpoint.getDeleteUserPhonebookEndpoint(userPhonebookOrUserPhonebookId);\r\n }\r\n\r\n getUserVehicles(userId?: string, page?: number, pageSize?: number) {\r\n\r\n return this.accountEndpoint.getUserVehiclesEndpoint(userId, page, pageSize);\r\n }\r\n\r\n newUserVehicle(vehicle: UserVehicle) {\r\n return this.accountEndpoint.getNewUserVehicleEndpoint(vehicle);\r\n }\r\n\r\n updateUserVehicle(vehicle: UserVehicle) {\r\n if (vehicle.id) {\r\n return this.accountEndpoint.getUpdateUserVehicleEndpoint(vehicle, vehicle.id);\r\n }\r\n }\r\n\r\n deleteUserVehicle(id: string | UserVehicle): Observable {\r\n return this.accountEndpoint.getDeleteUserVehicleEndpoint(id);\r\n }\r\n\r\n getUserCardIds(userId?: string, page?: number, pageSize?: number) {\r\n\r\n return this.accountEndpoint.getUserCardIdsEndpoint(userId, page, pageSize);\r\n }\r\n\r\n newUserCardId(cardId: UserCardId) {\r\n return this.accountEndpoint.getNewUserCardIdEndpoint(cardId);\r\n }\r\n\r\n updateUserCardId(cardId: UserCardId) {\r\n if (cardId.id) {\r\n return this.accountEndpoint.getUpdateUserCardIdEndpoint(cardId, cardId.id);\r\n }\r\n }\r\n\r\n deleteUserCardId(id: string | UserCardId): Observable {\r\n return this.accountEndpoint.getDeleteUserCardIdEndpoint(id);\r\n }\r\n\r\n getRolesAndPermissionListByFilters(filter: CommonFilter) {\r\n\r\n return forkJoin(\r\n this.accountEndpoint.getRolesSieveEndpoint(filter),\r\n this.accountEndpoint.getPermissionsEndpoint());\r\n }\r\n\r\n private readonly _accountRoleUrl: string = \"/api/account/roles\";\r\n get accountRoleUrl() { return this.configurations.baseUrl + this._accountRoleUrl; }\r\n\r\n getUserRoleReportByFilter(filter: RoleReportFilter) {\r\n return this.commonEndpoint.getSieve(this.accountRoleUrl + '/report/sieve/list', filter);\r\n }\r\n\r\n downloadUserRoleReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.accountRoleUrl + '/report/export', filter);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpResponseBase } from '@angular/common/http';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { Utilities } from '../services/utilities';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AlertService {\r\n\r\n private messages = new Subject();\r\n private stickyMessages = new Subject();\r\n private dialogs = new Subject();\r\n\r\n private _isLoading = false;\r\n private loadingMessageId: any;\r\n\r\n\r\n\r\n showDialog(message: string)\r\n showDialog(message: string, type: DialogType, okCallback: (val?: any) => any)\r\n showDialog(message: string, type: DialogType, okCallback?: (val?: any) => any, cancelCallback?: () => any, okLabel?: string, cancelLabel?: string, defaultValue?: string)\r\n showDialog(message: string, type?: DialogType, okCallback?: (val?: any) => any, cancelCallback?: () => any, okLabel?: string, cancelLabel?: string, defaultValue?: string) {\r\n\r\n if (!type)\r\n type = DialogType.alert;\r\n\r\n this.dialogs.next({ message: message, type: type, okCallback: okCallback, cancelCallback: cancelCallback, okLabel: okLabel, cancelLabel: cancelLabel, defaultValue: defaultValue });\r\n }\r\n\r\n\r\n\r\n showMessage(summary: string)\r\n showMessage(summary: string, detail: string, severity: MessageSeverity)\r\n showMessage(summaryAndDetails: string[], summaryAndDetailsSeparator: string, severity: MessageSeverity)\r\n showMessage(response: HttpResponseBase, ignoreValue_useNull: string, severity: MessageSeverity)\r\n showMessage(data: any, separatorOrDetail?: string, severity?: MessageSeverity) {\r\n\r\n if (!severity)\r\n severity = MessageSeverity.default;\r\n\r\n if (data instanceof HttpResponseBase) {\r\n data = Utilities.getHttpResponseMessage(data);\r\n separatorOrDetail = Utilities.captionAndMessageSeparator;\r\n }\r\n\r\n if (data instanceof Array) {\r\n for (let message of data) {\r\n let msgObject = Utilities.splitInTwo(message, separatorOrDetail);\r\n\r\n this.showMessageHelper(msgObject.firstPart, msgObject.secondPart, severity, false);\r\n }\r\n }\r\n else {\r\n this.showMessageHelper(data, separatorOrDetail, severity, false);\r\n }\r\n }\r\n\r\n\r\n showStickyMessage(summary: string)\r\n showStickyMessage(summary: string, detail: string, severity: MessageSeverity, error?: any)\r\n showStickyMessage(summaryAndDetails: string[], summaryAndDetailsSeparator: string, severity: MessageSeverity)\r\n showStickyMessage(response: HttpResponseBase, ignoreValue_useNull: string, severity: MessageSeverity)\r\n showStickyMessage(data: string | string[] | HttpResponseBase, separatorOrDetail?: string, severity?: MessageSeverity, error?: any) {\r\n\r\n if (!severity)\r\n severity = MessageSeverity.default;\r\n\r\n if (data instanceof HttpResponseBase) {\r\n data = Utilities.getHttpResponseMessage(data);\r\n separatorOrDetail = Utilities.captionAndMessageSeparator;\r\n }\r\n\r\n\r\n if (data instanceof Array) {\r\n for (let message of data) {\r\n let msgObject = Utilities.splitInTwo(message, separatorOrDetail);\r\n\r\n this.showMessageHelper(msgObject.firstPart, msgObject.secondPart, severity, true);\r\n }\r\n }\r\n else {\r\n\r\n if (error) {\r\n\r\n let msg = `Severity: \"${MessageSeverity[severity]}\", Summary: \"${data}\", Detail: \"${separatorOrDetail}\", Error: \"${Utilities.safeStringify(error)}\"`;\r\n\r\n switch (severity) {\r\n case MessageSeverity.default:\r\n this.logInfo(msg);\r\n break;\r\n case MessageSeverity.info:\r\n this.logInfo(msg);\r\n break;\r\n case MessageSeverity.success:\r\n this.logMessage(msg);\r\n break;\r\n case MessageSeverity.error:\r\n this.logError(msg);\r\n break;\r\n case MessageSeverity.warn:\r\n this.logWarning(msg);\r\n break;\r\n case MessageSeverity.wait:\r\n this.logTrace(msg);\r\n break;\r\n }\r\n }\r\n\r\n this.showMessageHelper(data, separatorOrDetail, severity, true);\r\n }\r\n }\r\n\r\n\r\n\r\n private showMessageHelper(summary: string, detail: string, severity: MessageSeverity, isSticky: boolean) {\r\n\r\n if (isSticky)\r\n this.stickyMessages.next({ severity: severity, summary: summary, detail: detail });\r\n else\r\n this.messages.next({ severity: severity, summary: summary, detail: detail });\r\n }\r\n\r\n\r\n\r\n startLoadingMessage(message = \"Loading...\", caption = \"\") {\r\n this._isLoading = true;\r\n clearTimeout(this.loadingMessageId);\r\n\r\n this.loadingMessageId = setTimeout(() => {\r\n this.showStickyMessage(caption, message, MessageSeverity.wait);\r\n }, 1000);\r\n }\r\n\r\n stopLoadingMessage() {\r\n this._isLoading = false;\r\n clearTimeout(this.loadingMessageId);\r\n this.resetStickyMessage();\r\n }\r\n\r\n\r\n\r\n logDebug(msg) {\r\n console.debug(msg);\r\n }\r\n\r\n logError(msg) {\r\n console.error(msg);\r\n }\r\n\r\n logInfo(msg) {\r\n console.info(msg);\r\n }\r\n\r\n logMessage(msg) {\r\n console.log(msg);\r\n }\r\n\r\n logTrace(msg) {\r\n console.trace(msg);\r\n }\r\n\r\n logWarning(msg) {\r\n console.warn(msg);\r\n }\r\n\r\n\r\n\r\n\r\n resetStickyMessage() {\r\n this.stickyMessages.next();\r\n }\r\n\r\n\r\n resetToastMessage() {\r\n this.messages.next();\r\n }\r\n\r\n resetDialog() {\r\n this.dialogs.next();\r\n }\r\n\r\n\r\n getDialogEvent(): Observable {\r\n return this.dialogs.asObservable();\r\n }\r\n\r\n\r\n getMessageEvent(): Observable {\r\n return this.messages.asObservable();\r\n }\r\n\r\n getStickyMessageEvent(): Observable {\r\n return this.stickyMessages.asObservable();\r\n }\r\n\r\n\r\n\r\n get isLoadingInProgress(): boolean {\r\n return this._isLoading;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n//******************** Dialog ********************//\r\nexport class AlertDialog {\r\n constructor(public message: string, public type: DialogType, public okCallback: (val?: any) => any, public cancelCallback: () => any,\r\n public defaultValue: string, public okLabel: string, public cancelLabel: string) {\r\n\r\n }\r\n}\r\n\r\nexport enum DialogType {\r\n alert,\r\n confirm,\r\n prompt,\r\n dialog\r\n}\r\n//******************** End ********************//\r\n\r\n\r\n\r\n\r\n\r\n\r\n//******************** Growls ********************//\r\nexport class AlertMessage {\r\n constructor(public severity: MessageSeverity, public summary: string, public detail: string) { }\r\n}\r\n\r\nexport enum MessageSeverity {\r\n default,\r\n info,\r\n success,\r\n error,\r\n warn,\r\n wait\r\n}\r\n//******************** End ********************//\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\n\r\n\r\nexport const fadeInOut = trigger('fadeInOut', [\r\n transition(':enter', [style({ opacity: 0 }), animate('0.4s ease-in', style({ opacity: 1 }))]),\r\n transition(':leave', [animate('0.4s 10ms ease-out', style({ opacity: 0 }))])\r\n])\r\n\r\n\r\n\r\nexport function flyInOut(duration: number = 0.2) {\r\n return trigger('flyInOut', [\r\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => *', [style({ opacity: 0, transform: 'translateX(-100%)' }), animate(`${duration}s ease-in`)]),\r\n transition('* => void', [animate(`${duration}s 10ms ease-out`, style({ opacity: 0, transform: 'translateX(100%)' }))])\r\n ])\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationEnd, PRIMARY_OUTLET } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter, map, flatMap } from 'rxjs/operators';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nimport { Utilities } from './utilities';\r\n\r\n\r\n@Injectable()\r\nexport class AppTitleService {\r\n\r\n sub: Subscription;\r\n appName: string;\r\n\r\n constructor(private titleService: Title, private router: Router) {\r\n this.sub = this.router.events.pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n map(_ => this.router.routerState.root),\r\n map(route => {\r\n while (route.firstChild)\r\n route = route.firstChild;\r\n\r\n return route;\r\n }),\r\n flatMap(route => route.data))\r\n .subscribe(data => {\r\n let title = data['title'];\r\n\r\n if (title) {\r\n let fragment = this.router.url.split('#')[1]\r\n\r\n if (fragment)\r\n title += \" | \" + Utilities.toTitleCase(fragment);\r\n }\r\n\r\n if (title && this.appName)\r\n title += ' - ' + this.appName;\r\n else if (this.appName)\r\n title = this.appName;\r\n\r\n if (title)\r\n this.titleService.setTitle(title);\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService, TranslateLoader } from '@ngx-translate/core';\r\nimport { Observable, Subject, of } from 'rxjs';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AppTranslationService {\r\n\r\n readonly defaultLanguage = \"en\";\r\n private onLanguageChanged = new Subject();\r\n languageChanged$ = this.onLanguageChanged.asObservable();\r\n\r\n constructor(private translate: TranslateService) {\r\n\r\n this.setDefaultLanguage(this.defaultLanguage);\r\n }\r\n\r\n\r\n addLanguages(lang: string[]) {\r\n this.translate.addLangs(lang);\r\n }\r\n\r\n\r\n setDefaultLanguage(lang: string) {\r\n this.translate.setDefaultLang(lang);\r\n }\r\n\r\n getDefaultLanguage() {\r\n return this.translate.defaultLang;\r\n }\r\n\r\n getBrowserLanguage() {\r\n return this.translate.getBrowserLang();\r\n }\r\n\r\n\r\n useBrowserLanguage(): string | void {\r\n let browserLang = this.getBrowserLanguage();\r\n\r\n if (browserLang.match(/en|fr|de|ar|ko|cn|pt/)) {\r\n this.changeLanguage(browserLang);\r\n return browserLang;\r\n }\r\n }\r\n\r\n changeLanguage(language: string = \"en\") {\r\n\r\n if (!language)\r\n language = this.translate.defaultLang;\r\n\r\n if (language != this.translate.currentLang) {\r\n setTimeout(() => {\r\n this.translate.use(language);\r\n this.onLanguageChanged.next(language);\r\n });\r\n }\r\n\r\n return language;\r\n }\r\n\r\n\r\n getTranslation(key: string | Array, interpolateParams?: Object): string | any {\r\n return this.translate.instant(key, interpolateParams);\r\n }\r\n\r\n\r\n getTranslationAsync(key: string | Array, interpolateParams?: Object): Observable {\r\n return this.translate.get(key, interpolateParams);\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\nexport class TranslateLanguageLoader implements TranslateLoader {\r\n\r\n public getTranslation(lang: string): any {\r\n\r\n //Note Dynamic require(variable) will not work. Require is always at compile time\r\n\r\n switch (lang) {\r\n case \"en\":\r\n return of(require(\"../assets/locale/en.json\"));\r\n case \"fr\":\r\n return of(require(\"../assets/locale/fr.json\"));\r\n case \"de\":\r\n return of(require(\"../assets/locale/de.json\"));\r\n case \"pt\":\r\n return of(require(\"../assets/locale/pt.json\"));\r\n case \"ar\":\r\n return of(require(\"../assets/locale/ar.json\"));\r\n case \"ko\":\r\n return of(require(\"../assets/locale/ko.json\"));\r\n case \"cn\":\r\n return of(require(\"../assets/locale/cn.json\"));\r\n default:\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { ApplicationSetting } from '../models/application-setting.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type ApplicationSettingsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type ApplicationSettingsChangedEventArg = { applicationSettings: ApplicationSetting[] | string[], operation: ApplicationSettingsChangedOperation };\r\n\r\n@Injectable()\r\nexport class ApplicationSettingService {\r\n\r\n public static readonly applicationSettingAddedOperation: ApplicationSettingsChangedOperation = \"add\";\r\n public static readonly applicationSettingDeletedOperation: ApplicationSettingsChangedOperation = \"delete\";\r\n public static readonly applicationSettingModifiedOperation: ApplicationSettingsChangedOperation = \"modify\";\r\n\r\n private _applicationSettingsChanged = new Subject();\r\n\r\n private readonly _applicationSettingUrl: string = \"/api/applicationsetting\";\r\n get applicationSettingUrl() { return this.configurations.baseUrl + this._applicationSettingUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onApplicationSettingsChanged(applicationSettings: ApplicationSetting[] | string[], op: ApplicationSettingsChangedOperation) {\r\n this._applicationSettingsChanged.next({ applicationSettings: applicationSettings, operation: op });\r\n }\r\n\r\n\r\n onApplicationSettingsCountChanged(applicationSettings: ApplicationSetting[] | string[]) {\r\n return this.onApplicationSettingsChanged(applicationSettings, ApplicationSettingService.applicationSettingModifiedOperation);\r\n }\r\n\r\n\r\n getApplicationSettingsChangedEvent(): Observable {\r\n return this._applicationSettingsChanged.asObservable();\r\n }\r\n\r\n getApplicationSettings(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.applicationSettingUrl + '/applicationsettings/list', page, pageSize));\r\n }\r\n\r\n getApplicationSettingByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.applicationSettingUrl + '/applicationsettings/list', institutionId));\r\n }\r\n\r\n getApplicationSettingByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.applicationSettingUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n updateApplicationSetting(applicationSetting: ApplicationSetting) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.applicationSettingUrl, applicationSetting, applicationSetting.id).pipe(\r\n tap(data => this.onApplicationSettingsChanged([applicationSetting], ApplicationSettingService.applicationSettingModifiedOperation)));\r\n }\r\n\r\n newApplicationSetting(applicationSetting: ApplicationSetting) {\r\n return this.commonEndpoint.getNewEndpoint(this.applicationSettingUrl, applicationSetting).pipe(\r\n tap(data => this.onApplicationSettingsChanged([applicationSetting], ApplicationSettingService.applicationSettingAddedOperation)));\r\n }\r\n\r\n\r\n deleteApplicationSetting(applicationsettingId): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.applicationSettingUrl, applicationsettingId).pipe(\r\n tap(data => this.onApplicationSettingsChanged([data], ApplicationSettingService.applicationSettingDeletedOperation)));\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient, HttpEvent } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin, throwError } from 'rxjs';\r\nimport { catchError, mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Filter, PagedResult,AssetLabelFilter } from '../models/sieve-filter.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { AssetType } from '../models/asset-type.model';\r\nimport { AssetModel } from '../models/asset-model.model';\r\nimport { Asset } from '../models/asset.model';\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\n\r\nexport type AssetTypesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type AssetTypesChangedEventArg = { assetTypes: AssetType[] | string[], operation: AssetTypesChangedOperation };\r\n\r\n@Injectable()\r\nexport class AssetService extends EndpointFactory {\r\n\r\n public static readonly assetTypeAddedOperation: AssetTypesChangedOperation = \"add\";\r\n public static readonly assetTypeDeletedOperation: AssetTypesChangedOperation = \"delete\";\r\n public static readonly assetTypeModifiedOperation: AssetTypesChangedOperation = \"modify\";\r\n\r\n private _assetTypesChanged = new Subject();\r\n\r\n private readonly _assetTypeUrl: string = \"/api/asset/assettypes\";\r\n get assetTypeUrl() { return this.configurations.baseUrl + this._assetTypeUrl; }\r\n\r\n private readonly _assetModelUrl: string = \"/api/asset/assetmodels\";\r\n get assetModelUrl() { return this.configurations.baseUrl + this._assetModelUrl; }\r\n\r\n private readonly _assetUrl: string = \"/api/asset/assets\";\r\n get assetUrl() { return this.configurations.baseUrl + this._assetUrl; }\r\n\r\n constructor(private router: Router, http: HttpClient,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService, injector: Injector) {\r\n super(http, configurations, injector);\r\n }\r\n \r\n getAssetTypeById(assetTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.assetTypeUrl + '/get', assetTypeId);\r\n }\r\n\r\n getAssetTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.assetTypeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateAssetType(assetType: AssetType) {\r\n if (assetType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.assetTypeUrl, assetType, assetType.id);\r\n }\r\n }\r\n\r\n\r\n newAssetType(assetType: AssetType) {\r\n return this.commonEndpoint.getNewEndpoint(this.assetTypeUrl, assetType);\r\n }\r\n\r\n\r\n deleteAssetType(assetTypeOrAssetTypeId: string | AssetType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.assetTypeUrl, assetTypeOrAssetTypeId);\r\n }\r\n\r\n getAssetModelById(assetModelId: string) {\r\n\r\n return this.commonEndpoint.getById(this.assetModelUrl + '/get', assetModelId);\r\n }\r\n\r\n getAssetModelsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.assetModelUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateAssetModel(assetModel: AssetModel) {\r\n if (assetModel.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.assetModelUrl, assetModel, assetModel.id);\r\n }\r\n }\r\n\r\n\r\n newAssetModel(assetModel: AssetModel) {\r\n return this.commonEndpoint.getNewEndpoint(this.assetModelUrl, assetModel);\r\n }\r\n\r\n\r\n deleteAssetModel(assetModelOrAssetModelId: string | AssetModel): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.assetModelUrl, assetModelOrAssetModelId);\r\n }\r\n\r\n getAssetById(assetId: string) {\r\n\r\n return this.commonEndpoint.getById(this.assetUrl + '/get', assetId);\r\n }\r\n\r\n getAssetsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.assetUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateAsset(asset: Asset) {\r\n if (asset.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.assetUrl, asset, asset.id);\r\n }\r\n }\r\n\r\n\r\n newAsset(asset: Asset) {\r\n return this.commonEndpoint.getNewEndpoint(this.assetUrl, asset);\r\n }\r\n\r\n\r\n deleteAsset(assetOrAssetId: string | Asset): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.assetUrl, assetOrAssetId);\r\n }\r\n\r\n\r\n downloadAssetLabel(filter: AssetLabelFilter) {\r\n return this.commonEndpoint.getFile(this.assetUrl + '/assetlabel', filter);\r\n }\r\n\r\n importFile(data: any) {\r\n return this.http.post(this.assetUrl + '/import', data, { reportProgress: true, observe: 'events' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.importFile(data));\r\n }));\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { AuditLog } from '../models/audit-log';\r\n\r\n\r\n@Injectable()\r\nexport class AuditService {\r\n\r\n private readonly _auditUrl: string = \"/api/audit\";\r\n get auditUrl() { return this.configurations.baseUrl + this._auditUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n getAuthLogsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/authlogs/sieve/list', filter);\r\n }\r\n\r\n getUpDownTimeLogsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/updowntimelogs/sieve/list', filter);\r\n }\r\n\r\n getDataLogsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/datalogs/sieve/list', filter);\r\n }\r\n\r\n getDataLogDetailsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/datalogs/details/sieve/list', filter);\r\n }\r\n\r\n getDataLogDetailsById(id: string) {\r\n return this.commonEndpoint.getById(this.auditUrl + '/datalogs', id);\r\n }\r\n\r\n downloadAuthLogReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.auditUrl + '/exportauthlogs' , filter);\r\n }\r\n\r\n downloadUpDownTimeLogReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.auditUrl + '/exportupdowntimelogs', filter);\r\n }\r\n\r\n downloadDataLogReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.auditUrl + '/exportdatalogs', filter);\r\n }\r\n\r\n getExternalLoginLogsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/externalloginlogs/sieve/list', filter);\r\n }\r\n\r\n downloadExternalLoginLogsReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.auditUrl + '/externalloginlogs', filter);\r\n }\r\n\r\n getOrderLogsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/orderlogs/sieve/list', filter);\r\n }\r\n\r\n downloadOrderLogsReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.auditUrl + '/exportorders', filter);\r\n }\r\n\r\n getPublicationReportsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/publicationreports/sieve/list', filter);\r\n }\r\n\r\n downloadPublicationReportsReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.auditUrl + '/exportpublicationreports', filter);\r\n }\r\n\r\n getDevicePublicationReportsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/devicepublicationreports/sieve/list', filter);\r\n }\r\n\r\n downloadDevicePublicationReportsReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.auditUrl + '/exportdevicepublicationreports', filter);\r\n }\r\n\r\n downloadDeviceStatusReportsReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.auditUrl + '/exportdevicestatusreports', filter);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild, NavigationExtras, CanLoad, Route } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\n\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate, CanActivateChild, CanLoad {\r\n constructor(private authService: AuthService, private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n\r\n let url: string = state.url;\r\n return this.checkLogin(url);\r\n }\r\n\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.canActivate(route, state);\r\n }\r\n\r\n canLoad(route: Route): boolean {\r\n\r\n let url = `/${route.path}`;\r\n return this.checkLogin(url);\r\n }\r\n\r\n checkLogin(url: string): boolean {\r\n\r\n if (this.authService.isLoggedIn || url.indexOf('pibdevicetemplate') > -1) {\r\n return true;\r\n }\r\n\r\n this.authService.loginRedirectUrl = url;\r\n this.router.navigate(['/login']);\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LocalStoreManager } from './local-store-manager.service';\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { DBkeys } from './db-Keys';\r\nimport { JwtHelper } from './jwt-helper';\r\nimport { Utilities } from './utilities';\r\nimport { LoginResponse, IdToken } from '../models/login-response.model';\r\nimport { FRSHubConnections, User } from '../models/user.model';\r\nimport { Permission, PermissionNames, PermissionValues } from '../models/permission.model';\r\nimport { ResetPassword } from '../models/user-login.model';\r\nimport * as coreSignalR from '@aspnet/signalr';\r\nimport { connect } from 'tls';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n\r\n public get loginUrl() { return this.configurations.loginUrl; }\r\n public get homeUrl() { return this.configurations.homeUrl; }\r\n public get registerUrl() { return this.configurations.registerUrl; }\r\n public get resetPasswordUrl() { return this.configurations.resetPasswordUrl; }\r\n\r\n public registerRedirectUrl: string;\r\n public loginRedirectUrl: string;\r\n public logoutRedirectUrl: string;\r\n\r\n\r\n public resetUserId = '';\r\n public resetCode = '';\r\n\r\n public reLoginDelegate: () => void;\r\n\r\n private previousIsLoggedInCheck = false;\r\n private _loginStatus = new Subject();\r\n\r\n\r\n constructor(private router: Router, public connections: FRSHubConnections, private configurations: ConfigurationService, private endpointFactory: EndpointFactory, private localStorage: LocalStoreManager) {\r\n this.initializeLoginStatus();\r\n }\r\n\r\n\r\n private initializeLoginStatus() {\r\n this.localStorage.getInitEvent().subscribe(() => {\r\n this.reevaluateLoginStatus();\r\n });\r\n }\r\n\r\n\r\n gotoPage(page: string, preserveParams = true) {\r\n\r\n let navigationExtras: NavigationExtras = {\r\n queryParamsHandling: preserveParams ? \"merge\" : \"\", preserveFragment: preserveParams\r\n };\r\n\r\n\r\n this.router.navigate([page], navigationExtras);\r\n }\r\n\r\n\r\n redirectLoginUser() {\r\n let redirect = this.loginRedirectUrl && this.loginRedirectUrl != '/' && this.loginRedirectUrl != ConfigurationService.defaultHomeUrl ? this.loginRedirectUrl : this.homeUrl;\r\n this.loginRedirectUrl = null;\r\n\r\n\r\n let urlParamsAndFragment = Utilities.splitInTwo(redirect, '#');\r\n let urlAndParams = Utilities.splitInTwo(urlParamsAndFragment.firstPart, '?');\r\n\r\n let navigationExtras: NavigationExtras = {\r\n fragment: urlParamsAndFragment.secondPart,\r\n queryParams: Utilities.getQueryParamsFromString(urlAndParams.secondPart),\r\n queryParamsHandling: \"merge\"\r\n };\r\n\r\n this.router.navigate([urlAndParams.firstPart], navigationExtras);\r\n }\r\n\r\n\r\n redirectLogoutUser() {\r\n let redirect = this.logoutRedirectUrl ? this.logoutRedirectUrl : this.loginUrl;\r\n this.logoutRedirectUrl = null;\r\n\r\n this.router.navigate([redirect]);\r\n }\r\n\r\n\r\n redirectForLogin() {\r\n this.loginRedirectUrl = this.router.url;\r\n this.router.navigate([this.loginUrl]);\r\n }\r\n\r\n redirectForRegister() {\r\n this.registerRedirectUrl = this.router.url;\r\n this.router.navigate([this.registerUrl]);\r\n }\r\n\r\n reLogin() {\r\n\r\n this.localStorage.deleteData(DBkeys.TOKEN_EXPIRES_IN);\r\n\r\n if (this.reLoginDelegate) {\r\n this.reLoginDelegate();\r\n }\r\n else {\r\n this.redirectForLogin();\r\n }\r\n }\r\n\r\n\r\n refreshLogin() {\r\n console.log('refreshing login.');\r\n return this.endpointFactory.getRefreshLoginEndpoint().pipe(\r\n map(response => this.processLoginResponse(response, this.rememberMe, this.institutionCode)));\r\n }\r\n\r\n\r\n login(userName: string, password: string, institutionCode: string, rememberMe?: boolean, isAD?: boolean) {\r\n\r\n if (this.isLoggedIn)\r\n this.logout();\r\n\r\n return this.endpointFactory.getLoginEndpoint(userName, password, institutionCode, 'false', isAD).pipe(\r\n map(response => this.processLoginResponse(response, rememberMe, institutionCode)));\r\n }\r\n\r\n loginExternal(userName: string) {\r\n\r\n return this.endpointFactory.getLoginEndpoint(userName, null, null, 'true').pipe(\r\n map(response => this.processLoginResponse(response, false, this.institutionCode)));\r\n }\r\n\r\n forgotPassword(email: string, institutionCode?: string) {\r\n\r\n if (this.isLoggedIn)\r\n this.logout();\r\n\r\n return this.endpointFactory.getForgotPasswordEndpoint(email, institutionCode);\r\n }\r\n\r\n resetPassword(resetPassword: ResetPassword) {\r\n\r\n if (this.isLoggedIn)\r\n this.logout();\r\n\r\n return this.endpointFactory.getResetPasswordEndpoint(resetPassword);\r\n }\r\n\r\n private processLoginResponse(response: LoginResponse, rememberMe: boolean, code: string) {\r\n\r\n let accessToken = response.access_token;\r\n\r\n if (accessToken == null)\r\n throw new Error(\"Received accessToken was empty\");\r\n\r\n let idToken = response.id_token;\r\n let refreshToken = response.refresh_token || this.refreshToken;\r\n let expiresIn = response.expires_in;\r\n\r\n let tokenExpiryDate = new Date();\r\n tokenExpiryDate.setSeconds(tokenExpiryDate.getSeconds() + expiresIn);\r\n\r\n let accessTokenExpiry = tokenExpiryDate;\r\n\r\n //console.log(accessTokenExpiry);\r\n //console.log(new Date());\r\n\r\n let jwtHelper = new JwtHelper();\r\n let decodedIdToken = jwtHelper.decodeToken(response.id_token);\r\n\r\n let permissions: PermissionValues[] = Array.isArray(decodedIdToken.permission) ? decodedIdToken.permission : [decodedIdToken.permission];\r\n\r\n if (!this.isLoggedIn)\r\n this.configurations.import(decodedIdToken.configuration);\r\n\r\n let user = new User(\r\n decodedIdToken.sub,\r\n decodedIdToken.name,\r\n decodedIdToken.fullname,\r\n decodedIdToken.email,\r\n decodedIdToken.jobtitle,\r\n decodedIdToken.phone,\r\n Array.isArray(decodedIdToken.role) ? decodedIdToken.role : [decodedIdToken.role],\r\n decodedIdToken.institutionId);\r\n user.isEnabled = true;\r\n\r\n this.saveUserDetails(user, permissions, accessToken, idToken, refreshToken, accessTokenExpiry, rememberMe, code);\r\n\r\n this.reevaluateLoginStatus(user);\r\n\r\n return user;\r\n }\r\n\r\n\r\n private saveUserDetails(user: User, permissions: PermissionValues[], accessToken: string, idToken: string, refreshToken: string, expiresIn: Date, rememberMe: boolean, code?: string) {\r\n\r\n if (rememberMe) {\r\n this.localStorage.savePermanentData(accessToken, DBkeys.ACCESS_TOKEN);\r\n this.localStorage.savePermanentData(idToken, DBkeys.ID_TOKEN);\r\n this.localStorage.savePermanentData(refreshToken, DBkeys.REFRESH_TOKEN);\r\n this.localStorage.savePermanentData(expiresIn, DBkeys.TOKEN_EXPIRES_IN);\r\n this.localStorage.savePermanentData(permissions, DBkeys.USER_PERMISSIONS);\r\n this.localStorage.savePermanentData(user, DBkeys.CURRENT_USER);\r\n this.localStorage.saveSyncedSessionData(code, DBkeys.INSTITUTION_CODE);\r\n }\r\n else {\r\n this.localStorage.saveSyncedSessionData(accessToken, DBkeys.ACCESS_TOKEN);\r\n this.localStorage.saveSyncedSessionData(idToken, DBkeys.ID_TOKEN);\r\n this.localStorage.saveSyncedSessionData(refreshToken, DBkeys.REFRESH_TOKEN);\r\n this.localStorage.saveSyncedSessionData(expiresIn, DBkeys.TOKEN_EXPIRES_IN);\r\n this.localStorage.saveSyncedSessionData(permissions, DBkeys.USER_PERMISSIONS);\r\n this.localStorage.saveSyncedSessionData(user, DBkeys.CURRENT_USER);\r\n this.localStorage.saveSyncedSessionData(code, DBkeys.INSTITUTION_CODE);\r\n }\r\n\r\n this.localStorage.savePermanentData(rememberMe, DBkeys.REMEMBER_ME);\r\n }\r\n\r\n\r\n\r\n logout(): void {\r\n if (this.connections.userHubConnection != null) {\r\n this.disconnectSignalRConnection(this.connections.userHubConnection, '');\r\n }\r\n\r\n this.localStorage.deleteData(DBkeys.ACCESS_TOKEN);\r\n this.localStorage.deleteData(DBkeys.ID_TOKEN);\r\n this.localStorage.deleteData(DBkeys.REFRESH_TOKEN);\r\n this.localStorage.deleteData(DBkeys.TOKEN_EXPIRES_IN);\r\n this.localStorage.deleteData(DBkeys.USER_PERMISSIONS);\r\n this.localStorage.deleteData(DBkeys.CURRENT_USER);\r\n this.localStorage.deleteData(DBkeys.INSTITUTION_CODE);\r\n\r\n this.configurations.clearLocalChanges();\r\n //this.reevaluateLoginStatus();\r\n\r\n if (this.connections.sessionInterval) {\r\n clearInterval(this.connections.sessionInterval);\r\n }\r\n }\r\n\r\n\r\n private reevaluateLoginStatus(currentUser?: User) {\r\n\r\n let user = currentUser || this.localStorage.getDataObject(DBkeys.CURRENT_USER);\r\n let isLoggedIn = user != null;\r\n\r\n if (this.previousIsLoggedInCheck != isLoggedIn) {\r\n setTimeout(() => {\r\n this._loginStatus.next(isLoggedIn);\r\n });\r\n }\r\n\r\n this.previousIsLoggedInCheck = isLoggedIn;\r\n }\r\n\r\n\r\n getLoginStatusEvent(): Observable {\r\n return this._loginStatus.asObservable();\r\n }\r\n\r\n\r\n get currentUser(): User {\r\n\r\n let user = this.localStorage.getDataObject(DBkeys.CURRENT_USER);\r\n if (user && !user.institutionId) user.institutionId = '';\r\n this.reevaluateLoginStatus(user);\r\n\r\n return user;\r\n }\r\n\r\n get userPermissions(): PermissionValues[] {\r\n return this.localStorage.getDataObject(DBkeys.USER_PERMISSIONS) || [];\r\n }\r\n\r\n get accessToken(): string {\r\n\r\n this.reevaluateLoginStatus();\r\n return this.localStorage.getData(DBkeys.ACCESS_TOKEN);\r\n }\r\n\r\n get accessTokenExpiryDate(): Date {\r\n\r\n this.reevaluateLoginStatus();\r\n return this.localStorage.getDataObject(DBkeys.TOKEN_EXPIRES_IN, true);\r\n }\r\n\r\n get isSessionExpired(): boolean {\r\n\r\n if (this.accessTokenExpiryDate == null) {\r\n return true;\r\n }\r\n //console.log(this.accessTokenExpiryDate);\r\n //console.log(new Date());\r\n return !(this.accessTokenExpiryDate.valueOf() > new Date().valueOf());\r\n }\r\n\r\n\r\n get idToken(): string {\r\n\r\n this.reevaluateLoginStatus();\r\n return this.localStorage.getData(DBkeys.ID_TOKEN);\r\n }\r\n\r\n get refreshToken(): string {\r\n\r\n this.reevaluateLoginStatus();\r\n return this.localStorage.getData(DBkeys.REFRESH_TOKEN);\r\n }\r\n\r\n get isLoggedIn(): boolean {\r\n return this.currentUser != null;\r\n }\r\n\r\n get rememberMe(): boolean {\r\n return this.localStorage.getDataObject(DBkeys.REMEMBER_ME) == true;\r\n }\r\n\r\n get institutionCode(): string {\r\n return this.localStorage.getData(DBkeys.INSTITUTION_CODE);\r\n }\r\n\r\n signalRConnection(url: string, skipAuth?: boolean): coreSignalR.HubConnection {\r\n let connection: coreSignalR.HubConnection;\r\n console.log(this.connections);\r\n //if (this.connections.hasOwnProperty(url)) {\r\n // connection = this.connections[url];\r\n //}\r\n //else {\r\n if (this.currentUser != null || skipAuth) {\r\n connection = new coreSignalR.HubConnectionBuilder()\r\n .withUrl(url)\r\n .configureLogging(coreSignalR.LogLevel.Debug)\r\n .configureLogging({\r\n log: function (logLevel, message) {\r\n //console.log(logLevel);\r\n console.log(url + \" - \" + new Date().toISOString() + \": \" + message);\r\n }\r\n })\r\n .build();\r\n\r\n this.connections[url] = connection;\r\n }\r\n //}\r\n\r\n connection.keepAliveIntervalInMilliseconds = ConfigurationService.defaultSignalRKeepAliveInterval * 1000 * 60;\r\n connection.serverTimeoutInMilliseconds = ConfigurationService.defaultSignalRServerTimeout * 1000 * 60;\r\n this.connections.forceStop = false;\r\n if (connection.state !== coreSignalR.HubConnectionState.Connected) {\r\n this.startConnection(url, connection);\r\n }\r\n\r\n connection.onclose((e) => {\r\n if (!this.connections.forceStop) {\r\n //if (e) {\r\n console.log('FROM ON CLOSE:');\r\n console.log(e);\r\n this.connections.forceStop = false;\r\n this.startConnection(url, connection);\r\n //}\r\n }\r\n });\r\n\r\n\r\n return connection;\r\n }\r\n\r\n startConnection(url: string, connection: coreSignalR.HubConnection) {\r\n let $this = this;\r\n try {\r\n if (connection == null) {\r\n connection = new coreSignalR.HubConnectionBuilder()\r\n .withUrl(url)\r\n .configureLogging(coreSignalR.LogLevel.Debug)\r\n .build();\r\n }\r\n\r\n if (connection.state !== coreSignalR.HubConnectionState.Connected) {\r\n connection.start().catch(err => {\r\n console.log(err);\r\n setTimeout(function () { $this.startConnection(url, connection) }, 5000);\r\n });\r\n }\r\n } catch (err) {\r\n setTimeout(function () { $this.startConnection(url, connection) }, 5000);\r\n }\r\n }\r\n\r\n disconnectSignalRConnection(connection: coreSignalR.HubConnection, url: string) {\r\n this.connections.forceStop = true;\r\n if (connection != null) {\r\n connection.off('onclose');\r\n connection.stop().catch(err => {\r\n console.log(err);\r\n });\r\n\r\n if (this.connections.hasOwnProperty(url)) {\r\n //connection = this.connections[url];\r\n delete this.connections[url];\r\n }\r\n\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap, catchError } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Reservation, CalendarFilter } from '../models/reservation.model';\r\nimport { Facility } from '../models/facility.model';\r\nimport { Location } from '../models/location.model';\r\nimport { LocationService } from './location.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { ReservationTime, TimeIntervalFilter } from '../models/reservationtime.model';\r\nimport { BookingGridRow, BookingGrid } from '../models/bookinggridrow.model';\r\n\r\nexport type ReservationsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type ReservationsChangedEventArg = { reservations: Reservation[] | string[], operation: ReservationsChangedOperation };\r\n\r\nexport type FacilitiesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type FacilitiesChangedEventArg = { facilities: Facility[] | string[], operation: FacilitiesChangedOperation };\r\n\r\n@Injectable()\r\nexport class BookingService {\r\n\r\n public static readonly reservationAddedOperation: ReservationsChangedOperation = \"add\";\r\n public static readonly reservationDeletedOperation: ReservationsChangedOperation = \"delete\";\r\n public static readonly reservationModifiedOperation: ReservationsChangedOperation = \"modify\";\r\n private readonly _reservationUrl: string = \"/api/booking\";\r\n\r\n private _reservationsChanged = new Subject();\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, private locationService: LocationService,\r\n protected configurations: ConfigurationService ) {\r\n\r\n }\r\n\r\n get reservationUrl() { return this.configurations.baseUrl + this._reservationUrl; }\r\n\r\n private onReservationsChanged(reservations: Reservation[] | string[], op: ReservationsChangedOperation) {\r\n this._reservationsChanged.next({ reservations: reservations, operation: op });\r\n }\r\n\r\n\r\n onReservationsUserCountChanged(reservations: Reservation[] | string[]) {\r\n return this.onReservationsChanged(reservations, BookingService.reservationModifiedOperation);\r\n }\r\n\r\n\r\n getReservationsChangedEvent(): Observable {\r\n return this._reservationsChanged.asObservable();\r\n }\r\n\r\n getTimeIntervals(filter: TimeIntervalFilter) {\r\n return this.commonEndpoint.getPagedList(this.reservationUrl + '/GetAllTimeIntervals', null, null, true, filter);\r\n }\r\n\r\n getBookingGridRows(filter: CalendarFilter) {\r\n return this.commonEndpoint.getPagedList(this.reservationUrl + '/GetBookingGridRows', null, null, true, filter);\r\n }\r\n\r\n getReservationsLocationsFacilities(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.reservationUrl + '/GetAllReservations', page, pageSize, true),\r\n this.commonEndpoint.getFacilitiesEndpoint(),\r\n this.locationService.getLocations());\r\n }\r\n\r\n getReservationsWithFilter(filter: CalendarFilter) {\r\n return this.commonEndpoint.getReservations(this.reservationUrl + '/GetAllReservations', filter);\r\n }\r\n\r\n getReservations(page?: number, pageSize?: number) {\r\n return this.commonEndpoint.getPagedList(this.reservationUrl + '/GetAllReservations', page, pageSize, true);\r\n }\r\n\r\n updateReservation(reservation: Reservation) {\r\n if (reservation.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.reservationUrl, reservation, reservation.id).pipe(\r\n tap(data => this.onReservationsChanged([reservation], BookingService.reservationModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newReservation(reservation: Reservation) {\r\n return this.commonEndpoint.getNewEndpoint(this.reservationUrl, reservation).pipe(\r\n tap(data => this.onReservationsChanged([reservation], BookingService.reservationAddedOperation)));\r\n }\r\n\r\n\r\n deleteReservation(reservationOrReservationId: string | Reservation): Observable {\r\n\r\n if (typeof reservationOrReservationId === 'number' || reservationOrReservationId instanceof Number ||\r\n typeof reservationOrReservationId === 'string' || reservationOrReservationId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.reservationUrl, reservationOrReservationId).pipe(\r\n tap(data => this.onReservationsChanged([data], BookingService.reservationDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (reservationOrReservationId.id) {\r\n return this.deleteReservation(reservationOrReservationId.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Building } from '../models/building.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type BuildingsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type BuildingsChangedEventArg = { buildings: Building[] | string[], operation: BuildingsChangedOperation };\r\n\r\n@Injectable()\r\nexport class BuildingService {\r\n\r\n public static readonly buildingAddedOperation: BuildingsChangedOperation = \"add\";\r\n public static readonly buildingDeletedOperation: BuildingsChangedOperation = \"delete\";\r\n public static readonly buildingModifiedOperation: BuildingsChangedOperation = \"modify\";\r\n\r\n private _buildingsChanged = new Subject();\r\n\r\n private readonly _buildingUrl: string = \"/api/building\";\r\n get buildingUrl() { return this.configurations.baseUrl + this._buildingUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onBuildingsChanged(buildings: Building[] | string[], op: BuildingsChangedOperation) {\r\n this._buildingsChanged.next({ buildings: buildings, operation: op });\r\n }\r\n\r\n\r\n onBuildingsCountChanged(buildings: Building[] | string[]) {\r\n return this.onBuildingsChanged(buildings, BuildingService.buildingModifiedOperation);\r\n }\r\n\r\n\r\n getBuildingsChangedEvent(): Observable {\r\n return this._buildingsChanged.asObservable();\r\n }\r\n\r\n getBuildings(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.buildingUrl + '/list', page, pageSize));\r\n }\r\n\r\n getBuildingByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.buildingUrl + '/list', institutionId));\r\n }\r\n\r\n getBuildingByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.buildingUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n updateBuilding(building: Building) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.buildingUrl, building, building.id).pipe(\r\n tap(data => this.onBuildingsChanged([building], BuildingService.buildingModifiedOperation)));\r\n }\r\n\r\n newBuilding(building: Building) {\r\n return this.commonEndpoint.getNewEndpoint(this.buildingUrl, building).pipe(\r\n tap(data => this.onBuildingsChanged([building], BuildingService.buildingAddedOperation)));\r\n }\r\n\r\n\r\n deleteBuilding(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.buildingUrl, id).pipe(\r\n tap(data => this.onBuildingsChanged([data], BuildingService.buildingDeletedOperation)));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Facility } from '../models/facility.model';\r\nimport { FacilityType } from '../models/facility-type.model';\r\nimport { Reservation } from '../models/reservation.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { PublicHoliday } from '../models/public-holiday.model';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\n\r\nexport type FacilitiesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type FacilitiesChangedEventArg = { facilities: Facility[] | string[], operation: FacilitiesChangedOperation };\r\n\r\nexport type FacilityTypesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type FacilityTypesChangedEventArg = { facilityTypes: FacilityType[] | string[], operation: FacilityTypesChangedOperation };\r\n\r\n@Injectable()\r\nexport class CalendarService {\r\n\r\n private readonly _calendarUrl: string = \"/api/calendar\";\r\n get calendarUrl() { return this.configurations.baseUrl + this._calendarUrl; }\r\n\r\n private readonly _publicHolidayUrl: string = \"/api/calendar/publicholidays\";\r\n get publicHolidayUrl() { return this.configurations.baseUrl + this._publicHolidayUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n getCalendarEvents(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.calendarUrl, page, pageSize));\r\n }\r\n\r\n getPublicHolidayById(publicHolidayId: string) {\r\n\r\n return this.commonEndpoint.getById(this.publicHolidayUrl + '/get', publicHolidayId);\r\n }\r\n\r\n getPublicHolidaysByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.publicHolidayUrl + '/sieve/list', filter);\r\n }\r\n\r\n import(filename: string) {\r\n\r\n return this.commonEndpoint.get(this.publicHolidayUrl + '/import?filename=' + filename);\r\n }\r\n\r\n updatePublicHoliday(publicHoliday: PublicHoliday) {\r\n if (publicHoliday.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.publicHolidayUrl, publicHoliday, publicHoliday.id);\r\n }\r\n }\r\n\r\n\r\n newPublicHoliday(publicHoliday: PublicHoliday) {\r\n return this.commonEndpoint.getNewEndpoint(this.publicHolidayUrl, publicHoliday);\r\n }\r\n\r\n\r\n deletePublicHoliday(publicHolidayOrPublicHolidayId: string | PublicHoliday): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.publicHolidayUrl, publicHolidayOrPublicHolidayId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { LocationService } from './location.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { CommonFilter, Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { ChannelInfo } from '../models/channel-info.model';\r\n\r\n@Injectable()\r\nexport class ChannelInfoService {\r\n\r\n\r\n private readonly _channelInfoUrl: string = \"/api/channelinfo/channelinfos\";\r\n get channelInfoUrl() { return this.configurations.baseUrl + this._channelInfoUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, private locationService: LocationService, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n getDataByUrl(url: string, isPost?: boolean, obj?: any) {\r\n return this.commonEndpoint.get(url, isPost, obj, false, true);\r\n }\r\n\r\n\r\n //device type\r\n\r\n getChannelInfoById(channelInfoId: string) {\r\n\r\n return this.commonEndpoint.getById(this.channelInfoUrl + '/get', channelInfoId);\r\n }\r\n\r\n getChannelInfosByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.channelInfoUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateChannelInfo(channelInfo: ChannelInfo) {\r\n if (channelInfo.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.channelInfoUrl, channelInfo, channelInfo.id);\r\n }\r\n }\r\n\r\n\r\n newChannelInfo(channelInfo: ChannelInfo) {\r\n return this.commonEndpoint.getNewEndpoint(this.channelInfoUrl, channelInfo);\r\n }\r\n\r\n\r\n deleteChannelInfo(channelInfoOrChannelInfoId: string | ChannelInfo): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.channelInfoUrl, channelInfoOrChannelInfoId);\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { CalendarFilter } from '../models/reservation.model';\r\nimport { PIBTemplate } from '../models/department.model';\r\nimport { HttpParamsOptions } from '@angular/common/http/src/params';\r\nimport { LocationTreeFilter } from '../models/location.model';\r\n\r\n\r\n@Injectable()\r\nexport class CommonEndpoint extends EndpointFactory {\r\n\r\n private readonly _facilitiesUrl: string = \"/api/facility\";\r\n private readonly _facilityByFacilityNameUrl: string = \"/api/facility/name\";\r\n private readonly _facilityTypesUrl: string = \"/api/facilitytype\";\r\n private readonly _facilityTypeByFacilityTypeNameUrl: string = \"/api/facilitytype/name\";\r\n get facilitiesUrl() { return this.configurations.baseUrl + this._facilitiesUrl; }\r\n get facilityByFacilityNameUrl() { return this.configurations.baseUrl + this._facilityByFacilityNameUrl; }\r\n get facilityTypesUrl() { return this.configurations.baseUrl + this._facilityTypesUrl; }\r\n get facilityTypeByFacilityTypeNameUrl() { return this.configurations.baseUrl + this._facilityTypeByFacilityTypeNameUrl; }\r\n\r\n constructor(http: HttpClient, configurations: ConfigurationService, injector: Injector) {\r\n\r\n super(http, configurations, injector);\r\n }\r\n\r\n //Common methods\r\n getByInstitutionId(url: string, id?: string): Observable {\r\n //let endpointUrl = this.configurations.baseUrl + url + \"?institutionId=\" + id;\r\n\r\n let endpointUrl = url + \"?institutionId=\" + id;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getByInstitutionId(url, id));\r\n }));\r\n }\r\n\r\n getById(url: string, id?: string): Observable {\r\n //let endpointUrl = this.configurations.baseUrl + url + \"/id/\" + id;\r\n let endpointUrl = url + \"/id/\" + id;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getById(url, id));\r\n }));\r\n }\r\n\r\n getSieve(url: string, filter: any): Observable {\r\n //let endpointUrl = isTrueUrl ? url : this.configurations.baseUrl + url;\r\n const headers = this.getRequestHeaders();\r\n\r\n const httpParams: HttpParamsOptions = { fromObject: filter } as HttpParamsOptions;\r\n\r\n const options = { params: new HttpParams(httpParams), headers: headers.headers };\r\n\r\n return this.http.get(url, options).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getSieve(url, filter));\r\n }));\r\n }\r\n\r\n get(url: string, isPost?: boolean, obj?: any, isParams?: boolean, isTrueUrl?: boolean): Observable {\r\n //let endpointUrl = isTrueUrl ? url : this.configurations.baseUrl + url;\r\n let endpointUrl = url;\r\n\r\n if (isParams) {\r\n let params = new HttpParams()\r\n .append('templateBody', obj);\r\n\r\n let requestBody = params.toString();\r\n\r\n return this.http.post(endpointUrl, requestBody, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getRefreshLoginEndpoint());\r\n }));\r\n } else {\r\n if (isPost) {\r\n return this.http.post(endpointUrl, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.get(url, isPost, obj));\r\n }));\r\n }\r\n else {\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPagedList(url));\r\n }));\r\n }\r\n }\r\n }\r\n\r\n getFile(url: string, obj?: any): Observable {\r\n let endpointUrl = url;\r\n\r\n const headers = this.getRequestHeaders();\r\n\r\n const httpParams: HttpParamsOptions = { fromObject: obj } as HttpParamsOptions;\r\n\r\n const options = { params: new HttpParams(httpParams), headers: headers.headers, responseType: 'blob' as 'json' };\r\n\r\n return this.http.post(endpointUrl, JSON.stringify(obj), options).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFile(url, obj));\r\n }));\r\n }\r\n\r\n getPagedList(url: string, page?: number, pageSize?: number, isPost?: boolean, obj?: any): Observable {\r\n //url = this.configurations.baseUrl + url;\r\n let endpointUrl = page && pageSize ? `${url}/${page}/${pageSize}` : url;\r\n\r\n if (isPost) {\r\n return this.http.post(endpointUrl, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPagedList(url, page, pageSize, isPost, obj));\r\n }));\r\n }\r\n else {\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getPagedList(url, page, pageSize));\r\n }));\r\n }\r\n }\r\n\r\n getNewEndpoint(url: string, obj: any): Observable {\r\n //url = this.configurations.baseUrl + url;\r\n return this.http.post(url, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewEndpoint(url, obj));\r\n }));\r\n }\r\n\r\n getUpdateEndpoint(url: string, obj: any, id: string): Observable {\r\n //url = this.configurations.baseUrl + url;\r\n let endpointUrl = `${url}/update/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateEndpoint(url, obj, id));\r\n }));\r\n }\r\n\r\n getUpdateStoreEndpoint(url: string, obj: any, id: string): Observable {\r\n //url = this.configurations.baseUrl + url;\r\n let endpointUrl = `${url}/updatestores/${id}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateStoreEndpoint(url, obj, id));\r\n }));\r\n }\r\n\r\n getDeleteEndpoint(url: string, id: string, query?: string): Observable {\r\n //url = this.configurations.baseUrl + url;\r\n let endpointUrl = query ? `${url}/delete/${id}?${query}` : `${url}/delete/${id}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeleteEndpoint(url, id, query));\r\n }));\r\n }\r\n\r\n //Facilities methods\r\n getFacilitiesEndpoint(page?: number, pageSize?: number, institutionId?: string): Observable {\r\n let endpointUrl = page && pageSize ? `${this.facilitiesUrl}/facilities/list/${page}/${pageSize}` : this.facilitiesUrl + \"/facilities/list?institutionId=\" + institutionId;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFacilitiesEndpoint(page, pageSize));\r\n }));\r\n }\r\n\r\n getNewFacilityEndpoint(facilityObject: any): Observable {\r\n\r\n return this.http.post(this.facilitiesUrl, JSON.stringify(facilityObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewFacilityEndpoint(facilityObject));\r\n }));\r\n }\r\n\r\n getUpdateFacilityEndpoint(facilityObject: any, facilityId: string): Observable {\r\n let endpointUrl = `${this.facilitiesUrl}/update/${facilityId}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(facilityObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateFacilityEndpoint(facilityObject, facilityId));\r\n }));\r\n }\r\n\r\n getDeleteFacilityEndpoint(facilityId: string): Observable {\r\n let endpointUrl = `${this.facilitiesUrl}/delete/${facilityId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeleteFacilityEndpoint(facilityId));\r\n }));\r\n }\r\n\r\n getFacilityByFacilityNameEndpoint(facilityName: string): Observable {\r\n let endpointUrl = `${this.facilityByFacilityNameUrl}/${facilityName}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFacilityByFacilityNameEndpoint(facilityName));\r\n }));\r\n }\r\n\r\n //Facility Type\r\n getFacilityTypesEndpoint(page?: number, pageSize?: number, institutionId?: string): Observable {\r\n let endpointUrl = page && pageSize ? `${this.facilityTypesUrl}/facilitytypes/list/${page}/${pageSize}` : this.facilityTypesUrl + '/facilitytypes/list?institutionId=' + institutionId;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFacilityTypesEndpoint(page, pageSize, institutionId));\r\n }));\r\n }\r\n\r\n getNewFacilityTypeEndpoint(facilityTypeObject: any): Observable {\r\n\r\n return this.http.post(this.facilityTypesUrl, JSON.stringify(facilityTypeObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getNewFacilityTypeEndpoint(facilityTypeObject));\r\n }));\r\n }\r\n\r\n getUpdateFacilityTypeEndpoint(facilityTypeObject: any, facilityTypeId: string): Observable {\r\n let endpointUrl = `${this.facilityTypesUrl}/update/${facilityTypeId}`;\r\n\r\n return this.http.put(endpointUrl, JSON.stringify(facilityTypeObject), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getUpdateFacilityTypeEndpoint(facilityTypeObject, facilityTypeId));\r\n }));\r\n }\r\n\r\n getDeleteFacilityTypeEndpoint(facilityTypeId: string): Observable {\r\n let endpointUrl = `${this.facilityTypesUrl}/delete/${facilityTypeId}`;\r\n\r\n return this.http.delete(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeleteFacilityTypeEndpoint(facilityTypeId));\r\n }));\r\n }\r\n\r\n getFacilityTypeByFacilityTypeNameEndpoint(facilityTypeName: string): Observable {\r\n let endpointUrl = `${this.facilityTypeByFacilityTypeNameUrl}/${facilityTypeName}`;\r\n\r\n return this.http.get(endpointUrl, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getFacilityTypeByFacilityTypeNameEndpoint(facilityTypeName));\r\n }));\r\n }\r\n\r\n //device\r\n getDeviceApprovalEndpoint(url: string, obj: any): Observable {\r\n //url = this.configurations.baseUrl + url;\r\n return this.http.post(url, JSON.stringify(obj), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getDeviceApprovalEndpoint(url, JSON.stringify(obj)));\r\n }));\r\n }\r\n\r\n //Reservation methods\r\n getReservations(url, filter?: CalendarFilter): Observable {\r\n return this.http.post(url, JSON.stringify(filter), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getReservations(url, filter));\r\n }));\r\n }\r\n\r\n //Location methods\r\n getLocationTree(url, filter?: LocationTreeFilter): Observable {\r\n return this.http.post(url, JSON.stringify(filter), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getLocationTree(url, filter));\r\n }));\r\n }\r\n\r\n postTemplateToDevice(url: string, template?: PIBTemplate): Observable {\r\n let header = new HttpHeaders({ 'Content-Type': 'multipart/form-data', });\r\n //header.append('Access-Control-Allow-Origin', 'http://localhost:56767');\r\n //header.append('Access-Control-Allow-Credentials', 'true');\r\n\r\n let params = new HttpParams()\r\n params.append('name', template.name);\r\n params.append('eImage', template.imgUrl);\r\n //const formData = new FormData();\r\n //formData.append(imgName, uri);\r\n return this.http.post(url, params, this.getRequestHeaders('multipart/form-data')).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.postTemplateToDevice(url, template));\r\n }));\r\n }\r\n\r\n sendQueueSimulator(url, data: any): Observable {\r\n return this.http.post(url, JSON.stringify(data), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getLocationTree(url, data));\r\n }));\r\n }\r\n\r\n importFile(url, data: any): Observable {\r\n return this.http.post(url, data, { reportProgress: true, observe: 'events' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.importFile(url, data));\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AppTranslationService } from './app-translation.service';\r\nimport { LocalStoreManager } from './local-store-manager.service';\r\nimport { DBkeys } from './db-Keys';\r\nimport { Utilities } from './utilities';\r\nimport { environment } from '../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Config } from '../models/config.model';\r\nimport { Menu } from '../models/menu.model';\r\n\r\n\r\n\r\ntype UserConfiguration = {\r\n language: string,\r\n homeUrl: string,\r\n theme: string,\r\n showDashboardStatistics: boolean,\r\n showDashboardNotifications: boolean,\r\n showDashboardTodo: boolean,\r\n showDashboardBanner: boolean\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigurationService {\r\n\r\n public static readonly appVersion: string = \"2.7.1\";\r\n\r\n public baseUrl = environment.baseUrl || Utilities.baseUrl();\r\n public domainUrl = environment.domainUrl;\r\n public meetingLoginUrl = \"https://chart.googleapis.com/chart?cht=qr&chl=http%3A%2F%2F119.73.206.38%2Flogin?returnUrl=%2Fcalendar&chs=120x120&chld=L|0\";\r\n public loginUrl = environment.loginUrl;\r\n public registerUrl = environment.registerUrl;\r\n public resetPasswordUrl = environment.resetPasswordUrl;\r\n public fallbackBaseUrl = \"http://localhost\";\r\n\r\n //***Specify default configurations here***\r\n public static readonly defaultLanguage: string = \"en\";\r\n public static readonly defaultHomeUrl: string = \"/\";\r\n public static readonly defaultTheme: string = \"Default\";\r\n public static readonly defaultShowDashboardStatistics: boolean = true;\r\n public static readonly defaultShowDashboardNotifications: boolean = true;\r\n public static readonly defaultShowDashboardTodo: boolean = false;\r\n public static readonly defaultShowDashboardBanner: boolean = true;\r\n public static readonly defaultSignalRServerTimeout: number = 6; //in minutes\r\n public static readonly defaultSignalRKeepAliveInterval: number = 3; //in minutes\r\n //***End of defaults*** \r\n\r\n private _language: string = null;\r\n private _homeUrl: string = null;\r\n private _theme: string = null;\r\n private _showDashboardStatistics: boolean = null;\r\n private _showDashboardNotifications: boolean = null;\r\n private _showDashboardTodo: boolean = null;\r\n private _showDashboardBanner: boolean = null;\r\n\r\n public config: Config;\r\n public menu: Menu;\r\n constructor(private localStorage: LocalStoreManager, private translationService: AppTranslationService, private http: HttpClient) {\r\n this.loadLocalChanges();\r\n }\r\n\r\n loadMenus() {\r\n return this.http\r\n .get('./assets/menu.json')\r\n .toPromise();\r\n }\r\n\r\n loadConfig() {\r\n return this.http\r\n .get('./assets/config.json')\r\n .toPromise()\r\n .then(config => {\r\n this.config = config;\r\n console.log('CONFIG Loaded');\r\n console.log(this.config);\r\n if (this.config) {\r\n this.baseUrl = this.config.baseUrl;\r\n this.domainUrl = this.config.domainUrl;\r\n this.meetingLoginUrl = this.config.meetingLoginUrl;\r\n }\r\n });\r\n }\r\n\r\n private loadLocalChanges() {\r\n\r\n if (this.localStorage.exists(DBkeys.LANGUAGE)) {\r\n this._language = this.localStorage.getDataObject(DBkeys.LANGUAGE);\r\n this.translationService.changeLanguage(this._language);\r\n }\r\n else {\r\n this.resetLanguage();\r\n }\r\n\r\n if (this.localStorage.exists(DBkeys.HOME_URL))\r\n this._homeUrl = this.localStorage.getDataObject(DBkeys.HOME_URL);\r\n\r\n if (this.localStorage.exists(DBkeys.THEME))\r\n this._theme = this.localStorage.getDataObject(DBkeys.THEME);\r\n\r\n if (this.localStorage.exists(DBkeys.SHOW_DASHBOARD_STATISTICS))\r\n this._showDashboardStatistics = this.localStorage.getDataObject(DBkeys.SHOW_DASHBOARD_STATISTICS);\r\n\r\n if (this.localStorage.exists(DBkeys.SHOW_DASHBOARD_NOTIFICATIONS))\r\n this._showDashboardNotifications = this.localStorage.getDataObject(DBkeys.SHOW_DASHBOARD_NOTIFICATIONS);\r\n\r\n if (this.localStorage.exists(DBkeys.SHOW_DASHBOARD_TODO))\r\n this._showDashboardTodo = this.localStorage.getDataObject(DBkeys.SHOW_DASHBOARD_TODO);\r\n\r\n if (this.localStorage.exists(DBkeys.SHOW_DASHBOARD_BANNER))\r\n this._showDashboardBanner = this.localStorage.getDataObject(DBkeys.SHOW_DASHBOARD_BANNER);\r\n }\r\n\r\n\r\n private saveToLocalStore(data: any, key: string) {\r\n setTimeout(() => this.localStorage.savePermanentData(data, key));\r\n }\r\n\r\n\r\n public import(jsonValue: string) {\r\n\r\n this.clearLocalChanges();\r\n\r\n if (!jsonValue)\r\n return;\r\n\r\n let importValue: UserConfiguration = Utilities.JSonTryParse(jsonValue);\r\n\r\n if (importValue.language != null)\r\n this.language = importValue.language;\r\n\r\n if (importValue.homeUrl != null)\r\n this.homeUrl = importValue.homeUrl;\r\n\r\n if (importValue.theme != null)\r\n this.theme = importValue.theme;\r\n\r\n if (importValue.showDashboardStatistics != null)\r\n this.showDashboardStatistics = importValue.showDashboardStatistics;\r\n\r\n if (importValue.showDashboardNotifications != null)\r\n this.showDashboardNotifications = importValue.showDashboardNotifications;\r\n\r\n if (importValue.showDashboardTodo != null)\r\n this.showDashboardTodo = importValue.showDashboardTodo;\r\n\r\n if (importValue.showDashboardBanner != null)\r\n this.showDashboardBanner = importValue.showDashboardBanner;\r\n }\r\n\r\n\r\n public export(changesOnly = true): string {\r\n\r\n let exportValue: UserConfiguration =\r\n {\r\n language: changesOnly ? this._language : this.language,\r\n homeUrl: changesOnly ? this._homeUrl : this.homeUrl,\r\n theme: changesOnly ? this._theme : this.theme,\r\n showDashboardStatistics: changesOnly ? this._showDashboardStatistics : this.showDashboardStatistics,\r\n showDashboardNotifications: changesOnly ? this._showDashboardNotifications : this.showDashboardNotifications,\r\n showDashboardTodo: changesOnly ? this._showDashboardTodo : this.showDashboardTodo,\r\n showDashboardBanner: changesOnly ? this._showDashboardBanner : this.showDashboardBanner\r\n };\r\n\r\n return JSON.stringify(exportValue);\r\n }\r\n\r\n\r\n public clearLocalChanges() {\r\n this._language = null;\r\n this._homeUrl = null;\r\n this._theme = null;\r\n this._showDashboardStatistics = null;\r\n this._showDashboardNotifications = null;\r\n this._showDashboardTodo = null;\r\n this._showDashboardBanner = null;\r\n\r\n this.localStorage.deleteData(DBkeys.LANGUAGE);\r\n this.localStorage.deleteData(DBkeys.HOME_URL);\r\n this.localStorage.deleteData(DBkeys.THEME);\r\n this.localStorage.deleteData(DBkeys.SHOW_DASHBOARD_STATISTICS);\r\n this.localStorage.deleteData(DBkeys.SHOW_DASHBOARD_NOTIFICATIONS);\r\n this.localStorage.deleteData(DBkeys.SHOW_DASHBOARD_TODO);\r\n this.localStorage.deleteData(DBkeys.SHOW_DASHBOARD_BANNER);\r\n\r\n this.resetLanguage();\r\n }\r\n\r\n\r\n private resetLanguage() {\r\n let language = this.translationService.useBrowserLanguage();\r\n\r\n if (language) {\r\n this._language = language;\r\n }\r\n else {\r\n this._language = this.translationService.changeLanguage()\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n set language(value: string) {\r\n this._language = value;\r\n this.saveToLocalStore(value, DBkeys.LANGUAGE);\r\n this.translationService.changeLanguage(value);\r\n }\r\n get language() {\r\n if (this._language != null)\r\n return this._language;\r\n\r\n return ConfigurationService.defaultLanguage;\r\n }\r\n\r\n\r\n set homeUrl(value: string) {\r\n this._homeUrl = value;\r\n this.saveToLocalStore(value, DBkeys.HOME_URL);\r\n }\r\n get homeUrl() {\r\n if (this._homeUrl != null)\r\n return this._homeUrl;\r\n\r\n return ConfigurationService.defaultHomeUrl;\r\n }\r\n\r\n\r\n set theme(value: string) {\r\n this._theme = value;\r\n this.saveToLocalStore(value, DBkeys.THEME);\r\n }\r\n get theme() {\r\n if (this._theme != null)\r\n return this._theme;\r\n\r\n return ConfigurationService.defaultTheme;\r\n }\r\n\r\n\r\n set showDashboardStatistics(value: boolean) {\r\n this._showDashboardStatistics = value;\r\n this.saveToLocalStore(value, DBkeys.SHOW_DASHBOARD_STATISTICS);\r\n }\r\n get showDashboardStatistics() {\r\n if (this._showDashboardStatistics != null)\r\n return this._showDashboardStatistics;\r\n\r\n return ConfigurationService.defaultShowDashboardStatistics;\r\n }\r\n\r\n\r\n set showDashboardNotifications(value: boolean) {\r\n this._showDashboardNotifications = value;\r\n this.saveToLocalStore(value, DBkeys.SHOW_DASHBOARD_NOTIFICATIONS);\r\n }\r\n get showDashboardNotifications() {\r\n if (this._showDashboardNotifications != null)\r\n return this._showDashboardNotifications;\r\n\r\n return ConfigurationService.defaultShowDashboardNotifications;\r\n }\r\n\r\n\r\n set showDashboardTodo(value: boolean) {\r\n this._showDashboardTodo = value;\r\n this.saveToLocalStore(value, DBkeys.SHOW_DASHBOARD_TODO);\r\n }\r\n get showDashboardTodo() {\r\n if (this._showDashboardTodo != null)\r\n return this._showDashboardTodo;\r\n\r\n return ConfigurationService.defaultShowDashboardTodo;\r\n }\r\n\r\n\r\n set showDashboardBanner(value: boolean) {\r\n this._showDashboardBanner = value;\r\n this.saveToLocalStore(value, DBkeys.SHOW_DASHBOARD_BANNER);\r\n }\r\n get showDashboardBanner() {\r\n if (this._showDashboardBanner != null)\r\n return this._showDashboardBanner;\r\n\r\n return ConfigurationService.defaultShowDashboardBanner;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { ContactGroup } from '../models/contactgroup.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type ContactGroupsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type ContactGroupsChangedEventArg = { contactgroups: ContactGroup[] | string[], operation: ContactGroupsChangedOperation };\r\n\r\n@Injectable()\r\nexport class ContactGroupService {\r\n\r\n public static readonly contactgroupAddedOperation: ContactGroupsChangedOperation = \"add\";\r\n public static readonly contactgroupDeletedOperation: ContactGroupsChangedOperation = \"delete\";\r\n public static readonly contactgroupModifiedOperation: ContactGroupsChangedOperation = \"modify\";\r\n\r\n private _contactgroupsChanged = new Subject();\r\n\r\n private readonly _contactgroupUrl: string = \"/api/contactgroup\";\r\n get contactgroupUrl() { return this.configurations.baseUrl + this._contactgroupUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onContactGroupsChanged(contactgroups: ContactGroup[] | string[], op: ContactGroupsChangedOperation) {\r\n this._contactgroupsChanged.next({ contactgroups: contactgroups, operation: op });\r\n }\r\n\r\n\r\n onContactGroupsCountChanged(contactgroups: ContactGroup[] | string[]) {\r\n return this.onContactGroupsChanged(contactgroups, ContactGroupService.contactgroupModifiedOperation);\r\n }\r\n\r\n\r\n getContactGroupsChangedEvent(): Observable {\r\n return this._contactgroupsChanged.asObservable();\r\n }\r\n\r\n getContactGroupById(contactgroupId: string) {\r\n\r\n return this.commonEndpoint.getById(this.contactgroupUrl + '/get', contactgroupId);\r\n }\r\n\r\n getContactGroups(page?: number, pageSize?: number, institutionId?: string, isSimple?: boolean) {\r\n return this.commonEndpoint.getPagedList(this.contactgroupUrl + '/contactgroups/list?institutionId=' + institutionId + '&isSimple=' + isSimple, page, pageSize);\r\n }\r\n\r\n updateContactGroup(contactgroup: ContactGroup) {\r\n if (contactgroup.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.contactgroupUrl, contactgroup, contactgroup.id).pipe(\r\n tap(data => this.onContactGroupsChanged([contactgroup], ContactGroupService.contactgroupModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newContactGroup(contactgroup: ContactGroup) {\r\n return this.commonEndpoint.getNewEndpoint(this.contactgroupUrl, contactgroup).pipe(\r\n tap(data => this.onContactGroupsChanged([contactgroup], ContactGroupService.contactgroupAddedOperation)));\r\n }\r\n\r\n\r\n deleteContactGroup(contactgroupOrContactGroupId: string | ContactGroup): Observable {\r\n\r\n if (typeof contactgroupOrContactGroupId === 'number' || contactgroupOrContactGroupId instanceof Number ||\r\n typeof contactgroupOrContactGroupId === 'string' || contactgroupOrContactGroupId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.contactgroupUrl, contactgroupOrContactGroupId).pipe(\r\n tap(data => this.onContactGroupsChanged([data], ContactGroupService.contactgroupDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (contactgroupOrContactGroupId.id) {\r\n return this.deleteContactGroup(contactgroupOrContactGroupId.id);\r\n }\r\n }\r\n }\r\n\r\n syncLdap() {\r\n return this.commonEndpoint.get(this.contactgroupUrl + '/ldap/sync');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap, catchError } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Reservation, CalendarFilter } from '../models/reservation.model';\r\nimport { LocationService } from './location.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { CalendarEvent } from 'calendar-utils';\r\nimport { DeviceFilter, Device } from '../models/device.model';\r\nimport { PIBDevice } from '../models/department.model';\r\nimport { SignageDashboard, SignageDashboardFilter } from '../models/dashboard.model';\r\nimport { Filter } from '../models/sieve-filter.model';\r\n\r\n\r\n@Injectable()\r\nexport class DashboardService {\r\n\r\n private readonly _dashboardUrl: string = \"/api/dashboard\";\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, private locationService: LocationService,\r\n protected configurations: ConfigurationService ) {\r\n\r\n }\r\n\r\n get dashboardUrl() { return this.configurations.baseUrl + this._dashboardUrl; }\r\n\r\n getUpcomingEvents(pageSize?: number, filter?: CalendarFilter) {\r\n return this.commonEndpoint.getPagedList(this.dashboardUrl + '/upcomingevents/' + pageSize, null, null, true, filter);\r\n }\r\n\r\n getInProgressEvents(pageSize?: number, filter?: CalendarFilter) {\r\n return this.commonEndpoint.getPagedList(this.dashboardUrl + '/inprogressevents/' + pageSize, null, null, true, filter);\r\n }\r\n\r\n getDeviceForApproval(pageNumber?: number,pageSize?: number, filter?: DeviceFilter) {\r\n return this.commonEndpoint.getPagedList(this.dashboardUrl + '/devices', pageNumber, pageSize, true, filter);\r\n }\r\n\r\n getPIBDeviceStatusList(pageNumber?: number, pageSize?: number, filter?: DeviceFilter) {\r\n return this.commonEndpoint.getPagedList(this.dashboardUrl + '/pibdevices', pageNumber, pageSize, true, filter);\r\n }\r\n\r\n getSignageDashboard(filter?: SignageDashboardFilter) {\r\n return this.commonEndpoint.get(this.dashboardUrl + '/signage/dashboard/', true, filter);\r\n }\r\n\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DBkeys {\r\n\r\n public static readonly CURRENT_USER = \"current_user\";\r\n public static readonly USER_PERMISSIONS = \"user_permissions\";\r\n public static readonly ACCESS_TOKEN = \"access_token\";\r\n public static readonly ID_TOKEN = \"id_token\";\r\n public static readonly REFRESH_TOKEN = \"refresh_token\";\r\n public static readonly TOKEN_EXPIRES_IN = \"expires_in\";\r\n\r\n public static readonly REMEMBER_ME = \"remember_me\";\r\n public static readonly INSTITUTION_CODE = \"institution_code\";\r\n\r\n\r\n public static readonly LANGUAGE = \"language\";\r\n public static readonly HOME_URL = \"home_url\";\r\n public static readonly THEME = \"theme\";\r\n public static readonly SHOW_DASHBOARD_STATISTICS = \"show_dashboard_statistics\";\r\n public static readonly SHOW_DASHBOARD_NOTIFICATIONS = \"show_dashboard_notifications\";\r\n public static readonly SHOW_DASHBOARD_TODO = \"show_dashboard_todo\";\r\n public static readonly SHOW_DASHBOARD_BANNER = \"show_dashboard_banner\";\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Department } from '../models/department.model';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type DepartmentsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type DepartmentsChangedEventArg = { departments: Department[] | string[], operation: DepartmentsChangedOperation };\r\n\r\n@Injectable()\r\nexport class DepartmentService {\r\n\r\n public static readonly departmentAddedOperation: DepartmentsChangedOperation = \"add\";\r\n public static readonly departmentDeletedOperation: DepartmentsChangedOperation = \"delete\";\r\n public static readonly departmentModifiedOperation: DepartmentsChangedOperation = \"modify\";\r\n\r\n private _departmentsChanged = new Subject();\r\n\r\n private readonly _departmentUrl: string = \"/api/department\";\r\n get departmentUrl() { return this.configurations.baseUrl + this._departmentUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onDepartmentsChanged(departments: Department[] | string[], op: DepartmentsChangedOperation) {\r\n this._departmentsChanged.next({ departments: departments, operation: op });\r\n }\r\n\r\n\r\n onDepartmentsCountChanged(departments: Department[] | string[]) {\r\n return this.onDepartmentsChanged(departments, DepartmentService.departmentModifiedOperation);\r\n }\r\n\r\n\r\n getDepartmentsChangedEvent(): Observable {\r\n return this._departmentsChanged.asObservable();\r\n }\r\n\r\n getDepartmentById(departmentId: string) {\r\n\r\n return this.commonEndpoint.getById(this.departmentUrl + '/get', departmentId);\r\n }\r\n\r\n getDepartments(page?: number, pageSize?: number, institutionId?: string, institutionCode?: string) {\r\n var queryParams = '';\r\n queryParams += (institutionId ? '?institutionId=' + institutionId : '');\r\n queryParams += (institutionCode ? '?institutionCode=' + institutionCode : '');\r\n\r\n if (queryParams == '' || page || pageSize) {\r\n return this.commonEndpoint.getPagedList(this.departmentUrl + '/departments/list', page, pageSize);\r\n } else {\r\n return this.commonEndpoint.get(this.departmentUrl + '/departments/list' + queryParams);\r\n }\r\n }\r\n\r\n getDepartmentsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.departmentUrl + '/departments/sieve/list', filter);\r\n }\r\n\r\n updateDepartment(department: Department) {\r\n if (department.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.departmentUrl, department, department.id).pipe(\r\n tap(data => this.onDepartmentsChanged([department], DepartmentService.departmentModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newDepartment(department: Department) {\r\n return this.commonEndpoint.getNewEndpoint(this.departmentUrl, department).pipe(\r\n tap(data => this.onDepartmentsChanged([department], DepartmentService.departmentAddedOperation)));\r\n }\r\n\r\n\r\n deleteDepartment(departmentOrDepartmentId: string | Department): Observable {\r\n\r\n if (typeof departmentOrDepartmentId === 'number' || departmentOrDepartmentId instanceof Number ||\r\n typeof departmentOrDepartmentId === 'string' || departmentOrDepartmentId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.departmentUrl, departmentOrDepartmentId).pipe(\r\n tap(data => this.onDepartmentsChanged([data], DepartmentService.departmentDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (departmentOrDepartmentId.id) {\r\n return this.deleteDepartment(departmentOrDepartmentId.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Device, DevicePushMessage } from '../models/device.model';\r\nimport { Location } from '../models/location.model';\r\nimport { Institution } from '../models/institution.model';\r\nimport { LocationService } from './location.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { CommonFilter, Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { SignageDashboardFilter } from '../models/dashboard.model';\r\nimport { DeviceType } from '../models/device-type.model';\r\n\r\nexport type DevicesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type DevicesChangedEventArg = { devices: Device[] | string[], operation: DevicesChangedOperation };\r\n\r\nexport type LocationsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type LocationsChangedEventArg = { locations: Location[] | string[], operation: LocationsChangedOperation };\r\n\r\n@Injectable()\r\nexport class DeviceService {\r\n\r\n public static readonly deviceAddedOperation: DevicesChangedOperation = \"add\";\r\n public static readonly deviceDeletedOperation: DevicesChangedOperation = \"delete\";\r\n public static readonly deviceModifiedOperation: DevicesChangedOperation = \"modify\";\r\n //public static readonly deviceApprovedOperation: DevicesChangedOperation = \"approved\";\r\n\r\n private _devicesChanged = new Subject();\r\n\r\n\r\n private readonly _deviceUrl: string = \"/api/devicemanager\";\r\n get deviceUrl() { return this.configurations.baseUrl + this._deviceUrl; }\r\n\r\n private readonly _institutionUrl: string = \"/api/institution\";\r\n get institutionUrl() { return this.configurations.baseUrl + this._institutionUrl; }\r\n\r\n private readonly _deviceTypeUrl: string = \"/api/devicetype/devicetypes\";\r\n get deviceTypeUrl() { return this.configurations.baseUrl + this._deviceTypeUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, private locationService: LocationService, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onDevicesChanged(devices: Device[] | string[], op: DevicesChangedOperation) {\r\n this._devicesChanged.next({ devices: devices, operation: op });\r\n }\r\n\r\n\r\n onDevicesUserCountChanged(devices: Device[] | string[]) {\r\n return this.onDevicesChanged(devices, DeviceService.deviceModifiedOperation);\r\n }\r\n\r\n getDeviceByIdentifier(macAddress?: string) {\r\n\r\n return this.commonEndpoint.get(this.deviceUrl + '/get/' + macAddress);\r\n }\r\n\r\n //getDeviceById(deviceId?: string, macAddress?: string) {\r\n\r\n // return this.commonEndpoint.get(this.deviceUrl + '/get/device?deviceId=' + deviceId + '&mac_address=' + macAddress);\r\n //}\r\n\r\n getDevicesChangedEvent(): Observable {\r\n return this._devicesChanged.asObservable();\r\n }\r\n\r\n getDevicesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.deviceUrl + '/devices/sieve/list', filter);\r\n }\r\n\r\n getDevicesLocationsInstitutionsByFilter(filter: CommonFilter) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getSieve(this.deviceUrl + '/devices/sieve/list', filter),\r\n this.locationService.getLocations(null, null, filter.institutionId),\r\n this.commonEndpoint.getPagedList(this.institutionUrl + '/institutions/list'));\r\n }\r\n\r\n getDevicesLocationsInstitutions(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.deviceUrl + '/devices/list?institutionId=' + institutionId, page, pageSize),\r\n this.locationService.getLocations(null, null, institutionId),\r\n this.commonEndpoint.getPagedList(this.institutionUrl + '/institutions/list'));\r\n }\r\n\r\n getDeviceById(deviceId?: string, macAddress?: string, useIP?: boolean, url?: string) {\r\n\r\n if (url) {\r\n console.log(url + '?deviceId=' + deviceId + '&mac_address=' + macAddress + '&useIP=' + useIP);\r\n return this.commonEndpoint.get(url + '?deviceId=' + deviceId + '&mac_address=' + macAddress + '&useIP=' + useIP, false, null, false, true);\r\n }\r\n\r\n return this.commonEndpoint.get(this.deviceUrl + '/get/device?deviceId=' + deviceId + '&mac_address=' + macAddress + '&useIP=' + useIP);\r\n }\r\n\r\n updateDevice(device: Device) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.deviceUrl, device, device.id).pipe(\r\n tap(data => this.onDevicesChanged([device], DeviceService.deviceModifiedOperation)));\r\n }\r\n\r\n\r\n newDevice(device: Device) {\r\n return this.commonEndpoint.getNewEndpoint(this.deviceUrl, device).pipe(\r\n tap(data => this.onDevicesChanged([device], DeviceService.deviceAddedOperation)));\r\n }\r\n\r\n\r\n deleteDevice(deviceOrDeviceId: string | Device): Observable {\r\n\r\n if (typeof deviceOrDeviceId === 'number' || deviceOrDeviceId instanceof Number ||\r\n typeof deviceOrDeviceId === 'string' || deviceOrDeviceId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.deviceUrl, deviceOrDeviceId).pipe(\r\n tap(data => this.onDevicesChanged([data], DeviceService.deviceDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (deviceOrDeviceId.id) {\r\n return this.deleteDevice(deviceOrDeviceId.id);\r\n }\r\n }\r\n }\r\n\r\n pushMessages(data: DevicePushMessage) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/pushmessages', true, data);\r\n }\r\n\r\n bulkReboot(filter: SignageDashboardFilter) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/bulkreboot', true, filter);\r\n }\r\n\r\n bulkRefresh(filter: SignageDashboardFilter) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/bulkRefresh', true, filter);\r\n }\r\n\r\n //approveDevice(device: Device) {\r\n // return this.commonEndpoint.getNewEndpoint(this.deviceUrl + '/approve', device).pipe(\r\n // tap(data => this.onDevicesChanged([device], DeviceService.deviceApprovedOperation)));\r\n //}\r\n\r\n getDataByUrl(url: string, isPost?: boolean, obj?: any) {\r\n console.log('LOCATION', url);\r\n return this.commonEndpoint.get(url, isPost, obj, false, true);\r\n }\r\n\r\n getServerTime() {\r\n return this.commonEndpoint.get(this.deviceUrl + '/get/servertime');\r\n }\r\n\r\n reboot(id?: string) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/reboot/' + id);\r\n }\r\n\r\n channelup(id?: string) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/channelup/' + id);\r\n }\r\n\r\n changechannel(id?: string, channelId?: string) {\r\n return this.commonEndpoint.get(this.deviceUrl + `/device/changechannel/${id}/${channelId}`);\r\n }\r\n\r\n channeldown(id?: string) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/channeldown/' + id);\r\n }\r\n\r\n screenon(id?: string) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/screenon/' + id);\r\n }\r\n\r\n screenoff(id?: string) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/screenoff/' + id);\r\n }\r\n\r\n off(id?: string) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/off/' + id);\r\n }\r\n\r\n on(id?: string) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/on/' + id);\r\n }\r\n\r\n refresh(id?: string) {\r\n return this.commonEndpoint.get(this.deviceUrl + '/device/refresh/' + id);\r\n }\r\n\r\n //device type\r\n\r\n getDeviceTypeById(deviceTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.deviceTypeUrl + '/get', deviceTypeId);\r\n }\r\n\r\n getDeviceTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.deviceTypeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateDeviceType(deviceType: DeviceType) {\r\n if (deviceType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.deviceTypeUrl, deviceType, deviceType.id);\r\n }\r\n }\r\n\r\n\r\n newDeviceType(deviceType: DeviceType) {\r\n return this.commonEndpoint.getNewEndpoint(this.deviceTypeUrl, deviceType);\r\n }\r\n\r\n\r\n deleteDeviceType(deviceTypeOrDeviceTypeId: string | DeviceType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.deviceTypeUrl, deviceTypeOrDeviceTypeId);\r\n }\r\n\r\n importFile(data: any) {\r\n return this.http.post(this.deviceUrl + '/import', data, { reportProgress: true, observe: 'events' });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { DirectoryListingCategory } from '../models/directory-listing-category.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type DirectoryListingCategorysChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type DirectoryListingCategorysChangedEventArg = { directoryListingCategorys: DirectoryListingCategory[] | string[], operation: DirectoryListingCategorysChangedOperation };\r\n\r\n@Injectable()\r\nexport class DirectoryListingCategoryService {\r\n\r\n public static readonly directoryListingCategoryAddedOperation: DirectoryListingCategorysChangedOperation = \"add\";\r\n public static readonly directoryListingCategoryDeletedOperation: DirectoryListingCategorysChangedOperation = \"delete\";\r\n public static readonly directoryListingCategoryModifiedOperation: DirectoryListingCategorysChangedOperation = \"modify\";\r\n\r\n private _directoryListingCategorysChanged = new Subject();\r\n\r\n private readonly _directoryListingCategoryUrl: string = \"/api/directorylistingcategory\";\r\n get directoryListingCategoryUrl() { return this.configurations.baseUrl + this._directoryListingCategoryUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onDirectoryListingCategorysChanged(directoryListingCategorys: DirectoryListingCategory[] | string[], op: DirectoryListingCategorysChangedOperation) {\r\n this._directoryListingCategorysChanged.next({ directoryListingCategorys: directoryListingCategorys, operation: op });\r\n }\r\n\r\n\r\n onDirectoryListingCategorysCountChanged(directoryListingCategorys: DirectoryListingCategory[] | string[]) {\r\n return this.onDirectoryListingCategorysChanged(directoryListingCategorys, DirectoryListingCategoryService.directoryListingCategoryModifiedOperation);\r\n }\r\n\r\n\r\n getDirectoryListingCategorysChangedEvent(): Observable {\r\n return this._directoryListingCategorysChanged.asObservable();\r\n }\r\n\r\n getDirectoryListingCategorys(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.directoryListingCategoryUrl + '/list', page, pageSize));\r\n }\r\n\r\n getDirectoryListingCategoryByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.directoryListingCategoryUrl + '/list', institutionId));\r\n }\r\n\r\n getDirectoryListingCategoryByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.directoryListingCategoryUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n updateDirectoryListingCategory(directoryListingCategory: DirectoryListingCategory) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.directoryListingCategoryUrl, directoryListingCategory, directoryListingCategory.id).pipe(\r\n tap(data => this.onDirectoryListingCategorysChanged([directoryListingCategory], DirectoryListingCategoryService.directoryListingCategoryModifiedOperation)));\r\n }\r\n\r\n newDirectoryListingCategory(directoryListingCategory: DirectoryListingCategory) {\r\n return this.commonEndpoint.getNewEndpoint(this.directoryListingCategoryUrl, directoryListingCategory).pipe(\r\n tap(data => this.onDirectoryListingCategorysChanged([directoryListingCategory], DirectoryListingCategoryService.directoryListingCategoryAddedOperation)));\r\n }\r\n\r\n\r\n deleteDirectoryListingCategory(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.directoryListingCategoryUrl, id).pipe(\r\n tap(data => this.onDirectoryListingCategorysChanged([data], DirectoryListingCategoryService.directoryListingCategoryDeletedOperation)));\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap, catchError } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { DirectoryListing } from '../models/directory-listing.model';\r\n\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type DirectoryListingsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type DirectoryListingsChangedEventArg = { directoryListings: DirectoryListing[] | string[], operation: DirectoryListingsChangedOperation };\r\n\r\n@Injectable()\r\nexport class DirectoryListingService extends EndpointFactory {\r\n\r\n public static readonly directoryListingAddedOperation: DirectoryListingsChangedOperation = \"add\";\r\n public static readonly directoryListingDeletedOperation: DirectoryListingsChangedOperation = \"delete\";\r\n public static readonly directoryListingModifiedOperation: DirectoryListingsChangedOperation = \"modify\";\r\n\r\n private _directoryListingsChanged = new Subject();\r\n\r\n private readonly _directoryListingUrl: string = \"/api/directorylisting\";\r\n get directoryListingUrl() { return this.configurations.baseUrl + this._directoryListingUrl; }\r\n\r\n constructor(private router: Router, http: HttpClient,\r\n private commonEndpoint: CommonEndpoint, public configurations: ConfigurationService, injector: Injector) {\r\n super(http, configurations, injector);\r\n }\r\n\r\n\r\n private onDirectoryListingsChanged(directoryListings: DirectoryListing[] | string[], op: DirectoryListingsChangedOperation) {\r\n this._directoryListingsChanged.next({ directoryListings: directoryListings, operation: op });\r\n }\r\n\r\n\r\n onDirectoryListingsCountChanged(directoryListings: DirectoryListing[] | string[]) {\r\n return this.onDirectoryListingsChanged(directoryListings, DirectoryListingService.directoryListingModifiedOperation);\r\n }\r\n\r\n\r\n getDirectoryListingsChangedEvent(): Observable {\r\n return this._directoryListingsChanged.asObservable();\r\n }\r\n\r\n getDirectoryListings(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.directoryListingUrl + '/list', page, pageSize));\r\n }\r\n\r\n getDirectoryListingsExcInt() {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.directoryListingUrl + '/listexcludeinternal'));\r\n }\r\n\r\n getDirectoryListingByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.directoryListingUrl + '/list', institutionId));\r\n }\r\n\r\n getDirectoryListingByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.directoryListingUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n updateDirectoryListing(directoryListing: DirectoryListing) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.directoryListingUrl, directoryListing, directoryListing.id).pipe(\r\n tap(data => this.onDirectoryListingsChanged([directoryListing], DirectoryListingService.directoryListingModifiedOperation)));\r\n }\r\n\r\n newDirectoryListing(directoryListing: DirectoryListing) {\r\n return this.commonEndpoint.getNewEndpoint(this.directoryListingUrl, directoryListing).pipe(\r\n tap(data => this.onDirectoryListingsChanged([directoryListing], DirectoryListingService.directoryListingAddedOperation)));\r\n }\r\n\r\n\r\n deleteDirectoryListing(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.directoryListingUrl, id).pipe(\r\n tap(data => this.onDirectoryListingsChanged([data], DirectoryListingService.directoryListingDeletedOperation)));\r\n }\r\n\r\n importFile(data: any): Observable {\r\n\r\n return this.http.post(this.directoryListingUrl + '/import', data, { reportProgress: true, observe: 'events' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.importFile(data));\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { EmailQueue } from '../models/email-queue.model';\r\n\r\nexport type EmailQueuesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type EmailQueuesChangedEventArg = { emailQueues: EmailQueue[] | string[], operation: EmailQueuesChangedOperation };\r\n\r\n@Injectable()\r\nexport class EmailQueueService {\r\n\r\n public static readonly emailQueueAddedOperation: EmailQueuesChangedOperation = \"add\";\r\n public static readonly emailQueueDeletedOperation: EmailQueuesChangedOperation = \"delete\";\r\n public static readonly emailQueueModifiedOperation: EmailQueuesChangedOperation = \"modify\";\r\n\r\n private _emailQueuesChanged = new Subject();\r\n\r\n private readonly _emailQueueUrl: string = \"/api/emailqueue/emailqueue\";\r\n get emailQueueUrl() { return this.configurations.baseUrl + this._emailQueueUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n \r\n getEmailQueueById(emailQueueId: string) {\r\n\r\n return this.commonEndpoint.getById(this.emailQueueUrl + '/get', emailQueueId);\r\n }\r\n\r\n getEmailQueuesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.emailQueueUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateEmailQueue(emailQueue: EmailQueue) {\r\n if (emailQueue.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.emailQueueUrl, emailQueue, emailQueue.id);\r\n }\r\n }\r\n\r\n\r\n newEmailQueue(emailQueue: EmailQueue) {\r\n return this.commonEndpoint.getNewEndpoint(this.emailQueueUrl, emailQueue);\r\n }\r\n\r\n\r\n deleteEmailQueue(emailQueueOrEmailQueueId: string | EmailQueue): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.emailQueueUrl, emailQueueOrEmailQueueId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { EmployeeData } from '../models/employee-data.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type EmployeeDatasChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type EmployeeDatasChangedEventArg = { employeeDatas: EmployeeData[] | string[], operation: EmployeeDatasChangedOperation };\r\n\r\n@Injectable()\r\nexport class EmployeeDataService {\r\n\r\n public static readonly employeeDataAddedOperation: EmployeeDatasChangedOperation = \"add\";\r\n public static readonly employeeDataDeletedOperation: EmployeeDatasChangedOperation = \"delete\";\r\n public static readonly employeeDataModifiedOperation: EmployeeDatasChangedOperation = \"modify\";\r\n\r\n private _employeeDatasChanged = new Subject();\r\n\r\n private readonly _employeeDataUrl: string = \"/api/employeedata\";\r\n get employeeDataUrl() { return this.configurations.baseUrl + this._employeeDataUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onEmployeeDatasChanged(employeeDatas: EmployeeData[] | string[], op: EmployeeDatasChangedOperation) {\r\n this._employeeDatasChanged.next({ employeeDatas: employeeDatas, operation: op });\r\n }\r\n\r\n\r\n onEmployeeDatasCountChanged(employeeDatas: EmployeeData[] | string[]) {\r\n return this.onEmployeeDatasChanged(employeeDatas, EmployeeDataService.employeeDataModifiedOperation);\r\n }\r\n\r\n\r\n getEmployeeDatasChangedEvent(): Observable {\r\n return this._employeeDatasChanged.asObservable();\r\n }\r\n\r\n getEmployeeDatas(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.employeeDataUrl + '/list', page, pageSize));\r\n }\r\n\r\n getEmployeeDataByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.employeeDataUrl + '/list', institutionId));\r\n }\r\n\r\n getEmployeeDataByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.employeeDataUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n getCurrentEmployeeDataByLocation(locationId: any) {\r\n\r\n return this.commonEndpoint.get(this.employeeDataUrl + '/getcurrentemployeebylocation?locationId=' + locationId);\r\n }\r\n\r\n updateEmployeeData(employeeData: EmployeeData) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.employeeDataUrl, employeeData, employeeData.id).pipe(\r\n tap(data => this.onEmployeeDatasChanged([employeeData], EmployeeDataService.employeeDataModifiedOperation)));\r\n }\r\n\r\n newEmployeeData(employeeData: EmployeeData) {\r\n return this.commonEndpoint.getNewEndpoint(this.employeeDataUrl, employeeData).pipe(\r\n tap(data => this.onEmployeeDatasChanged([employeeData], EmployeeDataService.employeeDataAddedOperation)));\r\n }\r\n\r\n\r\n deleteEmployeeData(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.employeeDataUrl, id).pipe(\r\n tap(data => this.onEmployeeDatasChanged([data], EmployeeDataService.employeeDataDeletedOperation)));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { EmployeeDesignation } from '../models/employee-designation.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type EmployeeDesignationsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type EmployeeDesignationsChangedEventArg = { employeeDesignations: EmployeeDesignation[] | string[], operation: EmployeeDesignationsChangedOperation };\r\n\r\n@Injectable()\r\nexport class EmployeeDesignationService {\r\n\r\n public static readonly employeeDesignationAddedOperation: EmployeeDesignationsChangedOperation = \"add\";\r\n public static readonly employeeDesignationDeletedOperation: EmployeeDesignationsChangedOperation = \"delete\";\r\n public static readonly employeeDesignationModifiedOperation: EmployeeDesignationsChangedOperation = \"modify\";\r\n\r\n private _employeeDesignationsChanged = new Subject();\r\n\r\n private readonly _employeeDesignationUrl: string = \"/api/employeedesignation\";\r\n get employeeDesignationUrl() { return this.configurations.baseUrl + this._employeeDesignationUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onEmployeeDesignationsChanged(employeeDesignations: EmployeeDesignation[] | string[], op: EmployeeDesignationsChangedOperation) {\r\n this._employeeDesignationsChanged.next({ employeeDesignations: employeeDesignations, operation: op });\r\n }\r\n\r\n\r\n onEmployeeDesignationsCountChanged(employeeDesignations: EmployeeDesignation[] | string[]) {\r\n return this.onEmployeeDesignationsChanged(employeeDesignations, EmployeeDesignationService.employeeDesignationModifiedOperation);\r\n }\r\n\r\n\r\n getEmployeeDesignationsChangedEvent(): Observable {\r\n return this._employeeDesignationsChanged.asObservable();\r\n }\r\n\r\n getEmployeeDesignations(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.employeeDesignationUrl + '/list', page, pageSize));\r\n }\r\n\r\n getEmployeeDesignationByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.employeeDesignationUrl + '/list', institutionId));\r\n }\r\n\r\n getEmployeeDesignationByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.employeeDesignationUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n updateEmployeeDesignation(employeeDesignation: EmployeeDesignation) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.employeeDesignationUrl, employeeDesignation, employeeDesignation.id).pipe(\r\n tap(data => this.onEmployeeDesignationsChanged([employeeDesignation], EmployeeDesignationService.employeeDesignationModifiedOperation)));\r\n }\r\n\r\n newEmployeeDesignation(employeeDesignation: EmployeeDesignation) {\r\n return this.commonEndpoint.getNewEndpoint(this.employeeDesignationUrl, employeeDesignation).pipe(\r\n tap(data => this.onEmployeeDesignationsChanged([employeeDesignation], EmployeeDesignationService.employeeDesignationAddedOperation)));\r\n }\r\n\r\n\r\n deleteEmployeeDesignation(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.employeeDesignationUrl, id).pipe(\r\n tap(data => this.onEmployeeDesignationsChanged([data], EmployeeDesignationService.employeeDesignationDeletedOperation)));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { EmployeeSchedule } from '../models/employee-schedule.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type EmployeeSchedulesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type EmployeeSchedulesChangedEventArg = { employeeSchedules: EmployeeSchedule[] | string[], operation: EmployeeSchedulesChangedOperation };\r\n\r\n@Injectable()\r\nexport class EmployeeScheduleService {\r\n\r\n public static readonly employeeScheduleAddedOperation: EmployeeSchedulesChangedOperation = \"add\";\r\n public static readonly employeeScheduleDeletedOperation: EmployeeSchedulesChangedOperation = \"delete\";\r\n public static readonly employeeScheduleModifiedOperation: EmployeeSchedulesChangedOperation = \"modify\";\r\n\r\n private _employeeSchedulesChanged = new Subject();\r\n\r\n private readonly _employeeScheduleUrl: string = \"/api/employeeschedule\";\r\n get employeeScheduleUrl() { return this.configurations.baseUrl + this._employeeScheduleUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onEmployeeSchedulesChanged(employeeSchedules: EmployeeSchedule[] | string[], op: EmployeeSchedulesChangedOperation) {\r\n this._employeeSchedulesChanged.next({ employeeSchedules: employeeSchedules, operation: op });\r\n }\r\n\r\n\r\n onEmployeeSchedulesCountChanged(employeeSchedules: EmployeeSchedule[] | string[]) {\r\n return this.onEmployeeSchedulesChanged(employeeSchedules, EmployeeScheduleService.employeeScheduleModifiedOperation);\r\n }\r\n\r\n\r\n getEmployeeSchedulesChangedEvent(): Observable {\r\n return this._employeeSchedulesChanged.asObservable();\r\n }\r\n\r\n getEmployeeSchedules(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.employeeScheduleUrl + '/list', page, pageSize));\r\n }\r\n\r\n getEmployeeScheduleByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.employeeScheduleUrl + '/list', institutionId));\r\n }\r\n\r\n import(filename: string) {\r\n\r\n return this.commonEndpoint.get(this.employeeScheduleUrl + '/employeeschedules/import?filename=' + filename);\r\n }\r\n\r\n getEmployeeScheduleByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.employeeScheduleUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n updateEmployeeSchedule(employeeSchedule: EmployeeSchedule) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.employeeScheduleUrl, employeeSchedule, employeeSchedule.id).pipe(\r\n tap(data => this.onEmployeeSchedulesChanged([employeeSchedule], EmployeeScheduleService.employeeScheduleModifiedOperation)));\r\n }\r\n\r\n newEmployeeSchedule(employeeSchedule: EmployeeSchedule) {\r\n return this.commonEndpoint.getNewEndpoint(this.employeeScheduleUrl, employeeSchedule).pipe(\r\n tap(data => this.onEmployeeSchedulesChanged([employeeSchedule], EmployeeScheduleService.employeeScheduleAddedOperation)));\r\n }\r\n\r\n\r\n deleteEmployeeSchedule(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.employeeScheduleUrl, id).pipe(\r\n tap(data => this.onEmployeeSchedulesChanged([data], EmployeeScheduleService.employeeScheduleDeletedOperation)));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap, catchError } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { EmsProfile } from '../models/ems-profile.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type EmsProfilesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type EmsProfilesChangedEventArg = { emsProfiles: EmsProfile[] | string[], operation: EmsProfilesChangedOperation };\r\n\r\n\r\n@Injectable()\r\nexport class EmsProfileService {\r\n\r\n public static readonly emsProfileAddedOperation: EmsProfilesChangedOperation = \"add\";\r\n public static readonly emsProfileDeletedOperation: EmsProfilesChangedOperation = \"delete\";\r\n public static readonly emsProfileModifiedOperation: EmsProfilesChangedOperation = \"modify\";\r\n private readonly _emsProfileUrl: string = \"/api/emsprofile\";\r\n\r\n private _emsProfilesChanged = new Subject();\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint,\r\n protected configurations: ConfigurationService ) {\r\n\r\n }\r\n\r\n get emsProfileUrl() { return this._emsProfileUrl; }\r\n\r\n private onEmsProfilesChanged(emsProfiles: EmsProfile[] | string[], op: EmsProfilesChangedOperation) {\r\n this._emsProfilesChanged.next({ emsProfiles: emsProfiles, operation: op });\r\n }\r\n\r\n\r\n onEmsProfilesUserCountChanged(emsProfiles: EmsProfile[] | string[]) {\r\n return this.onEmsProfilesChanged(emsProfiles, EmsProfileService.emsProfileModifiedOperation);\r\n }\r\n\r\n\r\n getEmsProfilesChangedEvent(): Observable {\r\n return this._emsProfilesChanged.asObservable();\r\n }\r\n\r\n\r\n\r\n getEmsProfiles(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.emsProfileUrl + '/GetAllEmsProfiles', page, pageSize, true, { institutionId: institutionId }));\r\n }\r\n\r\n\r\n getAllEmsProfiles(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return this.commonEndpoint.getPagedList(this.emsProfileUrl + '/get/emsprofiles', page, pageSize, false, { institutionId: institutionId });\r\n }\r\n getEmsProfile(id?: string) {\r\n return this.commonEndpoint.get(this.emsProfileUrl + '/get' + \"?id=\" + id);\r\n }\r\n\r\n //getEmsProfiles(page?: number, pageSize?: number) {\r\n // return this.commonEndpoint.getPagedList(this.emsProfileUrl + '/GetAllEmsProfiles', page, pageSize, true);\r\n //}\r\n\r\n\r\n updateEmsProfile(emsProfile: EmsProfile) {\r\n if (emsProfile.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.emsProfileUrl, emsProfile, emsProfile.id).pipe(\r\n tap(data => this.onEmsProfilesChanged([emsProfile], EmsProfileService.emsProfileModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newEmsProfile(emsProfile: EmsProfile) {\r\n return this.commonEndpoint.getNewEndpoint(this.emsProfileUrl, emsProfile).pipe(\r\n tap(data => this.onEmsProfilesChanged([emsProfile], EmsProfileService.emsProfileAddedOperation)));\r\n }\r\n\r\n\r\n deleteEmsProfile(emsProfileOrEmsProfileId: string | EmsProfile): Observable {\r\n\r\n if (typeof emsProfileOrEmsProfileId === 'number' || emsProfileOrEmsProfileId instanceof Number ||\r\n typeof emsProfileOrEmsProfileId === 'string' || emsProfileOrEmsProfileId instanceof String\r\n || typeof emsProfileOrEmsProfileId == 'object') {\r\n var queryStrings = \"\";\r\n var id = \"\";\r\n\r\n if (typeof emsProfileOrEmsProfileId == 'object') {\r\n id = emsProfileOrEmsProfileId.id;\r\n } else {\r\n id = emsProfileOrEmsProfileId;\r\n }\r\n\r\n return this.commonEndpoint.getDeleteEndpoint(this.emsProfileUrl, id, queryStrings).pipe(\r\n tap(data => this.onEmsProfilesChanged([data], EmsProfileService.emsProfileDeletedOperation)));\r\n }\r\n //else {\r\n\r\n // if (emsProfileOrEmsProfileId.id) {\r\n // return this.deleteEmsProfile(emsProfileOrEmsProfileId.id);\r\n // }\r\n //}\r\n }\r\n\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap, catchError } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { EmsSchedule } from '../models/ems-schedule.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type EmsSchedulesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type EmsSchedulesChangedEventArg = { emsSchedules: EmsSchedule[] | string[], operation: EmsSchedulesChangedOperation };\r\n\r\n\r\n@Injectable()\r\nexport class EmsScheduleService {\r\n\r\n public static readonly emsScheduleAddedOperation: EmsSchedulesChangedOperation = \"add\";\r\n public static readonly emsScheduleDeletedOperation: EmsSchedulesChangedOperation = \"delete\";\r\n public static readonly emsScheduleModifiedOperation: EmsSchedulesChangedOperation = \"modify\";\r\n private readonly _emsScheduleUrl: string = \"/api/emsschedule\";\r\n\r\n private _emsSchedulesChanged = new Subject();\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint,\r\n protected configurations: ConfigurationService ) {\r\n\r\n }\r\n\r\n get emsScheduleUrl() { return this._emsScheduleUrl; }\r\n\r\n private onEmsSchedulesChanged(emsSchedules: EmsSchedule[] | string[], op: EmsSchedulesChangedOperation) {\r\n this._emsSchedulesChanged.next({ emsSchedules: emsSchedules, operation: op });\r\n }\r\n\r\n\r\n onEmsSchedulesUserCountChanged(emsSchedules: EmsSchedule[] | string[]) {\r\n return this.onEmsSchedulesChanged(emsSchedules, EmsScheduleService.emsScheduleModifiedOperation);\r\n }\r\n\r\n\r\n getEmsSchedulesChangedEvent(): Observable {\r\n return this._emsSchedulesChanged.asObservable();\r\n }\r\n\r\n\r\n\r\n getEmsSchedules(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.emsScheduleUrl + '/GetAllEmsSchedules', page, pageSize, true, { institutionId: institutionId }));\r\n }\r\n\r\n\r\n getAllEmsSchedules(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return this.commonEndpoint.getPagedList(this.emsScheduleUrl + '/get/emsschedules', page, pageSize, false, { institutionId: institutionId });\r\n }\r\n getEmsSchedule(id?: string) {\r\n return this.commonEndpoint.get(this.emsScheduleUrl + '/get' + \"?id=\" + id);\r\n }\r\n\r\n //getEmsSchedules(page?: number, pageSize?: number) {\r\n // return this.commonEndpoint.getPagedList(this.emsScheduleUrl + '/GetAllEmsSchedules', page, pageSize, true);\r\n //}\r\n\r\n\r\n updateEmsSchedule(emsSchedule: EmsSchedule) {\r\n if (emsSchedule.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.emsScheduleUrl, emsSchedule, emsSchedule.id).pipe(\r\n tap(data => this.onEmsSchedulesChanged([emsSchedule], EmsScheduleService.emsScheduleModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newEmsSchedule(emsSchedule: EmsSchedule) {\r\n return this.commonEndpoint.getNewEndpoint(this.emsScheduleUrl, emsSchedule).pipe(\r\n tap(data => this.onEmsSchedulesChanged([emsSchedule], EmsScheduleService.emsScheduleAddedOperation)));\r\n }\r\n\r\n\r\n deleteEmsSchedule(emsScheduleOrEmsScheduleId: string | EmsSchedule): Observable {\r\n\r\n if (typeof emsScheduleOrEmsScheduleId === 'number' || emsScheduleOrEmsScheduleId instanceof Number ||\r\n typeof emsScheduleOrEmsScheduleId === 'string' || emsScheduleOrEmsScheduleId instanceof String\r\n || typeof emsScheduleOrEmsScheduleId == 'object') {\r\n var queryStrings = \"\";\r\n var id = \"\";\r\n\r\n if (typeof emsScheduleOrEmsScheduleId == 'object') {\r\n id = emsScheduleOrEmsScheduleId.id;\r\n } else {\r\n id = emsScheduleOrEmsScheduleId;\r\n }\r\n\r\n return this.commonEndpoint.getDeleteEndpoint(this.emsScheduleUrl, id, queryStrings).pipe(\r\n tap(data => this.onEmsSchedulesChanged([data], EmsScheduleService.emsScheduleDeletedOperation)));\r\n }\r\n //else {\r\n\r\n // if (emsScheduleOrEmsScheduleId.id) {\r\n // return this.deleteEmsSchedule(emsScheduleOrEmsScheduleId.id);\r\n // }\r\n //}\r\n }\r\n\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Ems } from '../models/ems.model';\r\n\r\nexport type EmsesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type EmsesChangedEventArg = { emses: Ems[] | string[], operation: EmsesChangedOperation };\r\n\r\n@Injectable()\r\nexport class EmsService {\r\n\r\n public static readonly emsAddedOperation: EmsesChangedOperation = \"add\";\r\n public static readonly emsDeletedOperation: EmsesChangedOperation = \"delete\";\r\n public static readonly emsModifiedOperation: EmsesChangedOperation = \"modify\";\r\n\r\n private _emsesChanged = new Subject();\r\n\r\n private readonly _emsUrl: string = \"/api/ems\";\r\n get emsUrl() { return this._emsUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint) {\r\n\r\n }\r\n\r\n\r\n private onEmsesChanged(emses: Ems[] | string[], op: EmsesChangedOperation) {\r\n this._emsesChanged.next({ emses: emses, operation: op });\r\n }\r\n\r\n\r\n onEmsesCountChanged(emses: Ems[] | string[]) {\r\n return this.onEmsesChanged(emses, EmsService.emsModifiedOperation);\r\n }\r\n\r\n\r\n getEmsesChangedEvent(): Observable {\r\n return this._emsesChanged.asObservable();\r\n }\r\n\r\n getEmsById(emsId: string) {\r\n\r\n return this.commonEndpoint.getById(this.emsUrl + '/get', emsId);\r\n }\r\n\r\n getEmses(page?: number, pageSize?: number, institutionId?: string) {\r\n return this.commonEndpoint.get(this.emsUrl + '/emses/list?institutionId=' + institutionId);\r\n }\r\n\r\n updateEms(ems: Ems) {\r\n if (ems.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.emsUrl, ems, ems.id).pipe(\r\n tap(data => this.onEmsesChanged([ems], EmsService.emsModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newEms(ems: Ems) {\r\n return this.commonEndpoint.getNewEndpoint(this.emsUrl, ems).pipe(\r\n tap(data => this.onEmsesChanged([ems], EmsService.emsAddedOperation)));\r\n }\r\n\r\n\r\n deleteEms(ems: string | Ems): Observable {\r\n\r\n if (typeof ems === 'number' || ems instanceof Number ||\r\n typeof ems === 'string' || ems instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.emsUrl, ems).pipe(\r\n tap(data => this.onEmsesChanged([data], EmsService.emsDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (ems.id) {\r\n return this.deleteEms(ems.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable, Subject, throwError } from 'rxjs';\r\nimport { mergeMap, switchMap, catchError } from 'rxjs/operators';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { ResetPassword } from '../models/user-login.model';\r\n\r\n@Injectable()\r\nexport class EndpointFactory {\r\n static readonly apiVersion: string = \"1\";\r\n\r\n private readonly _loginUrl: string = \"/connect/token\";\r\n private readonly _forgotPasswordUrl: string = \"/api/account/forgotpassword\";\r\n private readonly _resetPasswordUrl: string = \"/api/account/resetpassword\";\r\n\r\n private get loginUrl() { return this.configurations.baseUrl + this._loginUrl; }\r\n private get forgotPasswordUrl() { return this.configurations.baseUrl + this._forgotPasswordUrl; }\r\n private get resetPasswordUrl() { return this.configurations.baseUrl + this._resetPasswordUrl; }\r\n\r\n private taskPauser: Subject;\r\n private isRefreshingLogin: boolean;\r\n\r\n private _authService: AuthService;\r\n\r\n private get authService() {\r\n if (!this._authService)\r\n this._authService = this.injector.get(AuthService);\r\n\r\n return this._authService;\r\n }\r\n\r\n\r\n\r\n constructor(protected http: HttpClient, protected configurations: ConfigurationService, private injector: Injector) {\r\n\r\n }\r\n\r\n getForgotPasswordEndpoint(email: string, institutionCode?: string): Observable {\r\n return this.http.post(this.forgotPasswordUrl + '?email=' + email + '&institutioncode=' + institutionCode, this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getForgotPasswordEndpoint(email, institutionCode));\r\n }));\r\n }\r\n\r\n getResetPasswordEndpoint(resetPassword: ResetPassword): Observable {\r\n return this.http.post(this.resetPasswordUrl, JSON.stringify(resetPassword), this.getRequestHeaders()).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getResetPasswordEndpoint(resetPassword));\r\n }));\r\n }\r\n\r\n getLoginEndpoint(userName: string, password: string, institutionCode: string, isExternalLogin: string = 'false', isAD: boolean = false): Observable {\r\n\r\n let header = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n\r\n let params = new HttpParams()\r\n .append('username', userName)\r\n .append('password', password)\r\n .append('grant_type', 'password')\r\n .append('isExternalLogin', isExternalLogin)\r\n .append('institutionCode', institutionCode)\r\n .append('isAD', isAD.toString())\r\n .append('scope', 'openid email phone profile offline_access roles');\r\n\r\n let requestBody = params.toString();\r\n\r\n return this.http.post(this.loginUrl, requestBody, { headers: header });\r\n }\r\n\r\n\r\n getRefreshLoginEndpoint(): Observable {\r\n\r\n let header = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json' });\r\n\r\n let params = new HttpParams()\r\n .append('refresh_token', this.authService.refreshToken)\r\n .append('id_token', this.authService.idToken)\r\n .append('grant_type', 'refresh_token')\r\n .append('scope', 'openid email phone profile offline_access roles');\r\n\r\n let requestBody = params.toString();\r\n\r\n //return this.http.post(this.loginUrl, requestBody, { headers: header });\r\n return this.http.post(this.loginUrl, requestBody, { headers: header }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.getRefreshLoginEndpoint());\r\n }));\r\n }\r\n\r\n\r\n\r\n protected getRequestHeaders(content_type?: string): { headers: HttpHeaders | { [header: string]: string | string[]; } } {\r\n let headers = new HttpHeaders({\r\n 'Authorization': 'Bearer ' + this.authService.accessToken,\r\n 'Content-Type': content_type ? content_type : 'application/json',\r\n 'Accept': `application/vnd.iman.v${EndpointFactory.apiVersion}+json, application/json, text/plain, */*`,\r\n 'App-Version': ConfigurationService.appVersion,\r\n 'ApiKey': ConfigurationService.appVersion,\r\n 'ClientId': ConfigurationService.appVersion,\r\n //'Access-Control-Allow-Origin' : '*'\r\n });\r\n\r\n return { headers: headers };\r\n }\r\n\r\n\r\n\r\n protected handleError(error, continuation: () => Observable) {\r\n console.log(error);\r\n console.log(this.isRefreshingLogin);\r\n if (error.status == 401) {\r\n if (this.isRefreshingLogin) {\r\n return this.pauseTask(continuation);\r\n }\r\n\r\n this.isRefreshingLogin = true;\r\n\r\n return this.authService.refreshLogin().pipe(\r\n mergeMap(data => {\r\n this.isRefreshingLogin = false;\r\n this.resumeTasks(true);\r\n\r\n return continuation();\r\n }),\r\n catchError(refreshLoginError => {\r\n this.isRefreshingLogin = false;\r\n this.resumeTasks(false);\r\n\r\n if (refreshLoginError.status == 401 || (refreshLoginError.url && refreshLoginError.url.toLowerCase().includes(this.loginUrl.toLowerCase()))) {\r\n this.authService.reLogin();\r\n return throwError('session expired');\r\n }\r\n else {\r\n return throwError(refreshLoginError || 'server error');\r\n }\r\n }));\r\n }\r\n\r\n if (error.url && error.url.toLowerCase().includes(this.loginUrl.toLowerCase())) {\r\n this.authService.reLogin();\r\n\r\n return throwError((error.error && error.error.error_description) ? `session expired (${error.error.error_description})` : 'session expired');\r\n }\r\n else {\r\n return throwError(error);\r\n }\r\n }\r\n\r\n\r\n\r\n private pauseTask(continuation: () => Observable) {\r\n if (!this.taskPauser)\r\n this.taskPauser = new Subject();\r\n\r\n return this.taskPauser.pipe(switchMap(continueOp => {\r\n return continueOp ? continuation() : throwError('session expired');\r\n }));\r\n }\r\n\r\n\r\n private resumeTasks(continueOp: boolean) {\r\n setTimeout(() => {\r\n if (this.taskPauser) {\r\n this.taskPauser.next(continueOp);\r\n this.taskPauser.complete();\r\n this.taskPauser = null;\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { EpaperTemplate, EpaperDevice } from '../models/epaper.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type EpaperChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type EpaperChangedEventArg = { epapers: EpaperTemplate[] | string[], operation: EpaperChangedOperation };\r\nexport type EpaperDeviceChangedEventArg = { epapers: EpaperDevice[] | string[], operation: EpaperChangedOperation };\r\n\r\n@Injectable()\r\nexport class EpaperService {\r\n\r\n public static readonly epaperAddedOperation: EpaperChangedOperation = \"add\";\r\n public static readonly epaperDeletedOperation: EpaperChangedOperation = \"delete\";\r\n public static readonly epaperModifiedOperation: EpaperChangedOperation = \"modify\";\r\n\r\n private _epapersChanged = new Subject();\r\n private _epapersDeviceChanged = new Subject();\r\n\r\n private readonly _epaperUrl: string = \"/api/epaper\";\r\n get epaperUrl() { return this.configurations.baseUrl + this._epaperUrl; }\r\n\r\n private readonly _templateUrl: string = \"/api/epaper\";\r\n get templateUrl() { return this.configurations.baseUrl + this._templateUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onEpaperChanged(epapers: EpaperTemplate[] | string[], op: EpaperChangedOperation) {\r\n this._epapersChanged.next({ epapers: epapers, operation: op });\r\n }\r\n getEpaperChangedEvent(): Observable {\r\n return this._epapersChanged.asObservable();\r\n }\r\n\r\n private onEpaperDeviceChanged(epapers: EpaperDevice[] | string[], op: EpaperChangedOperation) {\r\n this._epapersDeviceChanged.next({ epapers: epapers, operation: op });\r\n }\r\n\r\n getEpaperDeviceChangedEvent(): Observable {\r\n return this._epapersDeviceChanged.asObservable();\r\n }\r\n \r\n\r\n //mapTemplate(data: EpaperTemplate) {\r\n // var queryParams = '';\r\n // queryParams += (data ? '?template=' + data : '');\r\n // return this.commonEndpoint.get(this.epaperUrl + '/map/template', true, data.template_body, true);\r\n //}\r\n\r\n previewFromImage(data: EpaperTemplate) {\r\n return this.commonEndpoint.getNewEndpoint(this.epaperUrl + '/preview/image', data);\r\n }\r\n\r\n mapTemplate(data: EpaperTemplate) {\r\n return this.commonEndpoint.getNewEndpoint(this.epaperUrl + '/map/template', data);\r\n }\r\n\r\n postTemplateToDevice(url: string, template: EpaperTemplate) {\r\n return this.commonEndpoint.getNewEndpoint(this.epaperUrl + '/map/posttodevice', template);\r\n }\r\n\r\n postTemplateToDevice2(url: string, template: EpaperTemplate) {\r\n return null; //this.commonEndpoint.postTemplateToDevice(url, template);\r\n }\r\n\r\n getTemplateById(templateId: string) {\r\n \r\n return this.commonEndpoint.get(this.templateUrl + '/get/template?templateId=' + templateId);\r\n }\r\n\r\n getTemplateByMacAddress(macAddress: string) {\r\n return this.commonEndpoint.get(this.templateUrl + '/get/template?mac=' + macAddress);\r\n }\r\n\r\n getTemplates(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.templateUrl + '/templates/list', page, pageSize));\r\n }\r\n\r\n getRestrictionTypes(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.templateUrl + '/get/restrictiontypes', page, pageSize));\r\n }\r\n\r\n syncLocations() {\r\n return this.commonEndpoint.getPagedList(this.templateUrl + '/get/epaperlocations/sync');\r\n }\r\n\r\n //getLocations(page?: number, pageSize?: number) {\r\n\r\n // return forkJoin(\r\n // this.commonEndpoint.getPagedList(this.templateUrl + '/get/epaperlocations', page, pageSize));\r\n //}\r\n\r\n updateTemplate(template: EpaperTemplate) {\r\n if (template.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.templateUrl, template, template.id).pipe(\r\n tap(data => this.onEpaperChanged([template], EpaperService.epaperModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newTemplate(template: EpaperTemplate) {\r\n return this.commonEndpoint.getNewEndpoint(this.templateUrl, template).pipe(\r\n tap(data => this.onEpaperChanged([template], EpaperService.epaperAddedOperation)));\r\n }\r\n\r\n\r\n deleteTemplate(templateOrId: string | EpaperTemplate): Observable {\r\n\r\n if (typeof templateOrId === 'number' || templateOrId instanceof Number ||\r\n typeof templateOrId === 'string' || templateOrId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.templateUrl, templateOrId).pipe(\r\n tap(data => this.onEpaperChanged([data], EpaperService.epaperDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (templateOrId.id) {\r\n return this.deleteTemplate(templateOrId.id);\r\n }\r\n }\r\n }\r\n\r\n //epaper devices\r\n getDeviceById(deviceId: string) {\r\n\r\n return this.commonEndpoint.getById(this.templateUrl + '/get/device', deviceId);\r\n }\r\n\r\n getDevices(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.templateUrl + '/devices/list', page, pageSize),\r\n //this.commonEndpoint.getPagedList(this.templateUrl + '/get/epaperlocations', page, pageSize)\r\n );\r\n }\r\n\r\n updateEpaperDevice(device: EpaperDevice) {\r\n if (device.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.templateUrl + '/device', device, device.id).pipe(\r\n tap(data => this.onEpaperDeviceChanged([device], EpaperService.epaperModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newEpaperDevice(device: EpaperDevice) {\r\n return this.commonEndpoint.getNewEndpoint(this.templateUrl + '/device', device).pipe(\r\n tap(data => this.onEpaperDeviceChanged([device], EpaperService.epaperAddedOperation)));\r\n }\r\n\r\n\r\n deleteEpaperDevice(deviceOrId: string | EpaperDevice): Observable {\r\n\r\n if (typeof deviceOrId === 'number' || deviceOrId instanceof Number ||\r\n typeof deviceOrId === 'string' || deviceOrId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.templateUrl + '/device', deviceOrId).pipe(\r\n tap(data => this.onEpaperDeviceChanged([data], EpaperService.epaperDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (deviceOrId.id) {\r\n return this.deleteEpaperDevice(deviceOrId.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { FacilityType } from '../models/facility-type.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type FacilityTypesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type FacilityTypesChangedEventArg = { facilityTypes: FacilityType[] | string[], operation: FacilityTypesChangedOperation };\r\n\r\n@Injectable()\r\nexport class FacilityTypeService {\r\n\r\n public static readonly facilityTypeAddedOperation: FacilityTypesChangedOperation = \"add\";\r\n public static readonly facilityTypeDeletedOperation: FacilityTypesChangedOperation = \"delete\";\r\n public static readonly facilityTypeModifiedOperation: FacilityTypesChangedOperation = \"modify\";\r\n\r\n private _facilityTypesChanged = new Subject();\r\n\r\n private readonly _facilityTypeUrl: string = \"/api/facilitytype\";\r\n get facilityTypeUrl() { return this.configurations.baseUrl + this._facilityTypeUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onFacilityTypesChanged(facilityTypes: FacilityType[] | string[], op: FacilityTypesChangedOperation) {\r\n this._facilityTypesChanged.next({ facilityTypes: facilityTypes, operation: op });\r\n }\r\n\r\n\r\n onFacilityTypesCountChanged(facilityTypes: FacilityType[] | string[]) {\r\n return this.onFacilityTypesChanged(facilityTypes, FacilityTypeService.facilityTypeModifiedOperation);\r\n }\r\n\r\n\r\n getFacilityTypesChangedEvent(): Observable {\r\n return this._facilityTypesChanged.asObservable();\r\n }\r\n\r\n getFacilityTypes(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.facilityTypeUrl + '/facilitytypes/list', page, pageSize));\r\n }\r\n\r\n getFacilityTypeByInstitutionId(institutionId: string) {\r\n\r\n return this.commonEndpoint.getByInstitutionId(this.facilityTypeUrl + '/facilitytypes/list', institutionId);\r\n }\r\n\r\n updateFacilityType(facilityType: FacilityType) {\r\n if (facilityType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.facilityTypeUrl, facilityType, facilityType.id).pipe(\r\n tap(data => this.onFacilityTypesChanged([facilityType], FacilityTypeService.facilityTypeModifiedOperation)));\r\n }\r\n else {\r\n return this.commonEndpoint.getFacilityTypeByFacilityTypeNameEndpoint(facilityType.name).pipe(\r\n mergeMap(foundFacility => {\r\n facilityType.id = foundFacility.id;\r\n return this.commonEndpoint.getUpdateEndpoint(this.facilityTypeUrl, facilityType, facilityType.id)\r\n }),\r\n tap(data => this.onFacilityTypesChanged([facilityType], FacilityTypeService.facilityTypeModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newFacilityType(facilityType: FacilityType) {\r\n return this.commonEndpoint.getNewEndpoint(this.facilityTypeUrl, facilityType).pipe(\r\n tap(data => this.onFacilityTypesChanged([facilityType], FacilityTypeService.facilityTypeAddedOperation)));\r\n }\r\n\r\n\r\n deleteFacilityType(facilityOrFacilityId: string | FacilityType): Observable {\r\n\r\n if (typeof facilityOrFacilityId === 'number' || facilityOrFacilityId instanceof Number ||\r\n typeof facilityOrFacilityId === 'string' || facilityOrFacilityId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.facilityTypeUrl, facilityOrFacilityId).pipe(\r\n tap(data => this.onFacilityTypesChanged([data], FacilityTypeService.facilityTypeDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (facilityOrFacilityId.id) {\r\n return this.deleteFacilityType(facilityOrFacilityId.id);\r\n }\r\n else {\r\n return this.commonEndpoint.getFacilityTypeByFacilityTypeNameEndpoint(facilityOrFacilityId.name).pipe(\r\n mergeMap(facilityType => this.deleteFacilityType(facilityType.id)));\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Facility } from '../models/facility.model';\r\nimport { FacilityType } from '../models/facility-type.model';\r\nimport { Institution } from '../models/institution.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type FacilitiesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type FacilitiesChangedEventArg = { facilities: Facility[] | string[], operation: FacilitiesChangedOperation };\r\n\r\nexport type FacilityTypesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type FacilityTypesChangedEventArg = { facilityTypes: FacilityType[] | string[], operation: FacilityTypesChangedOperation };\r\n\r\n@Injectable()\r\nexport class FacilityService {\r\n\r\n public static readonly facilityAddedOperation: FacilitiesChangedOperation = \"add\";\r\n public static readonly facilityDeletedOperation: FacilitiesChangedOperation = \"delete\";\r\n public static readonly facilityModifiedOperation: FacilitiesChangedOperation = \"modify\";\r\n\r\n private _facilitiesChanged = new Subject();\r\n\r\n\r\n private readonly _facilityUrl: string = \"/api/facility\";\r\n get facilityUrl() { return this.configurations.baseUrl + this._facilityUrl; }\r\n\r\n private readonly _institutionUrl: string = \"/api/institution\";\r\n get institutionUrl() { return this.configurations.baseUrl + this._institutionUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onFacilitiesChanged(facilities: Facility[] | string[], op: FacilitiesChangedOperation) {\r\n this._facilitiesChanged.next({ facilities: facilities, operation: op });\r\n }\r\n\r\n\r\n onFacilitiesUserCountChanged(facilities: Facility[] | string[]) {\r\n return this.onFacilitiesChanged(facilities, FacilityService.facilityModifiedOperation);\r\n }\r\n\r\n\r\n getFacilitiesChangedEvent(): Observable {\r\n return this._facilitiesChanged.asObservable();\r\n }\r\n\r\n getFacilitiesAndFacilityTypes(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getFacilitiesEndpoint(page, pageSize, institutionId),\r\n //this.commonEndpoint.getFacilityTypesEndpoint(null, null, institutionId),\r\n this.commonEndpoint.getPagedList(this.institutionUrl + '/institutions/list'));\r\n }\r\n\r\n getFacilitiesByInstitutionId(institutionId: string, page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getFacilitiesEndpoint(null, null, institutionId));\r\n }\r\n\r\n updateFacility(facility: Facility) {\r\n if (facility.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.facilityUrl, facility, facility.id).pipe(\r\n tap(data => this.onFacilitiesChanged([facility], FacilityService.facilityModifiedOperation)));\r\n }\r\n else {\r\n return this.commonEndpoint.getFacilityByFacilityNameEndpoint(facility.name).pipe(\r\n mergeMap(foundFacility => {\r\n facility.id = foundFacility.id;\r\n return this.commonEndpoint.getUpdateEndpoint(this.facilityUrl, facility, facility.id)\r\n }),\r\n tap(data => this.onFacilitiesChanged([facility], FacilityService.facilityModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newFacility(facility: Facility) {\r\n return this.commonEndpoint.getNewEndpoint(this.facilityUrl, facility).pipe(\r\n tap(data => this.onFacilitiesChanged([facility], FacilityService.facilityAddedOperation)));\r\n }\r\n\r\n\r\n deleteFacility(facilityOrFacilityId: string | Facility): Observable {\r\n\r\n if (typeof facilityOrFacilityId === 'number' || facilityOrFacilityId instanceof Number ||\r\n typeof facilityOrFacilityId === 'string' || facilityOrFacilityId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.facilityUrl, facilityOrFacilityId).pipe(\r\n tap(data => this.onFacilitiesChanged([data], FacilityService.facilityDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (facilityOrFacilityId.id) {\r\n return this.deleteFacility(facilityOrFacilityId.id);\r\n }\r\n else {\r\n return this.commonEndpoint.getFacilityByFacilityNameEndpoint(facilityOrFacilityId.name).pipe(\r\n mergeMap(facility => this.deleteFacility(facility.id)));\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap, catchError } from 'rxjs/operators';\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\n\r\n@Injectable()\r\nexport class FileService extends EndpointFactory {\r\n\r\n private readonly _fileApiUrl: string = \"/api/file\";\r\n get fileApiUrl() { return this.configurations.baseUrl + this._fileApiUrl; }\r\n\r\n constructor(http: HttpClient, configurations: ConfigurationService, injector: Injector) {\r\n\r\n super(http, configurations, injector);\r\n }\r\n\r\n uploadFile(data: any): Observable {\r\n\r\n return this.http.post(this.fileApiUrl + '/upload', data, { reportProgress: true, observe: 'events' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.uploadFile(data));\r\n }));\r\n }\r\n\r\n getFile(filePath: string) {\r\n return this.configurations.baseUrl + '\\\\' + filePath;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Floor } from '../models/floor.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type FloorsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type FloorsChangedEventArg = { floors: Floor[] | string[], operation: FloorsChangedOperation };\r\n\r\n@Injectable()\r\nexport class FloorService {\r\n\r\n public static readonly floorAddedOperation: FloorsChangedOperation = \"add\";\r\n public static readonly floorDeletedOperation: FloorsChangedOperation = \"delete\";\r\n public static readonly floorModifiedOperation: FloorsChangedOperation = \"modify\";\r\n\r\n private _floorsChanged = new Subject();\r\n\r\n private readonly _floorUrl: string = \"/api/floor\";\r\n get floorUrl() { return this.configurations.baseUrl + this._floorUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onFloorsChanged(floors: Floor[] | string[], op: FloorsChangedOperation) {\r\n this._floorsChanged.next({ floors: floors, operation: op });\r\n }\r\n\r\n\r\n onFloorsCountChanged(floors: Floor[] | string[]) {\r\n return this.onFloorsChanged(floors, FloorService.floorModifiedOperation);\r\n }\r\n\r\n\r\n getFloorsChangedEvent(): Observable {\r\n return this._floorsChanged.asObservable();\r\n }\r\n\r\n getFloors(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.floorUrl + '/list', page, pageSize));\r\n }\r\n\r\n getFloorByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.floorUrl + '/list', institutionId));\r\n }\r\n\r\n getFloorByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.floorUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n updateFloor(floor: Floor) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.floorUrl, floor, floor.id).pipe(\r\n tap(data => this.onFloorsChanged([floor], FloorService.floorModifiedOperation)));\r\n }\r\n\r\n newFloor(floor: Floor) {\r\n return this.commonEndpoint.getNewEndpoint(this.floorUrl, floor).pipe(\r\n tap(data => this.onFloorsChanged([floor], FloorService.floorAddedOperation)));\r\n }\r\n\r\n\r\n deleteFloor(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.floorUrl, id).pipe(\r\n tap(data => this.onFloorsChanged([data], FloorService.floorDeletedOperation)));\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap, catchError } from 'rxjs/operators';\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\nimport { Image } from '../models/image.model';\r\n\r\n@Injectable()\r\nexport class ImageFileService extends EndpointFactory {\r\n\r\n private readonly _fileApiUrl: string = \"/api/imagefile\";\r\n get fileApiUrl() { return this.configurations.baseUrl + this._fileApiUrl; }\r\n\r\n\r\n constructor(http: HttpClient, configurations: ConfigurationService, injector: Injector, private router: Router,\r\n private commonEndpoint: CommonEndpoint) {\r\n\r\n super(http, configurations, injector);\r\n }\r\n\r\n uploadFile(data: any): Observable {\r\n\r\n return this.http.post(this.fileApiUrl + '/upload', data, { reportProgress: true, observe: 'events' }).pipe(\r\n catchError(error => {\r\n return this.handleError(error, () => this.uploadFile(data));\r\n }));\r\n }\r\n\r\n getFile(filePath: string) {\r\n return this.configurations.baseUrl + '\\\\' + filePath;\r\n }\r\n\r\n newImage(image: Image) {\r\n return this.commonEndpoint.getNewEndpoint(this.fileApiUrl, image);\r\n }\r\n\r\n updateImage(image: Image) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.fileApiUrl, image, image.id);\r\n }\r\n\r\n getImages(page?: number, pageSize?: number, institutionId?: string, institutionCode?: string, userId?: string) {\r\n var queryParams = '';\r\n if (userId) queryParams += '?userId=' + userId;\r\n else if (institutionId) queryParams += '?institutionId=' + institutionId;\r\n else if (institutionCode) queryParams += '?institutionCode=' + institutionCode;\r\n \r\n\r\n if (queryParams == '') {\r\n return this.commonEndpoint.getPagedList(this.fileApiUrl + '/images/list', page, pageSize);\r\n } else {\r\n return this.commonEndpoint.get(this.fileApiUrl + '/images/list' + queryParams);\r\n }\r\n }\r\n\r\n deleteImage(imageOrImageId: string | Image): Observable {\r\n\r\n if (typeof imageOrImageId === 'number' || imageOrImageId instanceof Number ||\r\n typeof imageOrImageId === 'string' || imageOrImageId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.fileApiUrl, imageOrImageId);\r\n }\r\n else {\r\n\r\n if (imageOrImageId.id) {\r\n return this.deleteImage(imageOrImageId.id);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { ImageReferenceColor } from '../models/image-reference-color.model';\r\n\r\nexport type ImageReferenceColorsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type ImageReferenceColorsChangedEventArg = { imageReferenceColors: ImageReferenceColor[] | string[], operation: ImageReferenceColorsChangedOperation };\r\n\r\n@Injectable()\r\nexport class ImageReferenceColorService {\r\n\r\n public static readonly imageReferenceColorAddedOperation: ImageReferenceColorsChangedOperation = \"add\";\r\n public static readonly imageReferenceColorDeletedOperation: ImageReferenceColorsChangedOperation = \"delete\";\r\n public static readonly imageReferenceColorModifiedOperation: ImageReferenceColorsChangedOperation = \"modify\";\r\n\r\n private _imageReferenceColorsChanged = new Subject();\r\n\r\n private readonly _imageReferenceColorUrl: string = \"/api/imagereferencecolor\";\r\n get imageReferenceColorUrl() { return this.configurations.baseUrl + this._imageReferenceColorUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n \r\n getImageReferenceColorById(imageReferenceColorId: string) {\r\n\r\n return this.commonEndpoint.getById(this.imageReferenceColorUrl + '/get', imageReferenceColorId);\r\n }\r\n\r\n getImageReferenceColorsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.imageReferenceColorUrl + '/imagereferencecolors/sieve/list', filter);\r\n }\r\n\r\n updateImageReferenceColor(imageReferenceColor: ImageReferenceColor) {\r\n if (imageReferenceColor.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.imageReferenceColorUrl, imageReferenceColor, imageReferenceColor.id);\r\n }\r\n }\r\n\r\n\r\n newImageReferenceColor(imageReferenceColor: ImageReferenceColor) {\r\n return this.commonEndpoint.getNewEndpoint(this.imageReferenceColorUrl, imageReferenceColor);\r\n }\r\n\r\n\r\n deleteImageReferenceColor(imageReferenceColorOrImageReferenceColorId: string | ImageReferenceColor): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.imageReferenceColorUrl, imageReferenceColorOrImageReferenceColorId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { ImageReferenceType } from '../models/image-reference-type.model';\r\n\r\nexport type ImageReferenceTypesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type ImageReferenceTypesChangedEventArg = { imageReferenceTypes: ImageReferenceType[] | string[], operation: ImageReferenceTypesChangedOperation };\r\n\r\n@Injectable()\r\nexport class ImageReferenceTypeService {\r\n\r\n public static readonly imageReferenceTypeAddedOperation: ImageReferenceTypesChangedOperation = \"add\";\r\n public static readonly imageReferenceTypeDeletedOperation: ImageReferenceTypesChangedOperation = \"delete\";\r\n public static readonly imageReferenceTypeModifiedOperation: ImageReferenceTypesChangedOperation = \"modify\";\r\n\r\n private _imageReferenceTypesChanged = new Subject();\r\n\r\n private readonly _imageReferenceTypeUrl: string = \"/api/imagereferencetype\";\r\n get imageReferenceTypeUrl() { return this.configurations.baseUrl + this._imageReferenceTypeUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n \r\n getImageReferenceTypeById(imageReferenceTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.imageReferenceTypeUrl + '/get', imageReferenceTypeId);\r\n }\r\n\r\n getImageReferenceTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.imageReferenceTypeUrl + '/imagereferencetypes/sieve/list', filter);\r\n }\r\n\r\n updateImageReferenceType(imageReferenceType: ImageReferenceType) {\r\n if (imageReferenceType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.imageReferenceTypeUrl, imageReferenceType, imageReferenceType.id);\r\n }\r\n }\r\n\r\n\r\n newImageReferenceType(imageReferenceType: ImageReferenceType) {\r\n return this.commonEndpoint.getNewEndpoint(this.imageReferenceTypeUrl, imageReferenceType);\r\n }\r\n\r\n\r\n deleteImageReferenceType(imageReferenceTypeOrImageReferenceTypeId: string | ImageReferenceType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.imageReferenceTypeUrl, imageReferenceTypeOrImageReferenceTypeId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Institution } from '../models/institution.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type InstitutionsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type InstitutionsChangedEventArg = { institutions: Institution[] | string[], operation: InstitutionsChangedOperation };\r\n\r\n@Injectable()\r\nexport class InstitutionService {\r\n\r\n public static readonly institutionAddedOperation: InstitutionsChangedOperation = \"add\";\r\n public static readonly institutionDeletedOperation: InstitutionsChangedOperation = \"delete\";\r\n public static readonly institutionModifiedOperation: InstitutionsChangedOperation = \"modify\";\r\n\r\n private _institutionsChanged = new Subject();\r\n\r\n private readonly _institutionUrl: string = \"/api/institution\";\r\n get institutionUrl() { return this.configurations.baseUrl + this._institutionUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onInstitutionsChanged(institutions: Institution[] | string[], op: InstitutionsChangedOperation) {\r\n this._institutionsChanged.next({ institutions: institutions, operation: op });\r\n }\r\n\r\n\r\n onInstitutionsCountChanged(institutions: Institution[] | string[]) {\r\n return this.onInstitutionsChanged(institutions, InstitutionService.institutionModifiedOperation);\r\n }\r\n\r\n\r\n getInstitutionsChangedEvent(): Observable {\r\n return this._institutionsChanged.asObservable();\r\n }\r\n\r\n getInstitutionById(institutionId: string) {\r\n\r\n return this.commonEndpoint.getByInstitutionId(this.institutionUrl + '/get', institutionId);\r\n }\r\n\r\n getInstitutions(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.institutionUrl + '/institutions/list', page, pageSize));\r\n }\r\n\r\n updateInstitution(institution: Institution) {\r\n if (institution.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.institutionUrl, institution, institution.id).pipe(\r\n tap(data => this.onInstitutionsChanged([institution], InstitutionService.institutionModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newInstitution(institution: Institution) {\r\n return this.commonEndpoint.getNewEndpoint(this.institutionUrl, institution).pipe(\r\n tap(data => this.onInstitutionsChanged([institution], InstitutionService.institutionAddedOperation)));\r\n }\r\n\r\n\r\n deleteInstitution(facilityOrFacilityId: string | Institution): Observable {\r\n\r\n if (typeof facilityOrFacilityId === 'number' || facilityOrFacilityId instanceof Number ||\r\n typeof facilityOrFacilityId === 'string' || facilityOrFacilityId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.institutionUrl, facilityOrFacilityId).pipe(\r\n tap(data => this.onInstitutionsChanged([data], InstitutionService.institutionDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (facilityOrFacilityId.id) {\r\n return this.deleteInstitution(facilityOrFacilityId.id);\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * Helper class to decode and find JWT expiration.\r\n */\r\nimport { Injectable } from '@angular/core';\r\n\r\n\r\n@Injectable()\r\nexport class JwtHelper {\r\n\r\n public urlBase64Decode(str: string): string {\r\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n switch (output.length % 4) {\r\n case 0: { break; }\r\n case 2: { output += '=='; break; }\r\n case 3: { output += '='; break; }\r\n default: {\r\n throw 'Illegal base64url string!';\r\n }\r\n }\r\n return this.b64DecodeUnicode(output);\r\n }\r\n\r\n // https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\r\n private b64DecodeUnicode(str: any) {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c: any) => {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n }\r\n\r\n public decodeToken(token: string): any {\r\n let parts = token.split('.');\r\n\r\n if (parts.length !== 3) {\r\n throw new Error('JWT must have 3 parts');\r\n }\r\n\r\n let decoded = this.urlBase64Decode(parts[1]);\r\n if (!decoded) {\r\n throw new Error('Cannot decode the token');\r\n }\r\n\r\n return JSON.parse(decoded);\r\n }\r\n\r\n public getTokenExpirationDate(token: string): Date {\r\n let decoded: any;\r\n decoded = this.decodeToken(token);\r\n\r\n if (!decoded.hasOwnProperty('exp')) {\r\n return null;\r\n }\r\n\r\n let date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(decoded.exp);\r\n\r\n return date;\r\n }\r\n\r\n public isTokenExpired(token: string, offsetSeconds?: number): boolean {\r\n let date = this.getTokenExpirationDate(token);\r\n offsetSeconds = offsetSeconds || 0;\r\n\r\n if (date == null) {\r\n return false;\r\n }\r\n\r\n // Token expired?\r\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { KioskSettings } from '../models/kiosk-settings.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\n//export type ContactGroupsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\n//export type ContactGroupsChangedEventArg = { contactgroups: ContactGroup[] | string[], operation: ContactGroupsChangedOperation };\r\n\r\n@Injectable()\r\nexport class KioskSettingsService {\r\n\r\n //public static readonly contactgroupAddedOperation: ContactGroupsChangedOperation = \"add\";\r\n //public static readonly contactgroupDeletedOperation: ContactGroupsChangedOperation = \"delete\";\r\n //public static readonly contactgroupModifiedOperation: ContactGroupsChangedOperation = \"modify\";\r\n\r\n //private _contactgroupsChanged = new Subject();\r\n\r\n private readonly _kioskSettingsUrl: string = \"/api/kioskSettings\";\r\n get kioskSettingsUrl() { return this.configurations.baseUrl + this._kioskSettingsUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n //private onContactGroupsChanged(contactgroups: ContactGroup[] | string[], op: ContactGroupsChangedOperation) {\r\n // this._contactgroupsChanged.next({ contactgroups: contactgroups, operation: op });\r\n //}\r\n\r\n\r\n //onContactGroupsCountChanged(contactgroups: ContactGroup[] | string[]) {\r\n // return this.onContactGroupsChanged(contactgroups, ContactGroupService.contactgroupModifiedOperation);\r\n //}\r\n\r\n\r\n //getContactGroupsChangedEvent(): Observable {\r\n // return this._contactgroupsChanged.asObservable();\r\n //}\r\n\r\n getKioskSettingsById(kioskSettingsId: string) {\r\n\r\n return this.commonEndpoint.getById(this.kioskSettingsUrl, kioskSettingsId);\r\n }\r\n\r\n getKioskSettings(page?: number, pageSize?: number, institutionId?: string) {\r\n return this.commonEndpoint.getPagedList(this.kioskSettingsUrl + '/kioskSettings/list?institutionId=' + institutionId, page, pageSize);\r\n }\r\n\r\n updateKioskSettings(kioskSettings: KioskSettings) {\r\n if (kioskSettings.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.kioskSettingsUrl, kioskSettings, kioskSettings.id);\r\n }\r\n }\r\n\r\n\r\n newKioskSettings(kioskSettings: KioskSettings) {\r\n return this.commonEndpoint.getNewEndpoint(this.kioskSettingsUrl, kioskSettings);\r\n }\r\n\r\n\r\n deletekioskSettings(kioskSettingsOrKioskSettingsId: string | KioskSettings): Observable {\r\n\r\n if (typeof kioskSettingsOrKioskSettingsId === 'number' || kioskSettingsOrKioskSettingsId instanceof Number ||\r\n typeof kioskSettingsOrKioskSettingsId === 'string' || kioskSettingsOrKioskSettingsId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.kioskSettingsUrl, kioskSettingsOrKioskSettingsId);\r\n }\r\n else {\r\n\r\n if (kioskSettingsOrKioskSettingsId.id) {\r\n return this.deletekioskSettings(kioskSettingsOrKioskSettingsId.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { Utilities } from './utilities';\r\n\r\n@Injectable()\r\n/**\r\n* Provides a wrapper for accessing the web storage API and synchronizing session storage across tabs/windows.\r\n*/\r\nexport class LocalStoreManager {\r\n\r\n private static syncListenerInitialised = false;\r\n private syncKeys: string[] = [];\r\n private initEvent = new Subject();\r\n\r\n private reservedKeys: string[] =\r\n [\r\n 'sync_keys',\r\n 'addToSyncKeys',\r\n 'removeFromSyncKeys',\r\n 'getSessionStorage',\r\n 'setSessionStorage',\r\n 'addToSessionStorage',\r\n 'removeFromSessionStorage',\r\n 'clearAllSessionsStorage'\r\n ];\r\n\r\n public static readonly DBKEY_USER_DATA = \"user_data\";\r\n private static readonly DBKEY_SYNC_KEYS = \"sync_keys\";\r\n\r\n\r\n public initialiseStorageSyncListener() {\r\n if (LocalStoreManager.syncListenerInitialised == true)\r\n return;\r\n\r\n LocalStoreManager.syncListenerInitialised = true;\r\n window.addEventListener(\"storage\", this.sessionStorageTransferHandler, false);\r\n this.syncSessionStorage();\r\n }\r\n\r\n\r\n\r\n public deinitialiseStorageSyncListener() {\r\n\r\n window.removeEventListener(\"storage\", this.sessionStorageTransferHandler, false);\r\n\r\n LocalStoreManager.syncListenerInitialised = false;\r\n }\r\n\r\n\r\n\r\n\r\n private sessionStorageTransferHandler = (event: StorageEvent) => {\r\n\r\n if (!event.newValue)\r\n return;\r\n\r\n if (event.key == 'getSessionStorage') {\r\n\r\n if (sessionStorage.length) {\r\n this.localStorageSetItem('setSessionStorage', sessionStorage);\r\n localStorage.removeItem('setSessionStorage');\r\n }\r\n }\r\n else if (event.key == 'setSessionStorage') {\r\n\r\n if (!this.syncKeys.length)\r\n this.loadSyncKeys();\r\n\r\n let data = JSON.parse(event.newValue);\r\n //console.info(\"Set => Key: Transfer setSessionStorage\" + \", data: \" + JSON.stringify(data));\r\n\r\n for (let key in data) {\r\n\r\n if (this.syncKeysContains(key))\r\n this.sessionStorageSetItem(key, JSON.parse(data[key]));\r\n }\r\n\r\n this.onInit();\r\n }\r\n else if (event.key == 'addToSessionStorage') {\r\n\r\n let data = JSON.parse(event.newValue);\r\n\r\n //console.warn(\"Set => Key: Transfer addToSessionStorage\" + \", data: \" + JSON.stringify(data));\r\n\r\n this.addToSessionStorageHelper(data[\"data\"], data[\"key\"]);\r\n }\r\n else if (event.key == 'removeFromSessionStorage') {\r\n\r\n this.removeFromSessionStorageHelper(event.newValue);\r\n }\r\n else if (event.key == 'clearAllSessionsStorage' && sessionStorage.length) {\r\n\r\n this.clearInstanceSessionStorage();\r\n }\r\n else if (event.key == 'addToSyncKeys') {\r\n\r\n this.addToSyncKeysHelper(event.newValue);\r\n }\r\n else if (event.key == 'removeFromSyncKeys') {\r\n\r\n this.removeFromSyncKeysHelper(event.newValue);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n private syncSessionStorage() {\r\n\r\n localStorage.setItem('getSessionStorage', '_dummy');\r\n localStorage.removeItem('getSessionStorage');\r\n }\r\n\r\n\r\n public clearAllStorage() {\r\n\r\n this.clearAllSessionsStorage();\r\n this.clearLocalStorage();\r\n }\r\n\r\n\r\n public clearAllSessionsStorage() {\r\n\r\n this.clearInstanceSessionStorage();\r\n localStorage.removeItem(LocalStoreManager.DBKEY_SYNC_KEYS);\r\n\r\n localStorage.setItem('clearAllSessionsStorage', '_dummy');\r\n localStorage.removeItem('clearAllSessionsStorage');\r\n }\r\n\r\n\r\n public clearInstanceSessionStorage() {\r\n\r\n sessionStorage.clear();\r\n this.syncKeys = [];\r\n }\r\n\r\n\r\n public clearLocalStorage() {\r\n localStorage.clear();\r\n }\r\n\r\n\r\n\r\n\r\n private addToSessionStorage(data: any, key: string) {\r\n\r\n this.addToSessionStorageHelper(data, key);\r\n this.addToSyncKeysBackup(key);\r\n\r\n this.localStorageSetItem('addToSessionStorage', { key: key, data: data });\r\n localStorage.removeItem('addToSessionStorage');\r\n }\r\n\r\n private addToSessionStorageHelper(data: any, key: string) {\r\n\r\n this.addToSyncKeysHelper(key);\r\n this.sessionStorageSetItem(key, data);\r\n }\r\n\r\n\r\n private removeFromSessionStorage(keyToRemove: string) {\r\n\r\n this.removeFromSessionStorageHelper(keyToRemove);\r\n this.removeFromSyncKeysBackup(keyToRemove);\r\n\r\n localStorage.setItem('removeFromSessionStorage', keyToRemove);\r\n localStorage.removeItem('removeFromSessionStorage');\r\n }\r\n\r\n\r\n private removeFromSessionStorageHelper(keyToRemove: string) {\r\n\r\n sessionStorage.removeItem(keyToRemove);\r\n this.removeFromSyncKeysHelper(keyToRemove);\r\n }\r\n\r\n\r\n private testForInvalidKeys(key: string) {\r\n\r\n if (!key)\r\n throw new Error(\"key cannot be empty\")\r\n\r\n if (this.reservedKeys.some(x => x == key))\r\n throw new Error(`The storage key \"${key}\" is reserved and cannot be used. Please use a different key`);\r\n }\r\n\r\n\r\n private syncKeysContains(key: string) {\r\n\r\n return this.syncKeys.some(x => x == key);\r\n }\r\n\r\n\r\n private loadSyncKeys() {\r\n\r\n if (this.syncKeys.length)\r\n return;\r\n\r\n this.syncKeys = this.getSyncKeysFromStorage();\r\n }\r\n\r\n\r\n private getSyncKeysFromStorage(defaultValue: string[] = []): string[] {\r\n\r\n let data = this.localStorageGetItem(LocalStoreManager.DBKEY_SYNC_KEYS);\r\n\r\n if (data == null)\r\n return defaultValue;\r\n else\r\n return data;\r\n }\r\n\r\n\r\n private addToSyncKeys(key: string) {\r\n\r\n this.addToSyncKeysHelper(key);\r\n this.addToSyncKeysBackup(key);\r\n\r\n localStorage.setItem('addToSyncKeys', key);\r\n localStorage.removeItem('addToSyncKeys');\r\n }\r\n\r\n\r\n private addToSyncKeysBackup(key: string) {\r\n\r\n let storedSyncKeys = this.getSyncKeysFromStorage();\r\n\r\n if (!storedSyncKeys.some(x => x == key)) {\r\n storedSyncKeys.push(key);\r\n this.localStorageSetItem(LocalStoreManager.DBKEY_SYNC_KEYS, storedSyncKeys);\r\n }\r\n }\r\n\r\n private removeFromSyncKeysBackup(key: string) {\r\n\r\n let storedSyncKeys = this.getSyncKeysFromStorage();\r\n\r\n let index = storedSyncKeys.indexOf(key);\r\n\r\n if (index > -1) {\r\n storedSyncKeys.splice(index, 1);\r\n this.localStorageSetItem(LocalStoreManager.DBKEY_SYNC_KEYS, storedSyncKeys);\r\n }\r\n }\r\n\r\n\r\n private addToSyncKeysHelper(key: string) {\r\n\r\n if (!this.syncKeysContains(key))\r\n this.syncKeys.push(key);\r\n }\r\n\r\n\r\n\r\n private removeFromSyncKeys(key: string) {\r\n\r\n this.removeFromSyncKeysHelper(key);\r\n this.removeFromSyncKeysBackup(key);\r\n\r\n localStorage.setItem('removeFromSyncKeys', key);\r\n localStorage.removeItem('removeFromSyncKeys');\r\n }\r\n\r\n\r\n private removeFromSyncKeysHelper(key: string) {\r\n\r\n let index = this.syncKeys.indexOf(key);\r\n\r\n if (index > -1) {\r\n this.syncKeys.splice(index, 1);\r\n }\r\n }\r\n\r\n\r\n public saveSessionData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n this.removeFromSyncKeys(key);\r\n localStorage.removeItem(key);\r\n this.sessionStorageSetItem(key, data);\r\n }\r\n\r\n\r\n public saveSyncedSessionData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n localStorage.removeItem(key);\r\n this.addToSessionStorage(data, key);\r\n }\r\n\r\n\r\n public savePermanentData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n this.removeFromSessionStorage(key);\r\n this.localStorageSetItem(key, data);\r\n }\r\n\r\n\r\n\r\n public moveDataToSessionStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n let data = this.getData(key);\r\n\r\n if (data == null)\r\n return;\r\n\r\n this.saveSessionData(data, key);\r\n }\r\n\r\n\r\n public moveDataToSyncedSessionStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n let data = this.getData(key);\r\n\r\n if (data == null)\r\n return;\r\n\r\n this.saveSyncedSessionData(data, key);\r\n }\r\n\r\n\r\n public moveDataToPermanentStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n let data = this.getData(key);\r\n\r\n if (data == null)\r\n return;\r\n\r\n this.savePermanentData(data, key);\r\n }\r\n\r\n\r\n public exists(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n let data = sessionStorage.getItem(key);\r\n\r\n if (data == null)\r\n data = localStorage.getItem(key);\r\n\r\n return data != null;\r\n }\r\n\r\n\r\n public getData(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n let data = this.sessionStorageGetItem(key);\r\n\r\n if (data == null)\r\n data = this.localStorageGetItem(key);\r\n\r\n return data;\r\n }\r\n\r\n\r\n public getDataObject(key = LocalStoreManager.DBKEY_USER_DATA, isDateType = false): T {\r\n\r\n let data = this.getData(key);\r\n\r\n if (data != null) {\r\n if (isDateType)\r\n data = new Date(data);\r\n\r\n return data;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n\r\n public deleteData(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n\r\n this.testForInvalidKeys(key);\r\n\r\n this.removeFromSessionStorage(key);\r\n localStorage.removeItem(key);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n private localStorageSetItem(key: string, data: any) {\r\n localStorage.setItem(key, JSON.stringify(data));\r\n }\r\n\r\n private sessionStorageSetItem(key: string, data: any) {\r\n sessionStorage.setItem(key, JSON.stringify(data));\r\n }\r\n\r\n\r\n private localStorageGetItem(key: string) {\r\n return Utilities.JSonTryParse(localStorage.getItem(key));\r\n }\r\n\r\n private sessionStorageGetItem(key: string) {\r\n return Utilities.JSonTryParse(sessionStorage.getItem(key));\r\n }\r\n\r\n\r\n\r\n\r\n\r\n private onInit() {\r\n setTimeout(() => {\r\n this.initEvent.next();\r\n this.initEvent.complete();\r\n });\r\n }\r\n\r\n\r\n public getInitEvent(): Observable<{}> {\r\n return this.initEvent.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { catchError, mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Location, LocationTreeFilter, LocationType } from '../models/location.model';\r\nimport { Institution } from '../models/institution.model';\r\nimport { Facility } from '../models/facility.model';\r\nimport { CalendarFilter } from '../models/reservation.model';\r\nimport { LocationTree } from '../models/location-tree.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { EndpointFactory } from './endpoint-factory.service';\r\n\r\nexport type LocationsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type LocationsChangedEventArg = { locations: Location[] | string[], operation: LocationsChangedOperation };\r\n\r\n@Injectable()\r\nexport class LocationService {\r\n\r\n public static readonly locationAddedOperation: LocationsChangedOperation = \"add\";\r\n public static readonly locationDeletedOperation: LocationsChangedOperation = \"delete\";\r\n public static readonly locationModifiedOperation: LocationsChangedOperation = \"modify\";\r\n\r\n private _locationsChanged = new Subject();\r\n\r\n\r\n private readonly _locationUrl: string = \"/api/location\";\r\n get locationUrl() { return this.configurationService.baseUrl + this._locationUrl; }\r\n\r\n private readonly _institutionUrl: string = \"/api/institution\";\r\n get institutionUrl() { return this.configurationService.baseUrl + this._institutionUrl; }\r\n\r\n private readonly _simpleresultUrl: string = \"/api/simpleresult\";\r\n get simpleresultUrl() { return this.configurationService.baseUrl + this._simpleresultUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, private configurationService: ConfigurationService) {\r\n }\r\n\r\n\r\n private onLocationsChanged(locations: Location[] | string[], op: LocationsChangedOperation) {\r\n this._locationsChanged.next({ locations: locations, operation: op });\r\n }\r\n\r\n\r\n onLocationsUserCountChanged(locations: Location[] | string[]) {\r\n return this.onLocationsChanged(locations, LocationService.locationModifiedOperation);\r\n }\r\n\r\n\r\n getLocationsChangedEvent(): Observable {\r\n return this._locationsChanged.asObservable();\r\n }\r\n\r\n getLocations(page?: number, pageSize?: number, institutionId?: string, isBooking?: boolean) {\r\n\r\n return this.commonEndpoint.getPagedList(this.locationUrl + '/locations/list?institutionId=' + institutionId + '&isBooking=' + isBooking, page, pageSize);\r\n }\r\n\r\n getLocationsByUser(userId?: string, isBooking?: boolean) {\r\n\r\n return this.commonEndpoint.getPagedList(this.locationUrl + '/signage/' + userId + '/' + isBooking, null, null);\r\n }\r\n\r\n getLocationById(id: string) {\r\n\r\n return this.commonEndpoint.getById(this.locationUrl, id);\r\n }\r\n\r\n getLocationTree(filter?: LocationTreeFilter) {\r\n return this.commonEndpoint.getLocationTree(this.locationUrl + '/locationtree', filter);\r\n }\r\n\r\n getLocationsAndInstitutions(page?: number, pageSize?: number, institutionId?: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.locationUrl + '/locations/list?institutionId=' + institutionId, page, pageSize),\r\n this.commonEndpoint.getPagedList(this.institutionUrl + '/institutions/list'));\r\n }\r\n\r\n getLocationsAndFacilities(institutionId?: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.locationUrl + '/locations/list?institutionId=' + institutionId),\r\n this.commonEndpoint.getFacilitiesEndpoint(null, null, institutionId),);\r\n }\r\n\r\n getLocationsByInstitutionId(id: number | string) {\r\n return this.commonEndpoint.getPagedList(this.locationUrl + '/locations/list?institutionId=' + id.toString());\r\n \r\n }\r\n\r\n getAvailableLocations(filter: CalendarFilter) {\r\n return this.commonEndpoint.getReservations(this.locationUrl + '/GetAvailableLocations', filter);\r\n }\r\n\r\n getCalendarLocations(filter: CalendarFilter) {\r\n return this.commonEndpoint.getReservations(this.locationUrl + '/getcalendarlocations', filter);\r\n }\r\n\r\n getLocationTypes() {\r\n\r\n return this.commonEndpoint.getPagedList(this.locationUrl + '/locationtypes');\r\n }\r\n\r\n updateLocation(location: Location) {\r\n if (location.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.locationUrl, location, location.id).pipe(\r\n tap(data => this.onLocationsChanged([location], LocationService.locationModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newLocation(location: Location) {\r\n return this.commonEndpoint.getNewEndpoint(this.locationUrl, location).pipe(\r\n tap(data => this.onLocationsChanged([location], LocationService.locationAddedOperation)));\r\n }\r\n\r\n\r\n deleteLocation(locationOrLocationId: string | Location): Observable {\r\n\r\n if (typeof locationOrLocationId === 'number' || locationOrLocationId instanceof Number ||\r\n typeof locationOrLocationId === 'string' || locationOrLocationId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.locationUrl, locationOrLocationId).pipe(\r\n tap(data => this.onLocationsChanged([data], LocationService.locationDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (locationOrLocationId.id) {\r\n return this.deleteLocation(locationOrLocationId.id);\r\n }\r\n }\r\n }\r\n\r\n importFile(data: any): Observable {\r\n\r\n return this.commonEndpoint.importFile(this.locationUrl + '/importtree?institutionId=' + this.authService.currentUser.institutionId, data);\r\n }\r\n\r\n syncSmartRoomResources(institutionId?: string) {\r\n\r\n return this.commonEndpoint.get(this.locationUrl + `/syncSmartRoomResources?institutionId=${institutionId}`);\r\n }\r\n\r\n syncSmartRoomSchedules(institutionId?: string) {\r\n return this.commonEndpoint.get(this.locationUrl + `/syncSmartRoomSchedules?institutionId=${institutionId}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { MapModel } from '../models/map.model';\r\nimport { PointModel } from '../models/point.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type MapsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type MapsChangedEventArg = { maps: MapModel[] | string[], operation: MapsChangedOperation };\r\n\r\n@Injectable()\r\nexport class MapService {\r\n\r\n public static readonly mapAddedOperation: MapsChangedOperation = \"add\";\r\n public static readonly mapDeletedOperation: MapsChangedOperation = \"delete\";\r\n public static readonly mapModifiedOperation: MapsChangedOperation = \"modify\";\r\n\r\n private _mapsChanged = new Subject();\r\n\r\n private readonly _mapUrl: string = \"/api/map\";\r\n get mapUrl() { return this.configurations.baseUrl + this._mapUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onMapsChanged(maps: MapModel[] | string[], op: MapsChangedOperation) {\r\n this._mapsChanged.next({ maps: maps, operation: op });\r\n }\r\n\r\n\r\n onMapsCountChanged(maps: MapModel[] | string[]) {\r\n return this.onMapsChanged(maps, MapService.mapModifiedOperation);\r\n }\r\n\r\n\r\n getMapsChangedEvent(): Observable {\r\n return this._mapsChanged.asObservable();\r\n }\r\n\r\n getMaps(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.mapUrl + '/list', page, pageSize));\r\n }\r\n\r\n getMapByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.mapUrl + '/list', institutionId));\r\n }\r\n\r\n getMapByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.mapUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n getFloorConnector(mapId) {\r\n\r\n return this.commonEndpoint.get(this.mapUrl + '/floorconnector?mapId=' + mapId);\r\n }\r\n\r\n updateMap(map: MapModel) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.mapUrl, map, map.id).pipe(\r\n tap(data => this.onMapsChanged([map], MapService.mapModifiedOperation)));\r\n }\r\n\r\n newMap(map: MapModel) {\r\n return this.commonEndpoint.getNewEndpoint(this.mapUrl, map).pipe(\r\n tap(data => this.onMapsChanged([map], MapService.mapAddedOperation)));\r\n }\r\n\r\n\r\n deleteMap(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.mapUrl, id).pipe(\r\n tap(data => this.onMapsChanged([data], MapService.mapDeletedOperation)));\r\n }\r\n\r\n getRoute(from, to, wheel, sheltered) {\r\n return this.commonEndpoint.get(this.mapUrl + '/getroute?startDirectoryId=' + from + '&destDirectoryId=' + to + '&wheelchair=' + wheel + '&sheltered=' + sheltered)\r\n }\r\n\r\n getPointById(id) {\r\n return this.commonEndpoint.get(this.mapUrl + '/getpointbyid?id=' + id )\r\n }\r\n\r\n getMapById(id) {\r\n return this.commonEndpoint.get(this.mapUrl + '/getmapbyid?id=' + id)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n \r\nimport { TokenOrderedPayment } from 'src/app/models/meal-order-payment/token-ordered.model';\r\nimport { Order } from 'src/app/models/meal-order-payment/order.model';\r\nimport { Address } from 'src/app/models/meal-order-payment/address.model';\r\nimport { Amount, PaymentItem } from 'src/app/models/meal-order-payment/payment-item.model';\r\nimport { TransactionOptions } from 'src/app/models/meal-order-payment/transaction-options.model';\r\nimport { PaymentResult } from 'src/app/models/meal-order-payment/payment-result.model';\r\n\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, of, throwError } from \"rxjs\";\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { OrderPaymentRequest } from 'src/app/models/meal-order-payment/order-payment-request';\r\nimport { OrderPaymentResponse } from 'src/app/models/meal-order-payment/order-payment-response';\r\nimport { AccountService } from '../../services/account.service';\r\nimport { AppTranslationService } from \"../app-translation.service\";\r\n\r\n\r\nimport { BodyPayLoad } from 'src/app/models/meal-order-payment/body-pay-load.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n\r\nexport class ApiService {\r\n\r\n\r\n bodyPayLoad: BodyPayLoad;\r\n\r\n constructor(private httpClient: HttpClient,\r\n private appTranslationService: AppTranslationService,\r\n public accountService: AccountService) { }\r\n\r\n\r\n\r\n\r\n ////// Calls API POST\r\n public getPaymentURLWithErrHd(tokenOrdered: TokenOrderedPayment, paymentMethod: string,\r\n outletURL: string, thankyouURL: string, notifyURL:string ) {\r\n\r\n var currentPaymentPageURL: string;\r\n\r\n /// mode of payment selected by user in payment page\r\n // let 1sourceOfFundsData: string[] = ['CARD'];\r\n\r\n //console.log('getPaymentURLWithErrHd / outletURL:' + outletURL);\r\n //console.log('getPaymentURLWithErrHd / thankyouURL:' + thankyouURL);\r\n \r\n\r\n let sourceOfFundsData: string[] = [];\r\n \r\n const headers = new HttpHeaders()\r\n .set('content-type', 'application/json')\r\n .set('accept', 'text/plain')\r\n .set('Access-Control-Allow-Origin', '*');\r\n\r\n const httpOptions =\r\n {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\r\n rejectUnauthorized: false\r\n };\r\n\r\n currentPaymentPageURL = window.location.href\r\n // console.log(\"getPaymentURLWithErrHd / api current url \" + window.location.href);\r\n\r\n \r\n var tokenOrdered2 = new TokenOrderedPayment();\r\n tokenOrdered2.id = tokenOrdered.id; // unique id for each trans passed to FOMO\r\n tokenOrdered2.subtotal = tokenOrdered.subtotal;\r\n tokenOrdered2.tokenDesc = tokenOrdered.tokenDesc;\r\n tokenOrdered2.tokenId = tokenOrdered.tokenId\r\n // console.log(\" tokenOrdered2.tokenId \" + tokenOrdered2.tokenId);\r\n\r\n var paymentMethod = tokenOrdered.paymentMethod;\r\n \r\n // Set PaymentMethod \r\n // If no payment found default to card payment\r\n if (typeof paymentMethod == 'undefined' || paymentMethod == null || paymentMethod == \"\")\r\n {\r\n sourceOfFundsData.push(\"CARD\");\r\n }\r\n else\r\n {\r\n sourceOfFundsData.push(paymentMethod);\r\n }\r\n \r\n\r\n // For transOptions.\r\n var amountPayment = new Amount();\r\n amountPayment.value = \"\";\r\n amountPayment.currency = \"\";\r\n\r\n let addressLineData: string[] = [''];\r\n\r\n var shipAddress = new Address();\r\n shipAddress.addressLine = addressLineData;\r\n shipAddress.city = \"\";\r\n shipAddress.country = \"\";\r\n shipAddress.organization = \"\";\r\n shipAddress.phone = \"\";\r\n shipAddress.postalCode = \"\";\r\n shipAddress.recipient = \"\";\r\n shipAddress.region = \"\";\r\n shipAddress.dependentLocality = \"\";\r\n\r\n var paymentItem = new PaymentItem();\r\n paymentItem.amount = amountPayment;\r\n paymentItem.label = \"\";\r\n paymentItem.quantity = 0;\r\n paymentItem.sku = \"\";\r\n\r\n let paymentItemList: PaymentItem[] = [paymentItem];\r\n\r\n var transactionOptions = new TransactionOptions();\r\n transactionOptions.payerName = \"\";\r\n transactionOptions.payerEmail = \"\";\r\n transactionOptions.payerPhone = \"\";\r\n transactionOptions.shippingAddress = shipAddress;\r\n transactionOptions.billingAddress = shipAddress;\r\n transactionOptions.paymentItem = paymentItemList;\r\n // For transOptions.\r\n\r\n\r\n\r\n\r\n //////////////////////////////////////////////////\r\n // For Order.\r\n //////////////////////////////////////////////////\r\n var order = new Order();\r\n order.mode = \"HOSTED\";\r\n order.orderNo = tokenOrdered.id.toString();\r\n order.tokenOrderId = tokenOrdered.tokenId.toString();\r\n order.subject = tokenOrdered.tokenDesc;\r\n order.description = \"\";\r\n order.amount = tokenOrdered.subtotal.toString();\r\n order.currencyCode = \"SGD\";\r\n order.notifyUrl = notifyURL; // outletURL; //URL to notify order result update\r\n order.returnUrl = thankyouURL; //URL to return to after payment\r\n order.backUrl = outletURL; //URL to return to when user cancel the payment\r\n order.sourceOfFunds = sourceOfFundsData; \r\n\r\n\r\n //console.log('getPaymentURLWithErrHd / order.orderNo :' + order.orderNo);\r\n //console.log('getPaymentURLWithErrHd / order.tokenOrderId :' + order.tokenOrderId );\r\n\r\n //////////////////////////////////////////////////\r\n // For Order.\r\n //////////////////////////////////////////////////\r\n\r\n\r\n order.transactionOptions = transactionOptions\r\n\r\n const body = JSON.stringify(order);\r\n //console.log('getPaymentURLWithErrHd/ body> ' + body);\r\n \r\n\r\n // Call API POST\r\n // Indicate response type format otherwise will get errors.\r\n //orig return this.httpClient.post(`/api/Order`, body, { 'headers': headers, responseType: 'text', observe: 'response' });\r\n\r\n //console.log('getPaymentURLWithErrHd/ about to call to post in API');\r\n\r\n return this.httpClient\r\n .post(`/api/Order`, body, { 'headers': headers, observe: 'response' })\r\n .pipe(\r\n catchError((err) => {\r\n //console.log('error caught in service')\r\n //console.error(err);\r\n //Handle the error here\r\n return throwError(err); //Rethrow it back to component\r\n\r\n })\r\n )\r\n \r\n /* console.log('getPaymentURLWithErrHd/ Finished call to post in API');*/\r\n\r\n } // public getPaymentURLWithErrHd\r\n\r\n\r\n\r\n ////// Calls API POST\r\n public createResponseRecord(paymentResponse: PaymentResult, tokenOrderedCurrent: TokenOrderedPayment, newRequestRecordID: number) {\r\n var userID;\r\n var dateTime = new Date();\r\n var currentPaymentPageURL: string;\r\n\r\n const headers = new HttpHeaders()\r\n .set('content-type', 'application/json')\r\n .set('accept', 'text/plain')\r\n .set('Access-Control-Allow-Origin', '*');\r\n\r\n const httpOptions =\r\n {\r\n headers: new HttpHeaders({ 'ContentType': 'application/json' }),\r\n rejectUnauthorized: false\r\n };\r\n\r\n\r\n //////////////////////////////////////////////////////////\r\n /// For the new response record.....for out DB\r\n var orderPaymentResponse = new OrderPaymentResponse();\r\n orderPaymentResponse.paymentRequestId = newRequestRecordID.toString();\r\n orderPaymentResponse.userId = this.accountService.currentUser.id;\r\n orderPaymentResponse.institutionId = this.accountService.currentUser.institutionId; //// dummy value for testing.\r\n orderPaymentResponse.tokenOrderId = tokenOrderedCurrent.tokenId; // id for the token being paid\r\n orderPaymentResponse.isSuccessful = true;\r\n orderPaymentResponse.isCancelled = false;\r\n orderPaymentResponse.statusCode = paymentResponse.statusCode;\r\n orderPaymentResponse.responseStatus = paymentResponse.responseStatus;\r\n orderPaymentResponse.mode = paymentResponse.fomoPaymentResponse.mode;\r\n orderPaymentResponse.paymentTransactionId = paymentResponse.fomoPaymentResponse.id; // payment id from fomopay\r\n orderPaymentResponse.orderNo = paymentResponse.fomoPaymentResponse.orderNo; // our unique generated id for each request\r\n orderPaymentResponse.subject = paymentResponse.fomoPaymentResponse.subject;\r\n orderPaymentResponse.amount = paymentResponse.fomoPaymentResponse.amount;\r\n orderPaymentResponse.currencyCode = paymentResponse.fomoPaymentResponse.currencyCode;\r\n orderPaymentResponse.paymentUrl = paymentResponse.fomoPaymentResponse.url; // url for payment page.\r\n orderPaymentResponse.paymentDate = dateTime;\r\n\r\n /// For the new response record.....for out DB ..........................\r\n //////////////////////////////////////////////////////////\r\n\r\n\r\n\r\n // Save for call to manual token status update\r\n sessionStorage.setItem('fomoPayOrderId', orderPaymentResponse.paymentTransactionId); //\r\n sessionStorage.setItem('ourOrderNumber', orderPaymentResponse.orderNo); //\r\n // Save for call to manual token status update\r\n\r\n \r\n\r\n\r\n const requestBody = JSON.stringify(orderPaymentResponse);\r\n\r\n return this.httpClient\r\n .post(`/api/Order/PostPaymentResponseRecord`, requestBody, { 'headers': headers, observe: 'response' })\r\n .pipe(\r\n catchError((err) => {\r\n //Handle the error here\r\n return throwError(err); //Rethrow it back to component\r\n\r\n })\r\n )\r\n\r\n // console.log('createResponseRecord / line 249 end');\r\n\r\n }\r\n\r\n ////// Calls API POST\r\n public createRequestRecord(tokenOrdered: TokenOrderedPayment, paymentMethod: string,\r\n outletURL: string, thankyouURL: string, notifyURL: string ) {\r\n\r\n var currentPaymentPageURL: string;\r\n\r\n\r\n let sourceOfFundsData: string[] = [];\r\n\r\n const headers = new HttpHeaders()\r\n .set('content-type', 'application/json')\r\n .set('accept', 'text/plain')\r\n .set('Access-Control-Allow-Origin', '*');\r\n\r\n const httpOptions =\r\n {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\r\n rejectUnauthorized: false\r\n };\r\n\r\n currentPaymentPageURL = window.location.href\r\n // console.log(\"getPaymentURLWithErrHd / api current url \" + window.location.href);\r\n\r\n\r\n var tokenOrdered2 = new TokenOrderedPayment();\r\n tokenOrdered2.id = tokenOrdered.id; // unique id for each trans passed to FOMO\r\n tokenOrdered2.subtotal = tokenOrdered.subtotal;\r\n tokenOrdered2.tokenDesc = tokenOrdered.tokenDesc;\r\n tokenOrdered2.tokenId = tokenOrdered.tokenId\r\n\r\n\r\n var paymentMethod = tokenOrdered.paymentMethod;\r\n\r\n // Set PaymentMethod \r\n // If no payment found default to card payment\r\n if (typeof paymentMethod == 'undefined' || paymentMethod == null || paymentMethod == \"\") {\r\n sourceOfFundsData.push(\"CARD\");\r\n }\r\n else {\r\n sourceOfFundsData.push(paymentMethod);\r\n }\r\n\r\n\r\n // For transOptions.\r\n var amountPayment = new Amount();\r\n amountPayment.value = \"\";\r\n amountPayment.currency = \"\";\r\n\r\n let addressLineData: string[] = [''];\r\n\r\n var shipAddress = new Address();\r\n shipAddress.addressLine = addressLineData;\r\n shipAddress.city = \"\";\r\n shipAddress.country = \"\";\r\n shipAddress.organization = \"\";\r\n shipAddress.phone = \"\";\r\n shipAddress.postalCode = \"\";\r\n shipAddress.recipient = \"\";\r\n shipAddress.region = \"\";\r\n shipAddress.dependentLocality = \"\";\r\n\r\n var paymentItem = new PaymentItem();\r\n paymentItem.amount = amountPayment;\r\n paymentItem.label = this.appTranslationService.getTranslation('paymentPopup.Title');\r\n paymentItem.quantity = 1; // default for now.\r\n paymentItem.sku = tokenOrdered.tokenId.toString();\r\n\r\n let paymentItemList: PaymentItem[] = [paymentItem];\r\n\r\n var transactionOptions = new TransactionOptions();\r\n transactionOptions.payerName = \"\";\r\n transactionOptions.payerEmail = \"\";\r\n transactionOptions.payerPhone = \"\";\r\n transactionOptions.shippingAddress = shipAddress;\r\n transactionOptions.billingAddress = shipAddress;\r\n transactionOptions.paymentItem = paymentItemList;\r\n // For transOptions.\r\n\r\n\r\n\r\n\r\n //////////////////////////////////////////////////\r\n // For Order.\r\n //////////////////////////////////////////////////\r\n var order = new Order();\r\n order.mode = \"HOSTED\";\r\n order.orderNo = tokenOrdered.id.toString();\r\n order.tokenOrderId = tokenOrdered.tokenId.toString();\r\n order.subject = tokenOrdered.tokenDesc;\r\n order.description = \"\";\r\n order.amount = tokenOrdered.subtotal.toString();\r\n order.currencyCode = \"SGD\";\r\n order.notifyUrl = notifyURL; //URL to notify order result update\r\n order.returnUrl = thankyouURL; //URL to return to after payment\r\n order.backUrl = outletURL; //URL to return to when user cancel the payment\r\n order.sourceOfFunds = sourceOfFundsData;\r\n\r\n\r\n //console.log('getPaymentURLWithErrHd / order.orderNo :' + order.orderNo);\r\n //console.log('getPaymentURLWithErrHd / order.tokenOrderId :' + order.tokenOrderId );\r\n\r\n //////////////////////////////////////////////////\r\n // For Order.\r\n //////////////////////////////////////////////////\r\n\r\n\r\n order.transactionOptions = transactionOptions\r\n\r\n const body = JSON.stringify(order);\r\n\r\n\r\n ///\r\n var orderPaymentRequest = new OrderPaymentRequest();\r\n let dateTime = new Date();\r\n\r\n //console.log('3 accountService=' + this.accountService.currentUser.id);\r\n //console.log('3 accountService=' + order.amount);\r\n\r\n orderPaymentRequest.userId = parseInt(this.accountService.currentUser.id);\r\n orderPaymentRequest.institutionId = parseInt(this.accountService.currentUser.institutionId);\r\n orderPaymentRequest.amount = order.amount;\r\n orderPaymentRequest.currencyCode = order.currencyCode;\r\n orderPaymentRequest.mode = order.mode;\r\n orderPaymentRequest.subject = order.subject;\r\n orderPaymentRequest.notifyUrl = order.notifyUrl;\r\n orderPaymentRequest.returnUrl = order.returnUrl;\r\n orderPaymentRequest.backUrl = order.backUrl;\r\n orderPaymentRequest.orderNo = order.orderNo; // our unique generated id for each request\r\n orderPaymentRequest.tokenOrderId = order.tokenOrderId; // id for the token being paid\r\n orderPaymentRequest.sourceOfFunds = order.sourceOfFunds[0];\r\n orderPaymentRequest.transactionDate = dateTime;\r\n // orderPaymentRequest.transactionOption = order.transactionOptions;\r\n\r\n const requestBody = JSON.stringify(orderPaymentRequest);\r\n\r\n return this.httpClient\r\n .post(`/api/Order/PostPaymentRequestRecord`, requestBody, { 'headers': headers, observe: 'response' })\r\n .pipe(\r\n catchError((err) => {\r\n //Handle the error here\r\n return throwError(err); //Rethrow it back to component\r\n\r\n })\r\n )\r\n\r\n } //createResponseRecord\r\n\r\n\r\n\r\n //////////////////////////////////////////////////////////////////////////////////////\r\n\r\n\r\n ////// Calls API POST - manually call the NotifyURLmanual method.\r\n public updateOrderStatus(fOMOPaymentId: string, ourPaymentOrderNo: string)\r\n {\r\n\r\n var currentPaymentPageURL: string;\r\n\r\n //console.log('getPaymentURLWithErrHd / outletURL:' + outletURL);\r\n //console.log('getPaymentURLWithErrHd / thankyouURL:' + thankyouURL);\r\n\r\n\r\n const headers = new HttpHeaders()\r\n .set('content-type', 'application/json')\r\n .set('accept', 'text/plain')\r\n .set('Access-Control-Allow-Origin', '*');\r\n\r\n const httpOptions =\r\n {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\r\n rejectUnauthorized: false\r\n };\r\n\r\n \r\n \r\n var bodyPayLoad = new BodyPayLoad();\r\n bodyPayLoad.OrderId = fOMOPaymentId;\r\n bodyPayLoad.OrderNo = ourPaymentOrderNo;\r\n bodyPayLoad.TransactionId = \"\"; // not used\r\n bodyPayLoad.TransactionNo = \"\"; // not used\r\n\r\n\r\n console.log('api/ updateOrderStatus api method / FOMOPaymentId :' + fOMOPaymentId);\r\n console.log('api/ updateOrderStatus api method / OurPaymentOrderNo :' + ourPaymentOrderNo);\r\n \r\n\r\n const body = JSON.stringify(bodyPayLoad);\r\n //console.log('getPaymentURLWithErrHd/ body> ' + body);\r\n \r\n //api/controller/method \r\n return this.httpClient\r\n .post(`/api/Order/PostProcessNotifyURLManualUpdate`, body, { 'headers': headers, observe: 'response' })\r\n .pipe(\r\n map(result => {\r\n if (result)\r\n {\r\n console.log('PostProcessNotifyURLManualUpdate - no errors ');\r\n } \r\n }),\r\n catchError((err) => {\r\n //console.log('error caught in service')\r\n //console.error(err);\r\n //Handle the error here\r\n return throwError(err); //Rethrow it back to component\r\n\r\n })\r\n )\r\n\r\n /* console.log('getPaymentURLWithErrHd/ Finished call to post in API');*/\r\n \r\n\r\n } // public getPaymentURLWithErrHd\r\n\r\n\r\n \r\n\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { ClassRosterFilter, Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { ClassLevel } from 'src/app/models/meal-order/class-level.model';\r\nimport { Class } from 'src/app/models/meal-order/class.model';\r\nimport { ClassBatch } from 'src/app/models/meal-order/class-batch.model';\r\nimport { OutletClassRoster } from 'src/app/models/meal-order/outlet-class-roster.model';\r\n\r\n@Injectable()\r\nexport class ClassService {\r\n\r\n private readonly _classUrl: string = \"/api/class/classes\";\r\n get classUrl() { return this.configurations.baseUrl + this._classUrl; }\r\n\r\n private readonly _classLevelUrl: string = \"/api/class/classlevels\";\r\n get classLevelUrl() { return this.configurations.baseUrl + this._classLevelUrl; }\r\n\r\n private readonly _classBatchUrl: string = \"/api/class/classbatches\";\r\n get classBatchUrl() { return this.configurations.baseUrl + this._classBatchUrl; }\r\n\r\n private readonly _classRosterUrl: string = \"/api/class/classrosters\";\r\n get classRosterUrl() { return this.configurations.baseUrl + this._classRosterUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n //class batch\r\n getClassBatchById(classBatchId: string) {\r\n\r\n return this.commonEndpoint.getById(this.classBatchUrl + '/get', classBatchId);\r\n }\r\n\r\n getClassBatchesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.classBatchUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateClassBatch(classBatch: ClassBatch) {\r\n if (classBatch.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.classBatchUrl, classBatch, classBatch.id);\r\n }\r\n }\r\n\r\n\r\n newClassBatch(classBatch: ClassBatch) {\r\n return this.commonEndpoint.getNewEndpoint(this.classBatchUrl, classBatch);\r\n }\r\n\r\n\r\n deleteClassBatch(classBatchOrClassBatchId: string | ClassBatch): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.classBatchUrl, classBatchOrClassBatchId);\r\n }\r\n\r\n //class level\r\n getClassLevelById(classLevelId: string) {\r\n\r\n return this.commonEndpoint.getById(this.classLevelUrl + '/get', classLevelId);\r\n }\r\n\r\n getClassLevelsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.classLevelUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateClassLevel(classLevel: ClassLevel) {\r\n if (classLevel.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.classLevelUrl, classLevel, classLevel.id);\r\n }\r\n }\r\n\r\n\r\n newClassLevel(classLevel: ClassLevel) {\r\n return this.commonEndpoint.getNewEndpoint(this.classLevelUrl, classLevel);\r\n }\r\n\r\n\r\n deleteClassLevel(classLevelOrClassLevelId: string | ClassLevel): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.classLevelUrl, classLevelOrClassLevelId);\r\n }\r\n\r\n\r\n //class\r\n getClassById(classModelId: string) {\r\n\r\n return this.commonEndpoint.getById(this.classUrl + '/get', classModelId);\r\n }\r\n\r\n getClassesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.classUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateClass(classModel: Class) {\r\n if (classModel.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.classUrl, classModel, classModel.id);\r\n }\r\n }\r\n\r\n\r\n newClass(classModel: Class) {\r\n return this.commonEndpoint.getNewEndpoint(this.classUrl, classModel);\r\n }\r\n\r\n\r\n deleteClass(classModelOrClassId: string | Class): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.classUrl, classModelOrClassId);\r\n }\r\n\r\n //class roster\r\n getClassRosterById(id: string) {\r\n return this.commonEndpoint.getById(this.classRosterUrl + '/get', id);\r\n }\r\n\r\n getClassRosterByOutletId(outletId: string, catererId: string, mealSessionId: string) {\r\n\r\n return this.commonEndpoint.get(`${this.classRosterUrl}/${outletId}/${catererId}/${mealSessionId}`);\r\n }\r\n\r\n getClassRostersByFilter(filter: ClassRosterFilter) {\r\n return this.commonEndpoint.getSieve(this.classRosterUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateClassRoster(model: OutletClassRoster) {\r\n if (model.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.classRosterUrl, model, model.id);\r\n }\r\n }\r\n\r\n\r\n newClassRoster(model: OutletClassRoster) {\r\n return this.commonEndpoint.getNewEndpoint(this.classRosterUrl, model);\r\n }\r\n\r\n\r\n deleteClassRoster(modelOrClassId: string | OutletClassRoster): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.classRosterUrl, modelOrClassId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { Staff } from 'src/app/models/meal-order/staff.model';\r\nimport { CatererInfo } from '../../models/meal-order/caterer-info.model';\r\nimport { BentoBoxType } from '../../models/meal-order/bento-box-type.model';\r\nimport { BentoAsset } from '../../models/meal-order/bento-asset.model';\r\nimport { CartonType } from '../../models/meal-order/carton-type.model';\r\nimport { CartonAsset } from '../../models/meal-order/carton-asset.model';\r\nimport { TrackingStatus } from '../../models/meal-order/tracking-status.model';\r\nimport { DeliveryOrder } from '../../models/meal-order/delivery-order.model';\r\nimport { StoreInventory } from '../../models/meal-order/store-inventory.model';\r\nimport { Outlet, OutletProfile } from 'src/app/models/meal-order/outlet.model';\r\nimport { StoreInfo } from '../../models/meal-order/store-info.model';\r\nimport { Driver } from 'src/app/models/meal-order/driver.model';\r\nimport { Route } from 'src/app/models/meal-order/route.model';\r\n\r\n@Injectable()\r\nexport class DeliveryService {\r\n\r\n private readonly _catererInfoUrl: string = \"/api/delivery/catererinfos\";\r\n get catererInfoUrl() { return this.configurations.baseUrl + this._catererInfoUrl; }\r\n\r\n private readonly _outletUrl: string = \"/api/delivery/outlets\";\r\n get outletUrl() { return this.configurations.baseUrl + this._outletUrl; }\r\n\r\n private readonly _outletProfileUrl: string = \"/api/delivery/outletprofiles\";\r\n get outletProfileUrl() { return this.configurations.baseUrl + this._outletProfileUrl; }\r\n\r\n\r\n private readonly _bentoBoxTypeUrl: string = \"/api/delivery/bentoboxtypes\";\r\n get bentoBoxTypeUrl() { return this.configurations.baseUrl + this._bentoBoxTypeUrl; }\r\n\r\n private readonly _cartonTypeUrl: string = \"/api/delivery/cartontypes\";\r\n get cartonTypeUrl() { return this.configurations.baseUrl + this._cartonTypeUrl; }\r\n\r\n private readonly _bentoAssetUrl: string = \"/api/delivery/bentoassets\";\r\n get bentoAssetUrl() { return this.configurations.baseUrl + this._bentoAssetUrl; }\r\n\r\n private readonly _cartonAssetUrl: string = \"/api/delivery/cartonassets\";\r\n get cartonAssetUrl() { return this.configurations.baseUrl + this._cartonAssetUrl; }\r\n\r\n private readonly _trackingStatusUrl: string = \"/api/delivery/trackingstatuss\";\r\n get trackingStatusUrl() { return this.configurations.baseUrl + this._trackingStatusUrl; }\r\n\r\n private readonly _storeInfoUrl: string = \"/api/delivery/storeinfos\";\r\n get storeInfoUrl() { return this.configurations.baseUrl + this._storeInfoUrl; }\r\n\r\n private readonly _deliveryOrderUrl: string = \"/api/delivery/deliveryorders\";\r\n get deliveryOrderUrl() { return this.configurations.baseUrl + this._deliveryOrderUrl; }\r\n\r\n private readonly _storeInventoryUrl: string = \"/api/delivery/storeinventories\";\r\n get storeInventoryUrl() { return this.configurations.baseUrl + this._storeInventoryUrl; }\r\n\r\n private readonly _storeInventoryDetailUrl: string = \"/api/delivery/storeinventorydetails\";\r\n get storeInventoryDetailUrl() { return this.configurations.baseUrl + this._storeInventoryDetailUrl; }\r\n\r\n private readonly _driverUrl: string = \"/api/delivery/drivers\";\r\n get driverUrl() { return this.configurations.baseUrl + this._driverUrl; }\r\n\r\n private readonly _routeUrl: string = \"/api/delivery/routes\";\r\n get routeUrl() { return this.configurations.baseUrl + this._routeUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n //catererInfo\r\n getCatererInfoById(catererInfoId: string) {\r\n\r\n return this.commonEndpoint.getById(this.catererInfoUrl + '/get', catererInfoId);\r\n }\r\n\r\n getCatererInfosByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.catererInfoUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateCatererInfo(catererInfo: CatererInfo) {\r\n if (catererInfo.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.catererInfoUrl, catererInfo, catererInfo.id);\r\n }\r\n }\r\n\r\n\r\n newCatererInfo(catererInfo: CatererInfo) {\r\n return this.commonEndpoint.getNewEndpoint(this.catererInfoUrl, catererInfo);\r\n }\r\n\r\n\r\n deleteCatererInfo(catererInfoOrCatererInfoId: string | CatererInfo): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.catererInfoUrl, catererInfoOrCatererInfoId);\r\n }\r\n\r\n requestCaterer(catererId: string, outletId: string, status: string, isRsp: boolean, outletProfileId: string) {\r\n return this.commonEndpoint.get(`${this.catererInfoUrl}/request/${catererId}/${outletId}/${status}/${isRsp}?outletProfileId=${outletProfileId}`);\r\n }\r\n\r\n //outletProfile\r\n getOutletProfileById(outletProfileId: string) {\r\n return this.commonEndpoint.getById(this.outletProfileUrl + '/get', outletProfileId);\r\n }\r\n\r\n getOutletProfilesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.outletProfileUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateOutletProfile(outletProfile: OutletProfile) {\r\n if (outletProfile.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.outletProfileUrl, outletProfile, outletProfile.id);\r\n }\r\n }\r\n\r\n\r\n newOutletProfile(outletProfile: OutletProfile) {\r\n return this.commonEndpoint.getNewEndpoint(this.outletProfileUrl, outletProfile);\r\n }\r\n\r\n\r\n deleteOutletProfile(outletProfileOrOutletProfileId: string | OutletProfile): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.outletProfileUrl, outletProfileOrOutletProfileId);\r\n }\r\n\r\n //outlet\r\n getOutletById(outletId: string) {\r\n return this.commonEndpoint.getById(this.outletUrl + '/get', outletId);\r\n }\r\n\r\n getOutletsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.outletUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateOutlet(outlet: Outlet) {\r\n if (outlet.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.outletUrl, outlet, outlet.id);\r\n }\r\n }\r\n\r\n updateOutletStore(outlet: Outlet) {\r\n if (outlet.id) {\r\n return this.commonEndpoint.getUpdateStoreEndpoint(this.outletUrl, outlet, outlet.id);\r\n }\r\n }\r\n\r\n\r\n newOutlet(outlet: Outlet) {\r\n return this.commonEndpoint.getNewEndpoint(this.outletUrl, outlet);\r\n }\r\n\r\n\r\n deleteOutlet(outletOrOutletId: string | Outlet): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.outletUrl, outletOrOutletId);\r\n }\r\n\r\n //bentoBoxType\r\n getBentoBoxTypeById(bentoBoxTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.bentoBoxTypeUrl + '/get', bentoBoxTypeId);\r\n }\r\n\r\n getBentoBoxTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.bentoBoxTypeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateBentoBoxType(bentoBoxType: BentoBoxType) {\r\n if (bentoBoxType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.bentoBoxTypeUrl, bentoBoxType, bentoBoxType.id);\r\n }\r\n }\r\n\r\n\r\n newBentoBoxType(bentoBoxType: BentoBoxType) {\r\n return this.commonEndpoint.getNewEndpoint(this.bentoBoxTypeUrl, bentoBoxType);\r\n }\r\n\r\n\r\n deleteBentoBoxType(bentoBoxTypeOrBentoBoxTypeId: string | BentoBoxType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.bentoBoxTypeUrl, bentoBoxTypeOrBentoBoxTypeId);\r\n }\r\n\r\n //cartonType\r\n getCartonTypeById(cartonTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.cartonTypeUrl + '/get', cartonTypeId);\r\n }\r\n\r\n getCartonTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.cartonTypeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateCartonType(cartonType: CartonType) {\r\n if (cartonType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.cartonTypeUrl, cartonType, cartonType.id);\r\n }\r\n }\r\n\r\n\r\n newCartonType(cartonType: CartonType) {\r\n return this.commonEndpoint.getNewEndpoint(this.cartonTypeUrl, cartonType);\r\n }\r\n\r\n\r\n deleteCartonType(cartonTypeOrCartonTypeId: string | CartonType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.cartonTypeUrl, cartonTypeOrCartonTypeId);\r\n }\r\n\r\n //deliveryOrder\r\n getDeliveryOrderById(deliveryOrderId: string) {\r\n\r\n return this.commonEndpoint.getById(this.deliveryOrderUrl + '/get', deliveryOrderId);\r\n }\r\n\r\n getDeliveryOrdersByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.deliveryOrderUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateDeliveryOrder(deliveryOrder: DeliveryOrder) {\r\n if (deliveryOrder.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.deliveryOrderUrl, deliveryOrder, deliveryOrder.id);\r\n }\r\n }\r\n\r\n\r\n newDeliveryOrder(deliveryOrder: DeliveryOrder) {\r\n return this.commonEndpoint.getNewEndpoint(this.deliveryOrderUrl, deliveryOrder);\r\n }\r\n\r\n\r\n deleteDeliveryOrder(deliveryOrderOrDeliveryOrderId: string | DeliveryOrder): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.deliveryOrderUrl, deliveryOrderOrDeliveryOrderId);\r\n }\r\n\r\n //StoreInventory\r\n getStoreInventoryById(storeInventoryId: string) {\r\n\r\n return this.commonEndpoint.getById(this.storeInventoryUrl + '/get', storeInventoryId);\r\n }\r\n\r\n getStoreInventoriesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.storeInventoryUrl + '/sieve/list', filter);\r\n }\r\n\r\n getStoreInventoryDetailsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.storeInventoryDetailUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateStoreInventory(storeInventory: StoreInventory) {\r\n if (storeInventory.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.storeInventoryUrl, storeInventory, storeInventory.id);\r\n }\r\n }\r\n\r\n\r\n newStoreInventory(storeInventory: StoreInventory) {\r\n return this.commonEndpoint.getNewEndpoint(this.storeInventoryUrl, storeInventory);\r\n }\r\n\r\n\r\n deleteStoreInventory(storeInventoryOrStoreInventoryId: string | StoreInventory): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.storeInventoryUrl, storeInventoryOrStoreInventoryId);\r\n }\r\n\r\n //trackingStatus\r\n getTrackingStatusById(trackingStatusId: string) {\r\n\r\n return this.commonEndpoint.getById(this.trackingStatusUrl + '/get', trackingStatusId);\r\n }\r\n\r\n getTrackingStatussByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.trackingStatusUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateTrackingStatus(trackingStatus: TrackingStatus) {\r\n if (trackingStatus.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.trackingStatusUrl, trackingStatus, trackingStatus.id);\r\n }\r\n }\r\n\r\n\r\n newTrackingStatus(trackingStatus: TrackingStatus) {\r\n return this.commonEndpoint.getNewEndpoint(this.trackingStatusUrl, trackingStatus);\r\n }\r\n\r\n\r\n deleteTrackingStatus(trackingStatusOrTrackingStatusId: string | TrackingStatus): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.trackingStatusUrl, trackingStatusOrTrackingStatusId);\r\n }\r\n\r\n //storeInfo\r\n getStoreInfoById(storeInfoId: string) {\r\n\r\n return this.commonEndpoint.getById(this.storeInfoUrl + '/get', storeInfoId);\r\n }\r\n\r\n getStoreInfosByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.storeInfoUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateStoreInfo(storeInfo: StoreInfo) {\r\n if (storeInfo.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.storeInfoUrl, storeInfo, storeInfo.id);\r\n }\r\n }\r\n\r\n\r\n newStoreInfo(storeInfo: StoreInfo) {\r\n return this.commonEndpoint.getNewEndpoint(this.storeInfoUrl, storeInfo);\r\n }\r\n\r\n\r\n deleteStoreInfo(storeInfoOrStoreInfoId: string | StoreInfo): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.storeInfoUrl, storeInfoOrStoreInfoId);\r\n }\r\n\r\n //bentoAsset\r\n getBentoAssetById(bentoAssetId: string) {\r\n\r\n return this.commonEndpoint.getById(this.bentoAssetUrl + '/get', bentoAssetId);\r\n }\r\n\r\n getBentoAssetsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.bentoAssetUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateBentoAsset(bentoAsset: BentoAsset) {\r\n if (bentoAsset.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.bentoAssetUrl, bentoAsset, bentoAsset.id);\r\n }\r\n }\r\n\r\n\r\n newBentoAsset(bentoAsset: BentoAsset) {\r\n return this.commonEndpoint.getNewEndpoint(this.bentoAssetUrl, bentoAsset);\r\n }\r\n\r\n\r\n deleteBentoAsset(bentoAssetOrBentoAssetId: string | BentoAsset): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.bentoAssetUrl, bentoAssetOrBentoAssetId);\r\n }\r\n\r\n //cartonAsset\r\n getCartonAssetById(cartonAssetId: string) {\r\n\r\n return this.commonEndpoint.getById(this.cartonAssetUrl + '/get', cartonAssetId);\r\n }\r\n\r\n getCartonAssetsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.cartonAssetUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateCartonAsset(cartonAsset: CartonAsset) {\r\n if (cartonAsset.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.cartonAssetUrl, cartonAsset, cartonAsset.id);\r\n }\r\n }\r\n\r\n\r\n newCartonAsset(cartonAsset: CartonAsset) {\r\n return this.commonEndpoint.getNewEndpoint(this.cartonAssetUrl, cartonAsset);\r\n }\r\n\r\n\r\n deleteCartonAsset(cartonAssetOrCartonAssetId: string | CartonAsset): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.cartonAssetUrl, cartonAssetOrCartonAssetId);\r\n }\r\n\r\n //driver\r\n getDriverById(driverId: string) {\r\n\r\n return this.commonEndpoint.getById(this.driverUrl + '/get', driverId);\r\n }\r\n\r\n getDriversByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.driverUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateDriver(driver: Driver) {\r\n if (driver.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.driverUrl, driver, driver.id);\r\n }\r\n }\r\n\r\n\r\n newDriver(driver: Driver) {\r\n return this.commonEndpoint.getNewEndpoint(this.driverUrl, driver);\r\n }\r\n\r\n\r\n deleteDriver(driverOrDriverId: string | Driver): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.driverUrl, driverOrDriverId);\r\n }\r\n\r\n //route\r\n getRouteById(routeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.routeUrl + '/get', routeId);\r\n }\r\n\r\n getRoutesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.routeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateRoute(route: Route) {\r\n if (route.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.routeUrl, route, route.id);\r\n }\r\n }\r\n\r\n\r\n newRoute(route: Route) {\r\n return this.commonEndpoint.getNewEndpoint(this.routeUrl, route);\r\n }\r\n\r\n\r\n deleteRoute(routeOrRouteId: string | Route): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.routeUrl, routeOrRouteId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { DishType } from 'src/app/models/meal-order/dish-type.model';\r\nimport { Dish } from 'src/app/models/meal-order/dish.model';\r\nimport { Cuisine } from 'src/app/models/meal-order/cuisine.model';\r\nimport { BlockUnblockOutletDishDateModel, DishBlockUnblockDateModel, DishCycle, DishCyclePeriod, OutletDishCyclePeriodMenu, OutletDishViewMenu } from 'src/app/models/meal-order/dish-cycle';\r\nimport { DishCycleCalendar } from 'src/app/models/meal-order/dish-cycle-calendar.model';\r\n\r\n@Injectable()\r\nexport class DishService {\r\n\r\n private readonly _cuisineUrl: string = \"/api/dish/cuisines\";\r\n get cuisineUrl() { return this.configurations.baseUrl + this._cuisineUrl; }\r\n\r\n private readonly _dishTypeUrl: string = \"/api/dish/dishtypes\";\r\n get dishTypeUrl() { return this.configurations.baseUrl + this._dishTypeUrl; }\r\n\r\n private readonly _dishUrl: string = \"/api/dish/dishes\";\r\n get dishUrl() { return this.configurations.baseUrl + this._dishUrl; }\r\n\r\n private readonly _dishCycleUrl: string = \"/api/dish/dishcycles\";\r\n get dishCycleUrl() { return this.configurations.baseUrl + this._dishCycleUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n //cuisine\r\n getCuisineById(cuisineId: string) {\r\n\r\n return this.commonEndpoint.getById(this.cuisineUrl + '/get', cuisineId);\r\n }\r\n\r\n getCuisinesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.cuisineUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateCuisine(cuisine: Cuisine) {\r\n if (cuisine.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.cuisineUrl, cuisine, cuisine.id);\r\n }\r\n }\r\n\r\n\r\n newCuisine(cuisine: Cuisine) {\r\n return this.commonEndpoint.getNewEndpoint(this.cuisineUrl, cuisine);\r\n }\r\n\r\n\r\n deleteCuisine(cuisineOrCuisineId: string | Cuisine): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.cuisineUrl, cuisineOrCuisineId);\r\n }\r\n\r\n //dish Type\r\n getDishTypeById(dishTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.dishTypeUrl + '/get', dishTypeId);\r\n }\r\n\r\n getDishTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.dishTypeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateDishType(dishType: DishType) {\r\n if (dishType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.dishTypeUrl, dishType, dishType.id);\r\n }\r\n }\r\n\r\n\r\n newDishType(dishType: DishType) {\r\n return this.commonEndpoint.getNewEndpoint(this.dishTypeUrl, dishType);\r\n }\r\n\r\n\r\n deleteDishType(dishTypeOrDishTypeId: string | DishType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.dishTypeUrl, dishTypeOrDishTypeId);\r\n }\r\n\r\n\r\n //dish\r\n getDishById(dishId: string) {\r\n\r\n return this.commonEndpoint.getById(this.dishUrl + '/get', dishId);\r\n }\r\n\r\n getDishesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.dishUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateDish(dish: Dish) {\r\n if (dish.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.dishUrl, dish, dish.id);\r\n }\r\n }\r\n\r\n\r\n newDish(dish: Dish) {\r\n return this.commonEndpoint.getNewEndpoint(this.dishUrl, dish);\r\n }\r\n\r\n\r\n deleteDish(dishOrDishId: string | Dish): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.dishUrl, dishOrDishId);\r\n }\r\n\r\n generateDishCode(catererId: string) {\r\n return this.commonEndpoint.get(this.dishUrl + '/generatecode?catererId=' + catererId);\r\n }\r\n\r\n //dish cycles\r\n getDishCycleById(dishCycleId: string) {\r\n\r\n return this.commonEndpoint.getById(this.dishCycleUrl + '/get', dishCycleId);\r\n }\r\n\r\n getDishCyclesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.dishCycleUrl + '/sieve/list', filter);\r\n }\r\n\r\n getDishCycleScheduleSetDetails(id, day, outletId?: string) {\r\n return this.commonEndpoint.get(`${this.dishCycleUrl}/getScheduleSetDetails/${id}/${day}?outletId=${outletId}`);\r\n }\r\n\r\n createOutletDishCyclePeriodMenus(model: OutletDishViewMenu) {\r\n return this.commonEndpoint.getNewEndpoint(`${this.dishCycleUrl}/outlets/scheduleperiods`, model);\r\n }\r\n\r\n updateDishCycle(dishCycle: DishCycle) {\r\n if (dishCycle.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.dishCycleUrl, dishCycle, dishCycle.id);\r\n }\r\n }\r\n\r\n\r\n newDishCycle(dishCycle: DishCycle) {\r\n return this.commonEndpoint.getNewEndpoint(this.dishCycleUrl, dishCycle);\r\n }\r\n\r\n\r\n deleteDishCycle(dishOrDishCycleId: string | DishCycle): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.dishCycleUrl, dishOrDishCycleId);\r\n }\r\n\r\n blockunblockdate(model: DishBlockUnblockDateModel) {\r\n return this.commonEndpoint.getNewEndpoint(this.dishCycleUrl + '/blockunblockdate', model);\r\n }\r\n\r\n getOutletDishCycles(outletId, catererId) {\r\n return this.commonEndpoint.get(this.dishCycleUrl + '/outlets/list?outletId=' + outletId + '&catererId=' + catererId);\r\n }\r\n\r\n getOutletDishCyclePeriods(dishCycleId) {\r\n return this.commonEndpoint.get(this.dishCycleUrl + '/outlets/periods/list?dishCycleId=' + dishCycleId);\r\n }\r\n\r\n blockunblockOutletDishDate(model: BlockUnblockOutletDishDateModel) {\r\n return this.commonEndpoint.getNewEndpoint(this.dishCycleUrl + '/outlets/blockunblockdate', model);\r\n }\r\n\r\n //combined dish\r\n\r\n getCombinedDish(outletId, catererId, mealTypeId, orderDate, sessionId) {\r\n return this.commonEndpoint.get(this.dishUrl + '/get/' + outletId + '?catererId=' + catererId + '&mealTypeId=' + mealTypeId + '&orderDate=' + orderDate + '&sessionId=' + sessionId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { ContactUsDetail, ContactUsSubject } from 'src/app/models/meal-order/contact-us-subject.model';\r\nimport { EmailTemplate } from 'src/app/models/meal-order/email-template';\r\n\r\n@Injectable()\r\nexport class EmailService {\r\n\r\n private readonly _contactUsSubjectUrl: string = \"/api/email/contactussubjects\";\r\n get contactUsSubjectUrl() { return this.configurations.baseUrl + this._contactUsSubjectUrl; }\r\n\r\n private readonly _contactUsDetailUrl: string = \"/api/email/contactusdetails\";\r\n get contactUsDetailUrl() { return this.configurations.baseUrl + this._contactUsDetailUrl; }\r\n\r\n private readonly _emailTemplateUrl: string = \"/api/email/emailtemplates\";\r\n get emailTemplateUrl() { return this.configurations.baseUrl + this._emailTemplateUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n //contact us subject\r\n getContactUsSubjectById(contactUsSubjectId: string) {\r\n\r\n return this.commonEndpoint.getById(this.contactUsSubjectUrl + '/get', contactUsSubjectId);\r\n }\r\n\r\n getContactUsSubjectsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.contactUsSubjectUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateContactUsSubject(contactUsSubject: ContactUsSubject) {\r\n if (contactUsSubject.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.contactUsSubjectUrl, contactUsSubject, contactUsSubject.id);\r\n }\r\n }\r\n\r\n\r\n newContactUsSubject(contactUsSubject: ContactUsSubject) {\r\n return this.commonEndpoint.getNewEndpoint(this.contactUsSubjectUrl, contactUsSubject);\r\n }\r\n\r\n\r\n deleteContactUsSubject(contactUsSubjectOrContactUsSubjectId: string | ContactUsSubject): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.contactUsSubjectUrl, contactUsSubjectOrContactUsSubjectId);\r\n }\r\n\r\n //contact us detail\r\n getContactUsDetailById(contactUsDetailId: string) {\r\n\r\n return this.commonEndpoint.getById(this.contactUsDetailUrl + '/get', contactUsDetailId);\r\n }\r\n\r\n getContactUsDetailsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.contactUsDetailUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateContactUsDetail(contactUsDetail: ContactUsDetail) {\r\n if (contactUsDetail.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.contactUsDetailUrl, contactUsDetail, contactUsDetail.id);\r\n }\r\n }\r\n\r\n\r\n newContactUsDetail(contactUsDetail: ContactUsDetail) {\r\n return this.commonEndpoint.getNewEndpoint(this.contactUsDetailUrl, contactUsDetail);\r\n }\r\n\r\n\r\n deleteContactUsDetail(contactUsDetailOrContactUsDetailId: string | ContactUsDetail): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.contactUsDetailUrl, contactUsDetailOrContactUsDetailId);\r\n }\r\n\r\n //email template\r\n getEmailTemplateById(emailTemplateId: string) {\r\n\r\n return this.commonEndpoint.getById(this.emailTemplateUrl + '/get', emailTemplateId);\r\n }\r\n\r\n getEmailTemplatesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.emailTemplateUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateEmailTemplate(emailTemplate: EmailTemplate) {\r\n if (emailTemplate.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.emailTemplateUrl, emailTemplate, emailTemplate.id);\r\n }\r\n }\r\n\r\n\r\n newEmailTemplate(emailTemplate: EmailTemplate) {\r\n return this.commonEndpoint.getNewEndpoint(this.emailTemplateUrl, emailTemplate);\r\n }\r\n\r\n\r\n deleteEmailTemplate(emailTemplateOrEmailTemplateId: string | EmailTemplate): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.emailTemplateUrl, emailTemplateOrEmailTemplateId);\r\n }\r\n\r\n sendTestEmail(templateId: string, email: string) {\r\n return this.commonEndpoint.get(`${this.emailTemplateUrl}/sendtestemail?templateId=${templateId}&email=${email}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { MealType } from 'src/app/models/meal-order/meal-type.model';\r\nimport { MealPeriod } from 'src/app/models/meal-order/meal-period.model';\r\nimport { MealSession } from 'src/app/models/meal-order/meal-session.model';\r\n\r\n@Injectable()\r\nexport class MealService {\r\n\r\n private readonly _mealTypeUrl: string = \"/api/meal/mealtypes\";\r\n get mealTypeUrl() { return this.configurations.baseUrl + this._mealTypeUrl; }\r\n\r\n private readonly _mealPeriodUrl: string = \"/api/meal/mealperiods\";\r\n get mealPeriodUrl() { return this.configurations.baseUrl + this._mealPeriodUrl; }\r\n\r\n private readonly _mealSessionUrl: string = \"/api/meal/mealsessions\";\r\n get mealSessionUrl() { return this.configurations.baseUrl + this._mealSessionUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n //meal Type\r\n getMealTypeById(mealTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.mealTypeUrl + '/get', mealTypeId);\r\n }\r\n\r\n getMealTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.mealTypeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateMealType(mealType: MealType) {\r\n if (mealType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.mealTypeUrl, mealType, mealType.id);\r\n }\r\n }\r\n\r\n\r\n newMealType(mealType: MealType) {\r\n return this.commonEndpoint.getNewEndpoint(this.mealTypeUrl, mealType);\r\n }\r\n\r\n\r\n deleteMealType(mealTypeOrMealTypeId: string | MealType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.mealTypeUrl, mealTypeOrMealTypeId);\r\n }\r\n\r\n\r\n //meal period\r\n getMealPeriodById(mealPeriodModelId: string) {\r\n\r\n return this.commonEndpoint.getById(this.mealPeriodUrl + '/get', mealPeriodModelId);\r\n }\r\n\r\n getMealPeriodsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.mealPeriodUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateMealPeriod(mealPeriodModel: MealPeriod) {\r\n if (mealPeriodModel.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.mealPeriodUrl, mealPeriodModel, mealPeriodModel.id);\r\n }\r\n }\r\n\r\n\r\n newMealPeriod(mealPeriodModel: MealPeriod) {\r\n return this.commonEndpoint.getNewEndpoint(this.mealPeriodUrl, mealPeriodModel);\r\n }\r\n\r\n\r\n deleteMealPeriod(mealPeriodModelOrMealPeriodId: string | MealPeriod): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.mealPeriodUrl, mealPeriodModelOrMealPeriodId);\r\n }\r\n\r\n //meal session\r\n getMealSessionById(mealSessionModelId: string) {\r\n\r\n return this.commonEndpoint.getById(this.mealSessionUrl + '/get', mealSessionModelId);\r\n }\r\n\r\n getMealPeriodSessions(outletId: string, catererId: string, outletProfileId: string) {\r\n return this.commonEndpoint.get(`${this.mealSessionUrl}/mealperiod?outletId=${outletId}&catererId=${catererId}&outletProfileId=${outletProfileId}`);\r\n }\r\n\r\n getMealSessionsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.mealSessionUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateMealSession(mealSessionModel: MealSession) {\r\n if (mealSessionModel.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.mealSessionUrl, mealSessionModel, mealSessionModel.id);\r\n }\r\n }\r\n\r\n\r\n newMealSession(mealSessionModel: MealSession) {\r\n return this.commonEndpoint.getNewEndpoint(this.mealSessionUrl, mealSessionModel);\r\n }\r\n\r\n\r\n deleteMealSession(mealSessionModelOrMealSessionId: string | MealSession): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.mealSessionUrl, mealSessionModelOrMealSessionId);\r\n }\r\n\r\n bulkMealSession(mealSessions: MealSession[]) {\r\n return this.commonEndpoint.getNewEndpoint(this.mealSessionUrl + '/bulkcreate', mealSessions);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { Menu } from 'src/app/models/meal-order/menu.model';\r\nimport { BlockUnblockDateModel, BlockUnblockOutletDateModel, MenuCycle, MenuCycleBlockedDate, MenuCycleSchedulePeriod } from 'src/app/models/meal-order/menu-cycle.model';\r\nimport { MenuCycleCalendar } from 'src/app/models/meal-order/menu-cycle-calendar.model';\r\nimport { TokenOrder, TokenLabel, TokenDishLabel, MealAllocation, PackingAllocation } from 'src/app/models/meal-order/token-order.model';\r\nimport { OutletClassRoster, OutletClassRosterSchedule, OutletClassRosterScheduleByDay } from 'src/app/models/meal-order/outlet-class-roster.model';\r\nimport { MealSessionDetail } from 'src/app/models/meal-order/meal-session.model';\r\n\r\n@Injectable()\r\nexport class MenuService {\r\n\r\n private readonly _menuBaseUrl: string = \"/api/menu\";\r\n get menuBaseUrl() { return this.configurations.baseUrl + this._menuBaseUrl; }\r\n\r\n private readonly _menuUrl: string = \"/api/menu/menus\";\r\n get menuUrl() { return this.configurations.baseUrl + this._menuUrl; }\r\n\r\n private readonly _menuCycleUrl: string = \"/api/menu/menucycles\";\r\n get menuCycleUrl() { return this.configurations.baseUrl + this._menuCycleUrl; }\r\n\r\n private readonly _outletUrl: string = \"/api/menu/outlets\";\r\n get outletUrl() { return this.configurations.baseUrl + this._outletUrl; }\r\n\r\n private readonly _studentUrl: string = \"/api/menu/students\";\r\n get studentUrl() { return this.configurations.baseUrl + this._studentUrl; }\r\n\r\n private readonly _studentSessionUrl: string = \"/api/menu/students/mealsessions\";\r\n get studentSessionUrl() { return this.configurations.baseUrl + this._studentSessionUrl; }\r\n\r\n private readonly _outletSessionUrl: string = \"/api/menu/outlets/mealsessions\";\r\n get outletSessionUrl() { return this.configurations.baseUrl + this._outletSessionUrl; }\r\n\r\n private readonly _menuCycleCalendarUrl: string = \"/api/menu/menucyclecalendars\";\r\n get menuCycleCalendarUrl() { return this.configurations.baseUrl + this._menuCycleCalendarUrl; }\r\n\r\n private readonly _tokenOrderUrl: string = \"/api/TokenOrder/tokenorders\";\r\n get tokenOrderUrl() { return this.configurations.baseUrl + this._tokenOrderUrl; }\r\n\r\n private readonly _tokenLabelUrl: string = \"/api/TokenOrder/tokenlabels\";\r\n get tokenLabelUrl() { return this.configurations.baseUrl + this._tokenLabelUrl; }\r\n\r\n private readonly _mealAllocationUrl: string = \"/api/TokenOrder/mealallocations\";\r\n get mealAllocationUrl() { return this.configurations.baseUrl + this._mealAllocationUrl; }\r\n\r\n private readonly _packingAllocationUrl: string = \"/api/TokenOrder/packingallocations\";\r\n get packingAllocationUrl() { return this.configurations.baseUrl + this._packingAllocationUrl; }\r\n\r\n private readonly _tokenOrderReportUrl: string = \"/api/TokenOrder\";\r\n get tokenOrderReportUrl() { return this.configurations.baseUrl + this._tokenOrderReportUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n //menu\r\n getMenuById(menuId: string) {\r\n\r\n return this.commonEndpoint.getById(this.menuUrl + '/get', menuId);\r\n }\r\n\r\n getMenuMealTypesById(menuId: string, page: number, pageSize: number) {\r\n\r\n return this.commonEndpoint.get(`${this.menuBaseUrl}/mealtypedishes/get/${menuId}/${page}/${pageSize}`);\r\n }\r\n\r\n getMenusByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.menuUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateMenu(menu: Menu) {\r\n if (menu.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.menuUrl, menu, menu.id);\r\n }\r\n }\r\n\r\n\r\n newMenu(menu: Menu) {\r\n return this.commonEndpoint.getNewEndpoint(this.menuUrl, menu);\r\n }\r\n\r\n\r\n deleteMenu(menuOrMenuId: string | Menu): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.menuUrl, menuOrMenuId);\r\n }\r\n\r\n //menuCycle\r\n getMenuCycleById(menuCycleId: string) {\r\n\r\n return this.commonEndpoint.getById(this.menuCycleUrl + '/get', menuCycleId);\r\n }\r\n\r\n getMenuCyclesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.menuCycleUrl + '/sieve/list', filter);\r\n }\r\n\r\n getOutletMenuCyclesByFilter(outletId, catererId) {\r\n return this.commonEndpoint.get(this.outletUrl + '/list?outletId=' + outletId + '&catererId=' + catererId);\r\n }\r\n\r\n getStudentMenuCyclesByFilter(studentId, outletId, catererId) {\r\n return this.commonEndpoint.get(`${this.studentUrl}/list?studentId=${studentId}&outletId=${outletId}&catererId=${catererId}`);\r\n }\r\n\r\n updateMenuCycle(menuCycle: MenuCycle) {\r\n if (menuCycle.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.menuCycleUrl, menuCycle, menuCycle.id);\r\n }\r\n }\r\n\r\n getStudentSessionsByFilter(studentId, orderDate) {\r\n return this.commonEndpoint.get(`${this.studentSessionUrl}?studentId=${studentId}&orderDate=${orderDate}`);\r\n }\r\n\r\n getOutletSessionsByFilter(outletId, orderDate) {\r\n return this.commonEndpoint.get(`${this.outletSessionUrl}?outletId=${outletId}&orderDate=${orderDate}`);\r\n }\r\n\r\n\r\n newMenuCycle(menuCycle: MenuCycle) {\r\n return this.commonEndpoint.getNewEndpoint(this.menuCycleUrl, menuCycle);\r\n }\r\n\r\n\r\n deleteMenuCycle(menuCycleOrMenuCycleId: string | MenuCycle): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.menuCycleUrl, menuCycleOrMenuCycleId);\r\n }\r\n\r\n blockunblockdate(model: BlockUnblockDateModel) {\r\n return this.commonEndpoint.getNewEndpoint(this.menuCycleUrl + '/blockunblockdate', model);\r\n }\r\n\r\n blockunblockOutletDate(model: BlockUnblockOutletDateModel) {\r\n return this.commonEndpoint.getNewEndpoint(this.outletUrl + '/blockunblockdate', model);\r\n }\r\n\r\n createPeriodMenus(model: MenuCycleSchedulePeriod[]) {\r\n return this.commonEndpoint.getNewEndpoint(this.menuCycleUrl + '/scheduleperiods', model);\r\n }\r\n\r\n createOutletPeriodMenus(model: MenuCycleSchedulePeriod[]) {\r\n return this.commonEndpoint.getNewEndpoint(this.outletUrl + '/scheduleperiods', model);\r\n }\r\n\r\n getOutletMenuCycleSchedulePeriods(outletId: string, catererId: string, menuCycleId: string, day) {\r\n return this.commonEndpoint.get(this.outletUrl + '/scheduleperiods/list/' + outletId + '/' + catererId + '/' + menuCycleId + '/' + day);\r\n }\r\n\r\n getMenuCycleSchedulePeriods(menuCycleId: string, day) {\r\n return this.commonEndpoint.get(this.menuCycleUrl + '/scheduleperiods/list/' + menuCycleId + '/' + day);\r\n }\r\n\r\n //menuCycleCalendar\r\n getMenuCycleCalendarById(menuCycleCalendarId: string) {\r\n\r\n return this.commonEndpoint.getById(this.menuCycleCalendarUrl + '/get', menuCycleCalendarId);\r\n }\r\n\r\n getMenuCycleCalendarsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.menuCycleCalendarUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateMenuCycleCalendar(menuCycleCalendar: MenuCycleCalendar) {\r\n if (menuCycleCalendar.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.menuCycleCalendarUrl, menuCycleCalendar, menuCycleCalendar.id);\r\n }\r\n }\r\n\r\n\r\n newMenuCycleCalendar(menuCycleCalendar: MenuCycleCalendar) {\r\n return this.commonEndpoint.getNewEndpoint(this.menuCycleCalendarUrl, menuCycleCalendar);\r\n }\r\n\r\n\r\n deleteMenuCycleCalendar(menuCycleCalendarOrMenuCycleCalendarId: string | MenuCycleCalendar): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.menuCycleCalendarUrl, menuCycleCalendarOrMenuCycleCalendarId);\r\n }\r\n\r\n //tokenOrder\r\n\r\n getTokenOrderById(id: string) {\r\n\r\n return this.commonEndpoint.getById(this.tokenOrderUrl + '/get', id);\r\n }\r\n\r\n getTokenOrdersByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.tokenOrderUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateTokenOrder(tokenOrder: TokenOrder) {\r\n if (tokenOrder.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.tokenOrderUrl, tokenOrder, tokenOrder.id);\r\n }\r\n }\r\n\r\n\r\n newTokenOrder(tokenOrder: TokenOrder) {\r\n return this.commonEndpoint.getNewEndpoint(this.tokenOrderUrl, tokenOrder);\r\n }\r\n\r\n\r\n deleteTokenOrder(tokenOrderOrTokenOrderId: string | TokenOrder): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.tokenOrderUrl, tokenOrderOrTokenOrderId);\r\n }\r\n\r\n //donwload report\r\n\r\n downloadOrderReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.tokenOrderReportUrl + '/orderreport', filter);\r\n }\r\n\r\n //donwload delivery report\r\n downloadDeliveryOrderReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.tokenOrderReportUrl + '/deliveryorderreport', filter);\r\n }\r\n\r\n\r\n downloadMealSummaryReport(filter: Filter) {\r\n return this.commonEndpoint.getFile(this.tokenOrderReportUrl + '/mealsummaryreport', filter);\r\n }\r\n\r\n\r\n downloadOrderLabel(tokenLabel: TokenLabel[]) {\r\n return this.commonEndpoint.getFile(this.tokenOrderReportUrl + '/orderlabel', tokenLabel);\r\n }\r\n\r\n //tokenLabel\r\n\r\n getTokenLabelById(id: string) {\r\n\r\n return this.commonEndpoint.getById(this.tokenLabelUrl + '/get', id);\r\n }\r\n\r\n getTokenLabelsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.tokenLabelUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateTokenLabel(tokenLabel: TokenLabel) {\r\n if (tokenLabel.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.tokenLabelUrl, tokenLabel, tokenLabel.id);\r\n }\r\n }\r\n\r\n\r\n newTokenLabel(tokenLabel: TokenLabel) {\r\n return this.commonEndpoint.getNewEndpoint(this.tokenLabelUrl, tokenLabel);\r\n }\r\n\r\n\r\n deleteTokenLabel(tokenLabelOrTokenLabelId: string | TokenLabel): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.tokenLabelUrl, tokenLabelOrTokenLabelId);\r\n }\r\n\r\n //Meal Allocation\r\n\r\n getMealAllocationById(id: string) {\r\n\r\n return this.commonEndpoint.getById(this.mealAllocationUrl + '/get', id);\r\n }\r\n\r\n getMealAllocationsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.mealAllocationUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateMealAllocation(allocation: MealAllocation) {\r\n if (allocation.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.mealAllocationUrl, allocation, allocation.id);\r\n }\r\n }\r\n\r\n\r\n newMealAllocation(allocation: MealAllocation) {\r\n return this.commonEndpoint.getNewEndpoint(this.mealAllocationUrl, allocation);\r\n }\r\n\r\n\r\n deleteMealAllocation(mealAllocationOrMealAllocationId: string | MealAllocation): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.mealAllocationUrl, mealAllocationOrMealAllocationId);\r\n }\r\n\r\n\r\n //Packing Allocation\r\n\r\n getPackingAllocationById(id: string) {\r\n\r\n return this.commonEndpoint.getById(this.packingAllocationUrl + '/get', id);\r\n }\r\n\r\n getPackingAllocationsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.packingAllocationUrl + '/sieve/list', filter);\r\n }\r\n\r\n updatePackingAllocation(allocation: PackingAllocation) {\r\n if (allocation.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.packingAllocationUrl, allocation, allocation.id);\r\n }\r\n }\r\n\r\n\r\n newPackingAllocation(allocation: PackingAllocation) {\r\n return this.commonEndpoint.getNewEndpoint(this.packingAllocationUrl, allocation);\r\n }\r\n\r\n\r\n deletePackingAllocation(packingAllocationOrPackingAllocationId: string | PackingAllocation): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.packingAllocationUrl, packingAllocationOrPackingAllocationId);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { PaymentType } from 'src/app/models/meal-order/payment-type.model';\r\nimport { TransactionFee } from 'src/app/models/meal-order/transaction-fee.model';\r\nimport { VoucherType } from 'src/app/models/meal-order/voucher-type.model';\r\nimport { Voucher } from 'src/app/models/meal-order/voucher.model';\r\nimport { Waiver } from 'src/app/models/meal-order/waiver.model';\r\nimport { CancelOrderRequest } from 'src/app/models/meal-order/cancel-order-request.model';\r\n\r\n@Injectable()\r\nexport class PaymentService {\r\n\r\n private readonly _paymentTypeUrl: string = \"/api/payment/paymenttypes\";\r\n get paymentTypeUrl() { return this.configurations.baseUrl + this._paymentTypeUrl; }\r\n\r\n private readonly _transactionFeeUrl: string = \"/api/payment/transactionfees\";\r\n get transactionFeeUrl() { return this.configurations.baseUrl + this._transactionFeeUrl; }\r\n\r\n private readonly _voucherTypeUrl: string = \"/api/payment/vouchertypes\";\r\n get voucherTypeUrl() { return this.configurations.baseUrl + this._voucherTypeUrl; }\r\n\r\n private readonly _voucherUrl: string = \"/api/payment/vouchers\";\r\n get voucherUrl() { return this.configurations.baseUrl + this._voucherUrl; }\r\n\r\n private readonly _waiverUrl: string = \"/api/payment/waivers\";\r\n get waiverUrl() { return this.configurations.baseUrl + this._waiverUrl; }\r\n\r\n private readonly _cancelOrderRequestUrl: string = \"/api/tokenorder/tokenorders/cancelorder\";\r\n get cancelOrderRequestUrl() { return this.configurations.baseUrl + this._cancelOrderRequestUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n //payment type\r\n getPaymentTypeById(paymentTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.paymentTypeUrl + '/get', paymentTypeId);\r\n }\r\n\r\n getPaymentTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.paymentTypeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updatePaymentType(paymentType: PaymentType) {\r\n if (paymentType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.paymentTypeUrl, paymentType, paymentType.id);\r\n }\r\n }\r\n\r\n\r\n newPaymentType(paymentType: PaymentType) {\r\n return this.commonEndpoint.getNewEndpoint(this.paymentTypeUrl, paymentType);\r\n }\r\n\r\n\r\n deletePaymentType(paymentTypeOrPaymentTypeId: string | PaymentType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.paymentTypeUrl, paymentTypeOrPaymentTypeId);\r\n }\r\n\r\n //transaction fee\r\n getTransactionFeeById(transactionFeeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.transactionFeeUrl + '/get', transactionFeeId);\r\n }\r\n\r\n getTransactionFeesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.transactionFeeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateTransactionFee(transactionFee: TransactionFee) {\r\n if (transactionFee.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.transactionFeeUrl, transactionFee, transactionFee.id);\r\n }\r\n }\r\n\r\n\r\n newTransactionFee(transactionFee: TransactionFee) {\r\n return this.commonEndpoint.getNewEndpoint(this.transactionFeeUrl, transactionFee);\r\n }\r\n\r\n\r\n deleteTransactionFee(transactionFeeOrTransactionFeeId: string | TransactionFee): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.transactionFeeUrl, transactionFeeOrTransactionFeeId);\r\n }\r\n\r\n //voucher type\r\n getVoucherTypeById(voucherTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.voucherTypeUrl + '/get', voucherTypeId);\r\n }\r\n\r\n getVoucherTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.voucherTypeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateVoucherType(voucherType: VoucherType) {\r\n if (voucherType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.voucherTypeUrl, voucherType, voucherType.id);\r\n }\r\n }\r\n\r\n\r\n newVoucherType(voucherType: VoucherType) {\r\n return this.commonEndpoint.getNewEndpoint(this.voucherTypeUrl, voucherType);\r\n }\r\n\r\n\r\n deleteVoucherType(voucherTypeOrVoucherTypeId: string | VoucherType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.voucherTypeUrl, voucherTypeOrVoucherTypeId);\r\n }\r\n\r\n\r\n //voucher \r\n getVoucherById(voucherId: string) {\r\n\r\n return this.commonEndpoint.getById(this.voucherUrl + '/get', voucherId);\r\n }\r\n\r\n getVouchersByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.voucherUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateVoucher(voucher: Voucher) {\r\n if (voucher.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.voucherUrl, voucher, voucher.id);\r\n }\r\n }\r\n\r\n\r\n newVoucher(voucher: Voucher) {\r\n return this.commonEndpoint.getNewEndpoint(this.voucherUrl, voucher);\r\n }\r\n\r\n\r\n deleteVoucher(voucherOrVoucherId: string | Voucher): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.voucherUrl, voucherOrVoucherId);\r\n }\r\n\r\n //waiver\r\n getWaiverById(waiverId: string) {\r\n\r\n return this.commonEndpoint.getById(this.waiverUrl + '/get', waiverId);\r\n }\r\n\r\n getWaiversByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.waiverUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateWaiver(waiver: Waiver) {\r\n if (waiver.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.waiverUrl, waiver, waiver.id);\r\n }\r\n }\r\n\r\n\r\n newWaiver(waiver: Waiver) {\r\n return this.commonEndpoint.getNewEndpoint(this.waiverUrl, waiver);\r\n }\r\n\r\n\r\n deleteWaiver(waiverOrWaiverId: string | Waiver): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.waiverUrl, waiverOrWaiverId);\r\n }\r\n\r\n //cancel order request\r\n getCancelOrderRequestById(cancelOrderRequestId: string) {\r\n\r\n return this.commonEndpoint.getById(this.cancelOrderRequestUrl + '/get', cancelOrderRequestId);\r\n }\r\n\r\n getCancelOrderRequestsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.cancelOrderRequestUrl + '/sieve/list', filter);\r\n }\r\n\r\n approveCancelRequest(cancelOrderRequest: CancelOrderRequest) {\r\n return this.commonEndpoint.getNewEndpoint(this.cancelOrderRequestUrl + '/approval', cancelOrderRequest);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { RestrictionType } from 'src/app/models/meal-order/restriction-type.model';\r\nimport { Restriction } from 'src/app/models/meal-order/restriction.model';\r\n\r\n@Injectable()\r\nexport class RestrictionService {\r\n\r\n private readonly _restrictionUrl: string = \"/api/restriction/restrictions\";\r\n get restrictionUrl() { return this.configurations.baseUrl + this._restrictionUrl; }\r\n\r\n private readonly _restrictionTypeUrl: string = \"/api/restriction/restrictiontypes\";\r\n get restrictionTypeUrl() { return this.configurations.baseUrl + this._restrictionTypeUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n //restriction Type\r\n getRestrictionTypeById(restrictionTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.restrictionTypeUrl + '/get', restrictionTypeId);\r\n }\r\n\r\n getRestrictionTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.restrictionTypeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateRestrictionType(restrictionType: RestrictionType) {\r\n if (restrictionType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.restrictionTypeUrl, restrictionType, restrictionType.id);\r\n }\r\n }\r\n\r\n\r\n newRestrictionType(restrictionType: RestrictionType) {\r\n return this.commonEndpoint.getNewEndpoint(this.restrictionTypeUrl, restrictionType);\r\n }\r\n\r\n\r\n deleteRestrictionType(restrictionTypeOrRestrictionTypeId: string | RestrictionType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.restrictionTypeUrl, restrictionTypeOrRestrictionTypeId);\r\n }\r\n\r\n\r\n //restriction\r\n getRestrictionById(restrictionModelId: string) {\r\n\r\n return this.commonEndpoint.getById(this.restrictionUrl + '/get', restrictionModelId);\r\n }\r\n\r\n getRestrictionsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.restrictionUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateRestriction(restrictionModel: Restriction) {\r\n if (restrictionModel.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.restrictionUrl, restrictionModel, restrictionModel.id);\r\n }\r\n }\r\n\r\n\r\n newRestriction(restrictionModel: Restriction) {\r\n return this.commonEndpoint.getNewEndpoint(this.restrictionUrl, restrictionModel);\r\n }\r\n\r\n\r\n deleteRestriction(restrictionModelOrRestrictionId: string | Restriction): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.restrictionUrl, restrictionModelOrRestrictionId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { Staff } from 'src/app/models/meal-order/staff.model';\r\nimport { CatererInfo } from '../../models/meal-order/caterer-info.model';\r\n\r\n@Injectable()\r\nexport class StaffService {\r\n\r\n private readonly _catererInfoUrl: string = \"/api/staff/catererinfos\";\r\n get catererInfoUrl() { return this.configurations.baseUrl + this._catererInfoUrl; }\r\n\r\n private readonly _staffUrl: string = \"/api/staff/staffs\";\r\n get staffUrl() { return this.configurations.baseUrl + this._staffUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n //staff level\r\n getStaffById(staffId: string) {\r\n\r\n return this.commonEndpoint.getById(this.staffUrl + '/get', staffId);\r\n }\r\n\r\n getStaffsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.staffUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateStaff(staff: Staff) {\r\n if (staff.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.staffUrl, staff, staff.id);\r\n }\r\n }\r\n\r\n\r\n newStaff(staff: Staff) {\r\n return this.commonEndpoint.getNewEndpoint(this.staffUrl, staff);\r\n }\r\n\r\n\r\n deleteStaff(staffOrStaffId: string | Staff): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.staffUrl, staffOrStaffId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { Student } from 'src/app/models/meal-order/student.model';\r\nimport { StudentGroup, StudentGroupDetail } from 'src/app/models/meal-order/student-group.model';\r\nimport { InterestGroup } from 'src/app/models/meal-order/interest-group.model';\r\n\r\n@Injectable()\r\nexport class StudentService {\r\n\r\n private readonly _studentUrl: string = \"/api/student/students\";\r\n get studentUrl() { return this.configurations.baseUrl + this._studentUrl; }\r\n\r\n private readonly _studentGroupUrl: string = \"/api/student/studentgroups\";\r\n get studentGroupUrl() { return this.configurations.baseUrl + this._studentGroupUrl; }\r\n\r\n private readonly _voucherUrl: string = \"/api/student/vouchers\";\r\n get voucherUrl() { return this.configurations.baseUrl + this._voucherUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n //student level\r\n getStudentById(studentId: string) {\r\n\r\n return this.commonEndpoint.getById(this.studentUrl + '/get', studentId);\r\n }\r\n\r\n getStudentsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.studentUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateStudent(student: Student) {\r\n if (student.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.studentUrl, student, student.id);\r\n }\r\n }\r\n\r\n\r\n newStudent(student: Student) {\r\n return this.commonEndpoint.getNewEndpoint(this.studentUrl, student);\r\n }\r\n\r\n\r\n deleteStudent(studentOrStudentId: string | Student): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.studentUrl, studentOrStudentId);\r\n }\r\n\r\n importFile(data: any): Observable {\r\n return this.commonEndpoint.importFile(this.studentUrl + '/import', data);\r\n }\r\n\r\n importStudentCardFile(data: any): Observable {\r\n return this.commonEndpoint.importFile(this.studentUrl + '/cards/import', data);\r\n }\r\n\r\n createAccount(ids: string[]) {\r\n return this.commonEndpoint.get(this.studentUrl + '/createaccount', true, ids);\r\n }\r\n\r\n //interest group\r\n\r\n private readonly _interestGroupUrl: string = \"/api/student/interestgroups\";\r\n get interestGroupUrl() { return this.configurations.baseUrl + this._interestGroupUrl; }\r\n\r\n getInterestGroupById(interestGroupId: string) {\r\n\r\n return this.commonEndpoint.getById(this.interestGroupUrl + '/get', interestGroupId);\r\n }\r\n\r\n getInterestGroupsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.interestGroupUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateInterestGroup(interestGroup: InterestGroup) {\r\n if (interestGroup.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.interestGroupUrl, interestGroup, interestGroup.id);\r\n }\r\n }\r\n\r\n\r\n newInterestGroup(interestGroup: InterestGroup) {\r\n return this.commonEndpoint.getNewEndpoint(this.interestGroupUrl, interestGroup);\r\n }\r\n\r\n\r\n deleteInterestGroup(interestGroupOrInterestGroupId: string | InterestGroup): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.interestGroupUrl, interestGroupOrInterestGroupId);\r\n }\r\n\r\n sendEmailToStudents(templateId: string, id: string) {\r\n return this.commonEndpoint.get(`${this.interestGroupUrl}/sendemail/${id}/${templateId}`);\r\n }\r\n\r\n\r\n //Student Group\r\n\r\n getStudentGroupById(id: string) {\r\n\r\n return this.commonEndpoint.getById(this.studentGroupUrl + '/get', id);\r\n }\r\n\r\n getStudentGroupsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.studentGroupUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateStudentGroup(group: StudentGroup) {\r\n if (group.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.studentGroupUrl, group, group.id);\r\n }\r\n }\r\n\r\n\r\n newStudentGroup(group: StudentGroup) {\r\n return this.commonEndpoint.getNewEndpoint(this.studentGroupUrl, group);\r\n }\r\n\r\n\r\n deleteStudentGroup(studentGroupOrStudentGroupId: string | StudentGroup): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.studentGroupUrl, studentGroupOrStudentGroupId);\r\n }\r\n\r\n addStudentVoucher(studentId: string, code: string) {\r\n return this.commonEndpoint.get(this.voucherUrl + '/add?studentId=' + studentId + '&code=' + code );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { AccountEndpoint } from '../account-endpoint.service';\r\nimport { AuthService } from '../auth.service';\r\nimport { CommonEndpoint } from '../common-endpoint.service';\r\nimport { ConfigurationService } from '../configuration.service';\r\nimport { Filter, PagedResult } from 'src/app/models/sieve-filter.model';\r\nimport { StaffType } from 'src/app/models/meal-order/staff-type.model';\r\n\r\n@Injectable()\r\nexport class UserService {\r\n private readonly _staffTypeUrl: string = \"/api/user/stafftypes\";\r\n get staffTypeUrl() { return this.configurations.baseUrl + this._staffTypeUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n //user type\r\n getStaffTypeById(staffTypeId: string) {\r\n\r\n return this.commonEndpoint.getById(this.staffTypeUrl + '/get', staffTypeId);\r\n }\r\n\r\n getStaffTypesByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.staffTypeUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateStaffType(staffType: StaffType) {\r\n if (staffType.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.staffTypeUrl, staffType, staffType.id);\r\n }\r\n }\r\n\r\n\r\n newStaffType(staffType: StaffType) {\r\n return this.commonEndpoint.getNewEndpoint(this.staffTypeUrl, staffType);\r\n }\r\n\r\n\r\n deleteStaffType(staffTypeOrStaffTypeId: string | StaffType): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.staffTypeUrl, staffTypeOrStaffTypeId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { MediaExtension } from '../models/media-extension.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type MediaExtensionsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type MediaExtensionsChangedEventArg = { mediaExtensions: MediaExtension[] | string[], operation: MediaExtensionsChangedOperation };\r\n\r\n@Injectable()\r\nexport class MediaExtensionService {\r\n\r\n public static readonly mediaExtensionAddedOperation: MediaExtensionsChangedOperation = \"add\";\r\n public static readonly mediaExtensionDeletedOperation: MediaExtensionsChangedOperation = \"delete\";\r\n public static readonly mediaExtensionModifiedOperation: MediaExtensionsChangedOperation = \"modify\";\r\n\r\n private _mediaExtensionsChanged = new Subject();\r\n\r\n private readonly _mediaExtensionUrl: string = \"/api/mediaextension\";\r\n get mediaExtensionUrl() { return this.configurations.baseUrl + this._mediaExtensionUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onMediaExtensionsChanged(mediaExtensions: MediaExtension[] | string[], op: MediaExtensionsChangedOperation) {\r\n this._mediaExtensionsChanged.next({ mediaExtensions: mediaExtensions, operation: op });\r\n }\r\n\r\n\r\n onMediaExtensionsCountChanged(mediaExtensions: MediaExtension[] | string[]) {\r\n return this.onMediaExtensionsChanged(mediaExtensions, MediaExtensionService.mediaExtensionModifiedOperation);\r\n }\r\n\r\n\r\n getMediaExtensionsChangedEvent(): Observable {\r\n return this._mediaExtensionsChanged.asObservable();\r\n }\r\n\r\n getMediaExtensions(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.mediaExtensionUrl + '/list', page, pageSize));\r\n }\r\n\r\n getMediaExtensionByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.mediaExtensionUrl + '/list', institutionId));\r\n }\r\n\r\n getMediaExtensionByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.mediaExtensionUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n updateMediaExtension(mediaExtension: MediaExtension) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.mediaExtensionUrl, mediaExtension, mediaExtension.id).pipe(\r\n tap(data => this.onMediaExtensionsChanged([mediaExtension], MediaExtensionService.mediaExtensionModifiedOperation)));\r\n }\r\n\r\n newMediaExtension(mediaExtension: MediaExtension) {\r\n return this.commonEndpoint.getNewEndpoint(this.mediaExtensionUrl, mediaExtension).pipe(\r\n tap(data => this.onMediaExtensionsChanged([mediaExtension], MediaExtensionService.mediaExtensionAddedOperation)));\r\n }\r\n\r\n\r\n deleteMediaExtension(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.mediaExtensionUrl, id).pipe(\r\n tap(data => this.onMediaExtensionsChanged([data], MediaExtensionService.mediaExtensionDeletedOperation)));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Media } from '../models/media.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type MediasChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type MediasChangedEventArg = { medias: Media[] | string[], operation: MediasChangedOperation };\r\n\r\n@Injectable()\r\nexport class MediaService {\r\n\r\n public static readonly mediaAddedOperation: MediasChangedOperation = \"add\";\r\n public static readonly mediaDeletedOperation: MediasChangedOperation = \"delete\";\r\n public static readonly mediaModifiedOperation: MediasChangedOperation = \"modify\";\r\n\r\n private _mediasChanged = new Subject();\r\n\r\n private readonly _mediaUrl: string = \"/api/media\";\r\n get mediaUrl() { return this.configurations.baseUrl + this._mediaUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onMediasChanged(medias: Media[] | string[], op: MediasChangedOperation) {\r\n this._mediasChanged.next({ medias: medias, operation: op });\r\n }\r\n\r\n\r\n onMediasCountChanged(medias: Media[] | string[]) {\r\n return this.onMediasChanged(medias, MediaService.mediaModifiedOperation);\r\n }\r\n\r\n\r\n getMediasChangedEvent(): Observable {\r\n return this._mediasChanged.asObservable();\r\n }\r\n\r\n getMediaById(mediaId: string) {\r\n\r\n return this.commonEndpoint.getById(this.mediaUrl + '/get', mediaId);\r\n }\r\n\r\n getMedias(page?: number, pageSize?: number, institutionId?: string, userId?: string) {\r\n return this.commonEndpoint.get(this.mediaUrl + '/medias/list?institutionId=' + institutionId + '&userId=' + userId);\r\n }\r\n\r\n updateMedia(media: Media) {\r\n if (media.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.mediaUrl, media, media.id).pipe(\r\n tap(data => this.onMediasChanged([media], MediaService.mediaModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newMedia(media: Media) {\r\n return this.commonEndpoint.getNewEndpoint(this.mediaUrl, media).pipe(\r\n tap(data => this.onMediasChanged([media], MediaService.mediaAddedOperation)));\r\n }\r\n\r\n\r\n deleteMedia(media: string | Media): Observable {\r\n\r\n if (typeof media === 'number' || media instanceof Number ||\r\n typeof media === 'string' || media instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.mediaUrl, media).pipe(\r\n tap(data => this.onMediasChanged([data], MediaService.mediaDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (media.id) {\r\n return this.deleteMedia(media.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Module } from '../models/module.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type ModulesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type ModulesChangedEventArg = { modules: Module[] | string[], operation: ModulesChangedOperation };\r\n\r\n@Injectable()\r\nexport class ModuleService {\r\n\r\n public static readonly moduleAddedOperation: ModulesChangedOperation = \"add\";\r\n public static readonly moduleDeletedOperation: ModulesChangedOperation = \"delete\";\r\n public static readonly moduleModifiedOperation: ModulesChangedOperation = \"modify\";\r\n\r\n private _modulesChanged = new Subject();\r\n\r\n private readonly _moduleUrl: string = \"/api/module\";\r\n get moduleUrl() { return this.configurations.baseUrl + this._moduleUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onModulesChanged(modules: Module[] | string[], op: ModulesChangedOperation) {\r\n this._modulesChanged.next({ modules: modules, operation: op });\r\n }\r\n\r\n\r\n onModulesCountChanged(modules: Module[] | string[]) {\r\n return this.onModulesChanged(modules, ModuleService.moduleModifiedOperation);\r\n }\r\n\r\n\r\n getModulesChangedEvent(): Observable {\r\n return this._modulesChanged.asObservable();\r\n }\r\n\r\n getModuleById(moduleId: string) {\r\n\r\n return this.commonEndpoint.getById(this.moduleUrl + '/get', moduleId);\r\n }\r\n\r\n getModules(page?: number, pageSize?: number) {\r\n return this.commonEndpoint.get(this.moduleUrl + '/modules/list');\r\n }\r\n\r\n updateModule(module: Module) {\r\n if (module.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.moduleUrl, module, module.id).pipe(\r\n tap(data => this.onModulesChanged([module], ModuleService.moduleModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newModule(module: Module) {\r\n return this.commonEndpoint.getNewEndpoint(this.moduleUrl, module).pipe(\r\n tap(data => this.onModulesChanged([module], ModuleService.moduleAddedOperation)));\r\n }\r\n\r\n\r\n deleteModule(module: string | Module): Observable {\r\n\r\n if (typeof module === 'number' || module instanceof Number ||\r\n typeof module === 'string' || module instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.moduleUrl, module).pipe(\r\n tap(data => this.onModulesChanged([data], ModuleService.moduleDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (module.id) {\r\n return this.deleteModule(module.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpResponse } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport * as signalR from '@aspnet/signalr';\r\nimport { Reservation } from '../models/reservation.model';\r\nimport { AccountService } from './account.service';\r\nimport { Device } from '../models/device.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { Notification } from '../models/notification.model';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class NotificationEndpoint {\r\n private connection: signalR.HubConnection;\r\n constructor(private accountService: AccountService, private configurationService: ConfigurationService, private commonEndpoint: CommonEndpoint) {\r\n //this.connection = new signalR.HubConnectionBuilder()\r\n // .withUrl(this.configurationService.baseUrl + \"/hub/user?email=\" + this.accountService.currentUser.email)\r\n // .build();\r\n\r\n //this.connection.on(\"BroadcastReservationData\", (reservation: Reservation) => {\r\n // console.log(reservation);\r\n // if (!this.notifications || this.notifications.length == 0) {\r\n // this.notifications = [];\r\n // }\r\n\r\n\r\n // var email = this.accountService.currentUser.email;\r\n // var userId = this.accountService.currentUser.id;\r\n // if (this.accountService.currentUser.institutionId == reservation.institutionId) {\r\n // var invitees = reservation.invitees.filter(function (p, index, array) {\r\n // if ((p.userId == userId || p.email == email) && reservation.createdBy != userId) {\r\n // return p;\r\n // }\r\n // });\r\n\r\n // if (invitees != null && invitees.length > 0) {\r\n // var notification = {\r\n // header: reservation.shortDescription,\r\n // body: reservation.shortDescription,\r\n // date: new Date(),\r\n // id: reservation.id\r\n // };\r\n\r\n // this.notifications.push(notification);\r\n // }\r\n // }\r\n\r\n //});\r\n\r\n //this.connection.on(\"BroadcastDeviceData\", (device: Device) => {\r\n // console.log(device);\r\n //});\r\n\r\n //this.connection.on(\"NotificationTriggered\", (notification: Notification) => {\r\n // this.notifications.push(notification);\r\n\r\n //});\r\n\r\n //this.connection.start().catch(err => {\r\n // console.log(err);\r\n //});\r\n\r\n }\r\n\r\n\r\n\r\n private notifications = [\r\n //{\r\n // \"id\": 1,\r\n // \"header\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s by \\\"administrator\\\"\",\r\n // \"body\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s \\\"administrator\\\" on 5/28/2017 4:54:13 PM\",\r\n // \"isRead\": true,\r\n // \"isPinned\": true,\r\n // \"date\": \"2017-05-28T16:29:13.5877958\"\r\n //},\r\n //{\r\n // \"id\": 2,\r\n // \"header\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s\",\r\n // \"body\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s\",\r\n // \"isRead\": false,\r\n // \"isPinned\": false,\r\n // \"date\": \"2017-05-28T19:54:42.4144502\"\r\n //},\r\n //{\r\n // \"id\": 3,\r\n // \"header\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s\",\r\n // \"body\": \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s\",\r\n // \"isRead\": false,\r\n // \"isPinned\": false,\r\n // \"date\": \"2017-05-30T11:13:42.4144502\"\r\n //}\r\n ];\r\n\r\n\r\n\r\n getNotificationEndpoint(notificationId: number): Observable {\r\n\r\n let notification = this.notifications.find(val => val.id == notificationId);\r\n let response: HttpResponse;\r\n\r\n if (notification) {\r\n response = this.createResponse(notification, 200);\r\n }\r\n else {\r\n response = this.createResponse(null, 404);\r\n }\r\n\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n getNotificationsEndpoint(page: number, pageSize: number): Observable {\r\n\r\n let notifications = this.notifications;\r\n let response = this.createResponse(this.notifications, 200);\r\n\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n getUnreadNotificationsEndpoint(userId?: string): Observable {\r\n\r\n let unreadNotifications = this.notifications.filter(val => !val.isRead);\r\n let response = this.createResponse(unreadNotifications, 200);\r\n\r\n return of(response.body);\r\n }\r\n\r\n private readonly _notificationUrl: string = \"/api/notification/notifications\";\r\n get notificationUrl() { return this.configurationService.baseUrl + this._notificationUrl; }\r\n\r\n getNewNotificationsEndpoint(filter: Filter): Observable {\r\n return this.commonEndpoint.getSieve(this.notificationUrl + '/sieve/list', filter);\r\n //let unreadNotifications = this.notifications;\r\n //let response = this.createResponse(unreadNotifications, 200);\r\n\r\n //return of(response.body);\r\n }\r\n\r\n getPinUnpinNotificationEndpoint(notificationId: number, isPinned?: boolean, ): Observable {\r\n\r\n let notification = this.notifications.find(val => val.id == notificationId);\r\n let response: HttpResponse;\r\n\r\n if (notification) {\r\n response = this.createResponse(null, 204);\r\n\r\n if (isPinned == null)\r\n isPinned = !notification.isPinned;\r\n\r\n notification.isPinned = isPinned;\r\n notification.isRead = true;\r\n }\r\n else {\r\n response = this.createResponse(null, 404);\r\n }\r\n\r\n\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n getReadUnreadNotificationEndpoint(notificationIds: number[], isRead: boolean, ): Observable {\r\n this.commonEndpoint.getNewEndpoint(this.notificationUrl + '/read', notificationIds)\r\n .subscribe(res => { }, error => { console.log(error); });\r\n\r\n for (let notificationId of notificationIds) {\r\n\r\n let notification = this.notifications.find(val => val.id == notificationId);\r\n\r\n if (notification) {\r\n notification.isRead = isRead;\r\n }\r\n }\r\n\r\n let response = this.createResponse(null, 204);\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n getDeleteNotificationEndpoint(notificationId: number): Observable {\r\n\r\n let notification = this.notifications.find(val => val.id == notificationId);\r\n let response: HttpResponse;\r\n\r\n if (notification) {\r\n this.notifications = this.notifications.filter(val => val.id != notificationId)\r\n response = this.createResponse(notification, 200);\r\n }\r\n else {\r\n response = this.createResponse(null, 404);\r\n }\r\n\r\n return of(response.body);\r\n }\r\n\r\n\r\n\r\n private createResponse(body, status: number) {\r\n return new HttpResponse({ body: body, status: status });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, interval } from 'rxjs';\r\nimport { map, flatMap, startWith } from 'rxjs/operators';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { NotificationEndpoint } from './notification-endpoint.service';\r\nimport { Notification } from '../models/notification.model';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { NotificationEvent } from '../models/meal-order/notification-event.model';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n\r\n private readonly _notificationEventUrl: string = \"/api/notification/notificationevents\";\r\n get notificationEventUrl() { return this.configurations.baseUrl + this._notificationEventUrl; }\r\n\r\n private readonly _notificationUrl: string = \"/api/notification/notifications\";\r\n get notificationUrl() { return this.configurations.baseUrl + this._notificationUrl; }\r\n\r\n private lastNotificationDate: Date;\r\n private _recentNotifications: Notification[];\r\n\r\n get recentNotifications() {\r\n return this._recentNotifications;\r\n }\r\n\r\n set recentNotifications(notifications: Notification[]) {\r\n this._recentNotifications = notifications;\r\n }\r\n\r\n\r\n\r\n constructor(private notificationEndpoint: NotificationEndpoint, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService ) {\r\n\r\n }\r\n\r\n\r\n getNotification(notificationId?: number) {\r\n\r\n return this.notificationEndpoint.getNotificationEndpoint(notificationId).pipe(\r\n map(response => Notification.Create(response)));\r\n }\r\n\r\n\r\n getNotifications(page: number, pageSize: number) {\r\n\r\n return this.notificationEndpoint.getNotificationsEndpoint(page, pageSize).pipe(\r\n map(response => {\r\n return this.getNotificationsFromResponse(response);\r\n }));\r\n }\r\n\r\n\r\n getUnreadNotifications(userId?: string) {\r\n\r\n return this.notificationEndpoint.getUnreadNotificationsEndpoint(userId).pipe(\r\n map(response => this.getNotificationsFromResponse(response)));\r\n }\r\n\r\n\r\n getNewNotifications(filter: Filter) {\r\n return this.notificationEndpoint.getNewNotificationsEndpoint(filter).pipe(\r\n map(response => this.processNewNotificationsFromResponse(response)));\r\n }\r\n\r\n\r\n getNewNotificationsPeriodically(filter: Filter) {\r\n return interval(10000).pipe(\r\n startWith(0),\r\n flatMap(() => {\r\n return this.notificationEndpoint.getNewNotificationsEndpoint(filter).pipe(\r\n map(response => this.processNewNotificationsFromResponse(response)));\r\n }));\r\n }\r\n\r\n\r\n\r\n\r\n pinUnpinNotification(notificationOrNotificationId: number | Notification, isPinned?: boolean): Observable {\r\n\r\n if (typeof notificationOrNotificationId === 'number' || notificationOrNotificationId instanceof Number) {\r\n return this.notificationEndpoint.getPinUnpinNotificationEndpoint(notificationOrNotificationId, isPinned);\r\n }\r\n else {\r\n return this.pinUnpinNotification(notificationOrNotificationId.id);\r\n }\r\n }\r\n\r\n\r\n readUnreadNotification(notificationIds: number[], isRead: boolean): Observable {\r\n\r\n return this.notificationEndpoint.getReadUnreadNotificationEndpoint(notificationIds, isRead);\r\n }\r\n\r\n\r\n\r\n\r\n deleteNotification(notificationOrNotificationId: number | Notification): Observable {\r\n\r\n if (typeof notificationOrNotificationId === 'number' || notificationOrNotificationId instanceof Number) { //Todo: Test me if its check is valid\r\n return this.notificationEndpoint.getDeleteNotificationEndpoint(notificationOrNotificationId).pipe(\r\n map(response => {\r\n this.recentNotifications = this.recentNotifications.filter(n => n.id != notificationOrNotificationId);\r\n return Notification.Create(response);\r\n }));\r\n }\r\n else {\r\n return this.deleteNotification(notificationOrNotificationId.id);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n private processNewNotificationsFromResponse(response) {\r\n let notifications = this.getNotificationsFromResponse(response.pagedData);\r\n\r\n for (let n of notifications) {\r\n if (n.date > this.lastNotificationDate)\r\n this.lastNotificationDate = n.date;\r\n }\r\n\r\n return notifications;\r\n }\r\n\r\n\r\n private getNotificationsFromResponse(response) {\r\n let notifications: Notification[] = [];\r\n\r\n for (let i in response) {\r\n notifications[i] = Notification.Create(response[i]);\r\n }\r\n\r\n notifications.sort((a, b) => b.date.valueOf() - a.date.valueOf());\r\n notifications.sort((a, b) => (a.isPinned === b.isPinned) ? 0 : a.isPinned ? -1 : 1);\r\n\r\n this.recentNotifications = notifications;\r\n\r\n return notifications;\r\n }\r\n\r\n\r\n\r\n get currentUser() {\r\n return this.authService.currentUser;\r\n }\r\n\r\n\r\n //notification event\r\n getNotificationEventById(notificationEventId: string) {\r\n\r\n return this.commonEndpoint.getById(this.notificationEventUrl + '/get', notificationEventId);\r\n }\r\n\r\n getNotificationEventsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.notificationEventUrl + '/sieve/list', filter);\r\n }\r\n\r\n updateNotificationEvent(notificationEvent: NotificationEvent) {\r\n if (notificationEvent.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.notificationEventUrl, notificationEvent, notificationEvent.id);\r\n }\r\n }\r\n\r\n\r\n newNotificationEvent(notificationEvent: NotificationEvent) {\r\n return this.commonEndpoint.getNewEndpoint(this.notificationEventUrl, notificationEvent);\r\n }\r\n\r\n\r\n deleteNotificationEvent(notificationEventOrNotificationEventId: string | NotificationEvent): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.notificationEventUrl, notificationEventOrNotificationEventId);\r\n }\r\n\r\n sendStudentNotification(templateId: string, email: string, userId: string) {\r\n return this.commonEndpoint.get(`${this.notificationUrl}/student/trigger?notificationEventId=${templateId}&email=${email}&userId=${userId}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { OccupancyLog } from '../models/occupancy-log.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type OccupancyLogsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type OccupancyLogsChangedEventArg = { occupancyLogs: OccupancyLog[] | string[], operation: OccupancyLogsChangedOperation };\r\n\r\n@Injectable()\r\nexport class OccupancyLogService {\r\n\r\n public static readonly occupancyLogAddedOperation: OccupancyLogsChangedOperation = \"add\";\r\n public static readonly occupancyLogDeletedOperation: OccupancyLogsChangedOperation = \"delete\";\r\n public static readonly occupancyLogModifiedOperation: OccupancyLogsChangedOperation = \"modify\";\r\n\r\n private _occupancyLogsChanged = new Subject();\r\n\r\n private readonly _occupancyLogUrl: string = \"/api/occupancylog\";\r\n get occupancyLogUrl() { return this.configurations.baseUrl + this._occupancyLogUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onOccupancyLogsChanged(occupancyLogs: OccupancyLog[] | string[], op: OccupancyLogsChangedOperation) {\r\n this._occupancyLogsChanged.next({ occupancyLogs: occupancyLogs, operation: op });\r\n }\r\n\r\n\r\n onOccupancyLogsCountChanged(occupancyLogs: OccupancyLog[] | string[]) {\r\n return this.onOccupancyLogsChanged(occupancyLogs, OccupancyLogService.occupancyLogModifiedOperation);\r\n }\r\n\r\n\r\n getOccupancyLogsChangedEvent(): Observable {\r\n return this._occupancyLogsChanged.asObservable();\r\n }\r\n\r\n getOccupancyLogs(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.occupancyLogUrl + '/list', page, pageSize));\r\n }\r\n\r\n getOccupancyLogByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.occupancyLogUrl + '/list', institutionId));\r\n }\r\n\r\n getDateStr(m: Date) {\r\n if (!m) return '';\r\n return m.getFullYear() + \"-\" +\r\n (\"0\" + (m.getMonth() + 1)).slice(-2) + \"-\" +\r\n (\"0\" + m.getDate()).slice(-2) + \" \" +\r\n (\"0\" + m.getHours()).slice(-2) + \":\" +\r\n (\"0\" + m.getMinutes()).slice(-2) + \":\" +\r\n (\"0\" + m.getSeconds()).slice(-2);\r\n }\r\n\r\n getOccupancyLogFilter(deviceId: string, sensorId: string, status: string, startTime: string, endTime: string) {\r\n\r\n return forkJoin(this.commonEndpoint.get(this.occupancyLogUrl + '/listfilter?StartTime=' + (startTime || '') + '&EndTime=' + (endTime || '') + '&DeviceId=' + (deviceId || '') + '&SensorId=' + (sensorId || '') + '&Status=' + (status || '')));\r\n }\r\n\r\n getOccupancyLogByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.occupancyLogUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n updateOccupancyLog(occupancyLog: OccupancyLog) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.occupancyLogUrl, occupancyLog, occupancyLog.id).pipe(\r\n tap(data => this.onOccupancyLogsChanged([occupancyLog], OccupancyLogService.occupancyLogModifiedOperation)));\r\n }\r\n\r\n newOccupancyLog(occupancyLog: OccupancyLog) {\r\n return this.commonEndpoint.getNewEndpoint(this.occupancyLogUrl, occupancyLog).pipe(\r\n tap(data => this.onOccupancyLogsChanged([occupancyLog], OccupancyLogService.occupancyLogAddedOperation)));\r\n }\r\n\r\n\r\n deleteOccupancyLog(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.occupancyLogUrl, id).pipe(\r\n tap(data => this.onOccupancyLogsChanged([data], OccupancyLogService.occupancyLogDeletedOperation)));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { PIBTemplate, PIBTemplateLocation, PIBDevice } from '../models/department.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type PIBChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type PIBChangedEventArg = { pibs: PIBTemplate[] | string[], operation: PIBChangedOperation };\r\nexport type PIBDeviceChangedEventArg = { pibs: PIBDevice[] | string[], operation: PIBChangedOperation };\r\n\r\n@Injectable()\r\nexport class PIBService {\r\n\r\n public static readonly pibAddedOperation: PIBChangedOperation = \"add\";\r\n public static readonly pibDeletedOperation: PIBChangedOperation = \"delete\";\r\n public static readonly pibModifiedOperation: PIBChangedOperation = \"modify\";\r\n\r\n private _pibsChanged = new Subject();\r\n private _pibsDeviceChanged = new Subject();\r\n\r\n private readonly _pibUrl: string = \"/api/pib\";\r\n get pibUrl() { return this.configurations.baseUrl + this._pibUrl; }\r\n\r\n private readonly _templateUrl: string = \"/api/pib\";\r\n get templateUrl() { return this.configurations.baseUrl + this._templateUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onPIBChanged(pibs: PIBTemplate[] | string[], op: PIBChangedOperation) {\r\n this._pibsChanged.next({ pibs: pibs, operation: op });\r\n }\r\n getPIBChangedEvent(): Observable {\r\n return this._pibsChanged.asObservable();\r\n }\r\n\r\n private onPIBDeviceChanged(pibs: PIBDevice[] | string[], op: PIBChangedOperation) {\r\n this._pibsDeviceChanged.next({ pibs: pibs, operation: op });\r\n }\r\n\r\n getPIBDeviceChangedEvent(): Observable {\r\n return this._pibsDeviceChanged.asObservable();\r\n }\r\n \r\n\r\n //mapTemplate(data: PIBTemplate) {\r\n // var queryParams = '';\r\n // queryParams += (data ? '?template=' + data : '');\r\n // return this.commonEndpoint.get(this.pibUrl + '/map/template', true, data.template_body, true);\r\n //}\r\n\r\n previewFromImage(data: PIBTemplate) {\r\n return this.commonEndpoint.getNewEndpoint(this.pibUrl + '/preview/image', data);\r\n }\r\n\r\n mapTemplate(data: PIBTemplate) {\r\n return this.commonEndpoint.getNewEndpoint(this.pibUrl + '/map/template', data);\r\n }\r\n\r\n postTemplateToDevice(url: string, template: PIBTemplate) {\r\n return this.commonEndpoint.getNewEndpoint(this.pibUrl + '/map/posttodevice', template);\r\n }\r\n\r\n postTemplateToDevice2(url: string, template: PIBTemplate) {\r\n return this.commonEndpoint.postTemplateToDevice(url, template);\r\n }\r\n\r\n getTemplateById(templateId: string) {\r\n \r\n return this.commonEndpoint.get(this.templateUrl + '/get/template?templateId=' + templateId);\r\n }\r\n\r\n getTemplateByMacAddress(macAddress: string) {\r\n return this.commonEndpoint.get(this.templateUrl + '/get/template?mac=' + macAddress);\r\n }\r\n\r\n getTemplates(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.templateUrl + '/templates/list', page, pageSize));\r\n }\r\n\r\n getRestrictionTypes(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.templateUrl + '/get/restrictiontypes', page, pageSize));\r\n }\r\n\r\n syncLocations() {\r\n return this.commonEndpoint.getPagedList(this.templateUrl + '/get/piblocations/sync');\r\n }\r\n\r\n getLocations(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.templateUrl + '/get/piblocations', page, pageSize));\r\n }\r\n\r\n updateTemplate(template: PIBTemplate) {\r\n if (template.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.templateUrl, template, template.id).pipe(\r\n tap(data => this.onPIBChanged([template], PIBService.pibModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newTemplate(template: PIBTemplate) {\r\n return this.commonEndpoint.getNewEndpoint(this.templateUrl, template).pipe(\r\n tap(data => this.onPIBChanged([template], PIBService.pibAddedOperation)));\r\n }\r\n\r\n\r\n deleteTemplate(templateOrId: string | PIBTemplate): Observable {\r\n\r\n if (typeof templateOrId === 'number' || templateOrId instanceof Number ||\r\n typeof templateOrId === 'string' || templateOrId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.templateUrl, templateOrId).pipe(\r\n tap(data => this.onPIBChanged([data], PIBService.pibDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (templateOrId.id) {\r\n return this.deleteTemplate(templateOrId.id);\r\n }\r\n }\r\n }\r\n\r\n //pib devices\r\n heartbeat(macAddress?: string) {\r\n\r\n return this.commonEndpoint.get(this.templateUrl + '/heartbeat?mac_address=' + macAddress);\r\n }\r\n\r\n getDeviceById(deviceId?: string, macAddress?: string) {\r\n\r\n return this.commonEndpoint.get(this.templateUrl + '/get/device?deviceId=' + deviceId + '&mac_address=' + macAddress);\r\n }\r\n\r\n getDevices(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.templateUrl + '/devices/list', page, pageSize),\r\n //this.commonEndpoint.getPagedList(this.templateUrl + '/get/piblocations', page, pageSize)\r\n );\r\n }\r\n\r\n updatePIBDevice(device: PIBDevice) {\r\n if (device.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.templateUrl + '/device', device, device.id).pipe(\r\n tap(data => this.onPIBDeviceChanged([device], PIBService.pibModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newPIBDevice(device: PIBDevice) {\r\n return this.commonEndpoint.getNewEndpoint(this.templateUrl + '/device', device).pipe(\r\n tap(data => this.onPIBDeviceChanged([device], PIBService.pibAddedOperation)));\r\n }\r\n\r\n\r\n deletePIBDevice(deviceOrId: string | PIBDevice): Observable {\r\n\r\n if (typeof deviceOrId === 'number' || deviceOrId instanceof Number ||\r\n typeof deviceOrId === 'string' || deviceOrId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.templateUrl + '/device', deviceOrId).pipe(\r\n tap(data => this.onPIBDeviceChanged([data], PIBService.pibDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (deviceOrId.id) {\r\n return this.deletePIBDevice(deviceOrId.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Playlist } from '../models/playlist.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\n//export type ContactGroupsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\n//export type ContactGroupsChangedEventArg = { contactgroups: ContactGroup[] | string[], operation: ContactGroupsChangedOperation };\r\n\r\n@Injectable()\r\nexport class PlaylistService {\r\n\r\n //public static readonly contactgroupAddedOperation: ContactGroupsChangedOperation = \"add\";\r\n //public static readonly contactgroupDeletedOperation: ContactGroupsChangedOperation = \"delete\";\r\n //public static readonly contactgroupModifiedOperation: ContactGroupsChangedOperation = \"modify\";\r\n\r\n //private _contactgroupsChanged = new Subject();\r\n\r\n private readonly _playlistUrl: string = \"/api/playlist\";\r\n get playlistUrl() { return this.configurations.baseUrl + this._playlistUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n //private onContactGroupsChanged(contactgroups: ContactGroup[] | string[], op: ContactGroupsChangedOperation) {\r\n // this._contactgroupsChanged.next({ contactgroups: contactgroups, operation: op });\r\n //}\r\n\r\n\r\n //onContactGroupsCountChanged(contactgroups: ContactGroup[] | string[]) {\r\n // return this.onContactGroupsChanged(contactgroups, ContactGroupService.contactgroupModifiedOperation);\r\n //}\r\n\r\n\r\n //getContactGroupsChangedEvent(): Observable {\r\n // return this._contactgroupsChanged.asObservable();\r\n //}\r\n\r\n getPlaylistById(playlistId: string) {\r\n\r\n return this.commonEndpoint.getById(this.playlistUrl, playlistId);\r\n }\r\n\r\n getPlaylists(page?: number, pageSize?: number, institutionId?: string, userId?: string) {\r\n var queryParams = '';\r\n if (userId) queryParams += '?userId=' + userId;\r\n else if (institutionId) queryParams += '?institutionId=' + institutionId;\r\n\r\n\r\n if (queryParams == '') {\r\n return this.commonEndpoint.getPagedList(this.playlistUrl + '/playlists/list', page, pageSize);\r\n } else {\r\n return this.commonEndpoint.get(this.playlistUrl + '/playlists/list' + queryParams);\r\n }\r\n }\r\n\r\n updatePlaylist(playlist: Playlist) {\r\n if (playlist.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.playlistUrl, playlist, playlist.id);\r\n }\r\n }\r\n\r\n\r\n newPlaylist(playlist: Playlist) {\r\n return this.commonEndpoint.getNewEndpoint(this.playlistUrl, playlist);\r\n }\r\n\r\n\r\n deletePlaylist(playlistOrPlaylistId: string | Playlist): Observable {\r\n\r\n if (typeof playlistOrPlaylistId === 'number' || playlistOrPlaylistId instanceof Number ||\r\n typeof playlistOrPlaylistId === 'string' || playlistOrPlaylistId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.playlistUrl, playlistOrPlaylistId);\r\n }\r\n else {\r\n\r\n if (playlistOrPlaylistId.id) {\r\n return this.deletePlaylist(playlistOrPlaylistId.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { QueueTableMap } from '../models/queue-table-map.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type QueueTableMapsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type QueueTableMapsChangedEventArg = { queueTableMaps: QueueTableMap[] | string[], operation: QueueTableMapsChangedOperation };\r\n\r\n@Injectable()\r\nexport class QueueTableMapService {\r\n\r\n public static readonly queueTableMapAddedOperation: QueueTableMapsChangedOperation = \"add\";\r\n public static readonly queueTableMapDeletedOperation: QueueTableMapsChangedOperation = \"delete\";\r\n public static readonly queueTableMapModifiedOperation: QueueTableMapsChangedOperation = \"modify\";\r\n\r\n private _queueTableMapsChanged = new Subject();\r\n\r\n private readonly _queueTableMapUrl: string = \"/api/queuetablemap\";\r\n get queueTableMapUrl() { return this.configurations.baseUrl + this._queueTableMapUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, private configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onQueueTableMapsChanged(queueTableMaps: QueueTableMap[] | string[], op: QueueTableMapsChangedOperation) {\r\n this._queueTableMapsChanged.next({ queueTableMaps: queueTableMaps, operation: op });\r\n }\r\n\r\n\r\n onQueueTableMapsCountChanged(queueTableMaps: QueueTableMap[] | string[]) {\r\n return this.onQueueTableMapsChanged(queueTableMaps, QueueTableMapService.queueTableMapModifiedOperation);\r\n }\r\n\r\n\r\n getQueueTableMapsChangedEvent(): Observable {\r\n return this._queueTableMapsChanged.asObservable();\r\n }\r\n\r\n getQueueTableMaps(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.queueTableMapUrl + '/list', page, pageSize));\r\n }\r\n\r\n getQueueTableMapByInstitutionId(institutionId: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getByInstitutionId(this.queueTableMapUrl + '/list', institutionId));\r\n }\r\n\r\n getQueueTableMapByKey(institutionId: string, key: string) {\r\n\r\n return this.commonEndpoint.get(this.queueTableMapUrl + '/get?institutionId=' + institutionId + '&key=' + key);\r\n }\r\n\r\n updateQueueTableMap(queueTableMap: QueueTableMap) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.queueTableMapUrl, queueTableMap, queueTableMap.id).pipe(\r\n tap(data => this.onQueueTableMapsChanged([queueTableMap], QueueTableMapService.queueTableMapModifiedOperation)));\r\n }\r\n\r\n newQueueTableMap(queueTableMap: QueueTableMap) {\r\n return this.commonEndpoint.getNewEndpoint(this.queueTableMapUrl, queueTableMap).pipe(\r\n tap(data => this.onQueueTableMapsChanged([queueTableMap], QueueTableMapService.queueTableMapAddedOperation)));\r\n }\r\n\r\n\r\n deleteQueueTableMap(id): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.queueTableMapUrl, id).pipe(\r\n tap(data => this.onQueueTableMapsChanged([data], QueueTableMapService.queueTableMapDeletedOperation)));\r\n }\r\n\r\n sendQueueSimulator(data: any) {\r\n return this.commonEndpoint.sendQueueSimulator(this.queueTableMapUrl + '/callqueue', data);\r\n }\r\n\r\n getToken(username, password) {\r\n return this.commonEndpoint.sendQueueSimulator(this.queueTableMapUrl + '/gettoken', { username: username, password: password});\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap, catchError } from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AccountEndpoint } from './account-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Reservation, CalendarFilter, VehicleLogFilter } from '../models/reservation.model';\r\nimport { Facility } from '../models/facility.model';\r\nimport { Location } from '../models/location.model';\r\nimport { LocationService } from './location.service';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { ReservationTime, TimeIntervalFilter } from '../models/reservationtime.model';\r\nimport { BookingGridRow } from '../models/bookinggridrow.model';\r\nimport { CalendarEvent } from 'calendar-utils';\r\nimport { VMSVehicleLog } from '../models/uservehicle.model';\r\n\r\nexport type ReservationsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type ReservationsChangedEventArg = { reservations: Reservation[] | string[], operation: ReservationsChangedOperation };\r\n\r\nexport type FacilitiesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type FacilitiesChangedEventArg = { facilities: Facility[] | string[], operation: FacilitiesChangedOperation };\r\n\r\n@Injectable()\r\nexport class ReservationService {\r\n\r\n public static readonly reservationAddedOperation: ReservationsChangedOperation = \"add\";\r\n public static readonly reservationDeletedOperation: ReservationsChangedOperation = \"delete\";\r\n public static readonly reservationModifiedOperation: ReservationsChangedOperation = \"modify\";\r\n private readonly _reservationUrl: string = \"/api/reservation\";\r\n\r\n private _reservationsChanged = new Subject();\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private accountEndpoint: AccountEndpoint, private commonEndpoint: CommonEndpoint, private locationService: LocationService,\r\n protected configurations: ConfigurationService ) {\r\n\r\n }\r\n\r\n get reservationUrl() { return this.configurations.baseUrl + this._reservationUrl; }\r\n\r\n private onReservationsChanged(reservations: Reservation[] | string[], op: ReservationsChangedOperation) {\r\n this._reservationsChanged.next({ reservations: reservations, operation: op });\r\n }\r\n\r\n\r\n onReservationsUserCountChanged(reservations: Reservation[] | string[]) {\r\n return this.onReservationsChanged(reservations, ReservationService.reservationModifiedOperation);\r\n }\r\n\r\n\r\n getReservationsChangedEvent(): Observable {\r\n return this._reservationsChanged.asObservable();\r\n }\r\n\r\n getTimeIntervals(filter: TimeIntervalFilter) {\r\n return this.commonEndpoint.getPagedList(this.reservationUrl + '/GetAllTimeIntervals', null, null, true, filter);\r\n }\r\n\r\n getBookingGridRows(filter: CalendarFilter) {\r\n return this.commonEndpoint.getPagedList(this.reservationUrl + '/GetBookingGridRows', null, null, true, filter);\r\n }\r\n\r\n getReservationsLocationsFacilities(page?: number, pageSize?: number, filter?: CalendarFilter) {\r\n let institutionId = filter != null ? filter.institutionId : null;\r\n let isBooking = filter != null ? filter.isBooking : null;\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.reservationUrl + '/GetAllReservations', page, pageSize, true, filter),\r\n this.commonEndpoint.getFacilitiesEndpoint(null, null, institutionId),\r\n this.locationService.getLocations(null, null, institutionId, isBooking));\r\n }\r\n\r\n getCalendarFilters(filter?: CalendarFilter) {\r\n let institutionId = filter != null ? filter.institutionId : null;\r\n let isBooking = filter != null ? filter.isBooking : null;\r\n return forkJoin(\r\n this.commonEndpoint.getFacilitiesEndpoint(null, null, institutionId),\r\n this.locationService.getLocations(null, null, institutionId, isBooking));\r\n }\r\n\r\n getReservationsWithFilter(filter: CalendarFilter) {\r\n return this.commonEndpoint.getReservations(this.reservationUrl + '/GetAllReservations', filter);\r\n }\r\n\r\n getReservation(id?: string) {\r\n return this.commonEndpoint.get(this.reservationUrl + '/get' + \"?id=\" + id);\r\n }\r\n\r\n getKioskReservation() {\r\n return this.commonEndpoint.get(this.reservationUrl + '/GetKiosk')\r\n }\r\n\r\n getReservations(page?: number, pageSize?: number) {\r\n return this.commonEndpoint.getPagedList(this.reservationUrl + '/GetAllReservations', page, pageSize, true);\r\n }\r\n\r\n getCalendarEvents(filter?: CalendarFilter) {\r\n return this.commonEndpoint.getReservations(this.reservationUrl + '/calendarevents', filter);\r\n }\r\n\r\n updateReservation(reservation: Reservation) {\r\n if (reservation.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.reservationUrl, reservation, reservation.id).pipe(\r\n tap(data => this.onReservationsChanged([reservation], ReservationService.reservationModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newReservation(reservation: Reservation) {\r\n return this.commonEndpoint.getNewEndpoint(this.reservationUrl, reservation).pipe(\r\n tap(data => this.onReservationsChanged([reservation], ReservationService.reservationAddedOperation)));\r\n }\r\n\r\n\r\n deleteReservation(reservationOrReservationId: string | Reservation): Observable {\r\n\r\n if (typeof reservationOrReservationId === 'number' || reservationOrReservationId instanceof Number ||\r\n typeof reservationOrReservationId === 'string' || reservationOrReservationId instanceof String\r\n || typeof reservationOrReservationId == 'object') {\r\n var queryStrings = \"\";\r\n var id = \"\";\r\n if (typeof reservationOrReservationId == 'object') {\r\n queryStrings += \"recurApplyChangesType=\" + reservationOrReservationId.recurApplyChangesType;\r\n id = reservationOrReservationId.id;\r\n } else {\r\n id = reservationOrReservationId;\r\n }\r\n\r\n return this.commonEndpoint.getDeleteEndpoint(this.reservationUrl, id, queryStrings).pipe(\r\n tap(data => this.onReservationsChanged([data], ReservationService.reservationDeletedOperation)));\r\n }\r\n //else {\r\n\r\n // if (reservationOrReservationId.id) {\r\n // return this.deleteReservation(reservationOrReservationId.id);\r\n // }\r\n //}\r\n }\r\n\r\n validateAttendance(reservationId, userName, name, company, designation) {\r\n return this.commonEndpoint.get(this.reservationUrl + '/checkin' + \"?reservationId=\" + reservationId + '&userName=' + userName + '&name=' + name+ '&company=' + company + '&designation=' + designation);\r\n }\r\n\r\n validateFeedback(feedback: any) {\r\n return this.commonEndpoint.get(this.reservationUrl + '/feedback' + \"?reservationId=\" + feedback.reservationId + '&userId=' + feedback.userId + '&feedback=' + feedback.feedback.name + '&comment=' + feedback.comment);\r\n }\r\n\r\n getCurrentLocationDetail(locationId?: string, start?: string, end?: string) {\r\n return this.commonEndpoint.get(this.reservationUrl + '/locationcurrentdetail?locationId=' + locationId + '&start=' + start + '&end=' + end);\r\n }\r\n\r\n getVehicleLogs(filter: VehicleLogFilter) {\r\n return this.commonEndpoint.get(this.reservationUrl + '/GetVehicleLogs', true, filter);\r\n }\r\n\r\n validateBookingByMinutes(locationId: string, mins: number) {\r\n return this.commonEndpoint.get(`${this.reservationUrl}/validatebyminutes?locationId=${locationId}&numOfMinutes=${mins}`)\r\n }\r\n\r\n createBookingByMinutes(locationId: string, mins: number, description: string, institutionId: string) {\r\n return this.commonEndpoint.get(`${this.reservationUrl}/bookbyminutes?locationId=${locationId}&numOfMinutes=${mins}&description=${description}&institutionId=${institutionId}`)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Filter, PagedResult, ServiceContractFilter } from '../models/sieve-filter.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { ServiceContract } from '../models/service-contract.model';\r\n\r\nexport type ServiceContractsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type ServiceContractsChangedEventArg = { serviceContracts: ServiceContract[] | string[], operation: ServiceContractsChangedOperation };\r\n\r\n@Injectable()\r\nexport class ServiceContractService {\r\n\r\n public static readonly serviceContractAddedOperation: ServiceContractsChangedOperation = \"add\";\r\n public static readonly serviceContractDeletedOperation: ServiceContractsChangedOperation = \"delete\";\r\n public static readonly serviceContractModifiedOperation: ServiceContractsChangedOperation = \"modify\";\r\n\r\n private _serviceContractsChanged = new Subject();\r\n\r\n private readonly _serviceContractUrl: string = \"/api/servicecontract\";\r\n get serviceContractUrl() { return this.configurations.baseUrl + this._serviceContractUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n \r\n getServiceContractById(serviceContractId: string) {\r\n\r\n return this.commonEndpoint.getById(this.serviceContractUrl + '/get', serviceContractId);\r\n }\r\n\r\n getServiceContractsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.serviceContractUrl + '/servicecontracts/sieve/list', filter);\r\n }\r\n\r\n updateServiceContract(serviceContract: ServiceContract) {\r\n if (serviceContract.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.serviceContractUrl, serviceContract, serviceContract.id);\r\n }\r\n }\r\n\r\n\r\n newServiceContract(serviceContract: ServiceContract) {\r\n return this.commonEndpoint.getNewEndpoint(this.serviceContractUrl, serviceContract);\r\n }\r\n\r\n\r\n deleteServiceContract(serviceContractOrServiceContractId: string | ServiceContract): Observable {\r\n return this.commonEndpoint.getDeleteEndpoint(this.serviceContractUrl, serviceContractOrServiceContractId);\r\n }\r\n\r\n downloadServiceContractReport(serviceContractFilter: ServiceContractFilter) {\r\n return this.commonEndpoint.getFile(this.serviceContractUrl + '/exportreport', serviceContractFilter);\r\n }\r\n\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport Konva from 'konva';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShapeService {\r\n constructor() { }\r\n circle() {\r\n return new Konva.Circle({\r\n x: 100,\r\n y: 100,\r\n radius: 70,\r\n fill: 'red',\r\n stroke: 'black',\r\n strokeWidth: 4,\r\n draggable: true\r\n });\r\n }\r\n line(pos, mode: string = 'brush') {\r\n return new Konva.Line({\r\n stroke: 'black',\r\n strokeWidth: mode === 'brush' ? 2 : 30,\r\n globalCompositeOperation:\r\n mode === 'brush' ? 'source-over' : 'destination-out',\r\n points: [pos.x, pos.y],\r\n draggable: mode == 'brush'\r\n });\r\n }\r\n rectangle() {\r\n return new Konva.Rect({\r\n x: 20,\r\n y: 20,\r\n width: 100,\r\n height: 50,\r\n fill: 'black',\r\n stroke: 'black',\r\n strokeWidth: 2,\r\n draggable: true\r\n });\r\n }\r\n image(image: CanvasImageSource, attrs: any) {\r\n var x = attrs.x === undefined ? 0 : parseInt(attrs.x);\r\n var y = attrs.y === undefined ? 0 : parseInt(attrs.y);\r\n var img = new Konva.Image({\r\n x: x,\r\n y: y,\r\n //width: 200,\r\n //height: 137,\r\n //stroke: 'red',\r\n //strokeWidth: 10,\r\n draggable: true,\r\n image: image\r\n });\r\n img.setAttrs(attrs);\r\n img.x(x);\r\n img.y(y);\r\n return img;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { SignageCompilation } from '../models/signage-compilation.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type SignageCompilationsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type SignageCompilationsChangedEventArg = { signageCompilations: SignageCompilation[] | string[], operation: SignageCompilationsChangedOperation };\r\n\r\n@Injectable()\r\nexport class SignageCompilationService {\r\n\r\n public static readonly signageCompilationAddedOperation: SignageCompilationsChangedOperation = \"add\";\r\n public static readonly signageCompilationDeletedOperation: SignageCompilationsChangedOperation = \"delete\";\r\n public static readonly signageCompilationModifiedOperation: SignageCompilationsChangedOperation = \"modify\";\r\n\r\n private _signageCompilationsChanged = new Subject();\r\n\r\n private readonly _signageCompilationUrl: string = \"/api/signagecompilation\";\r\n get signageCompilationUrl() { return this.configurations.baseUrl + this._signageCompilationUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onSignageCompilationsChanged(signageCompilations: SignageCompilation[] | string[], op: SignageCompilationsChangedOperation) {\r\n this._signageCompilationsChanged.next({ signageCompilations: signageCompilations, operation: op });\r\n }\r\n\r\n\r\n onSignageCompilationsCountChanged(signageCompilations: SignageCompilation[] | string[]) {\r\n return this.onSignageCompilationsChanged(signageCompilations, SignageCompilationService.signageCompilationModifiedOperation);\r\n }\r\n\r\n\r\n getSignageCompilationsChangedEvent(): Observable {\r\n return this._signageCompilationsChanged.asObservable();\r\n }\r\n\r\n getSignageCompilations(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.signageCompilationUrl + '/signagecompilations/list', page, pageSize));\r\n }\r\n\r\n export(ids: string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.get(this.signageCompilationUrl + '/signagecompilations/export?ids=' + ids));\r\n }\r\n\r\n import(filename: string) {\r\n\r\n return this.commonEndpoint.get(this.signageCompilationUrl + '/signagecompilations/import?filename=' + filename);\r\n }\r\n\r\n getSignageCompilationByInstitutionId(institutionId: string, userId?: string) {\r\n\r\n //return forkJoin(\r\n // this.commonEndpoint.getByInstitutionId(this.signageCompilationUrl + '/signagecompilations/list', institutionId));\r\n\r\n return forkJoin(this.commonEndpoint.get(this.signageCompilationUrl + '/signagecompilations/list?institutionId=' + institutionId + '&userId=' + userId));\r\n }\r\n\r\n updateSignageCompilation(signageCompilation: SignageCompilation) {\r\n if (signageCompilation.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.signageCompilationUrl, signageCompilation, signageCompilation.id).pipe(\r\n tap(data => this.onSignageCompilationsChanged([signageCompilation], SignageCompilationService.signageCompilationModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newSignageCompilation(signageCompilation: SignageCompilation) {\r\n return this.commonEndpoint.getNewEndpoint(this.signageCompilationUrl, signageCompilation).pipe(\r\n tap(data => this.onSignageCompilationsChanged([signageCompilation], SignageCompilationService.signageCompilationAddedOperation)));\r\n }\r\n\r\n\r\n deleteSignageCompilation(signageCompilationorId: string | SignageCompilation): Observable {\r\n\r\n if (typeof signageCompilationorId === 'number' || signageCompilationorId instanceof Number ||\r\n typeof signageCompilationorId === 'string' || signageCompilationorId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.signageCompilationUrl, signageCompilationorId).pipe(\r\n tap(data => this.onSignageCompilationsChanged([data], SignageCompilationService.signageCompilationDeletedOperation)));\r\n }\r\n else {\r\n if (signageCompilationorId.id) {\r\n return this.deleteSignageCompilation(signageCompilationorId.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SignageComponentType } from '../models/signage-component-type.model';\r\nimport { FreeHTML } from '../components/signage/signage-component-types/free-html/free-html.component';\r\nimport { FreeHTMLConfiguration } from '../components/signage/signage-component-types/free-html/free-html-configuration.component';\r\nimport { Clock } from '../components/signage/signage-component-types/clock/clock.component';\r\nimport { ClockConfiguration } from '../components/signage/signage-component-types/clock/clock-configuration.component';\r\nimport { Video } from '../components/signage/signage-component-types/video/video.component';\r\nimport { VideoConfiguration } from '../components/signage/signage-component-types/video/video-configuration.component';\r\nimport { SignagePlaylist } from '../components/signage/signage-component-types/playlist/playlist.component';\r\nimport { SignagePlaylistConfiguration } from '../components/signage/signage-component-types/playlist/playlist-configuration.component';\r\nimport { EmergencyMessage } from '../components/signage/signage-component-types/emergency-message/emergency-message.component';\r\nimport { EmergencyMessageConfiguration } from '../components/signage/signage-component-types/emergency-message/emergency-message-configuration.component';\r\nimport { SingleQueue } from '../components/signage/signage-component-types/single-queue/single-queue.component';\r\nimport { SingleQueueConfiguration } from '../components/signage/signage-component-types/single-queue/single-queue-configuration.component';\r\nimport { MultiQueueConfiguration } from '../components/signage/signage-component-types/multi-queue/multi-queue-configuration.component';\r\nimport { MultiQueue } from '../components/signage/signage-component-types/multi-queue/multi-queue.component';\r\nimport { EmployeeName } from '../components/signage/signage-component-types/employee-name/employee-name.component';\r\nimport { EmployeeNameConfiguration } from '../components/signage/signage-component-types/employee-name/employee-name-configuration.component';\r\nimport { LocationName } from '../components/signage/signage-component-types/location-name/location-name.component';\r\nimport { LocationNameConfiguration } from '../components/signage/signage-component-types/location-name/location-name-configuration.component';\r\nimport { MissedQueue } from '../components/signage/signage-component-types/missed-queue/missed-queue.component';\r\nimport { MissedQueueConfiguration } from '../components/signage/signage-component-types/missed-queue/missed-queue-configuration.component';\r\nimport { SingleBooking } from '../components/signage/signage-component-types/single-booking/single-booking.component';\r\nimport { SingleBookingConfiguration } from '../components/signage/signage-component-types/single-booking/single-booking-configuration.component';\r\nimport { MultiBooking } from '../components/signage/signage-component-types/multi-booking/multi-booking.component';\r\nimport { MultiBookingConfiguration } from '../components/signage/signage-component-types/multi-booking/multi-booking-configuration.component';\r\nimport { FreeText } from '../components/signage/signage-component-types/free-text/free-text.component';\r\nimport { FreeTextConfiguration } from '../components/signage/signage-component-types/free-text/free-text-configuration.component';\r\nimport { WebFrame } from '../components/signage/signage-component-types/web-frame/web-frame.component';\r\nimport { WebFrameConfiguration } from '../components/signage/signage-component-types/web-frame/web-frame-configuration.component';\r\n\r\n@Injectable()\r\nexport class SignageComponentTypeService {\r\n\r\n types: any = {\r\n \"free_text\": new SignageComponentType(\"free_text\", FreeText, \"Free Text\", FreeTextConfiguration),\r\n \"free_html\": new SignageComponentType(\"free_html\", FreeHTML, \"Free HTML\", FreeHTMLConfiguration),\r\n \"clock\": new SignageComponentType(\"clock\", Clock, \"Date Time\", ClockConfiguration),\r\n \"video\": new SignageComponentType(\"video\", Video, \"Video\", VideoConfiguration),\r\n \"playlist\": new SignageComponentType(\"playlist\", SignagePlaylist, \"Playlist\", SignagePlaylistConfiguration),\r\n \"emergency_message\": new SignageComponentType(\"emergency_message\", EmergencyMessage, \"Emergency Message\", EmergencyMessageConfiguration),\r\n \"single_queue\": new SignageComponentType(\"single_queue\", SingleQueue, \"Single Queue\", SingleQueueConfiguration),\r\n \"multi_queue\": new SignageComponentType(\"multi_queue\", MultiQueue, \"Multi Queue\", MultiQueueConfiguration),\r\n \"missed_queue\": new SignageComponentType(\"missed_queue\", MissedQueue, \"Missed Queue\", MissedQueueConfiguration),\r\n \"employee_name\": new SignageComponentType(\"employee_name\", EmployeeName, \"Employee Name\", EmployeeNameConfiguration),\r\n \"location_name\": new SignageComponentType(\"location_name\", LocationName, \"Location Name\", LocationNameConfiguration),\r\n \"single_booking\": new SignageComponentType(\"single_booking\", SingleBooking, \"Single Booking\", SingleBookingConfiguration),\r\n \"multi_booking\": new SignageComponentType(\"multi_booking\", MultiBooking, \"Multi Booking\", MultiBookingConfiguration),\r\n \"web_frame\": new SignageComponentType(\"web_frame\", WebFrame, \"Web URL\", WebFrameConfiguration),\r\n \r\n }\r\n\r\n getComponentTypes() : SignageComponentType[] {\r\n return (Object).values(this.types);\r\n }\r\n\r\n getComponentTypeById(id: string): SignageComponentType {\r\n return this.types[id];\r\n }\r\n\r\n getComponentTypeMap(): any {\r\n return this.types;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { SignageComponent } from '../models/signage-component.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type SignageComponentsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type SignageComponentsChangedEventArg = { signageComponents: SignageComponent[] | string[], operation: SignageComponentsChangedOperation };\r\n\r\n@Injectable()\r\nexport class SignageComponentService {\r\n\r\n public static readonly signageComponentAddedOperation: SignageComponentsChangedOperation = \"add\";\r\n public static readonly signageComponentDeletedOperation: SignageComponentsChangedOperation = \"delete\";\r\n public static readonly signageComponentModifiedOperation: SignageComponentsChangedOperation = \"modify\";\r\n\r\n private _signageComponentsChanged = new Subject();\r\n\r\n private readonly _signageComponentUrl: string = \"/api/signagecomponent\";\r\n get signageComponentUrl() { return this.configurations.baseUrl + this._signageComponentUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onSignageComponentsChanged(signageComponents: SignageComponent[] | string[], op: SignageComponentsChangedOperation) {\r\n this._signageComponentsChanged.next({ signageComponents: signageComponents, operation: op });\r\n }\r\n\r\n\r\n onSignageComponentsCountChanged(signageComponents: SignageComponent[] | string[]) {\r\n return this.onSignageComponentsChanged(signageComponents, SignageComponentService.signageComponentModifiedOperation);\r\n }\r\n\r\n\r\n getSignageComponentsChangedEvent(): Observable {\r\n return this._signageComponentsChanged.asObservable();\r\n }\r\n\r\n getSignageComponents(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.signageComponentUrl + '/signagecomponents/list', page, pageSize));\r\n }\r\n\r\n exportSignageComponents(ids : string) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.get(this.signageComponentUrl + '/signagecomponents/export?ids=' + ids));\r\n }\r\n\r\n importSignageComponents(filename: string) {\r\n\r\n return this.commonEndpoint.get(this.signageComponentUrl + '/signagecomponents/import?filename=' + filename);\r\n }\r\n\r\n getSignageComponentByInstitutionId(institutionId: string, userId?: string) {\r\n\r\n //return forkJoin(\r\n //this.commonEndpoint.getByInstitutionId(this.signageComponentUrl + '/signagecomponents/list', institutionId));\r\n\r\n return forkJoin(this.commonEndpoint.get(this.signageComponentUrl + '/signagecomponents/list?institutionId=' + institutionId + '&userId=' + userId));\r\n }\r\n\r\n updateSignageComponent(signageComponent: SignageComponent) {\r\n if (signageComponent.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.signageComponentUrl, signageComponent, signageComponent.id).pipe(\r\n tap(data => this.onSignageComponentsChanged([signageComponent], SignageComponentService.signageComponentModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newSignageComponent(signageComponent: SignageComponent) {\r\n return this.commonEndpoint.getNewEndpoint(this.signageComponentUrl, signageComponent).pipe(\r\n tap(data => this.onSignageComponentsChanged([signageComponent], SignageComponentService.signageComponentAddedOperation)));\r\n }\r\n\r\n\r\n deleteSignageComponent(signageComponentorId: string | SignageComponent): Observable {\r\n\r\n if (typeof signageComponentorId === 'number' || signageComponentorId instanceof Number ||\r\n typeof signageComponentorId === 'string' || signageComponentorId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.signageComponentUrl, signageComponentorId).pipe(\r\n tap(data => this.onSignageComponentsChanged([data], SignageComponentService.signageComponentDeletedOperation)));\r\n }\r\n else {\r\n if (signageComponentorId.id) {\r\n return this.deleteSignageComponent(signageComponentorId.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { SignagePublication } from '../models/signage-publication.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type SignagePublicationsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type SignagePublicationsChangedEventArg = { signagePublications: SignagePublication[] | string[], operation: SignagePublicationsChangedOperation };\r\n\r\n@Injectable()\r\nexport class SignagePublicationService {\r\n\r\n public static readonly signagePublicationAddedOperation: SignagePublicationsChangedOperation = \"add\";\r\n public static readonly signagePublicationDeletedOperation: SignagePublicationsChangedOperation = \"delete\";\r\n public static readonly signagePublicationModifiedOperation: SignagePublicationsChangedOperation = \"modify\";\r\n\r\n private _signagePublicationsChanged = new Subject();\r\n\r\n private readonly _signagePublicationUrl: string = \"/api/signagepublication\";\r\n get signagePublicationUrl() { return this.configurations.baseUrl + this._signagePublicationUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onSignagePublicationsChanged(signagePublications: SignagePublication[] | string[], op: SignagePublicationsChangedOperation) {\r\n this._signagePublicationsChanged.next({ signagePublications: signagePublications, operation: op });\r\n }\r\n\r\n\r\n onSignagePublicationsCountChanged(signagePublications: SignagePublication[] | string[]) {\r\n return this.onSignagePublicationsChanged(signagePublications, SignagePublicationService.signagePublicationModifiedOperation);\r\n }\r\n\r\n\r\n getSignagePublicationsChangedEvent(): Observable {\r\n return this._signagePublicationsChanged.asObservable();\r\n }\r\n\r\n getSignagePublication(id: string) {\r\n\r\n return this.commonEndpoint.get(this.signagePublicationUrl + '/signagepublication/' + id);\r\n }\r\n\r\n getSignagePublications(page?: number, pageSize?: number) {\r\n\r\n return forkJoin(\r\n this.commonEndpoint.getPagedList(this.signagePublicationUrl + '/signagepublications/list', page, pageSize));\r\n }\r\n\r\n getSignagePublicationByInstitutionId(institutionId: string, userId?: string) {\r\n\r\n //return forkJoin(\r\n //this.commonEndpoint.getByInstitutionId(this.signagePublicationUrl + '/signagepublications/list', institutionId));\r\n\r\n return forkJoin(this.commonEndpoint.get(this.signagePublicationUrl + '/signagepublications/list?institutionId=' + institutionId + '&userId=' + userId));\r\n }\r\n\r\n updateSignagePublication(signagePublication: SignagePublication) {\r\n if (signagePublication.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.signagePublicationUrl, signagePublication, signagePublication.id).pipe(\r\n tap(data => this.onSignagePublicationsChanged([signagePublication], SignagePublicationService.signagePublicationModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newSignagePublication(signagePublication: SignagePublication) {\r\n return this.commonEndpoint.getNewEndpoint(this.signagePublicationUrl, signagePublication).pipe(\r\n tap(data => this.onSignagePublicationsChanged([signagePublication], SignagePublicationService.signagePublicationAddedOperation)));\r\n }\r\n\r\n\r\n deleteSignagePublication(signagePublicationorId: string | SignagePublication): Observable {\r\n\r\n if (typeof signagePublicationorId === 'number' || signagePublicationorId instanceof Number ||\r\n typeof signagePublicationorId === 'string' || signagePublicationorId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.signagePublicationUrl, signagePublicationorId).pipe(\r\n tap(data => this.onSignagePublicationsChanged([data], SignagePublicationService.signagePublicationDeletedOperation)));\r\n }\r\n else {\r\n if (signagePublicationorId.id) {\r\n return this.deleteSignagePublication(signagePublicationorId.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { AuditLog } from '../models/audit-log';\r\n\r\n\r\n@Injectable()\r\nexport class SmartRoomSchedulerService {\r\n\r\n private readonly _auditUrl: string = \"/api/smartRoomScheduler\";\r\n get auditUrl() { return this.configurations.baseUrl + this._auditUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n getLogsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/logs/sieve/list', filter);\r\n }\r\n\r\n getDataLogsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/datalogs/sieve/list', filter);\r\n }\r\n\r\n getDataLogDetailsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.auditUrl + '/datalogs/details/sieve/list', filter);\r\n }\r\n\r\n getDataLogDetailsById(id: string) {\r\n return this.commonEndpoint.getById(this.auditUrl + '/datalogs', id);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport Konva from 'konva';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TextNodeService {\r\n constructor() { }\r\n textNode(stage: Konva.Stage, layer: Konva.Layer, defaultText: string = 'type here') {\r\n const textNode = new Konva.Text({\r\n text: defaultText,\r\n x: 50,\r\n y: 80,\r\n fontSize: 25,\r\n draggable: true,\r\n width: 300,\r\n fontFamily: 'Calibri'\r\n });\r\n layer.add(textNode);\r\n //let tr = new Konva.Transformer({\r\n // node: textNode as any,\r\n // enabledAnchors: ['middle-left', 'middle-right'],\r\n // // set minimum width of text\r\n // boundBoxFunc: function (oldBox, newBox) {\r\n // newBox.width = Math.max(30, newBox.width);\r\n // return newBox;\r\n // }\r\n //});\r\n //stage.on('click', function (e) {\r\n // if (!this.clickStartShape) {\r\n // return;\r\n // }\r\n // if (e.target._id == this.clickStartShape._id) {\r\n // layer.add(tr);\r\n // tr.attachTo(e.target);\r\n // layer.draw();\r\n // }\r\n // else {\r\n // tr.detach();\r\n // layer.draw();\r\n // }\r\n //});\r\n textNode.on('transform', function () {\r\n // reset scale, so only with is changing by transformer\r\n textNode.setAttrs({\r\n width: textNode.width() * textNode.scaleX(),\r\n scaleX: 1\r\n });\r\n });\r\n //layer.add(tr);\r\n layer.draw();\r\n //textNode.on('dblclick', () => {\r\n // // hide text node and transformer:\r\n // textNode.hide();\r\n // tr.hide();\r\n // layer.draw();\r\n // // create textarea over canvas with absolute position\r\n // // first we need to find position for textarea\r\n // // how to find it?\r\n // // at first lets find position of text node relative to the stage:\r\n // let textPosition = (textNode as any).absolutePosition();\r\n // // then lets find position of stage container on the page:\r\n // let stageBox = stage.container().getBoundingClientRect();\r\n // // so position of textarea will be the sum of positions above:\r\n // let areaPosition = {\r\n // x: stageBox.left + textPosition.x,\r\n // y: stageBox.top + textPosition.y\r\n // };\r\n // // create textarea and style it\r\n // let textarea = document.createElement('textarea');\r\n // document.body.appendChild(textarea);\r\n // // apply many styles to match text on canvas as close as possible\r\n // // remember that text rendering on canvas and on the textarea can be different\r\n // // and sometimes it is hard to make it 100% the same. But we will try...\r\n // textarea.value = textNode.text();\r\n // textarea.style.position = 'absolute';\r\n // textarea.style.top = areaPosition.y + 'px';\r\n // textarea.style.left = areaPosition.x + 'px';\r\n // textarea.style.width = textNode.width() - textNode.padding() * 2 + 'px';\r\n // textarea.style.height =\r\n // textNode.height() - textNode.padding() * 2 + 5 + 'px';\r\n // textarea.style.fontSize = textNode.fontSize() + 'px';\r\n // textarea.style.border = 'none';\r\n // textarea.style.padding = '0px';\r\n // textarea.style.margin = '0px';\r\n // textarea.style.overflow = 'hidden';\r\n // textarea.style.background = 'none';\r\n // textarea.style.outline = 'none';\r\n // textarea.style.resize = 'none';\r\n // (textarea as any).style.lineHeight = textNode.lineHeight();\r\n // textarea.style.fontFamily = textNode.fontFamily();\r\n // textarea.style.transformOrigin = 'left top';\r\n // textarea.style.textAlign = textNode.align();\r\n // textarea.style.color = textNode.fill();\r\n // let rotation = textNode.rotation();\r\n // let transform = '';\r\n // if (rotation) {\r\n // transform += 'rotateZ(' + rotation + 'deg)';\r\n // }\r\n // let px = 0;\r\n // // also we need to slightly move textarea on firefox\r\n // // because it jumps a bit\r\n // let isFirefox =\r\n // navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n // if (isFirefox) {\r\n // px += 2 + Math.round(textNode.fontSize() / 20);\r\n // }\r\n // transform += 'translateY(-' + px + 'px)';\r\n // textarea.style.transform = transform;\r\n // // reset height\r\n // textarea.style.height = 'auto';\r\n // // after browsers resized it we can set actual value\r\n // textarea.style.height = textarea.scrollHeight + 3 + 'px';\r\n // textarea.focus();\r\n // function removeTextarea() {\r\n // textarea.parentNode.removeChild(textarea);\r\n // window.removeEventListener('click', handleOutsideClick);\r\n // textNode.show();\r\n // tr.show();\r\n // tr.forceUpdate();\r\n // layer.draw();\r\n // }\r\n // function setTextareaWidth(newWidth) {\r\n // if (!newWidth) {\r\n // // set width for placeholder\r\n // newWidth = (textNode as any).placeholder.length * textNode.fontSize();\r\n // }\r\n // // some extra fixes on different browsers\r\n // let isSafari = /^((?!chrome|android).)*safari/i.test(\r\n // navigator.userAgent\r\n // );\r\n // let isFirefox =\r\n // navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n // if (isSafari || isFirefox) {\r\n // newWidth = Math.ceil(newWidth);\r\n // }\r\n // let isEdge =\r\n // (document as any).documentMode || /Edge/.test(navigator.userAgent);\r\n // if (isEdge) {\r\n // newWidth += 1;\r\n // }\r\n // textarea.style.width = newWidth + 'px';\r\n // }\r\n // textarea.addEventListener('keydown', function (e) {\r\n // // hide on enter\r\n // // but don't hide on shift + enter\r\n // if (e.keyCode === 13 && !e.shiftKey) {\r\n // textNode.text(textarea.value);\r\n // removeTextarea();\r\n // }\r\n // // on esc do not set value back to node\r\n // if (e.keyCode === 27) {\r\n // removeTextarea();\r\n // }\r\n // });\r\n // textarea.addEventListener('keydown', function (e) {\r\n // let scale = textNode.getAbsoluteScale().x;\r\n // setTextareaWidth(textNode.width() * scale);\r\n // textarea.style.height = 'auto';\r\n // textarea.style.height =\r\n // textarea.scrollHeight + textNode.fontSize() + 'px';\r\n // });\r\n // function handleOutsideClick(e) {\r\n // if (e.target !== textarea) {\r\n // removeTextarea();\r\n // }\r\n // }\r\n // setTimeout(() => {\r\n // window.addEventListener('click', handleOutsideClick);\r\n // });\r\n //});\r\n return { textNode };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject, forkJoin } from 'rxjs';\r\nimport { mergeMap, tap } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\nimport { CommonEndpoint } from './common-endpoint.service';\r\nimport { AuthService } from './auth.service';\r\nimport { UserGroup } from '../models/userGroup.model';\r\nimport { Filter, PagedResult } from '../models/sieve-filter.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nexport type UserGroupsChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type UserGroupsChangedEventArg = { userGroups: UserGroup[] | string[], operation: UserGroupsChangedOperation };\r\n\r\n@Injectable()\r\nexport class UserGroupService {\r\n\r\n public static readonly userGroupAddedOperation: UserGroupsChangedOperation = \"add\";\r\n public static readonly userGroupDeletedOperation: UserGroupsChangedOperation = \"delete\";\r\n public static readonly userGroupModifiedOperation: UserGroupsChangedOperation = \"modify\";\r\n\r\n private _userGroupsChanged = new Subject();\r\n\r\n private readonly _userGroupUrl: string = \"/api/userGroup\";\r\n get userGroupUrl() { return this.configurations.baseUrl + this._userGroupUrl; }\r\n\r\n constructor(private router: Router, private http: HttpClient, private authService: AuthService,\r\n private commonEndpoint: CommonEndpoint, protected configurations: ConfigurationService) {\r\n\r\n }\r\n\r\n\r\n private onUserGroupsChanged(userGroups: UserGroup[] | string[], op: UserGroupsChangedOperation) {\r\n this._userGroupsChanged.next({ userGroups: userGroups, operation: op });\r\n }\r\n\r\n\r\n onUserGroupsCountChanged(userGroups: UserGroup[] | string[]) {\r\n return this.onUserGroupsChanged(userGroups, UserGroupService.userGroupModifiedOperation);\r\n }\r\n\r\n\r\n getUserGroupsChangedEvent(): Observable {\r\n return this._userGroupsChanged.asObservable();\r\n }\r\n\r\n getUserGroupById(userGroupId: string) {\r\n\r\n return this.commonEndpoint.getById(this.userGroupUrl + '/get', userGroupId);\r\n }\r\n\r\n getUserGroupsByFilter(filter: Filter) {\r\n return this.commonEndpoint.getSieve(this.userGroupUrl + '/userGroups/sieve/list', filter);\r\n }\r\n\r\n updateUserGroup(userGroup: UserGroup) {\r\n if (userGroup.id) {\r\n return this.commonEndpoint.getUpdateEndpoint(this.userGroupUrl, userGroup, userGroup.id).pipe(\r\n tap(data => this.onUserGroupsChanged([userGroup], UserGroupService.userGroupModifiedOperation)));\r\n }\r\n }\r\n\r\n\r\n newUserGroup(userGroup: UserGroup) {\r\n return this.commonEndpoint.getNewEndpoint(this.userGroupUrl, userGroup).pipe(\r\n tap(data => this.onUserGroupsChanged([userGroup], UserGroupService.userGroupAddedOperation)));\r\n }\r\n\r\n\r\n deleteUserGroup(userGroupOrUserGroupId: string | UserGroup): Observable {\r\n\r\n if (typeof userGroupOrUserGroupId === 'number' || userGroupOrUserGroupId instanceof Number ||\r\n typeof userGroupOrUserGroupId === 'string' || userGroupOrUserGroupId instanceof String) {\r\n return this.commonEndpoint.getDeleteEndpoint(this.userGroupUrl, userGroupOrUserGroupId).pipe(\r\n tap(data => this.onUserGroupsChanged([data], UserGroupService.userGroupDeletedOperation)));\r\n }\r\n else {\r\n\r\n if (userGroupOrUserGroupId.id) {\r\n return this.deleteUserGroup(userGroupOrUserGroupId.id);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpResponseBase, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class Utilities {\r\n\r\n public static readonly captionAndMessageSeparator = \":\";\r\n public static readonly noNetworkMessageCaption = \"No Network\";\r\n public static readonly noNetworkMessageDetail = \"The server cannot be reached\";\r\n public static readonly accessDeniedMessageCaption = \"Access Denied!\";\r\n public static readonly accessDeniedMessageDetail = \"\";\r\n\r\n public static getHttpResponseMessage(data: HttpResponseBase | any): string[] {\r\n\r\n let responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n }\r\n else {\r\n let responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (let key in responseObject) {\r\n if (key)\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n else if (responseObject[key])\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data))\r\n responses.push(`${data.statusText}: ${this.getResponseBody(data).toString()}`);\r\n }\r\n\r\n if (!responses.length)\r\n responses.push(data.toString());\r\n\r\n if (this.checkAccessDenied(data))\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: HttpResponse | any, seachInCaptionOnly = true, includeCaptionInResult = false): string {\r\n\r\n let searchString = messageToFind.toLowerCase();\r\n let httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (let message of httpMessages) {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) != -1) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (let message of httpMessages) {\r\n\r\n if (message.toLowerCase().indexOf(searchString) != -1) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n }\r\n else {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n public static getResponseBody(response: HttpResponseBase) {\r\n if (response instanceof HttpResponse)\r\n return response.body;\r\n\r\n if (response instanceof HttpErrorResponse)\r\n return response.error || response.message || response.statusText;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string) {\r\n if (url) {\r\n let location = new URL(url, base);\r\n return location.hostname === \"localhost\" || location.hostname === \"127.0.0.1\";\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n\r\n public static getQueryParamsFromString(paramString: string) {\r\n\r\n if (!paramString)\r\n return null;\r\n\r\n let params: { [key: string]: string } = {};\r\n\r\n for (let param of paramString.split(\"&\")) {\r\n let keyValue = Utilities.splitInTwo(param, \"=\");\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n\r\n public static splitInTwo(text: string, separator: string): { firstPart: string, secondPart: string } {\r\n let separatorIndex = text.indexOf(separator);\r\n\r\n if (separatorIndex == -1)\r\n return { firstPart: text, secondPart: null };\r\n\r\n let part1 = text.substr(0, separatorIndex).trim();\r\n let part2 = text.substr(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n\r\n public static safeStringify(object) {\r\n\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n }\r\n catch (error) {\r\n\r\n }\r\n\r\n let simpleObject = {};\r\n\r\n for (let prop in object) {\r\n if (!object.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = \"[***Sanitized Object***]: \" + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n\r\n public static JSonTryParse(value: string) {\r\n try {\r\n return JSON.parse(value);\r\n }\r\n catch (e) {\r\n if (value === \"undefined\")\r\n return void 0;\r\n\r\n return value;\r\n }\r\n }\r\n\r\n\r\n public static TestIsObjectEmpty(obj: any) {\r\n for (let prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n public static TestIsUndefined(value: any) {\r\n return typeof value === 'undefined';\r\n //return value === undefined;\r\n }\r\n\r\n\r\n public static TestIsString(value: any) {\r\n return typeof value === 'string' || value instanceof String;\r\n }\r\n\r\n\r\n\r\n public static capitalizeFirstLetter(text: string) {\r\n if (text)\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n else\r\n return text;\r\n }\r\n\r\n\r\n public static toTitleCase(text: string) {\r\n return text.replace(/\\w\\S*/g, (subString) => {\r\n return subString.charAt(0).toUpperCase() + subString.substr(1).toLowerCase();\r\n });\r\n }\r\n\r\n\r\n public static toLowerCase(items: string)\r\n public static toLowerCase(items: string[])\r\n public static toLowerCase(items: any): string | string[] {\r\n\r\n if (items instanceof Array) {\r\n let loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n }\r\n else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n }\r\n\r\n\r\n public static uniqueId() {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n\r\n public static randomNumber(min: number, max: number) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n\r\n public static baseUrl() {\r\n let base = '';\r\n\r\n if (window.location.origin)\r\n base = window.location.origin;\r\n else\r\n base = window.location.protocol + \"//\" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n\r\n public static printDateOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let dayNames = new Array(\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\");\r\n let monthNames = new Array(\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\");\r\n\r\n let dayOfWeek = date.getDay();\r\n let dayOfMonth = date.getDate();\r\n let sup = \"\";\r\n let month = date.getMonth();\r\n let year = date.getFullYear();\r\n\r\n if (dayOfMonth == 1 || dayOfMonth == 21 || dayOfMonth == 31) {\r\n sup = \"st\";\r\n }\r\n else if (dayOfMonth == 2 || dayOfMonth == 22) {\r\n sup = \"nd\";\r\n }\r\n else if (dayOfMonth == 3 || dayOfMonth == 23) {\r\n sup = \"rd\";\r\n }\r\n else {\r\n sup = \"th\";\r\n }\r\n\r\n let dateString = dayNames[dayOfWeek] + \", \" + dayOfMonth + sup + \" \" + monthNames[month] + \" \" + year;\r\n\r\n return dateString;\r\n }\r\n\r\n public static printTimeOnly(date: Date, is24Hr?: boolean) {\r\n\r\n date = new Date(date);\r\n\r\n let period = \"\";\r\n let minute = date.getMinutes().toString();\r\n let hour = date.getHours();\r\n let hourString = date.getHours().toString();\r\n\r\n period = hour < 12 ? \"AM\" : \"PM\";\r\n\r\n if (!is24Hr) {\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n if (hour > 12) {\r\n hour = hour - 12;\r\n }\r\n }\r\n\r\n if (minute.length == 1) {\r\n minute = \"0\" + minute;\r\n }\r\n\r\n if (hourString.length == 1) {\r\n hourString = \"0\" + hourString;\r\n }\r\n\r\n let timeString = is24Hr ? hourString + \":\" + minute : (hour + \":\" + minute + \" \" + period);\r\n\r\n\r\n return timeString;\r\n }\r\n\r\n public static printDate(date: Date, separator = \"at\") {\r\n return `${Utilities.printDateOnly(date)} ${separator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static printFriendlyDate(date: Date, separator = \"-\") {\r\n let today = new Date(); today.setHours(0, 0, 0, 0);\r\n let yesterday = new Date(today); yesterday.setDate(yesterday.getDate() - 1);\r\n let test = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n if (test.toDateString() == today.toDateString())\r\n return `Today ${separator} ${Utilities.printTimeOnly(date)}`;\r\n if (test.toDateString() == yesterday.toDateString())\r\n return `Yesterday ${separator} ${Utilities.printTimeOnly(date)}`;\r\n else\r\n return Utilities.printDate(date, separator);\r\n }\r\n\r\n public static printShortDate(date: Date, separator = \"/\", dateTimeSeparator = \"-\") {\r\n\r\n var day = date.getDate().toString();\r\n var month = (date.getMonth() + 1).toString();\r\n var year = date.getFullYear();\r\n\r\n if (day.length == 1)\r\n day = \"0\" + day;\r\n\r\n if (month.length == 1)\r\n month = \"0\" + month;\r\n\r\n return `${month}${separator}${day}${separator}${year} ${dateTimeSeparator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n\r\n public static parseDate(date) {\r\n\r\n if (date) {\r\n\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n\r\n if (typeof date === 'string' || date instanceof String) {\r\n if (date.search(/[a-su-z+]/i) == -1)\r\n date = date + \"Z\";\r\n\r\n return new Date(date);\r\n }\r\n\r\n if (typeof date === 'number' || date instanceof Number) {\r\n return new Date(date);\r\n }\r\n }\r\n }\r\n\r\n public static toDateOnly(d: Date) {\r\n return new Date(d.setHours(0, 0, 0, 0));\r\n\r\n }\r\n\r\n public static getCurrentDate(withTime?: boolean) {\r\n return withTime ? new Date(new Date().setMilliseconds(0)) : new Date(new Date().setHours(0, 0, 0, 0));\r\n\r\n }\r\n\r\n public static printDuration(start: Date, end: Date) {\r\n\r\n start = new Date(start);\r\n end = new Date(end);\r\n\r\n // get total seconds between the times\r\n let delta = Math.abs(start.valueOf() - end.valueOf()) / 1000;\r\n\r\n // calculate (and subtract) whole days\r\n let days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n // calculate (and subtract) whole hours\r\n let hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n // calculate (and subtract) whole minutes\r\n let minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n // what's left is seconds\r\n let seconds = delta % 60; // in theory the modulus is not required\r\n\r\n\r\n let printedDays = \"\";\r\n\r\n if (days)\r\n printedDays = `${days} days`;\r\n\r\n if (hours)\r\n printedDays += printedDays ? `, ${hours} hours` : `${hours} hours`;\r\n\r\n if (minutes)\r\n printedDays += printedDays ? `, ${minutes} minutes` : `${minutes} minutes`;\r\n\r\n if (seconds)\r\n printedDays += printedDays ? ` and ${seconds} seconds` : `${seconds} seconds`;\r\n\r\n\r\n if (!printedDays)\r\n printedDays = \"0\";\r\n\r\n return printedDays;\r\n }\r\n\r\n\r\n public static getAge(birthDate, otherDate) {\r\n birthDate = new Date(birthDate);\r\n otherDate = new Date(otherDate);\r\n\r\n let years = (otherDate.getFullYear() - birthDate.getFullYear());\r\n\r\n if (otherDate.getMonth() < birthDate.getMonth() ||\r\n otherDate.getMonth() == birthDate.getMonth() && otherDate.getDate() < birthDate.getDate()) {\r\n years--;\r\n }\r\n\r\n return years;\r\n }\r\n\r\n\r\n public static searchArray(searchTerm: string, caseSensitive: boolean, ...values: any[]) {\r\n\r\n if (!searchTerm)\r\n return true;\r\n\r\n\r\n if (!caseSensitive)\r\n searchTerm = searchTerm.toLowerCase();\r\n\r\n for (let value of values) {\r\n\r\n if (value != null) {\r\n let strValue = value.toString();\r\n\r\n if (!caseSensitive)\r\n strValue = strValue.toLowerCase();\r\n\r\n if (strValue.indexOf(searchTerm) !== -1)\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n public static moveArrayItem(array: any[], oldIndex, newIndex) {\r\n\r\n while (oldIndex < 0) {\r\n oldIndex += this.length;\r\n }\r\n\r\n while (newIndex < 0) {\r\n newIndex += this.length;\r\n }\r\n\r\n if (newIndex >= this.length) {\r\n var k = newIndex - this.length;\r\n while ((k--) + 1) {\r\n array.push(undefined);\r\n }\r\n }\r\n\r\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\r\n }\r\n\r\n\r\n public static expandCamelCase(text: string) {\r\n\r\n if (!text)\r\n return text;\r\n\r\n return text.replace(/([A-Z][a-z]+)/g, \" $1\")\r\n .replace(/([A-Z][A-Z]+)/g, \" $1\")\r\n .replace(/([^A-Za-z ]+)/g, \" $1\");\r\n }\r\n\r\n\r\n public static testIsAbsoluteUrl(url: string) {\r\n\r\n let r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n\r\n public static convertToAbsoluteUrl(url: string) {\r\n\r\n return Utilities.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n\r\n\r\n public static removeNulls(obj) {\r\n let isArray = obj instanceof Array;\r\n\r\n for (let k in obj) {\r\n if (obj[k] === null) {\r\n isArray ? obj.splice(k, 1) : delete obj[k];\r\n }\r\n else if (typeof obj[k] == \"object\") {\r\n Utilities.removeNulls(obj[k]);\r\n }\r\n\r\n if (isArray && obj.length == k) {\r\n Utilities.removeNulls(obj);\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n\r\n public static debounce(func: (...args) => any, wait: number, immediate?: boolean) {\r\n var timeout;\r\n\r\n return function () {\r\n var context = this;\r\n var args_ = arguments;\r\n\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate)\r\n func.apply(context, args_);\r\n };\r\n\r\n var callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow)\r\n func.apply(context, args_);\r\n };\r\n }\r\n\r\n\r\n\r\n public static cookies = {\r\n getItem: (sKey) => {\r\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\r\n },\r\n setItem: (sKey, sValue, vEnd, sPath, sDomain, bSecure) => {\r\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\r\n return false;\r\n }\r\n\r\n var sExpires = \"\";\r\n\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires = vEnd === Infinity ? \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\" : \"; max-age=\" + vEnd;\r\n break;\r\n case String:\r\n sExpires = \"; expires=\" + vEnd;\r\n break;\r\n case Date:\r\n sExpires = \"; expires=\" + vEnd.toUTCString();\r\n break;\r\n }\r\n }\r\n\r\n document.cookie = encodeURIComponent(sKey) + \"=\" + encodeURIComponent(sValue) + sExpires + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\") + (bSecure ? \"; secure\" : \"\");\r\n return true;\r\n },\r\n removeItem: (sKey, sPath, sDomain) => {\r\n if (!sKey) {\r\n return false;\r\n }\r\n document.cookie = encodeURIComponent(sKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\");\r\n return true;\r\n },\r\n hasItem: (sKey) => {\r\n return (new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(document.cookie);\r\n },\r\n keys: () => {\r\n var aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var nIdx = 0; nIdx < aKeys.length; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }\r\n return aKeys;\r\n }\r\n }\r\n\r\n public static getUniqueValues(arr, key): any[] {\r\n return [...new Map(arr.map(item => [item[key], item])).values()];\r\n }\r\n}\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: false,\r\n baseUrl: '', //Change this to the address of your backend API if different from frontend address\r\n loginUrl: \"/login\",\r\n registerUrl: \"/register\",\r\n resetPasswordUrl: \"/resetpassword\",\r\n domainUrl: \"http://smv360.com\"\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import 'hammerjs';\r\nimport { 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\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":""}