{"version":3,"sources":["./Opsi.HaulierWeb.UI.Server/$_lazy_route_resource lazy namespace object","./Opsi.HaulierWeb.UI.Server/src/app/app-routing.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/app.module.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/_layout/layout.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/_layout/layout.css","./Opsi.HaulierWeb.UI.Server/src/app/components/accept-reject-trip-cell/accept-reject-trip-cell.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/accept-reject-trip-cell/accept-reject-trip-cell.css","./Opsi.HaulierWeb.UI.Server/src/app/components/accept-trip/accept-trip.css","./Opsi.HaulierWeb.UI.Server/src/app/components/accept-trip/accept-trip.dialog.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/claim-brief/claim-brief.css","./Opsi.HaulierWeb.UI.Server/src/app/components/claim-brief/claim-brief.dialog.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/claims-management/claims-management.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/claims-management/claims-management.css","./Opsi.HaulierWeb.UI.Server/src/app/components/dialog-message/dialog-message.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/dialog-message/dialog-message.css","./Opsi.HaulierWeb.UI.Server/src/app/components/file-download/file-download.css","./Opsi.HaulierWeb.UI.Server/src/app/components/file-download/file-download.dialog.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/file-item/file-item.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/file-item/file-item.css","./Opsi.HaulierWeb.UI.Server/src/app/components/file-upload/file-upload.css","./Opsi.HaulierWeb.UI.Server/src/app/components/file-upload/file-upload.dialog.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/home/contact-details/contact-details.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/home/contact-details/contact-details.css","./Opsi.HaulierWeb.UI.Server/src/app/components/home/contact-group/contact-group.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/home/contact-group/contact-group.css","./Opsi.HaulierWeb.UI.Server/src/app/components/home/driver-detail/driver-detail.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/home/driver-detail/driver-detail.css","./Opsi.HaulierWeb.UI.Server/src/app/components/home/driver-routes/driver-routes.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/home/driver-routes/driver-routes.css","./Opsi.HaulierWeb.UI.Server/src/app/components/home/home.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/home/home.css","./Opsi.HaulierWeb.UI.Server/src/app/components/home/note-editor/note-editor.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/home/note-editor/note-editor.css","./Opsi.HaulierWeb.UI.Server/src/app/components/home/shift-table/shift-table.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/home/shift-table/shift-table.css","./Opsi.HaulierWeb.UI.Server/src/app/components/index.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/issue-selector/issue-selector.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/issue-selector/issue-selector.css","./Opsi.HaulierWeb.UI.Server/src/app/components/navigation/navigation.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/navigation/navigation.css","./Opsi.HaulierWeb.UI.Server/src/app/components/primary-filter/primary-filter.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/primary-filter/primary-filter.css","./Opsi.HaulierWeb.UI.Server/src/app/components/primeng-custom/calendar/calendar.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/rates-management/rates-management.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/rates-management/rates-management.css","./Opsi.HaulierWeb.UI.Server/src/app/components/reject-claim/reject-claim.css","./Opsi.HaulierWeb.UI.Server/src/app/components/reject-claim/reject-claim.dialog.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/reject-trip/reject-trip.css","./Opsi.HaulierWeb.UI.Server/src/app/components/reject-trip/reject-trip.dialog.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/shipment-brief/shipment-brief.css","./Opsi.HaulierWeb.UI.Server/src/app/components/shipment-brief/shipment-brief.dialog.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/shipment-management/shipment-management.css","./Opsi.HaulierWeb.UI.Server/src/app/components/shipment-management/shipment-management.dialog.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/shipment-status-cell/shipment-status-cell.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/shipment-status-cell/shipment-status-cell.css","./Opsi.HaulierWeb.UI.Server/src/app/components/site-management/site-management.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/site-management/site-management.css","./Opsi.HaulierWeb.UI.Server/src/app/components/site-management/user-claim/user-claim.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/site-management/user-claim/user-claim.css","./Opsi.HaulierWeb.UI.Server/src/app/components/site-management/user-haulier/user-haulier.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/site-management/user-haulier/user-haulier.css","./Opsi.HaulierWeb.UI.Server/src/app/components/table-display/column-filter/column-filter.css","./Opsi.HaulierWeb.UI.Server/src/app/components/table-display/column-filter/column-filter.dialog.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/table-display/column-group/column-group.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/table-display/column-group/column-group.css","./Opsi.HaulierWeb.UI.Server/src/app/components/table-display/table-display.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/table-display/table-display.css","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-claim-dialog-status-cell/trip-claim-dialog-status-cell.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-claim-dialog-status-cell/trip-claim-dialog-status-cell.css","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-claim-dialog/trip-claim-dialog.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-claim-dialog/trip-claim.css","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-claim-status-cell/trip-claim-status-cell.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-claim-status-cell/trip-claim-status-cell.css","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-management/trip-management.component.ts","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-management/trip-management.css","./Opsi.HaulierWeb.UI.Server/src/app/components/vehicle-registration/vehicle-registration.css","./Opsi.HaulierWeb.UI.Server/src/app/components/vehicle-registration/vehicle-registration.dialog.ts","./Opsi.HaulierWeb.UI.Server/src/app/constants/permission.constants.ts","./Opsi.HaulierWeb.UI.Server/src/app/controllers/download.controller.ts","./Opsi.HaulierWeb.UI.Server/src/app/controllers/index.ts","./Opsi.HaulierWeb.UI.Server/src/app/controllers/primary-filter.controller.ts","./Opsi.HaulierWeb.UI.Server/src/app/controllers/primary-filter.ts","./Opsi.HaulierWeb.UI.Server/src/app/interceptors/json-date.interceptor.ts","./Opsi.HaulierWeb.UI.Server/src/app/interceptors/json-number.interceptor.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/brief-a.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/brief-actual-details.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/brief-explanation.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/claim-data.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/claim-save.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/claim.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/file-data/file-location.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/file-data/file-type.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/home/contact.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/home/driver-details.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/home/driver-route.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/home/shift-entry.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/home/shifts.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/issue-reason/issue-reason.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/response-status/dialog-response.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/response-status/response-message.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/response-status/update-status-response.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/shipment-detail.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/table/column-filter.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/transport-request.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/models/user-haulier.model.ts","./Opsi.HaulierWeb.UI.Server/src/app/primeng.module.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/auth-interceptor.service.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/brief.service.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/claim.service.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/expeditor.service.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/file.service.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/home.service.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/index.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/rates.service.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/table.service.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/transport-request.service.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/user-profile.service.ts","./Opsi.HaulierWeb.UI.Server/src/app/services/user.service.ts","./Opsi.HaulierWeb.UI.Server/src/boot.ts","./Opsi.WebApps.Slender/auth/components/index.ts","./Opsi.WebApps.Slender/auth/components/login/animations.ts","./Opsi.WebApps.Slender/auth/components/login/login.component.ts","./Opsi.WebApps.Slender/auth/components/login/login.css","./Opsi.WebApps.Slender/auth/controllers/auth.controller.ts","./Opsi.WebApps.Slender/auth/controllers/index.ts","./Opsi.WebApps.Slender/auth/features/admin.module.ts","./Opsi.WebApps.Slender/auth/features/admin/admin-panel.component.ts","./Opsi.WebApps.Slender/auth/features/admin/admin-panel.css","./Opsi.WebApps.Slender/auth/features/admin/index.ts","./Opsi.WebApps.Slender/auth/features/index.ts","./Opsi.WebApps.Slender/auth/index.ts","./Opsi.WebApps.Slender/auth/infrastructure/index.ts","./Opsi.WebApps.Slender/auth/infrastructure/typings/auth-config.ts","./Opsi.WebApps.Slender/auth/infrastructure/typings/index.ts","./Opsi.WebApps.Slender/auth/infrastructure/typings/session.ts","./Opsi.WebApps.Slender/auth/infrastructure/typings/sessionToken.ts","./Opsi.WebApps.Slender/auth/infrastructure/typings/user.ts","./Opsi.WebApps.Slender/auth/package.module.ts","./Opsi.WebApps.Slender/auth/services/auth-guard.service.ts","./Opsi.WebApps.Slender/auth/services/auth.service.ts","./Opsi.WebApps.Slender/auth/services/index.ts","./Opsi.WebApps.Slender/core/index.ts","./Opsi.WebApps.Slender/core/infrastructure/broadcaster.ts","./Opsi.WebApps.Slender/core/infrastructure/index.ts","./Opsi.WebApps.Slender/core/package.module.ts","./Opsi.WebApps.Slender/flex/components/collapse-box-header.component.ts","./Opsi.WebApps.Slender/flex/components/collapse-box-header.css","./Opsi.WebApps.Slender/flex/components/collapse-box.animations.ts","./Opsi.WebApps.Slender/flex/components/collapse-box.component.ts","./Opsi.WebApps.Slender/flex/components/collapse-box.css","./Opsi.WebApps.Slender/flex/components/index.ts","./Opsi.WebApps.Slender/flex/components/splitter-box.component.ts","./Opsi.WebApps.Slender/flex/components/splitter-box.css","./Opsi.WebApps.Slender/flex/directives/collapse-content.directive.ts","./Opsi.WebApps.Slender/flex/directives/collapse-header-content.directive.ts","./Opsi.WebApps.Slender/flex/directives/collapse-header-title.directive.ts","./Opsi.WebApps.Slender/flex/directives/dynamic-sep.directive.ts","./Opsi.WebApps.Slender/flex/directives/index.ts","./Opsi.WebApps.Slender/flex/index.ts","./Opsi.WebApps.Slender/flex/package.module.ts","./Opsi.WebApps.Slender/foundation/boot.module.ts","./Opsi.WebApps.Slender/foundation/components/index.ts","./Opsi.WebApps.Slender/foundation/components/main.component.ts","./Opsi.WebApps.Slender/foundation/components/root.component.ts","./Opsi.WebApps.Slender/foundation/controllers/async-task.controller.ts","./Opsi.WebApps.Slender/foundation/controllers/error.controller.ts","./Opsi.WebApps.Slender/foundation/controllers/event.controller.ts","./Opsi.WebApps.Slender/foundation/controllers/index.ts","./Opsi.WebApps.Slender/foundation/controllers/time.controller.ts","./Opsi.WebApps.Slender/foundation/features/error-details/error-details-modal.ts","./Opsi.WebApps.Slender/foundation/features/error-details/error-details.component.ts","./Opsi.WebApps.Slender/foundation/features/error-details/error-details.css","./Opsi.WebApps.Slender/foundation/features/error-details/error-details.ts","./Opsi.WebApps.Slender/foundation/features/error-details/index.ts","./Opsi.WebApps.Slender/foundation/features/foundation.module.ts","./Opsi.WebApps.Slender/foundation/features/index.ts","./Opsi.WebApps.Slender/foundation/features/logs/components/log-item.component.ts","./Opsi.WebApps.Slender/foundation/features/logs/components/log-item.css","./Opsi.WebApps.Slender/foundation/features/logs/components/logs-filter.component.ts","./Opsi.WebApps.Slender/foundation/features/logs/components/logs-filter.css","./Opsi.WebApps.Slender/foundation/features/logs/components/logs-view-live.component.ts","./Opsi.WebApps.Slender/foundation/features/logs/components/logs-view-live.css","./Opsi.WebApps.Slender/foundation/features/logs/components/logs-view.component.ts","./Opsi.WebApps.Slender/foundation/features/logs/components/logs-view.css","./Opsi.WebApps.Slender/foundation/features/logs/index.ts","./Opsi.WebApps.Slender/foundation/features/logs/infrastructure/index.ts","./Opsi.WebApps.Slender/foundation/features/logs/infrastructure/log-filter-model.ts","./Opsi.WebApps.Slender/foundation/features/logs/infrastructure/log-format-model.ts","./Opsi.WebApps.Slender/foundation/features/logs/infrastructure/log-item.ts","./Opsi.WebApps.Slender/foundation/features/logs/services/logging.service.ts","./Opsi.WebApps.Slender/foundation/index.ts","./Opsi.WebApps.Slender/foundation/services/config.service.ts","./Opsi.WebApps.Slender/foundation/services/index.ts","./Opsi.WebApps.Slender/foundation/services/push-event.service.ts","./Opsi.WebApps.Slender/foundation/services/signalR.service.ts","./Opsi.WebApps.Slender/foundation/services/system-build-info.service.ts","./Opsi.WebApps.Slender/foundation/services/system-config.service.ts","./Opsi.WebApps.Slender/modals/components/confirmation.component.ts","./Opsi.WebApps.Slender/modals/components/confirmation.css","./Opsi.WebApps.Slender/modals/components/dialog-container.component.ts","./Opsi.WebApps.Slender/modals/components/dialog-container.css","./Opsi.WebApps.Slender/modals/components/index.ts","./Opsi.WebApps.Slender/modals/index.ts","./Opsi.WebApps.Slender/modals/package.module.ts","./Opsi.WebApps.Slender/modals/providers/dialog.provider.ts","./Opsi.WebApps.Slender/modals/providers/index.ts","./Opsi.WebApps.Slender/platform/components/_layout/layout.component.ts","./Opsi.WebApps.Slender/platform/components/_layout/layout.css","./Opsi.WebApps.Slender/platform/components/animations.ts","./Opsi.WebApps.Slender/platform/components/header/header.component.ts","./Opsi.WebApps.Slender/platform/components/header/header.css","./Opsi.WebApps.Slender/platform/components/index.ts","./Opsi.WebApps.Slender/platform/components/statusbar/alt-version.ts","./Opsi.WebApps.Slender/platform/components/statusbar/statusbar.component.ts","./Opsi.WebApps.Slender/platform/components/statusbar/statusbar.css","./Opsi.WebApps.Slender/platform/controllers/index.ts","./Opsi.WebApps.Slender/platform/index.ts","./Opsi.WebApps.Slender/platform/infrastructure/index.ts","./Opsi.WebApps.Slender/platform/infrastructure/user-config.ts","./Opsi.WebApps.Slender/platform/package.module.ts","./Opsi.WebApps.Slender/platform/services/config.service.ts","./Opsi.WebApps.Slender/platform/services/index.ts","./Opsi.WebApps.Slender/flex/assets/css/flex.css","./Opsi.HaulierWeb.UI.Server/src/app/components/_layout/layout.html","./Opsi.HaulierWeb.UI.Server/src/app/components/accept-reject-trip-cell/accept-reject-trip-cell.html","./Opsi.HaulierWeb.UI.Server/src/app/components/accept-trip/accept-trip.html","./Opsi.HaulierWeb.UI.Server/src/app/components/claim-brief/claim-brief.html","./Opsi.HaulierWeb.UI.Server/src/app/components/claims-management/claims-management.html","./Opsi.HaulierWeb.UI.Server/src/app/components/dialog-message/dialog-message.html","./Opsi.HaulierWeb.UI.Server/src/app/components/file-download/file-download.html","./Opsi.HaulierWeb.UI.Server/src/app/components/file-item/file-item.html","./Opsi.HaulierWeb.UI.Server/src/app/components/file-upload/file-upload.html","./Opsi.HaulierWeb.UI.Server/src/app/components/home/contact-details/contact-details.html","./Opsi.HaulierWeb.UI.Server/src/app/components/home/contact-group/contact-group.html","./Opsi.HaulierWeb.UI.Server/src/app/components/home/driver-detail/driver-detail.html","./Opsi.HaulierWeb.UI.Server/src/app/components/home/driver-routes/driver-routes.html","./Opsi.HaulierWeb.UI.Server/src/app/components/home/home.html","./Opsi.HaulierWeb.UI.Server/src/app/components/home/note-editor/note-editor.html","./Opsi.HaulierWeb.UI.Server/src/app/components/home/shift-table/shift-table.html","./Opsi.HaulierWeb.UI.Server/src/app/components/issue-selector/issue-selector.html","./Opsi.HaulierWeb.UI.Server/src/app/components/navigation/navigation.html","./Opsi.HaulierWeb.UI.Server/src/app/components/primary-filter/primary-filter.html","./Opsi.HaulierWeb.UI.Server/src/app/components/rates-management/rates-management.html","./Opsi.HaulierWeb.UI.Server/src/app/components/reject-claim/reject-claim.html","./Opsi.HaulierWeb.UI.Server/src/app/components/reject-trip/reject-trip.html","./Opsi.HaulierWeb.UI.Server/src/app/components/shipment-brief/shipment-brief.html","./Opsi.HaulierWeb.UI.Server/src/app/components/shipment-management/shipment-management.html","./Opsi.HaulierWeb.UI.Server/src/app/components/shipment-status-cell/shipment-status-cell.html","./Opsi.HaulierWeb.UI.Server/src/app/components/site-management/site-management.html","./Opsi.HaulierWeb.UI.Server/src/app/components/site-management/user-claim/user-claim.html","./Opsi.HaulierWeb.UI.Server/src/app/components/site-management/user-haulier/user-haulier.html","./Opsi.HaulierWeb.UI.Server/src/app/components/table-display/column-filter/column-filter.html","./Opsi.HaulierWeb.UI.Server/src/app/components/table-display/column-group/column-group.html","./Opsi.HaulierWeb.UI.Server/src/app/components/table-display/table-display.html","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-claim-dialog-status-cell/trip-claim-dialog-status-cell.html","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-claim-dialog/trip-claim.html","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-claim-status-cell/trip-claim-status-cell.html","./Opsi.HaulierWeb.UI.Server/src/app/components/trip-management/trip-management.html","./Opsi.HaulierWeb.UI.Server/src/app/components/vehicle-registration/vehicle-registration.html","./Opsi.WebApps.Slender/auth/components/login/login.html","./Opsi.WebApps.Slender/auth/features/admin/admin-panel.html","./Opsi.WebApps.Slender/flex/components/collapse-box-header.html","./Opsi.WebApps.Slender/flex/components/collapse-box.html","./Opsi.WebApps.Slender/flex/components/splitter-box.html","./Opsi.WebApps.Slender/foundation/features/error-details/error-details.html","./Opsi.WebApps.Slender/foundation/features/logs/components/log-item.html","./Opsi.WebApps.Slender/foundation/features/logs/components/logs-filter.html","./Opsi.WebApps.Slender/foundation/features/logs/components/logs-view-live.html","./Opsi.WebApps.Slender/foundation/features/logs/components/logs-view.html","./Opsi.WebApps.Slender/modals/components/confirmation.html","./Opsi.WebApps.Slender/modals/components/dialog-container.html","./Opsi.WebApps.Slender/platform/components/_layout/layout.html","./Opsi.WebApps.Slender/platform/components/header/header.html","./Opsi.WebApps.Slender/platform/components/statusbar/statusbar.html","webpack:///./Opsi.WebApps.Slender/flex/assets/css/flex.css?b044"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["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 = \"./Opsi.HaulierWeb.UI.Server/$$_lazy_route_resource lazy recursive\";","import {NgModule} from \"@angular/core\";\r\nimport {RouterModule, Routes} from \"@angular/router\";\r\nimport {AppLayoutComponent} from \"./components\";\r\nimport {ClaimsManagementComponent} from \"./components/claims-management/claims-management.component\";\r\nimport {HomeComponent} from \"./components/home/home.component\";\r\nimport {RatesManagementComponent} from \"./components/rates-management/rates-management.component\";\r\nimport {SiteManagementComponent} from \"./components/site-management/site-management.component\";\r\nimport {TripManagementComponent} from \"./components/trip-management/trip-management.component\";\r\n\r\nexport const routes: Routes = [\r\n {path: \"\", redirectTo: \"/home\", pathMatch: \"full\"},\r\n {\r\n path: \"\",\r\n component: AppLayoutComponent,\r\n children: [\r\n {path: \"home\", component: HomeComponent},\r\n {path: \"trip-management\", component: TripManagementComponent},\r\n {path: \"rates-management\", component: RatesManagementComponent},\r\n {path: \"claims-management\", component: ClaimsManagementComponent},\r\n {path: \"site-management\", component: SiteManagementComponent}\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule {\r\n}\r\n","import {CommonModule} from \"@angular/common\";\r\nimport {HTTP_INTERCEPTORS, HttpClientModule} from \"@angular/common/http\";\r\nimport {NgModule} from \"@angular/core\";\r\nimport {FormsModule} from \"@angular/forms\";\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport {MatInputModule} from \"@angular/material/input\";\r\nimport {SlenderFlexModule} from \"@slender/flex\";\r\n\r\nimport {SlenderFoundationModule} from \"@slender/foundation\";\r\n\r\nimport {AppRoutingModule} from \"./app-routing.component\";\r\nimport {COMPONENTS} from \"./components\";\r\nimport {AcceptTripDialog} from \"./components/accept-trip/accept-trip.dialog\";\r\nimport {FileDownloadDialog} from \"./components/file-download/file-download.dialog\";\r\nimport {FileUploadDialog} from \"./components/file-upload/file-upload.dialog\";\r\nimport {RejectTripDialog} from \"./components/reject-trip/reject-trip.dialog\";\r\nimport { ShipmentBriefDialog } from \"./components/shipment-brief/shipment-brief.dialog\";\r\nimport { ClaimBriefDialog } from \"./components/claim-brief/claim-brief.dialog\";\r\nimport {ShipmentManagementDialog} from \"./components/shipment-management/shipment-management.dialog\";\r\nimport {ColumnFilterDialog} from \"./components/table-display/column-filter/column-filter.dialog\";\r\nimport {VehicleRegistrationDialog} from \"./components/vehicle-registration/vehicle-registration.dialog\";\r\n\r\nimport {CONTROLLERS} from \"./controllers\";\r\nimport {JsonDateInterceptor} from \"./interceptors/json-date.interceptor\";\r\nimport {JsonNumberInterceptor} from \"./interceptors/json-number.interceptor\";\r\nimport {PrimeClassModule} from \"./primeng.module\";\r\nimport {SERVICES} from \"./services\";\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n\r\n CommonModule,\r\n FormsModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n\r\n SlenderFoundationModule,\r\n SlenderFlexModule,\r\n\r\n AppRoutingModule,\r\n PrimeClassModule,\r\n ],\r\n declarations: [COMPONENTS],\r\n providers: [\r\n {provide: HTTP_INTERCEPTORS, useClass: JsonDateInterceptor, multi: true},\r\n {provide: HTTP_INTERCEPTORS, useClass: JsonNumberInterceptor, multi: true},\r\n CONTROLLERS, SERVICES\r\n ],\r\n entryComponents: [\r\n AcceptTripDialog,\r\n ColumnFilterDialog,\r\n FileDownloadDialog,\r\n FileUploadDialog,\r\n RejectTripDialog,\r\n ShipmentBriefDialog,\r\n ClaimBriefDialog,\r\n ShipmentManagementDialog,\r\n VehicleRegistrationDialog\r\n ]\r\n})\r\nexport class AppModule {\r\n}\r\n","import {Component} from \"@angular/core\";\r\nimport {AuthController} from \"@slender/auth\";\r\nimport {AppStatus, AsyncTaskController} from \"@slender/foundation\";\r\nimport {UserProfileService} from \"../../services/user-profile.service\";\r\n\r\n@Component({\r\n templateUrl: \"layout.html\",\r\n styleUrls: [\"layout.css\"]\r\n})\r\nexport class AppLayoutComponent {\r\n private userId: number;\r\n private saving: boolean;\r\n\r\n constructor(\r\n private _asyncTaskController: AsyncTaskController,\r\n private _authController: AuthController,\r\n private _userProfileService: UserProfileService\r\n ) {\r\n this.saving = false;\r\n\r\n _authController.loggedOut.subscribe(() => {\r\n if(this.saving) {\r\n return;\r\n }\r\n this.saving = true;\r\n\r\n this._userProfileService.setUserProfile(this.userId).subscribe(() => {\r\n this.clearUserProfiles();\r\n\r\n this.userId = 0;\r\n this.saving = false;\r\n });\r\n });\r\n\r\n this.loadUserProfiles();\r\n }\r\n\r\n public ngOnInit() {\r\n this._asyncTaskController.updateStatus(new AppStatus(\"info\", \"Ready\"));\r\n }\r\n\r\n private clearUserProfiles(): void {\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n }\r\n\r\n private loadUserProfiles(): void {\r\n this._userProfileService.getUserProfile().subscribe(obs => {\r\n if(!obs) {\r\n return;\r\n }\r\n\r\n if(obs.tripProfile) {\r\n localStorage.setItem(UserProfileService.tripTableKey, obs.tripProfile);\r\n }\r\n if(obs.shipmentProfile) {\r\n localStorage.setItem(UserProfileService.shipmentTableKey, obs.shipmentProfile);\r\n }\r\n if(obs.ratesProfile) {\r\n localStorage.setItem(UserProfileService.ratesTableKey, obs.ratesProfile);\r\n }\r\n if(obs.claimsProfile) {\r\n localStorage.setItem(UserProfileService.claimsTableKey, obs.claimsProfile);\r\n }\r\n\r\n this.userId = obs.userId;\r\n });\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n background: -webkit-gradient(linear, left top, left bottom, from(#f7), to(white));\\r\\n background: linear-gradient(#f7, white);\\r\\n}\\r\\n\\r\\n.applet-row {\\r\\n margin-bottom: 1vw;\\r\\n}\\r\\n\\r\\n.tile {\\r\\n width: 10vw;\\r\\n height: 12.5vw;\\r\\n min-width: 120px;\\r\\n min-height: 150px;\\r\\n}\\r\\n\\r\\n.applet-tile {\\r\\n width: 10vw;\\r\\n height: 12.5vw;\\r\\n min-width: 120px;\\r\\n min-height: 150px;\\r\\n padding: 10px;\\r\\n font-weight: bold;\\r\\n border-radius: 3px;\\r\\n background-color: white;\\r\\n box-shadow: 0 0 10px 0 silver;\\r\\n -webkit-transition: ease-out 200ms;\\r\\n transition: ease-out 200ms;\\r\\n}\\r\\n\\r\\n.applet i {\\r\\n color: #1600ba;\\r\\n}\\r\\n\\r\\n.changes i {\\r\\n color: #0b9cff;\\r\\n}\\r\\n\\r\\n.logs i {\\r\\n color: steelblue;\\r\\n}\\r\\n\\r\\n.test i {\\r\\n color: coral;\\r\\n}\\r\\n\\r\\n.boom i {\\r\\n color: tomato;\\r\\n}\\r\\n\\r\\n.inactive {\\r\\n color: silver;\\r\\n}\\r\\n\\r\\n.empty {\\r\\n background-color: transparent;\\r\\n}\\r\\n\\r\\n.applet-tile:not(.inactive):hover {\\r\\n box-shadow: 0 0 20px 0 silver;\\r\\n -webkit-transform: translateY(-3px);\\r\\n transform: translateY(-3px);\\r\\n}\\r\\n\\r\\n.applet-tile:not(.inactive):hover i {\\r\\n -webkit-transform: perspective(100px) rotateY(360deg);\\r\\n transform: perspective(100px) rotateY(360deg);\\r\\n -webkit-transition: ease-in 500ms 1000ms;\\r\\n transition: ease-in 500ms 1000ms;\\r\\n}\\r\\n\\r\\n.title {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL19sYXlvdXQvbGF5b3V0LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLGlGQUF1QztFQUF2Qyx1Q0FBdUM7QUFDekM7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsdUJBQXVCO0VBQ3ZCLDZCQUE2QjtFQUM3QixrQ0FBMEI7RUFBMUIsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSw2QkFBNkI7RUFDN0IsbUNBQTJCO1VBQTNCLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLHFEQUE2QztVQUE3Qyw2Q0FBNkM7RUFDN0Msd0NBQWdDO0VBQWhDLGdDQUFnQztBQUNsQzs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy9fbGF5b3V0L2xheW91dC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2Y3LCB3aGl0ZSk7XHJcbn1cclxuXHJcbi5hcHBsZXQtcm93IHtcclxuICBtYXJnaW4tYm90dG9tOiAxdnc7XHJcbn1cclxuXHJcbi50aWxlIHtcclxuICB3aWR0aDogMTB2dztcclxuICBoZWlnaHQ6IDEyLjV2dztcclxuICBtaW4td2lkdGg6IDEyMHB4O1xyXG4gIG1pbi1oZWlnaHQ6IDE1MHB4O1xyXG59XHJcblxyXG4uYXBwbGV0LXRpbGUge1xyXG4gIHdpZHRoOiAxMHZ3O1xyXG4gIGhlaWdodDogMTIuNXZ3O1xyXG4gIG1pbi13aWR0aDogMTIwcHg7XHJcbiAgbWluLWhlaWdodDogMTUwcHg7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCBzaWx2ZXI7XHJcbiAgdHJhbnNpdGlvbjogZWFzZS1vdXQgMjAwbXM7XHJcbn1cclxuXHJcbi5hcHBsZXQgaSB7XHJcbiAgY29sb3I6ICMxNjAwYmE7XHJcbn1cclxuXHJcbi5jaGFuZ2VzIGkge1xyXG4gIGNvbG9yOiAjMGI5Y2ZmO1xyXG59XHJcblxyXG4ubG9ncyBpIHtcclxuICBjb2xvcjogc3RlZWxibHVlO1xyXG59XHJcblxyXG4udGVzdCBpIHtcclxuICBjb2xvcjogY29yYWw7XHJcbn1cclxuXHJcbi5ib29tIGkge1xyXG4gIGNvbG9yOiB0b21hdG87XHJcbn1cclxuXHJcbi5pbmFjdGl2ZSB7XHJcbiAgY29sb3I6IHNpbHZlcjtcclxufVxyXG5cclxuLmVtcHR5IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLmFwcGxldC10aWxlOm5vdCguaW5hY3RpdmUpOmhvdmVyIHtcclxuICBib3gtc2hhZG93OiAwIDAgMjBweCAwIHNpbHZlcjtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XHJcbn1cclxuXHJcbi5hcHBsZXQtdGlsZTpub3QoLmluYWN0aXZlKTpob3ZlciBpIHtcclxuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMHB4KSByb3RhdGVZKDM2MGRlZyk7XHJcbiAgdHJhbnNpdGlvbjogZWFzZS1pbiA1MDBtcyAxMDAwbXM7XHJcbn1cclxuXHJcbi50aXRsZSB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbiJdfQ== */\"","import {Component, EventEmitter, Input, OnInit, Output} from \"@angular/core\";\r\nimport {ConfirmationService, Message} from \"primeng/api\";\r\nimport {DialogService} from \"primeng/dynamicdialog\";\r\nimport {DialogResponseModel} from \"../../models/response-status/dialog-response.model\";\r\nimport {TransportRequestModel} from \"../../models/transport-request.model\";\r\nimport {TransportRequestService} from \"../../services/transport-request.service\";\r\nimport {AcceptTripDialog} from \"../accept-trip/accept-trip.dialog\";\r\nimport {RejectTripDialog} from \"../reject-trip/reject-trip.dialog\";\r\n\r\n@Component({\r\n selector: \"accept-reject-trip-cell\",\r\n templateUrl: \"accept-reject-trip-cell.html\",\r\n styleUrls: [\"accept-reject-trip-cell.css\"],\r\n providers: [ConfirmationService, DialogService]\r\n})\r\nexport class AcceptRejectTripCellComponent implements OnInit {\r\n @Input() readOnlyVar: boolean;\r\n @Input() row: TransportRequestModel;\r\n\r\n @Output() responseEmitter: EventEmitter;\r\n\r\n public _messages: Message[];\r\n public _row: TransportRequestModel;\r\n public _updating: boolean;\r\n\r\n constructor(\r\n private _confirmationService: ConfirmationService,\r\n private _dialogService: DialogService,\r\n private _tripService: TransportRequestService\r\n ) {\r\n this.responseEmitter = new EventEmitter();\r\n\r\n this._updating = false;\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.row) {\r\n this._row = this.row;\r\n this._messages = [];\r\n }\r\n }\r\n\r\n public showAcceptDetails(): void {\r\n let trCode = this._row.code;\r\n let trId = this._row.transportRequestId;\r\n let vehicleRegistration = this._row.plannedVehicleRegistration;\r\n\r\n const ref = this._dialogService.open(AcceptTripDialog, {\r\n closable: false,\r\n data: {\r\n trCode: trCode,\r\n trId: trId,\r\n haulierId: this._row.haulierId,\r\n vehicleRegistration: vehicleRegistration\r\n },\r\n header: \"Confirm Planned Information\",\r\n width: \"45%\"\r\n });\r\n\r\n ref.onClose.subscribe(obs => {\r\n if(!obs) {\r\n return;\r\n }\r\n\r\n this.responseEmitter.emit(obs);\r\n });\r\n }\r\n\r\n public showRejectDetails(): void {\r\n let trId = this._row.transportRequestId;\r\n let trCode = this._row.code;\r\n\r\n const ref = this._dialogService.open(RejectTripDialog, {\r\n closable: false,\r\n data: {\r\n trCode: trCode,\r\n trId: trId\r\n },\r\n header: \"Reject Shipment\",\r\n width: \"35%\"\r\n });\r\n\r\n ref.onClose.subscribe(obs => {\r\n if(!obs) {\r\n return;\r\n }\r\n this.responseEmitter.emit(obs);\r\n });\r\n }\r\n\r\n public acceptTripConfirmation(): void {\r\n this._confirmationService.confirm({\r\n message: \"Confirm trip acceptance?\",\r\n header: \"Accept Trip\",\r\n icon: \"pi pi-question-circle\",\r\n accept: () => {\r\n this.acceptTrip();\r\n }\r\n });\r\n }\r\n\r\n private acceptTrip(): void {\r\n let dialogResponse = new DialogResponseModel(\"Accept\");\r\n\r\n this._updating = true;\r\n\r\n this._tripService.changeTransportRequestStatus(\r\n this.row.code,\r\n 0,\r\n 2060,\r\n \"\"\r\n ).subscribe(obs => {\r\n dialogResponse.addResponseRange(obs);\r\n\r\n this._updating = false;\r\n\r\n this.responseEmitter.emit(dialogResponse);\r\n }, error => {\r\n this._messages.push({ severity: \"error\", detail: `Failed to update trip status. Error: ${error.message}.` });\r\n });\r\n }\r\n}\r\n","export default \".container {\\r\\n max-height: 50px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.container div {\\r\\n margin: auto;\\r\\n}\\r\\n\\r\\n.container button {\\r\\n font-size: 0.8em;\\r\\n margin: -5px 3px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2FjY2VwdC1yZWplY3QtdHJpcC1jZWxsL2FjY2VwdC1yZWplY3QtdHJpcC1jZWxsLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0FBQ2xCIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2FjY2VwdC1yZWplY3QtdHJpcC1jZWxsL2FjY2VwdC1yZWplY3QtdHJpcC1jZWxsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xyXG4gIG1heC1oZWlnaHQ6IDUwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uY29udGFpbmVyIGRpdiB7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG59XHJcblxyXG4uY29udGFpbmVyIGJ1dHRvbiB7XHJcbiAgZm9udC1zaXplOiAwLjhlbTtcclxuICBtYXJnaW46IC01cHggM3B4O1xyXG59XHJcbiJdfQ== */\"","export default \"table.popup {\\r\\n width: 100%;\\r\\n border-collapse: separate;\\r\\n border-spacing: 10px;\\r\\n}\\r\\n\\r\\ntable.popup td {\\r\\n margin: 12px 12px 12px 12px;\\r\\n padding: 12px 12px 12px 12px;\\r\\n}\\r\\n\\r\\n.form-control-date {\\r\\n display: inline-block;\\r\\n width: 200px;\\r\\n height: 30px;\\r\\n /*padding: 0.5rem 0.75rem;*/\\r\\n /*font-size: 1rem;*/\\r\\n /*line-height: 1.20;*/\\r\\n color: #495057;\\r\\n background-color: #fff;\\r\\n background-image: none;\\r\\n background-clip: padding-box;\\r\\n border: 1px solid rgba(0, 0, 0, 0.15);\\r\\n border-radius: 0.2rem;\\r\\n -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\\r\\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\\r\\n}\\r\\n\\r\\n.control-group {\\r\\n margin: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n.control-group button {\\r\\n margin: 1%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2FjY2VwdC10cmlwL2FjY2VwdC10cmlwLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFdBQVc7RUFDWCx5QkFBeUI7RUFDekIsb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UsMkJBQTJCO0VBQzNCLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQixZQUFZO0VBQ1osWUFBWTtFQUNaLDJCQUEyQjtFQUMzQixtQkFBbUI7RUFDbkIscUJBQXFCO0VBQ3JCLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIsc0JBQXNCO0VBQ3RCLDRCQUE0QjtFQUM1QixxQ0FBcUM7RUFDckMscUJBQXFCO0VBQ3JCLGdGQUF3RTtFQUF4RSx3RUFBd0U7QUFDMUU7O0FBRUE7RUFDRSxZQUFZO0VBQ1osYUFBYTtBQUNmOztBQUVBO0VBQ0UsVUFBVTtBQUNaIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2FjY2VwdC10cmlwL2FjY2VwdC10cmlwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbInRhYmxlLnBvcHVwIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xyXG4gIGJvcmRlci1zcGFjaW5nOiAxMHB4O1xyXG59XHJcblxyXG50YWJsZS5wb3B1cCB0ZCB7XHJcbiAgbWFyZ2luOiAxMnB4IDEycHggMTJweCAxMnB4O1xyXG4gIHBhZGRpbmc6IDEycHggMTJweCAxMnB4IDEycHg7XHJcbn1cclxuXHJcbi5mb3JtLWNvbnRyb2wtZGF0ZSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAyMDBweDtcclxuICBoZWlnaHQ6IDMwcHg7XHJcbiAgLypwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTsqL1xyXG4gIC8qZm9udC1zaXplOiAxcmVtOyovXHJcbiAgLypsaW5lLWhlaWdodDogMS4yMDsqL1xyXG4gIGNvbG9yOiAjNDk1MDU3O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XHJcbiAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xyXG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAwLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAwLjE1cztcclxufVxyXG5cclxuLmNvbnRyb2wtZ3JvdXAge1xyXG4gIG1hcmdpbjogMC41JTtcclxuICBwYWRkaW5nOiAwLjUlO1xyXG59XHJcblxyXG4uY29udHJvbC1ncm91cCBidXR0b24ge1xyXG4gIG1hcmdpbjogMSU7XHJcbn1cclxuIl19 */\"","import {Component, OnInit} from \"@angular/core\";\r\nimport {Message} from \"primeng/api\";\r\nimport {DynamicDialogConfig, DynamicDialogRef} from \"primeng/dynamicdialog\";\r\nimport {AcceptedRequestModel} from \"../../models/accepted-request.model\";\r\nimport {DialogResponseModel} from \"../../models/response-status/dialog-response.model\";\r\nimport {TransportRequestVehicleModel} from \"../../models/transport-request-vehicle.model\";\r\nimport {TransportRequestService} from \"../../services/transport-request.service\";\r\n\r\n@Component({\r\n templateUrl: \"accept-trip.html\",\r\n styleUrls: [\"accept-trip.css\"]\r\n})\r\nexport class AcceptTripDialog implements OnInit {\r\n // Dialog Inputs\r\n private _haulierId: number;\r\n private _trCode: string;\r\n private _trId: number;\r\n private _vehicleRegistration: string;\r\n public _tripVehicleRegistrations: TransportRequestVehicleModel[];\r\n\r\n // Form data\r\n public _acceptedData: AcceptedRequestModel[];\r\n public _loading: boolean;\r\n public _selectedVehicle: TransportRequestVehicleModel;\r\n\r\n public _messages: Message[];\r\n public _saving: boolean;\r\n\r\n constructor(\r\n private _config: DynamicDialogConfig,\r\n private _tripService: TransportRequestService,\r\n private _ref: DynamicDialogRef\r\n ) {\r\n this._loading = true;\r\n this._saving = false;\r\n\r\n this._acceptedData = [];\r\n this._messages = [];\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this._config.data.trCode) {\r\n this._trCode = this._config.data.trCode;\r\n }\r\n if(this._config.data.trId) {\r\n this._trId = this._config.data.trId;\r\n }\r\n if(this._config.data.haulierId) {\r\n this._haulierId = this._config.data.haulierId;\r\n }\r\n if(this._config.data.vehicleRegistration) {\r\n this._vehicleRegistration = this._config.data.vehicleRegistration;\r\n }\r\n\r\n this.loadTripVehicles();\r\n this.loadDetails();\r\n }\r\n\r\n public cancelSubmit(): void {\r\n this._ref.close();\r\n }\r\n\r\n public onAcceptDateChange(id: number, value: Date): void {\r\n let idx = this._acceptedData.findIndex(d => d.id = id);\r\n if(idx === -1) {\r\n return;\r\n }\r\n\r\n this._acceptedData[idx].plannedDate = value;\r\n }\r\n\r\n public onSubmit(): void {\r\n this._saving = true;\r\n\r\n let dialogResponse = new DialogResponseModel(\"Confirm\");\r\n\r\n this._acceptedData.forEach(data => {\r\n data.vehicleRegistration = this._selectedVehicle.vehicle;\r\n data.vehicleId = this._selectedVehicle.vehicleId;\r\n });\r\n\r\n this._tripService.saveAcceptedDetails(this._acceptedData).subscribe(obs => {\r\n if(!obs.isError) {\r\n this._tripService.changeTransportRequestStatus(this._trCode, this._haulierId, 2100, \"\").subscribe(obs => {\r\n dialogResponse.addResponseRange(obs);\r\n\r\n this._ref.close(dialogResponse);\r\n }, error => {\r\n this._messages.push({severity: \"error\", detail: `Failed to update trip status. Error: ${error.message}.`});\r\n });\r\n\r\n this._saving = false;\r\n\r\n return;\r\n }\r\n dialogResponse.addResponse(obs);\r\n\r\n this._ref.close(dialogResponse);\r\n }, error => {\r\n this._messages.push({severity: \"error\", detail: `Failed to save details. Error: ${error}.`});\r\n\r\n this._saving = false;\r\n });\r\n }\r\n\r\n private loadDetails(): void {\r\n this._tripService.getTransportRequestDetails(this._trId).subscribe(obs => {\r\n this._acceptedData = [];\r\n\r\n for(let i = 0; i < obs.length; i++) {\r\n let data = this._acceptedData.find(ad => ad.customerName === obs[i].terminusMapPointName);\r\n if(data) {\r\n data.shipmentId += `-${obs[i].shipmentId}`;\r\n continue;\r\n }\r\n\r\n let shipmentData: AcceptedRequestModel = {\r\n id: i,\r\n transportRequestId: obs[i].transportRequestId,\r\n shipmentId: `${obs[i].shipmentId}`,\r\n salesOrder: \"\",\r\n vehicleRegistration: this._vehicleRegistration,\r\n vehicleId: -1,\r\n customerName: obs[i].terminusMapPointName,\r\n plannedDate: obs[i].shDeliveryDate\r\n };\r\n\r\n this._acceptedData.push(shipmentData);\r\n }\r\n\r\n this._loading = false;\r\n }, error => {\r\n this._messages.push({severity: \"error\", summary: \"Accept\", detail: \"Failed to load shipment details.\"});\r\n this._loading = false;\r\n });\r\n }\r\n\r\n public onVehicleChange(event: TransportRequestVehicleModel): void {\r\n if(event) {\r\n this._selectedVehicle = event;\r\n }\r\n }\r\n\r\n private loadTripVehicles(): void {\r\n this._tripService.getHaulierVehicles(this._trId).subscribe(obs => {\r\n if(!obs) {\r\n return;\r\n }\r\n this._tripVehicleRegistrations = obs;\r\n\r\n let idx = this._tripVehicleRegistrations.findIndex(v => v.vehicle === this._vehicleRegistration);\r\n if(idx >= 0) {\r\n this._selectedVehicle = this._tripVehicleRegistrations[idx];\r\n }\r\n }, error => {\r\n this._messages.push({severity: \"error\", detail: `Failed to load trip vehicles. Error: ${error.message}.`});\r\n });\r\n }\r\n}\r\n","export default \".form-container {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.table-container {\\r\\n font-size: 1em;\\r\\n height: 80%;\\r\\n width: 100%;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.table-container table, th, td {\\r\\n text-align: justify;\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n.brief-text-th {\\r\\n font-weight: bolder;\\r\\n font-size: medium;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.brief-text {\\r\\n font-weight: bold;\\r\\n font-size: small;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.control-group {\\r\\n margin: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.control-group button {\\r\\n margin: 1%;\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n.claim-lodged {\\r\\n color: blue;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.claim-progress {\\r\\n color: orange;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.claim-completed {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.claim-rejected {\\r\\n color: #F20B22;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2NsYWltLWJyaWVmL2NsYWltLWJyaWVmLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7VUFBdEIsc0JBQXNCO0FBQ3hCOzs7O0FBSUE7RUFDRSxjQUFjO0VBQ2QsV0FBVztFQUNYLFdBQVc7RUFDWCxVQUFVO0FBQ1o7Ozs7QUFFRTtJQUNFLG1CQUFtQjtFQUNyQjs7OztBQUVGO0VBQ0UsbUJBQW1CO0VBQ25CLGlCQUFpQjtBQUNuQjs7OztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjs7OztBQUVBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7QUFDZjs7OztBQUVFO0lBQ0UsVUFBVTtFQUNaOzs7O0FBRUY7RUFDRSxXQUFXO0FBQ2I7Ozs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7OztBQUVBO0VBQ0UsWUFBWTtBQUNkOzs7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2NsYWltLWJyaWVmL2NsYWltLWJyaWVmLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG5cclxuXHJcbi50YWJsZS1jb250YWluZXIge1xyXG4gIGZvbnQtc2l6ZTogMWVtO1xyXG4gIGhlaWdodDogODAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHotaW5kZXg6IDI7XHJcbn1cclxuXHJcbiAgLnRhYmxlLWNvbnRhaW5lciB0YWJsZSwgdGgsIHRkIHtcclxuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XHJcbiAgfVxyXG5cclxuLmJyaWVmLXRleHQtdGgge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbiAgZm9udC1zaXplOiBtZWRpdW07XHJcbn1cclxuXHJcbi5icmllZi10ZXh0IHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IHNtYWxsO1xyXG59XHJcblxyXG4uY29udHJvbC1ncm91cCB7XHJcbiAgbWFyZ2luOiAwLjUlO1xyXG4gIHBhZGRpbmc6IDAuNSU7XHJcbn1cclxuXHJcbiAgLmNvbnRyb2wtZ3JvdXAgYnV0dG9uIHtcclxuICAgIG1hcmdpbjogMSU7XHJcbiAgfVxyXG5cclxuLmNsYWltLWxvZGdlZCB7XHJcbiAgY29sb3I6IGJsdWU7XHJcbn1cclxuXHJcbi5jbGFpbS1wcm9ncmVzcyB7XHJcbiAgY29sb3I6IG9yYW5nZTtcclxufVxyXG5cclxuLmNsYWltLWNvbXBsZXRlZCB7XHJcbiAgY29sb3I6IGdyZWVuO1xyXG59XHJcblxyXG4uY2xhaW0tcmVqZWN0ZWQge1xyXG4gIGNvbG9yOiAjRjIwQjIyO1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { AuthService } from \"@slender/auth\";\r\nimport { Message, SelectItem } from \"primeng/api\";\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { DownloadController } from \"../../controllers\";\r\nimport { BriefActualDetailsModel } from \"../../models/brief-actual-details.model\";\r\nimport { BriefExplanationModel } from \"../../models/brief-explanation.model\";\r\nimport { FileType } from \"../../models/file-data/file-type.model\";\r\nimport { ClaimService } from \"../../services/claim.service\";\r\nimport { FileService } from \"../../services/file.service\";\r\nimport { FileDownloadDialog } from \"../file-download/file-download.dialog\";\r\nimport { FileUploadDialog } from \"../file-upload/file-upload.dialog\";\r\nimport { ClaimDataModel } from \"../../models/claim-data.model\";\r\nimport { ClaimSaveModel } from \"../../models/claim-save.model\";\r\nimport { DialogResponseModel } from \"../../models/response-status/dialog-response.model\";\r\nimport { IssueReasonModel } from \"../../models/issue-reason/issue-reason.model\";\r\nimport { ClaimIssueReasonInterface } from \"../../models/claim-issue-reason/claim-issue-reason.interface\";\r\nimport { ReasonInterface } from \"../../models/issue-reason/reason.interface\";\r\nimport { ClaimIssueReasonDto } from \"../../models/claim-issue-reason/claim-issue-reason.dto\";\r\nimport { RejectClaimDialog } from \"../reject-claim/reject-claim.dialog\";\r\n\r\ninterface issueReasonInt {\r\n name: string;\r\n code: string;\r\n}\r\n\r\n@Component({\r\n templateUrl: \"claim-brief.html\",\r\n styleUrls: [\"claim-brief.css\"],\r\n providers: [DialogService]\r\n})\r\nexport class ClaimBriefDialog implements OnInit {\r\n public _claimDetails: ClaimSaveModel;\r\n public _claimLoadDetails: ClaimSaveModel;\r\n public _claimSaveData: ClaimSaveModel;\r\n\r\n public _claimData: ClaimDataModel;\r\n public _briefActualDetails: BriefActualDetailsModel;\r\n public _briefExplanations: BriefExplanationModel;\r\n private _productClassType: string;\r\n\r\n private _enableDownload: boolean;\r\n private _updateClaimsData: boolean;\r\n private _isUndelivered: boolean;\r\n private _isClaimAcceptedRejected: boolean;\r\n public _shipmentHasFile: boolean;\r\n\r\n public _issues: issueReasonInt[];\r\n public _reasons: issueReasonInt[];\r\n public _types: SelectItem[];\r\n\r\n\r\n public _claimDate: Date;\r\n\r\n public _issueReasons: IssueReasonModel;\r\n public _availableReasons: ReasonInterface[];\r\n\r\n public _selectedIssue: ClaimIssueReasonInterface;\r\n public _selectedReason: ReasonInterface;\r\n\r\n public _currentIssue: ClaimIssueReasonDto;\r\n public _currentReason: ClaimIssueReasonDto;\r\n\r\n\r\n selectedIssue: issueReasonInt;\r\n selectedReason: issueReasonInt;\r\n\r\n selectedSealIntact: boolean;\r\n selectedPalletStack: boolean;\r\n selectedProductOnPallet: boolean;\r\n selectedCrateGoodCondition: boolean;\r\n selectedPalletSlip: boolean;\r\n selectedLoadSheet: boolean;\r\n\r\n\r\n public _loading: boolean;\r\n public _messages: Message[];\r\n public _readOnlyVar: boolean;\r\n public _saving: boolean\r\n public _isOther: boolean;\r\n public _isNewLoad: boolean;\r\n public _type: boolean;\r\n\r\n public _isCompletedOrRejected: boolean;\r\n\r\n public _cloverClaim: boolean;\r\n public _transporterClaim: boolean;\r\n\r\n public _isSameUserGroup: boolean;\r\n public _isClaimLodger: boolean;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _claimService: ClaimService,\r\n private _config: DynamicDialogConfig,\r\n private _downloadController: DownloadController,\r\n private _dialogService: DialogService,\r\n private _fileService: FileService,\r\n private _ref: DynamicDialogRef\r\n ) {\r\n this._loading = true;\r\n this._saving = false;\r\n this._enableDownload = false;\r\n this._updateClaimsData = false;\r\n this._isOther = false;\r\n this._isNewLoad = false;\r\n this._type = false;\r\n this._isClaimAcceptedRejected = false;\r\n this._messages = [];\r\n\r\n this._readOnlyVar = _authService.hasPermission(\"ReadOnlyUser\");\r\n this._cloverClaim = _authService.hasPermission(\"CloverClaim\");\r\n this._transporterClaim = _authService.hasPermission(\"TransporterClaim\");\r\n\r\n this._isClaimLodger = false;\r\n this._isSameUserGroup = false;\r\n this._isCompletedOrRejected = false;\r\n\r\n this._issueReasons = new IssueReasonModel();\r\n //this._claimLoadDetails = new ClaimSaveModel();\r\n this._claimData = new ClaimDataModel();\r\n this._claimLoadDetails = new ClaimSaveModel();\r\n this._availableReasons = [];\r\n\r\n this._types = [\r\n { label: 'Yes', value: true },\r\n { label: 'No', value: false }\r\n ];\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this._config.data.readOnlyVar != null) {\r\n this._readOnlyVar = this._config.data.readOnlyVar;\r\n }\r\n\r\n if (this._config.data.cloverClaim != null) {\r\n this._cloverClaim = this._config.data.cloverClaim;\r\n }\r\n\r\n if (this._config.data.transporterClaim != null) {\r\n this._transporterClaim = this._config.data.transporterClaim;\r\n }\r\n\r\n if (this._config.data.isClaimLodger != null) {\r\n this._isClaimLodger = this._config.data.isClaimLodger;\r\n }\r\n if (this._config.data.isSameUserGroup != null) {\r\n this._isSameUserGroup = this._config.data.isSameUserGroup;\r\n }\r\n\r\n if (this._config.data.claimDetails) {\r\n // TODO: Never passed in calling method.\r\n //this._claimLoadDetails = this._config.data.claimDetails;\r\n this._claimDetails = this._config.data.claimDetails;\r\n } else {\r\n this._ref.close(\"Invalid-Claim Details\")\r\n }\r\n\r\n this.loadData();\r\n\r\n if (this._selectedIssue) {\r\n this._availableReasons = this._selectedIssue.reason.map(r => r);\r\n }\r\n\r\n this._loading = false;\r\n }\r\n\r\n public cancelSubmit(): void {\r\n this._ref.close(this._updateClaimsData);\r\n \r\n }\r\n\r\n public onSubmit(): void {\r\n\r\n this._claimSaveData = new ClaimSaveModel();\r\n\r\n this._claimSaveData.claimDate = this._claimDate;\r\n this._claimSaveData.issue = this._selectedIssue.issue;\r\n this._claimSaveData.reason = this._selectedReason.reason;\r\n this._claimSaveData.otherReason = this._claimData.otherReason;\r\n this._claimSaveData.description = this._claimData.description;\r\n this._claimSaveData.amount = this._claimData.amount\r\n this._claimSaveData.sealNumber = this._claimData.sealNumber;\r\n\r\n this._claimSaveData.isSealIntact = this.selectedSealIntact.valueOf();\r\n this._claimSaveData.isPalletCorrectlyPacked = this.selectedPalletStack.valueOf();\r\n this._claimSaveData.isProductInPallet = this.selectedProductOnPallet.valueOf();\r\n this._claimSaveData.isCrateInGoodCondition = this.selectedCrateGoodCondition.valueOf();\r\n this._claimSaveData.isPalletSlip = this.selectedPalletSlip.valueOf();\r\n this._claimSaveData.isLoadSheet = this.selectedLoadSheet.valueOf();\r\n\r\n if (this._cloverClaim) {\r\n this._claimSaveData.userGroup = \"Clover\";\r\n }\r\n\r\n if (this._transporterClaim) {\r\n this._claimSaveData.userGroup = \"Transporter\";\r\n }\r\n\r\n //this._claimSaveData.claimStatus = 'Claim Lodged';\r\n this._claimSaveData.claimUserId = 0;\r\n this._claimSaveData.transportRequestId = this._claimDetails.transportRequestId ? this._claimDetails.transportRequestId : this._claimLoadDetails.transportRequestId;\r\n\r\n this._claimService.saveClaimData(this._claimSaveData).subscribe(obs => {\r\n let dialogResponse = new DialogResponseModel(\"Claim\");\r\n dialogResponse.addResponse(obs);\r\n \r\n this._saving = true;\r\n this._updateClaimsData = true;\r\n this._messages.push({\r\n severity: \"success\",\r\n detail: \"Feedback saved - Upload document(s) to complete claim submission.\"\r\n });\r\n\r\n }, error => {\r\n this._messages.push({ severity: \"error\", detail: \"Failed to update Claims data.\" });\r\n this._saving = false;\r\n })\r\n\r\n }\r\n\r\n private loadData(): void {\r\n\r\n this.loadIssues();\r\n // Populate brief models\r\n //ToDo: Move to trip-claim-dialog\r\n if (this._config.data.type == null) {\r\n this.loadClaimSavedData(); \r\n } else {\r\n this._type = true;\r\n this._claimDetails.claimId = 0;\r\n }\r\n \r\n }\r\n\r\n //ToDo: Move to trip-claim-dialog\r\n public showDownload(): void {\r\n //let shipmentId = this._claimLoadDetails.transportRequestId;\r\n let shipmentId = this._claimDetails.transportRequestId ? this._claimDetails.transportRequestId : this._claimLoadDetails.transportRequestId;\r\n //let claimId = this._claimLoadDetails.claimId;\r\n let claimId = this._claimDetails.claimId ? this._claimLoadDetails.claimId : this._claimDetails.claimId ;\r\n\r\n const ref = this._dialogService.open(FileDownloadDialog, {\r\n data: {\r\n type: FileType.claim,\r\n fileId: shipmentId,\r\n claimId: claimId,\r\n shipment: false\r\n },\r\n header: \"File Download\",\r\n width: \"75%\"\r\n });\r\n }\r\n\r\n public showUpload(): void {\r\n let tripId = this._claimDetails.transportRequestId !== 0 ? this._claimDetails.transportRequestId : this._claimLoadDetails.transportRequestId;\r\n let isUndelivered = true;\r\n\r\n const ref = this._dialogService.open(FileUploadDialog, {\r\n closable: false,\r\n data: {\r\n type: FileType.claim,\r\n tripId: tripId,\r\n isUndelivered: isUndelivered\r\n },\r\n header: \"File Upload\",\r\n width: \"85%\"\r\n });\r\n\r\n ref.onClose.subscribe((obs: boolean) => {\r\n if (!obs) {\r\n return;\r\n }\r\n\r\n this._claimService.changeClaimStatus(tripId, 'Claim Progress', ' ', 0).subscribe(obs => {\r\n if (!obs) {\r\n return;\r\n } else if (obs.isError === false){\r\n this._enableDownload = true; \r\n }\r\n \r\n this._saving = false;\r\n this._updateClaimsData = true;\r\n if (this._config.data.type == null) {\r\n this._enableDownload = true; \r\n }\r\n \r\n this._messages.push({\r\n severity: \"success\",\r\n detail: \"Claim submission completed. You can download your uploaded file(s).\"\r\n });\r\n }, error => {\r\n this._messages.push({ severity: \"error\", detail: \"Failed to update claim status\" });\r\n });\r\n });\r\n }\r\n\r\n //ToDo: Move to trip-claim-dialog\r\n public acceptClaim(): void {\r\n this._claimService.changeClaimStatus(this._claimDetails.transportRequestId, 'Claim Accepted', ' ', this._claimDetails.claimId).subscribe(obs => {\r\n if (!obs) {\r\n return;\r\n }\r\n\r\n this._isClaimAcceptedRejected = true;\r\n this._updateClaimsData = true;\r\n this._enableDownload = true;\r\n this._messages.push({\r\n severity: \"success\",\r\n detail: \"Claim Accepted.\"\r\n });\r\n }, error => {\r\n this._messages.push({ severity: \"error\", detail: \"Failed to update claim status\" });\r\n });\r\n }\r\n\r\n //ToDo: Move to trip-claim-dialog\r\n public rejectClaim(): void {\r\n\r\n const ref = this._dialogService.open(RejectClaimDialog, {\r\n data: {\r\n trId: this._claimDetails.transportRequestId,\r\n readOnlyVar: false, \r\n claimId: this._claimDetails.claimId\r\n },\r\n header: \"Reject Claim For \" + this._claimDetails.trCode,\r\n width: \"45%\"\r\n });\r\n\r\n ref.onClose.subscribe(obs => {\r\n if (!obs) { \r\n return;\r\n }\r\n\r\n this._isClaimAcceptedRejected = true;\r\n this._updateClaimsData = true;\r\n this._enableDownload = true;\r\n this._messages.push({\r\n severity: \"success\",\r\n detail: \"Claim Rejected.\"\r\n });\r\n\r\n });\r\n }\r\n\r\n\r\n private loadIssues(): void {\r\n this._claimService.getClaimIssueReasons().subscribe(obs => {\r\n if (!obs) {\r\n return;\r\n }\r\n this._issueReasons = new IssueReasonModel(obs);\r\n }, error => {\r\n this._messages.push(\r\n { severity: \"error\", detail: \"Failed to load issue/reasons\" }\r\n );\r\n });\r\n }\r\n\r\n public onIssueChange(event: ClaimIssueReasonInterface): void {\r\n if (event) {\r\n this._availableReasons = event.reason.map(r => r);\r\n if (event.issue === 'Other') {\r\n this._isOther = true;\r\n } else {\r\n this._isOther = false;\r\n this._claimData.otherReason = '';\r\n }\r\n } else {\r\n this._availableReasons = [];\r\n }\r\n }\r\n\r\n //ToDo: Do Not Load here, load on trip-claim-dialog\r\n private loadClaimSavedData(): void {\r\n this._claimService.loadClaimSavedData(this._claimDetails.transportRequestId, this._claimDetails.claimId).subscribe(obs => {\r\n if (!obs) {\r\n return;\r\n }\r\n\r\n this._claimLoadDetails = obs[0];\r\n\r\n if (this._claimLoadDetails.transportRequestId == 0) {\r\n this._isNewLoad = true;\r\n } \r\n\r\n this._claimData.claimStatus = this._claimLoadDetails.claimDetailsStatus ? this._claimLoadDetails.claimDetailsStatus : 'No Status';\r\n this._claimData.otherReason = this._claimLoadDetails.otherReason;\r\n\r\n if (this._claimData.claimStatus === 'Claim Completed' || this._claimData.claimStatus === 'Claim Rejected') {\r\n this._isCompletedOrRejected = true;\r\n }\r\n\r\n if (this._claimLoadDetails) {\r\n let selected = this._issueReasons.claimIssue.find(ir => ir.issue === this._claimLoadDetails.issue);\r\n if (selected) {\r\n this._selectedIssue = selected;\r\n\r\n this._availableReasons = this._selectedIssue.reason.map(r => r);\r\n }\r\n }\r\n\r\n if (this._claimLoadDetails) {\r\n let selected = this._availableReasons.find(i => i.reason === this._claimLoadDetails.reason);\r\n\r\n if (selected) {\r\n this._selectedReason = selected;\r\n }\r\n }\r\n\r\n this._claimData.description = this._claimLoadDetails.description;\r\n\r\n this._claimData.sealNumber = this._claimLoadDetails.sealNumber;\r\n this._claimData.hasFile = this._claimLoadDetails.hasFile;\r\n\r\n if (obs[0].claimUserId != 0) {\r\n this._claimDate = this._claimLoadDetails.claimDate;\r\n this._saving = true;\r\n\r\n this._claimData.amount = this._claimLoadDetails.amount;\r\n this.selectedSealIntact = this._claimLoadDetails.isSealIntact;\r\n this.selectedPalletStack = this._claimLoadDetails.isPalletCorrectlyPacked;\r\n this.selectedProductOnPallet = this._claimLoadDetails.isProductInPallet;\r\n this.selectedCrateGoodCondition = this._claimLoadDetails.isCrateInGoodCondition;\r\n this.selectedPalletSlip = this._claimLoadDetails.isPalletSlip;\r\n this.selectedLoadSheet = this._claimLoadDetails.isLoadSheet;\r\n }\r\n }, error => {\r\n this._messages.push(\r\n { severity: \"error\", detail: \"Failed to load claim saved data\" }\r\n );\r\n });\r\n }\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from \"@angular/core\";\r\nimport {AuthService} from \"@slender/auth\";\r\nimport {AppStatus, AsyncTaskController} from \"@slender/foundation\";\r\nimport {MessageService} from \"primeng/api\";\r\nimport {DialogService, DynamicDialogConfig} from \"primeng/dynamicdialog\";\r\nimport {Observable, Subject} from \"rxjs\";\r\nimport {switchMap, takeUntil} from \"rxjs/operators\";\r\nimport {PermissionConstants} from \"../../constants/permission.constants\";\r\nimport {PrimaryFilterController} from \"../../controllers\";\r\nimport {ClaimModel} from \"../../models/claim.model\";\r\nimport {ColumnDefinitionModel} from \"../../models/table/column-definition.model\";\r\nimport {ColumnFilterModel} from \"../../models/table/column-filter.model\";\r\nimport {TableStateModel} from \"../../models/table/table-state.model\";\r\nimport {ClaimService} from \"../../services/claim.service\";\r\nimport {TableService} from \"../../services/table.service\";\r\n\r\n@Component({\r\n selector: \"claims-management\",\r\n templateUrl: \"claims-management.html\",\r\n styleUrls: [\"claims-management.css\"],\r\n providers: [DialogService, MessageService, DynamicDialogConfig]\r\n})\r\nexport class ClaimsManagementComponent implements OnInit, OnDestroy {\r\n private _destroy$: Subject;\r\n\r\n public _loading: boolean;\r\n public _readOnlyVar: boolean;\r\n public _cloverClaim: boolean;\r\n public _transporterClaim: boolean;\r\n\r\n // Main Table\r\n public _availableColumns: ColumnDefinitionModel[];\r\n public _dataKey: string;\r\n public _tableData: ClaimModel[];\r\n public _tableLoading: boolean;\r\n public _tableState: TableStateModel;\r\n\r\n private _taskId: string;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _asyncTaskController: AsyncTaskController,\r\n private _claimService: ClaimService,\r\n private _dialogService: DialogService,\r\n private _config: DynamicDialogConfig,\r\n private _filterController: PrimaryFilterController,\r\n private _messageService: MessageService,\r\n private _tableService: TableService\r\n ) {\r\n this._destroy$ = new Subject();\r\n\r\n this._loading = true;\r\n this._tableLoading = true;\r\n\r\n this._readOnlyVar = _authService.hasPermission(PermissionConstants.readOnlyUser);\r\n this._cloverClaim = _authService.hasPermission(PermissionConstants.cloverClaim);\r\n this._transporterClaim = _authService.hasPermission(PermissionConstants.transporterClaim);\r\n\r\n this._tableData = [];\r\n this.setTable();\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._asyncTaskController.updateStatus(new AppStatus(\"info\", \"Ready\"));\r\n\r\n this.loadTableStates();\r\n\r\n this._filterController.filterObservable.pipe(\r\n takeUntil(this._destroy$),\r\n switchMap(filter =>\r\n this.loadTableData(filter.dateRange[0], filter.dateRange[1], filter.textSearch)\r\n )\r\n ).subscribe();\r\n\r\n //this.loadData(this._config.data.selectedRow);\r\n }\r\n\r\n //public onDataUpdate() {\r\n // this.loadData(this._config.data.selectedRow);\r\n //}\r\n\r\n public onDataUpdate(row: string[]): void {\r\n\r\n let trCodes: string[];\r\n trCodes = row;\r\n if (!trCodes || trCodes.length === 0) {\r\n return;\r\n }\r\n\r\n this._taskId = this._asyncTaskController.startTask(\"Updating\");\r\n\r\n this._claimService.getUpdatedClaims(\r\n this._filterController.getFilters().dateRange[0],\r\n this._filterController.getFilters().dateRange[1],\r\n trCodes\r\n ).subscribe(obs => {\r\n obs.forEach(model => {\r\n let index = this._tableData.findIndex(clm => clm.transportRequestCode === model.transportRequestCode);\r\n if (index >= 0) {\r\n this._tableData[index] = model;\r\n\r\n this._tableData = this._tableData.map(data => data);\r\n }\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n });\r\n }, error => {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Updates\",\r\n detail: \"Failed to load updated claims.\"\r\n });\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n });\r\n } \r\n\r\n public ngOnDestroy(): void {\r\n if(this._taskId) {\r\n this._asyncTaskController.completeTask(this._taskId);\r\n }\r\n\r\n this._destroy$.next(true);\r\n this._destroy$.unsubscribe();\r\n }\r\n\r\n public saveState(state: TableStateModel): void {\r\n this._tableService.SaveTableStates(state).subscribe(obs => {\r\n if(!obs) {\r\n this._messageService.add({\r\n severity: \"warning\",\r\n summary: \"Table State\",\r\n detail: \"Failed to update table state.\"\r\n });\r\n }\r\n }, error => {\r\n this._messageService.add({severity: \"warning\", summary: \"Table State\", detail: \"Failed to update table state.\"});\r\n });\r\n }\r\n\r\n private loadTableData(fromDate: Date, toDate: Date, filter: string): Observable {\r\n this._tableLoading = true;\r\n\r\n this._taskId = this._asyncTaskController.startTask(\"Loading claims\");\r\n\r\n this._claimService.getAllClaims(fromDate, toDate).subscribe(obs => {\r\n if(this._tableLoading) {\r\n this._tableData = obs;\r\n }\r\n\r\n this._tableLoading = false;\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n }, error => {\r\n this._tableLoading = false;\r\n\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Load Data\",\r\n detail: \"Failed to load claims data.\"\r\n });\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n });\r\n\r\n return new Observable();\r\n }\r\n\r\n private loadTableStates(): void {\r\n this._tableService.GetTableStates(this._tableState.name).subscribe(obs => {\r\n if(!obs) {\r\n this._loading = false;\r\n return;\r\n }\r\n\r\n let state: TableStateModel = JSON.parse(obs);\r\n if(state && state.name === this._tableState.name) {\r\n this._tableState = state;\r\n }\r\n this._loading = false;\r\n }, error => {\r\n this._loading = false;\r\n this._messageService.add({\r\n severity: \"warning\",\r\n summary: \"Table State\",\r\n detail: \"Failed to restore Transport Request table state.\"\r\n });\r\n });\r\n }\r\n\r\n private setTable(): void {\r\n this._availableColumns = [\r\n {field: \"transportRequestCode\", header: \"Trip Code\", width: \"150px\", filter: true},\r\n { field: \"transportRequestStatus\", header: \"Trip Status\", width: \"150px\", filter: true },\r\n { field: \"claimStatus\", header: \"Claim\", width: \"150px\", filter: true },\r\n { field: \"clientName\", header: \"Client Name\", width: \"175px\", filter: true },\r\n //{ field: \"rejectReason\", header: \"Reject Reason\", width: \"175px\", filter: true },\r\n { field: \"tripClaim\", header: \"Claim ID\", width: \"150px\", filter: true },\r\n //{field: \"haulierCode\", header: \"Haulier Code\", width: \"150px\", filter: true},\r\n {field: \"haulierName\", header: \"Transporter Name\", width: \"175px\", filter: true},\r\n { field: \"origin\", header: \"Collection Location\", width: \"200px\", filter: true },\r\n //{ field: \"claimLodgedBy\", header: \"Claimer\", width: \"200px\", filter: true},\r\n {field: \"destination\", header: \"Delivery Location\", width: \"200px\", filter: true},\r\n {\r\n field: \"startDate\",\r\n header: \"Collection Date\",\r\n width: \"175px\",\r\n filter: true,\r\n dataType: \"date\",\r\n filterConstraint: new ColumnFilterModel(\"date\")\r\n }\r\n ];\r\n\r\n this._dataKey = \"transportRequestId\";\r\n this._tableState = {\r\n name: \"claims-management-state\"\r\n };\r\n }\r\n}\r\n","export default \".container {\\r\\n height: 100%;\\r\\n margin: auto;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2NsYWltcy1tYW5hZ2VtZW50L2NsYWltcy1tYW5hZ2VtZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQVk7RUFDWixZQUFZO0VBQ1osV0FBVztBQUNiIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2NsYWltcy1tYW5hZ2VtZW50L2NsYWltcy1tYW5hZ2VtZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBtYXJnaW46IGF1dG87XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuIl19 */\"","import {Component, Input, OnChanges, OnInit, SimpleChanges} from \"@angular/core\";\r\nimport {Message} from \"primeng/api\";\r\n\r\n@Component({\r\n selector: \"dialog-message\",\r\n templateUrl: \"dialog-message.html\",\r\n styleUrls: [\"dialog-message.css\"]\r\n})\r\nexport class DialogMessageComponent implements OnInit, OnChanges {\r\n @Input() messages: Message[];\r\n\r\n public _messages: Message[];\r\n\r\n constructor() {\r\n this._messages = [];\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.messages) {\r\n this._messages = this.messages;\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.messages && changes.messages.currentValue) {\r\n this._messages = changes.messages.currentValue;\r\n }\r\n }\r\n\r\n public getColor(severity: string): string {\r\n let color: string;\r\n\r\n switch(severity) {\r\n case \"success\":\r\n color = \"#2fb457\";\r\n break;\r\n\r\n case \"error\":\r\n color = \"#ee3124\";\r\n break;\r\n\r\n case \"warn\":\r\n color = \"#fcb131\";\r\n break;\r\n\r\n case \"info\":\r\n color = \"#00bce4\";\r\n break;\r\n\r\n default:\r\n color = \"#fff\";\r\n }\r\n\r\n return color;\r\n }\r\n\r\n public removeMessage(message: Message): void {\r\n let idx = this._messages.findIndex(m => m.summary === message.summary);\r\n if(idx >= 0) {\r\n this._messages.splice(idx, 1);\r\n }\r\n }\r\n}\r\n","export default \".container {\\r\\n border: 1px solid #333;\\r\\n border-radius: 2px;\\r\\n padding: 5px;\\r\\n margin: 5px;\\r\\n}\\r\\n\\r\\n.clear {\\r\\n float: left;\\r\\n font-size: 0.5em;\\r\\n margin-right: 5px;\\r\\n}\\r\\n\\r\\n.message {\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2RpYWxvZy1tZXNzYWdlL2RpYWxvZy1tZXNzYWdlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25CIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2RpYWxvZy1tZXNzYWdlL2RpYWxvZy1tZXNzYWdlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7XHJcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gIHBhZGRpbmc6IDVweDtcclxuICBtYXJnaW46IDVweDtcclxufVxyXG5cclxuLmNsZWFyIHtcclxuICBmbG9hdDogbGVmdDtcclxuICBmb250LXNpemU6IDAuNWVtO1xyXG4gIG1hcmdpbi1yaWdodDogNXB4O1xyXG59XHJcblxyXG4ubWVzc2FnZSB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuIl19 */\"","export default \".file-container {\\r\\n margin: 1%;\\r\\n}\\r\\n\\r\\n.filter-container {\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.label {\\r\\n font-weight: bold;\\r\\n padding: 1em;\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.control-group {\\r\\n margin: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n.control-group button {\\r\\n margin: 1%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2ZpbGUtZG93bmxvYWQvZmlsZS1kb3dubG9hZC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxVQUFVO0FBQ1o7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsWUFBWTtFQUNaLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxVQUFVO0FBQ1oiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvZmlsZS1kb3dubG9hZC9maWxlLWRvd25sb2FkLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5maWxlLWNvbnRhaW5lciB7XHJcbiAgbWFyZ2luOiAxJTtcclxufVxyXG5cclxuLmZpbHRlci1jb250YWluZXIge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbi5sYWJlbCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogMWVtO1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4uY29udHJvbC1ncm91cCB7XHJcbiAgbWFyZ2luOiAwLjUlO1xyXG4gIHBhZGRpbmc6IDAuNSU7XHJcbn1cclxuXHJcbi5jb250cm9sLWdyb3VwIGJ1dHRvbiB7XHJcbiAgbWFyZ2luOiAxJTtcclxufVxyXG4iXX0= */\"","import { HttpEventType } from \"@angular/common/http\";\r\nimport { Component, OnInit } from \"@angular/core\";\r\nimport { Message } from \"primeng/api\";\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { DownloadController } from \"../../controllers\";\r\nimport { FileLocationModel } from \"../../models/file-data/file-location.model\";\r\nimport { FileType, FileTypeModel } from \"../../models/file-data/file-type.model\";\r\nimport { FileService } from \"../../services/file.service\";\r\n\r\n@Component({\r\n templateUrl: \"file-download.html\",\r\n styleUrls: [\"file-download.css\"],\r\n providers: [DialogService]\r\n})\r\nexport class FileDownloadDialog implements OnInit {\r\n public _loading: boolean;\r\n public _messages: Message[];\r\n\r\n public _fileTypes: FileTypeModel[];\r\n public _selectedType: FileTypeModel;\r\n\r\n private _availableFiles: FileLocationModel[];\r\n public _displayedFiles: FileLocationModel[];\r\n public _selectedFiles: FileLocationModel[];\r\n\r\n constructor(\r\n private _config: DynamicDialogConfig,\r\n private _fileService: FileService,\r\n private _downloadController: DownloadController,\r\n private _ref: DynamicDialogRef\r\n ) {\r\n this._loading = true;\r\n this._messages = [];\r\n\r\n this._fileTypes = [];\r\n this._fileTypes.push({\r\n name: \"All\",\r\n code: \"all\"\r\n });\r\n\r\n this._availableFiles = [];\r\n this._displayedFiles = [];\r\n this._selectedFiles = [];\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(!this._config.data.type) {\r\n this._messages.push({severity: \"error\", detail: \"No type supplied.\"});\r\n this._ref.close();\r\n }\r\n\r\n if(this._config.data.type === FileType.brief) {\r\n FileTypeModel.getBriefTypes().forEach(model => {\r\n this._fileTypes.push(model);\r\n });\r\n } else if(this._config.data.type === FileType.claim) {\r\n FileTypeModel.getClaimTypes().forEach(model => {\r\n this._fileTypes.push(model);\r\n });\r\n }\r\n\r\n if (this._config.data.type === FileType.claim) {\r\n if (this._config.data.claimId) {\r\n this.loadFiles(this._config.data.claimId, 'exist');\r\n } else if (this._config.data.claimId === 0) {\r\n this.loadFiles(this._config.data.fileId, 'new');\r\n } else { \r\n this._ref.close();\r\n } \r\n } else {\r\n if (this._config.data.fileId) {\r\n this.loadFiles(this._config.data.fileId, 'exist');\r\n } else {\r\n this._ref.close();\r\n }\r\n }\r\n }\r\n\r\n public closeDialog(): void {\r\n this._ref.close();\r\n }\r\n\r\n public download(): void {\r\n this.downloadFiles(this._selectedFiles);\r\n }\r\n\r\n public downloadAll(): void {\r\n this.downloadFiles(this._displayedFiles);\r\n }\r\n\r\n public fileSelection(file: FileLocationModel, event: boolean): void {\r\n let idx = this._selectedFiles.findIndex(m => m.locationId === file.locationId);\r\n\r\n if(event && idx < 0) {\r\n this._selectedFiles.push(file);\r\n } else if(!event && idx >= 0) {\r\n this._selectedFiles.splice(idx, 1);\r\n }\r\n }\r\n\r\n public typeChange(event: FileTypeModel): void {\r\n if(!event) {\r\n this._selectedType = this._fileTypes[0];\r\n } else {\r\n this._selectedType = event;\r\n }\r\n\r\n if(!event || event.code === \"all\") {\r\n this._displayedFiles = this._availableFiles;\r\n return;\r\n }\r\n\r\n this._displayedFiles = [];\r\n this._availableFiles.forEach(model => {\r\n if(model.documentType === event.code) {\r\n this._displayedFiles.push(model);\r\n }\r\n });\r\n }\r\n\r\n private downloadFiles(files: FileLocationModel[]): void {\r\n files.forEach(file => {\r\n this._fileService.downloadFile(file.locationId).subscribe(obs => {\r\n if(obs.type === HttpEventType.Response) {\r\n if(!this._downloadController.downloadFile(obs)) {\r\n this._messages.push({severity: \"error\", detail: `Failed to download: ${file.fileName}.`});\r\n return;\r\n }\r\n }\r\n }, error => {\r\n this._messages.push({severity: \"error\", detail: `Failed to download: ${file.fileName}.`});\r\n })\r\n });\r\n }\r\n\r\n private loadFiles(fileId: number, downType: string): void {\r\n let shipment = !!this._config.data.shipment;\r\n\r\n this._fileService.getFiles(fileId, downType, shipment).subscribe(obs => {\r\n if(!obs) {\r\n this._messages.push({severity: \"error\", detail: \"No files found.\"});\r\n\r\n this._loading = false;\r\n }\r\n\r\n this._availableFiles = obs;\r\n this._displayedFiles = this._availableFiles;\r\n\r\n this._loading = false;\r\n }, error => {\r\n this._messages.push({severity: \"error\", detail: \"No files found.\"});\r\n\r\n this._loading = false;\r\n });\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from \"@angular/core\";\r\nimport {FileLocationModel} from \"../../models/file-data/file-location.model\";\r\nimport {FileTypeModel} from \"../../models/file-data/file-type.model\";\r\n\r\n@Component({\r\n selector: \"file-item\",\r\n templateUrl: \"file-item.html\",\r\n styleUrls: [\"file-item.css\"]\r\n})\r\nexport class FileItemComponent implements OnInit {\r\n @Input() file: FileLocationModel;\r\n @Output() selected: EventEmitter;\r\n\r\n public _checked: boolean;\r\n\r\n constructor() {\r\n this.selected = new EventEmitter();\r\n\r\n this._checked = false;\r\n }\r\n\r\n public ngOnInit(): void {\r\n }\r\n\r\n public fileSelected(event: any): void {\r\n this.selected.emit(event);\r\n }\r\n\r\n public getTypeName(code: string): string {\r\n return FileTypeModel.getName(code);\r\n }\r\n}\r\n","export default \".container {\\r\\n margin: 1%;\\r\\n}\\r\\n\\r\\n.item-container {\\r\\n border-right: 1px solid #333;\\r\\n border-collapse: collapse;\\r\\n}\\r\\n\\r\\n.checkbox {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2ZpbGUtaXRlbS9maWxlLWl0ZW0uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsNEJBQTRCO0VBQzVCLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy9maWxlLWl0ZW0vZmlsZS1pdGVtLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xyXG4gIG1hcmdpbjogMSU7XHJcbn1cclxuXHJcbi5pdGVtLWNvbnRhaW5lciB7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzMzMztcclxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG59XHJcblxyXG4uY2hlY2tib3gge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4iXX0= */\"","export default \".selection-container {\\r\\n margin: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n.label {\\r\\n font-weight: bold;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.control-group {\\r\\n margin: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n.control-group button {\\r\\n margin: 1%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQVk7RUFDWixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7QUFDZjs7QUFFQTtFQUNFLFVBQVU7QUFDWiIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2VsZWN0aW9uLWNvbnRhaW5lciB7XHJcbiAgbWFyZ2luOiAwLjUlO1xyXG4gIHBhZGRpbmc6IDAuNSU7XHJcbn1cclxuXHJcbi5sYWJlbCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1ncm91cCB7XHJcbiAgbWFyZ2luOiAwLjUlO1xyXG4gIHBhZGRpbmc6IDAuNSU7XHJcbn1cclxuXHJcbi5jb250cm9sLWdyb3VwIGJ1dHRvbiB7XHJcbiAgbWFyZ2luOiAxJTtcclxufVxyXG4iXX0= */\"","import {Component, OnInit} from \"@angular/core\";\r\nimport {Message} from \"primeng/api\";\r\nimport {DynamicDialogConfig, DynamicDialogRef} from \"primeng/dynamicdialog\";\r\nimport {FileType, FileTypeModel} from \"../../models/file-data/file-type.model\";\r\nimport {FileService} from \"../../services/file.service\";\r\n\r\n@Component({\r\n templateUrl: \"file-upload.html\",\r\n styleUrls: [\"file-upload.css\"]\r\n})\r\nexport class FileUploadDialog implements OnInit {\r\n private _isUndelivered: boolean;\r\n private _tripId: boolean;\r\n private _stringIds: string;\r\n\r\n public _fileTypes: FileTypeModel[];\r\n public _selectedFileType: FileTypeModel;\r\n\r\n public _displayUpload: boolean;\r\n public _uploadedFiles: any[];\r\n\r\n public _messages: Message[];\r\n\r\n private readonly _baseUrl: string;\r\n public _url: string;\r\n\r\n private _uploaded: boolean;\r\n\r\n constructor(\r\n private _config: DynamicDialogConfig,\r\n private _fileService: FileService,\r\n private _ref: DynamicDialogRef\r\n ) {\r\n this._messages = [];\r\n\r\n this._displayUpload = false;\r\n this._uploadedFiles = [];\r\n\r\n this._baseUrl = \"/api/file\";\r\n this._url = this._baseUrl;\r\n\r\n this._uploaded = false;\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(!this._config.data.type) {\r\n this._messages.push({severity: \"error\", detail: \"No type supplied.\"});\r\n this._ref.close();\r\n }\r\n\r\n if(this._config.data.type === FileType.brief) {\r\n this._fileTypes = FileTypeModel.getBriefTypes();\r\n } else if(this._config.data.type === FileType.claim) {\r\n this._fileTypes = FileTypeModel.getClaimTypes();\r\n }\r\n\r\n this._tripId = false;\r\n\r\n if (this._config.data.shipmentIds && this._config.data.type === FileType.brief) {\r\n this._stringIds = this._config.data.shipmentIds;\r\n }else if (this._config.data.tripId && this._config.data.type === FileType.claim) {\r\n this._stringIds = this._config.data.tripId;\r\n this._tripId = true;\r\n this\r\n }else {\r\n this._messages.push({severity: \"error\", detail: \"Invalid shipment.\"});\r\n this._ref.close();\r\n }\r\n\r\n this._isUndelivered = false;\r\n if(this._config.data.isUndelivered) {\r\n this._isUndelivered = this._config.data.isUndelivered;\r\n }\r\n }\r\n\r\n public closeDialog(): void {\r\n this._ref.close(this._uploaded);\r\n }\r\n\r\n public onFileTypeChange(event: FileTypeModel): void {\r\n if(!event) {\r\n this._displayUpload = false;\r\n return;\r\n }\r\n\r\n this._selectedFileType = event;\r\n this._displayUpload = true;\r\n\r\n this._url = encodeURI(`${this._baseUrl}/${this._stringIds}/${this._selectedFileType.code}?isUndelivered=${this._isUndelivered}&tripId=${this._tripId}`);\r\n }\r\n\r\n public onError(event: File[]): void {\r\n event.forEach(model => {\r\n this._messages.push({severity: \"error\", detail: `Failed to upload: ${model.name}.`});\r\n });\r\n }\r\n\r\n public onUpload(event: File[]): void {\r\n event.forEach(model => {\r\n this._messages.push({severity: \"success\", detail: `${model.name} successfully uploaded.`})\r\n });\r\n\r\n this._uploaded = true;\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from \"@angular/core\";\r\nimport {ContactModel} from \"../../../models/home/contact.model\";\r\n\r\n@Component({\r\n selector: \"contact-details\",\r\n templateUrl: \"contact-details.html\",\r\n styleUrls: [\"contact-details.css\"]\r\n})\r\nexport class ContactDetailsComponent implements OnInit, OnChanges {\r\n @Input() contact: ContactModel;\r\n @Input() edit: boolean;\r\n @Input() superUser: boolean;\r\n\r\n @Output() delete: EventEmitter;\r\n @Output() update: EventEmitter;\r\n\r\n public _contact: ContactModel;\r\n public _message: string;\r\n\r\n constructor() {\r\n this._contact = new ContactModel();\r\n this._message = \"\";\r\n\r\n this.delete = new EventEmitter();\r\n this.update = new EventEmitter();\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.contact) {\r\n this._contact = ContactModel.Copy(this.contact);\r\n\r\n if(!this._contact.validate() && this.superUser) {\r\n this.edit = true;\r\n }\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.contact && changes.contact.currentValue) {\r\n this._contact = ContactModel.Copy(changes.contact.currentValue);\r\n\r\n if(!this._contact.validate() && this.superUser) {\r\n this.edit = true;\r\n }\r\n }\r\n }\r\n\r\n public deleteContact(): void {\r\n this.delete.emit(this._contact.id);\r\n }\r\n\r\n public updateContact(property: string, event: string): void {\r\n switch(property) {\r\n case 'header':\r\n this._contact.header = event;\r\n break;\r\n\r\n case 'name':\r\n this._contact.name = event;\r\n break;\r\n\r\n case 'email':\r\n this._contact.email = event;\r\n break;\r\n\r\n case 'cell':\r\n this._contact.cell = event;\r\n break;\r\n\r\n case 'office':\r\n this._contact.office = event;\r\n break;\r\n\r\n default:\r\n }\r\n }\r\n\r\n public saveContact(): void {\r\n if(!this._contact.validate()) {\r\n this._message = \"Invalid contact details: Name, Email, and Office number required\";\r\n return;\r\n } else {\r\n this._message = \"\";\r\n }\r\n\r\n this.update.emit(this._contact);\r\n }\r\n}\r\n","export default \".container {\\r\\n margin-bottom: 1%;\\r\\n}\\r\\n\\r\\n.property {\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.card-head {\\r\\n margin-bottom: 4%;\\r\\n}\\r\\n\\r\\n.controls-container {\\r\\n align-content: flex-end;\\r\\n margin-bottom: 1%;\\r\\n margin-top: 1%;\\r\\n}\\r\\n\\r\\n.controls-container button {\\r\\n margin-left: 1%;\\r\\n margin-right: 1%;\\r\\n}\\r\\n\\r\\n.validation {\\r\\n color: #e30613;\\r\\n font-weight: bold;\\r\\n margin: 0.5em;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2hvbWUvY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIsaUJBQWlCO0VBQ2pCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixhQUFhO0FBQ2YiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvaG9tZS9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xyXG4gIG1hcmdpbi1ib3R0b206IDElO1xyXG59XHJcblxyXG4ucHJvcGVydHkge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uY2FyZC1oZWFkIHtcclxuICBtYXJnaW4tYm90dG9tOiA0JTtcclxufVxyXG5cclxuLmNvbnRyb2xzLWNvbnRhaW5lciB7XHJcbiAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMSU7XHJcbiAgbWFyZ2luLXRvcDogMSU7XHJcbn1cclxuXHJcbi5jb250cm9scy1jb250YWluZXIgYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMSU7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxJTtcclxufVxyXG5cclxuLnZhbGlkYXRpb24ge1xyXG4gIGNvbG9yOiAjZTMwNjEzO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIG1hcmdpbjogMC41ZW07XHJcbn1cclxuIl19 */\"","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from \"@angular/core\";\r\nimport {ContactModel} from \"../../../models/home/contact.model\";\r\n\r\n@Component({\r\n selector: \"contact-group\",\r\n templateUrl: \"contact-group.html\",\r\n styleUrls: [\"contact-group.css\"]\r\n})\r\nexport class ContactGroupComponent implements OnInit, OnChanges {\r\n @Input() contacts: ContactModel[];\r\n @Input() superUser: boolean;\r\n @Output() update: EventEmitter;\r\n\r\n public _contacts: ContactModel[];\r\n public _edit: boolean;\r\n\r\n constructor() {\r\n this._contacts = [];\r\n this._edit = false;\r\n\r\n this.update = new EventEmitter();\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.contacts) {\r\n this._contacts = [];\r\n\r\n this.contacts.forEach(contact => {\r\n this._contacts.push(ContactModel.Copy(contact));\r\n });\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.contacts && changes.contacts.currentValue) {\r\n this._contacts = [];\r\n\r\n let contacts: ContactModel[] = changes.contacts.currentValue;\r\n contacts.forEach(contact => {\r\n this._contacts.push(ContactModel.Copy(contact));\r\n });\r\n }\r\n }\r\n\r\n public deleteContact(contactId: number): void {\r\n let idx = this._contacts.findIndex(c => c.id === contactId);\r\n this._contacts.splice(idx, 1);\r\n }\r\n\r\n public updateContact(contact: ContactModel): void {\r\n let idx = this._contacts.findIndex(c => c.id === contact.id);\r\n this._contacts[idx] = contact;\r\n }\r\n\r\n public editData(): void {\r\n this._edit = true;\r\n }\r\n\r\n public addData(): void {\r\n let id = 0;\r\n if(this._contacts.length > 0) {\r\n id = this._contacts[this._contacts.length - 1].id + 1;\r\n }\r\n\r\n let contact = new ContactModel();\r\n contact.id = id;\r\n\r\n this._contacts.push(contact);\r\n }\r\n\r\n public saveData(): void {\r\n let contacts: ContactModel[] = [];\r\n\r\n this._contacts.forEach(contact => {\r\n let model = ContactModel.Copy(contact);\r\n\r\n if(model.validate()) {\r\n contacts.push(model);\r\n }\r\n });\r\n\r\n this.update.emit(contacts);\r\n this._edit = false;\r\n }\r\n\r\n public cancelEdit(): void {\r\n this._edit = false;\r\n\r\n if(!this.contacts) {\r\n return;\r\n }\r\n\r\n this._contacts = [];\r\n this.contacts.forEach(contact => {\r\n this._contacts.push(ContactModel.Copy(contact));\r\n });\r\n }\r\n}\r\n","export default \".controls-container {\\r\\n align-content: flex-end;\\r\\n margin-bottom: 1%;\\r\\n margin-top: 1%;\\r\\n}\\r\\n\\r\\n.controls-container button {\\r\\n margin-left: 1%;\\r\\n margin-right: 1%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2hvbWUvY29udGFjdC1ncm91cC9jb250YWN0LWdyb3VwLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHVCQUF1QjtFQUN2QixpQkFBaUI7RUFDakIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEIiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvaG9tZS9jb250YWN0LWdyb3VwL2NvbnRhY3QtZ3JvdXAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRyb2xzLWNvbnRhaW5lciB7XHJcbiAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMSU7XHJcbiAgbWFyZ2luLXRvcDogMSU7XHJcbn1cclxuXHJcbi5jb250cm9scy1jb250YWluZXIgYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMSU7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxJTtcclxufVxyXG4iXX0= */\"","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from \"@angular/core\";\r\nimport {ContactModel} from \"../../../models/home/contact.model\";\r\nimport {DriverDetailModel} from \"../../../models/home/driver-details.model\";\r\nimport {DriverRouteModel} from \"../../../models/home/driver-route.model\";\r\n\r\n@Component({\r\n selector: \"driver-detail\",\r\n templateUrl: \"driver-detail.html\",\r\n styleUrls: [\"driver-detail.css\"]\r\n})\r\nexport class DriverDetailComponent implements OnInit, OnChanges {\r\n @Input() drivers: DriverDetailModel[];\r\n @Input() superUser: boolean;\r\n @Output() update: EventEmitter;\r\n\r\n public _drivers: DriverDetailModel[];\r\n public _edit: boolean;\r\n\r\n constructor() {\r\n this._drivers = [];\r\n this._edit = false;\r\n\r\n this.update = new EventEmitter();\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.drivers) {\r\n this._drivers = [];\r\n\r\n this.drivers.forEach(driver => {\r\n this._drivers.push(DriverDetailModel.Copy(driver));\r\n });\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.drivers && changes.drivers.currentValue) {\r\n this._drivers = [];\r\n\r\n let drivers: DriverDetailModel[] = changes.drivers.currentValue;\r\n drivers.forEach(driver => {\r\n this._drivers.push(DriverDetailModel.Copy(driver));\r\n });\r\n }\r\n }\r\n\r\n public addDriver(): void {\r\n let id = 0;\r\n if(this._drivers.length > 0) {\r\n id = this._drivers[this._drivers.length - 1].contact.id + 1;\r\n }\r\n\r\n let driver = new DriverDetailModel();\r\n driver.contact.id = id;\r\n\r\n this._drivers.push(driver);\r\n }\r\n\r\n public deleteDriver(contactId: number): void {\r\n let idx = this._drivers.findIndex(d => d.contact.id === contactId);\r\n this._drivers.splice(idx, 1);\r\n }\r\n\r\n public updateDriver(contact: ContactModel): void {\r\n let idx = this._drivers.findIndex(d => d.contact.id === contact.id);\r\n this._drivers[idx].contact = contact;\r\n }\r\n\r\n public updateRoutes(driverId: number, routes: DriverRouteModel[]): void {\r\n let driverIdx = this._drivers.findIndex(d => d.contact.id === driverId);\r\n if(driverIdx === -1) {\r\n return;\r\n }\r\n\r\n this._drivers[driverIdx].routes = [];\r\n\r\n routes.forEach(route => {\r\n this._drivers[driverIdx].routes.push(DriverRouteModel.Copy(route));\r\n });\r\n }\r\n\r\n public editData(): void {\r\n this._edit = true;\r\n }\r\n\r\n public saveData(): void {\r\n let drivers: DriverDetailModel[] = [];\r\n\r\n this._drivers.forEach(driver => {\r\n let contact = ContactModel.Copy(driver.contact);\r\n if(contact.validate()) {\r\n let routes: DriverRouteModel[] = [];\r\n driver.routes.forEach(route => {\r\n let model = DriverRouteModel.Copy(route);\r\n if(model.validate()) {\r\n routes.push(model);\r\n }\r\n });\r\n\r\n let detail = new DriverDetailModel();\r\n detail.contact = contact;\r\n detail.routes = routes;\r\n\r\n drivers.push(detail);\r\n }\r\n });\r\n\r\n this.update.emit(drivers);\r\n this._edit = false;\r\n }\r\n\r\n public cancelEdit(): void {\r\n this._edit = false;\r\n\r\n if(!this.drivers) {\r\n return;\r\n }\r\n\r\n this._drivers = [];\r\n this.drivers.forEach(driver => {\r\n this._drivers.push(DriverDetailModel.Copy(driver));\r\n });\r\n }\r\n}\r\n","export default \".driver-container {\\r\\n margin-bottom: 2%;\\r\\n margin-top: 2%;\\r\\n}\\r\\n\\r\\n.controls-container {\\r\\n align-content: flex-end;\\r\\n margin-bottom: 1%;\\r\\n margin-top: 1%;\\r\\n}\\r\\n\\r\\n.controls-container button {\\r\\n margin-left: 1%;\\r\\n margin-right: 1%;\\r\\n}\\r\\n\\r\\n.table-container {\\r\\n display: -webkit-inline-box;\\r\\n display: inline-flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n margin-bottom: 1%;\\r\\n overflow: scroll;\\r\\n}\\r\\n\\r\\n.table-container td {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2hvbWUvZHJpdmVyLWRldGFpbC9kcml2ZXItZGV0YWlsLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLDJCQUFvQjtFQUFwQixvQkFBb0I7RUFDcEIsNEJBQXNCO0VBQXRCLDZCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy9ob21lL2RyaXZlci1kZXRhaWwvZHJpdmVyLWRldGFpbC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZHJpdmVyLWNvbnRhaW5lciB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMiU7XHJcbiAgbWFyZ2luLXRvcDogMiU7XHJcbn1cclxuXHJcbi5jb250cm9scy1jb250YWluZXIge1xyXG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIG1hcmdpbi1ib3R0b206IDElO1xyXG4gIG1hcmdpbi10b3A6IDElO1xyXG59XHJcblxyXG4uY29udHJvbHMtY29udGFpbmVyIGJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDElO1xyXG4gIG1hcmdpbi1yaWdodDogMSU7XHJcbn1cclxuXHJcbi50YWJsZS1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgbWFyZ2luLWJvdHRvbTogMSU7XHJcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcclxufVxyXG5cclxuLnRhYmxlLWNvbnRhaW5lciB0ZCB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbiJdfQ== */\"","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from \"@angular/core\";\r\nimport {DriverRouteModel} from \"../../../models/home/driver-route.model\";\r\n\r\n@Component({\r\n selector: \"driver-routes\",\r\n templateUrl: \"driver-routes.html\",\r\n styleUrls: [\"driver-routes.css\"]\r\n})\r\nexport class DriverRoutesComponent implements OnInit, OnChanges {\r\n @Input() routes: DriverRouteModel[];\r\n @Input() edit: boolean;\r\n @Input() superUser: boolean;\r\n\r\n @Output() update: EventEmitter;\r\n\r\n public _message: string;\r\n public _routes: DriverRouteModel[];\r\n\r\n constructor() {\r\n this._routes = [];\r\n\r\n this._message = \"\";\r\n this.update = new EventEmitter();\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.routes) {\r\n this._routes = [];\r\n\r\n this.routes.forEach(route => {\r\n this._routes.push(DriverRouteModel.Copy(route));\r\n });\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.routes && changes.routes.currentValue) {\r\n this._routes = [];\r\n\r\n let routes: DriverRouteModel[] = changes.routes.currentValue;\r\n routes.forEach(route => {\r\n this._routes.push(DriverRouteModel.Copy(route));\r\n });\r\n }\r\n }\r\n\r\n public addRoute(): void {\r\n let id = 0;\r\n if(this._routes.length > 0) {\r\n id = this._routes[this._routes.length - 1].id + 1;\r\n }\r\n\r\n let route = new DriverRouteModel();\r\n route.id = id;\r\n\r\n this._routes.push(route);\r\n }\r\n\r\n public deleteRoute(routeId: number): void {\r\n let idx = this._routes.findIndex(r => r.id === routeId);\r\n if(idx === -1) {\r\n return;\r\n }\r\n\r\n this._routes.splice(idx, 1);\r\n this.saveRoutes();\r\n }\r\n\r\n public updateRoute(routeId: number, property: string, event: string): void {\r\n let idx = this._routes.findIndex(r => r.id === routeId);\r\n if(idx === -1) {\r\n return;\r\n }\r\n\r\n switch(property) {\r\n case 'origin':\r\n this._routes[idx].origin = event;\r\n break;\r\n\r\n case 'direction':\r\n this._routes[idx].direction = event;\r\n break;\r\n\r\n case 'destination':\r\n this._routes[idx].destination = event;\r\n break;\r\n\r\n case 'vehicleType':\r\n this._routes[idx].vehicleType = event;\r\n break;\r\n\r\n default:\r\n }\r\n }\r\n\r\n public saveRoutes(): void {\r\n for(let i = 0; i < this._routes.length; i++) {\r\n if(!this._routes[i].validate()) {\r\n this._message = \"Invalid route: Origin, Direction, Destination, and Vehicle Type required\";\r\n return;\r\n } else {\r\n this._message = \"\";\r\n }\r\n }\r\n\r\n this.update.emit(this._routes);\r\n }\r\n}\r\n","export default \".table-container {\\r\\n display: -webkit-inline-box;\\r\\n display: inline-flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n margin-bottom: 1%;\\r\\n}\\r\\n\\r\\n.table-container td {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.controls-container {\\r\\n align-content: flex-end;\\r\\n margin-bottom: 1%;\\r\\n margin-top: 1%;\\r\\n}\\r\\n\\r\\n.controls-container button {\\r\\n margin-left: 1%;\\r\\n margin-right: 1%;\\r\\n}\\r\\n\\r\\n.validation {\\r\\n color: #e30613;\\r\\n font-weight: bold;\\r\\n margin: 0.5em;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2hvbWUvZHJpdmVyLXJvdXRlcy9kcml2ZXItcm91dGVzLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDJCQUFvQjtFQUFwQixvQkFBb0I7RUFDcEIsNEJBQXNCO0VBQXRCLDZCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsYUFBYTtBQUNmIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2hvbWUvZHJpdmVyLXJvdXRlcy9kcml2ZXItcm91dGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50YWJsZS1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgbWFyZ2luLWJvdHRvbTogMSU7XHJcbn1cclxuXHJcbi50YWJsZS1jb250YWluZXIgdGQge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmNvbnRyb2xzLWNvbnRhaW5lciB7XHJcbiAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMSU7XHJcbiAgbWFyZ2luLXRvcDogMSU7XHJcbn1cclxuXHJcbi5jb250cm9scy1jb250YWluZXIgYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMSU7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxJTtcclxufVxyXG5cclxuLnZhbGlkYXRpb24ge1xyXG4gIGNvbG9yOiAjZTMwNjEzO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIG1hcmdpbjogMC41ZW07XHJcbn1cclxuIl19 */\"","import {Component, OnInit} from \"@angular/core\";\r\nimport {AuthService} from \"@slender/auth\";\r\nimport {MessageService} from \"primeng/api\";\r\nimport {PermissionConstants} from \"../../constants/permission.constants\";\r\nimport {ContactModel} from \"../../models/home/contact.model\";\r\nimport {DriverDetailModel} from \"../../models/home/driver-details.model\";\r\nimport {ShiftsModel} from \"../../models/home/shifts.model\";\r\nimport {HomeService} from \"../../services/home.service\";\r\n\r\nclass HomeData {\r\n data: string;\r\n}\r\n\r\n@Component({\r\n selector: \"home-page\",\r\n templateUrl: \"home.html\",\r\n styleUrls: [\"home.css\"],\r\n providers: [MessageService]\r\n})\r\nexport class HomeComponent implements OnInit {\r\n public _isSuperUser: boolean;\r\n\r\n private _dataResult: any;\r\n public _drivers: DriverDetailModel[];\r\n public _expediters: ContactModel[];\r\n public _other: ContactModel[];\r\n public _shifts: ShiftsModel;\r\n public _notes: string;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _homeService: HomeService,\r\n private _messageService: MessageService\r\n ) {\r\n this._isSuperUser = false;\r\n\r\n PermissionConstants.superUser.forEach(permission => {\r\n this._isSuperUser = this._isSuperUser || this._authService.hasPermission(permission);\r\n });\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.loadHomeData();\r\n }\r\n\r\n public updateContacts(type: string, contacts: ContactModel[]): void {\r\n switch(type) {\r\n case \"expediter\":\r\n this._expediters = [];\r\n contacts.forEach(contact => {\r\n this._expediters.push(ContactModel.Copy(contact));\r\n });\r\n break;\r\n\r\n case \"other\":\r\n this._other = [];\r\n contacts.forEach(contact => {\r\n this._other.push(ContactModel.Copy(contact));\r\n });\r\n break;\r\n\r\n default:\r\n this._other = [];\r\n contacts.forEach(contact => {\r\n this._other.push(ContactModel.Copy(contact));\r\n });\r\n }\r\n\r\n this.saveHomeData();\r\n }\r\n\r\n public updateDrivers(drivers: DriverDetailModel[]): void {\r\n this._drivers = [];\r\n drivers.forEach(driver => {\r\n this._drivers.push(DriverDetailModel.Copy(driver));\r\n });\r\n\r\n this.saveHomeData();\r\n }\r\n\r\n public updateShift(shifts: ShiftsModel): void {\r\n this._shifts = ShiftsModel.Copy(shifts);\r\n\r\n this.saveHomeData();\r\n }\r\n\r\n public updateNote(event: string): void {\r\n this._notes = JSON.parse(event);\r\n\r\n this.saveHomeData();\r\n }\r\n\r\n private loadHomeData(): void {\r\n this._homeService.GetHomeData().subscribe(obs => {\r\n if(!obs) {\r\n return;\r\n }\r\n\r\n let homeData: HomeData = obs;\r\n this._dataResult = JSON.parse(homeData.data);\r\n\r\n if(this._dataResult.hasOwnProperty(\"drivers\")) {\r\n this._drivers = this._dataResult.drivers;\r\n }\r\n if(this._dataResult.hasOwnProperty(\"expediters\")) {\r\n this._expediters = this._dataResult.expediters;\r\n }\r\n if(this._dataResult.hasOwnProperty(\"other\")) {\r\n this._other = this._dataResult.other;\r\n }\r\n if(this._dataResult.hasOwnProperty(\"shifts\")) {\r\n this._shifts = this._dataResult.shifts;\r\n }\r\n if(this._dataResult.hasOwnProperty(\"notes\")) {\r\n this._notes = this._dataResult.notes;\r\n }\r\n }, error => {\r\n this._messageService.add({severity: \"error\", summary: \"Load Data\", detail: \"Failed to load home data\"});\r\n console.warn(error);\r\n });\r\n }\r\n\r\n private saveHomeData(): void {\r\n let dataResult = {\r\n \"updatedOn\": Date.now(),\r\n \"drivers\": this._drivers,\r\n \"expediters\": this._expediters,\r\n \"other\": this._other,\r\n \"shifts\": this._shifts,\r\n \"notes\": this._notes\r\n };\r\n\r\n this._homeService.SaveHomeData(dataResult).subscribe(() => {\r\n this._messageService.add({severity: \"success\", summary: \"Save\", detail: \"Data saved.\"});\r\n }, error => {\r\n this._messageService.add({severity: \"error\", summary: \"Save Data\", detail: \"Failed to save home data\"});\r\n console.warn(error);\r\n });\r\n }\r\n}\r\n","export default \".content {\\r\\n height: 100vh;\\r\\n overflow-y: auto;\\r\\n}\\r\\n\\r\\n.container {\\r\\n margin: 2% auto;\\r\\n padding-bottom: 120px;\\r\\n width: 80%;\\r\\n}\\r\\n\\r\\n.sub-container {\\r\\n margin-bottom: 2%;\\r\\n margin-top: 2%;\\r\\n}\\r\\n\\r\\n.logo {\\r\\n display: block;\\r\\n margin: 0 auto;\\r\\n width: 200px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2hvbWUvaG9tZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLHFCQUFxQjtFQUNyQixVQUFVO0FBQ1o7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxjQUFjO0VBQ2QsWUFBWTtBQUNkIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2hvbWUvaG9tZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY29udGVudCB7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG59XHJcblxyXG4uY29udGFpbmVyIHtcclxuICBtYXJnaW46IDIlIGF1dG87XHJcbiAgcGFkZGluZy1ib3R0b206IDEyMHB4O1xyXG4gIHdpZHRoOiA4MCU7XHJcbn1cclxuXHJcbi5zdWItY29udGFpbmVyIHtcclxuICBtYXJnaW4tYm90dG9tOiAyJTtcclxuICBtYXJnaW4tdG9wOiAyJTtcclxufVxyXG5cclxuLmxvZ28ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHdpZHRoOiAyMDBweDtcclxufVxyXG4iXX0= */\"","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"note-editor\",\r\n templateUrl: \"note-editor.html\",\r\n styleUrls: [\"note-editor.css\"]\r\n})\r\nexport class NoteEditorComponent implements OnInit, OnChanges {\r\n @Input() notes: string;\r\n @Input() superUser: boolean;\r\n @Output() update: EventEmitter;\r\n\r\n public _notes: string;\r\n public _edit: boolean;\r\n\r\n constructor() {\r\n this._notes = \"\";\r\n this._edit = false;\r\n\r\n this.update = new EventEmitter();\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.notes) {\r\n this._notes = this.notes;\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.notes && changes.notes.currentValue) {\r\n this._notes = changes.notes.currentValue;\r\n }\r\n }\r\n\r\n public editData(): void {\r\n this._edit = true;\r\n }\r\n\r\n public saveData(): void {\r\n this.update.emit(JSON.stringify(this._notes));\r\n this._edit = false;\r\n }\r\n\r\n public cancelEdit(): void {\r\n this._edit = false;\r\n\r\n if(!this.notes) {\r\n return;\r\n }\r\n\r\n this._notes = this.notes;\r\n }\r\n}\r\n","export default \".note-container {\\r\\n margin: auto;\\r\\n width: 75%;\\r\\n}\\r\\n\\r\\n.controls-container {\\r\\n align-content: flex-end;\\r\\n margin-bottom: 1%;\\r\\n margin-top: 1%;\\r\\n}\\r\\n\\r\\n.controls-container button {\\r\\n margin-left: 1%;\\r\\n margin-right: 1%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2hvbWUvbm90ZS1lZGl0b3Ivbm90ZS1lZGl0b3IuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtFQUNaLFVBQVU7QUFDWjs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2QixpQkFBaUI7RUFDakIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEIiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvaG9tZS9ub3RlLWVkaXRvci9ub3RlLWVkaXRvci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubm90ZS1jb250YWluZXIge1xyXG4gIG1hcmdpbjogYXV0bztcclxuICB3aWR0aDogNzUlO1xyXG59XHJcblxyXG4uY29udHJvbHMtY29udGFpbmVyIHtcclxuICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZDtcclxuICBtYXJnaW4tYm90dG9tOiAxJTtcclxuICBtYXJnaW4tdG9wOiAxJTtcclxufVxyXG5cclxuLmNvbnRyb2xzLWNvbnRhaW5lciBidXR0b24ge1xyXG4gIG1hcmdpbi1sZWZ0OiAxJTtcclxuICBtYXJnaW4tcmlnaHQ6IDElO1xyXG59XHJcbiJdfQ== */\"","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from \"@angular/core\";\r\nimport {ShiftEntryModel} from \"Opsi.HaulierWeb.UI.Server/src/app/models/home/shift-entry.model\";\r\nimport {ShiftsModel} from \"../../../models/home/shifts.model\";\r\n\r\n@Component({\r\n selector: \"shift-table\",\r\n templateUrl: \"shift-table.html\",\r\n styleUrls: [\"shift-table.css\"]\r\n})\r\nexport class ShiftTableComponent implements OnInit, OnChanges {\r\n @Input() shifts: ShiftsModel;\r\n @Input() superUser: boolean;\r\n @Output() update: EventEmitter;\r\n\r\n public _edit: boolean;\r\n public _message: string;\r\n public _shifts: ShiftsModel;\r\n\r\n constructor() {\r\n this._edit = false;\r\n this._message = \"\";\r\n this._shifts = new ShiftsModel();\r\n\r\n this.update = new EventEmitter();\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.shifts) {\r\n this._shifts = ShiftsModel.Copy(this.shifts);\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.shifts && changes.shifts.currentValue) {\r\n this._shifts = ShiftsModel.Copy(changes.shifts.currentValue);\r\n }\r\n }\r\n\r\n public deleteShift(shiftId: number): void {\r\n let idx = this._shifts.entries.findIndex(s => s.id === shiftId);\r\n this._shifts.entries.splice(idx, 1);\r\n }\r\n\r\n public editData(): void {\r\n this._edit = true;\r\n }\r\n\r\n public addData(): void {\r\n let id = 0;\r\n if(this._shifts.entries.length > 0) {\r\n id = this._shifts.entries[this._shifts.entries.length - 1].id + 1;\r\n }\r\n\r\n let shift = new ShiftEntryModel();\r\n shift.id = id;\r\n\r\n this._shifts.entries.push(shift);\r\n }\r\n\r\n public saveData(): void {\r\n let shifts: ShiftsModel = ShiftsModel.Copy(this._shifts);\r\n\r\n if(!shifts.validate()) {\r\n this._message = \"Invalid shifts: Time Slot, Time From, and Time Tso required\";\r\n return;\r\n } else {\r\n this._message = \"\";\r\n }\r\n\r\n this.update.emit(shifts);\r\n this._edit = false;\r\n }\r\n\r\n public cancelEdit(): void {\r\n this._edit = false;\r\n\r\n if(!this.shifts) {\r\n return;\r\n }\r\n\r\n this._shifts = ShiftsModel.Copy(this.shifts);\r\n }\r\n}\r\n","export default \".shift-table {\\r\\n margin: auto auto 1%;\\r\\n width: 65%;\\r\\n}\\r\\n\\r\\ntd {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.controls-container {\\r\\n align-content: flex-end;\\r\\n margin-bottom: 1%;\\r\\n margin-top: 1%;\\r\\n}\\r\\n\\r\\n.controls-container button {\\r\\n margin-left: 1%;\\r\\n margin-right: 1%;\\r\\n}\\r\\n\\r\\n.text-edit {\\r\\n margin: 1%;\\r\\n width: 98%;\\r\\n}\\r\\n\\r\\n.validation {\\r\\n color: #e30613;\\r\\n font-weight: bold;\\r\\n margin: 0.5em;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2hvbWUvc2hpZnQtdGFibGUvc2hpZnQtdGFibGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usb0JBQW9CO0VBQ3BCLFVBQVU7QUFDWjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2QixpQkFBaUI7RUFDakIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsVUFBVTtBQUNaOztBQUVBO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixhQUFhO0FBQ2YiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvaG9tZS9zaGlmdC10YWJsZS9zaGlmdC10YWJsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc2hpZnQtdGFibGUge1xyXG4gIG1hcmdpbjogYXV0byBhdXRvIDElO1xyXG4gIHdpZHRoOiA2NSU7XHJcbn1cclxuXHJcbnRkIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5jb250cm9scy1jb250YWluZXIge1xyXG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIG1hcmdpbi1ib3R0b206IDElO1xyXG4gIG1hcmdpbi10b3A6IDElO1xyXG59XHJcblxyXG4uY29udHJvbHMtY29udGFpbmVyIGJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDElO1xyXG4gIG1hcmdpbi1yaWdodDogMSU7XHJcbn1cclxuXHJcbi50ZXh0LWVkaXQge1xyXG4gIG1hcmdpbjogMSU7XHJcbiAgd2lkdGg6IDk4JTtcclxufVxyXG5cclxuLnZhbGlkYXRpb24ge1xyXG4gIGNvbG9yOiAjZTMwNjEzO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIG1hcmdpbjogMC41ZW07XHJcbn1cclxuIl19 */\"","import {AppLayoutComponent} from \"./_layout/layout.component\";\r\nimport {AcceptRejectTripCellComponent} from \"./accept-reject-trip-cell/accept-reject-trip-cell.component\";\r\nimport {AcceptTripDialog} from \"./accept-trip/accept-trip.dialog\";\r\nimport {TripClaimDialog } from \"./trip-claim-dialog/trip-claim-dialog.component\";\r\nimport { TripClaimDialogStatusCellComponent } from \"./trip-claim-dialog-status-cell/trip-claim-dialog-status-cell.component\";\r\nimport {ClaimsManagementComponent} from \"./claims-management/claims-management.component\";\r\nimport {DialogMessageComponent} from \"./dialog-message/dialog-message.component\";\r\nimport {FileDownloadDialog} from \"./file-download/file-download.dialog\";\r\nimport {FileItemComponent} from \"./file-item/file-item.component\";\r\nimport {FileUploadDialog} from \"./file-upload/file-upload.dialog\";\r\nimport {ContactDetailsComponent} from \"./home/contact-details/contact-details.component\";\r\nimport {ContactGroupComponent} from \"./home/contact-group/contact-group.component\";\r\nimport {DriverDetailComponent} from \"./home/driver-detail/driver-detail.component\";\r\nimport {DriverRoutesComponent} from \"./home/driver-routes/driver-routes.component\";\r\nimport {HomeComponent} from \"./home/home.component\";\r\nimport {NoteEditorComponent} from \"./home/note-editor/note-editor.component\";\r\nimport {ShiftTableComponent} from \"./home/shift-table/shift-table.component\";\r\nimport {IssueSelectorComponent} from \"./issue-selector/issue-selector.component\";\r\nimport {NavigationComponent} from \"./navigation/navigation.component\";\r\nimport {PrimaryFilterComponent} from \"./primary-filter/primary-filter.component\";\r\nimport {RatesManagementComponent} from \"./rates-management/rates-management.component\";\r\nimport {RejectTripDialog} from \"./reject-trip/reject-trip.dialog\";\r\nimport {ShipmentBriefDialog} from \"./shipment-brief/shipment-brief.dialog\";\r\nimport {ShipmentManagementDialog} from \"./shipment-management/shipment-management.dialog\";\r\nimport {ShipmentStatusCellComponent} from \"./shipment-status-cell/shipment-status-cell.component\";\r\nimport {SiteManagementComponent} from \"./site-management/site-management.component\";\r\nimport {UserHaulierComponent} from \"./site-management/user-haulier/user-haulier.component\";\r\nimport {UserClaimComponent } from \"./site-management/user-claim/user-claim.component\";\r\nimport {ColumnFilterDialog} from \"./table-display/column-filter/column-filter.dialog\";\r\nimport {ColumnGroupComponent} from \"./table-display/column-group/column-group.component\";\r\nimport {TableDisplayComponent} from \"./table-display/table-display.component\";\r\nimport {TripManagementComponent} from \"./trip-management/trip-management.component\";\r\nimport { VehicleRegistrationDialog } from \"./vehicle-registration/vehicle-registration.dialog\";\r\nimport { TripClaimStatusCellComponent } from \"./trip-claim-status-cell/trip-claim-status-cell.component\";\r\nimport { ClaimBriefDialog } from \"./claim-brief/claim-brief.dialog\";\r\nimport { RejectClaimDialog } from \"./reject-claim/reject-claim.dialog\";\r\n\r\nexport {AppLayoutComponent};\r\n\r\nexport const COMPONENTS: any[] = [\r\n AcceptTripDialog,\r\n AcceptRejectTripCellComponent,\r\n AppLayoutComponent,\r\n ClaimsManagementComponent,\r\n TripClaimDialog,\r\n TripClaimDialogStatusCellComponent,\r\n ColumnFilterDialog,\r\n ColumnGroupComponent,\r\n ContactDetailsComponent,\r\n ContactGroupComponent,\r\n DialogMessageComponent,\r\n DriverDetailComponent,\r\n DriverRoutesComponent,\r\n FileDownloadDialog,\r\n FileItemComponent,\r\n FileUploadDialog,\r\n HomeComponent,\r\n IssueSelectorComponent,\r\n NavigationComponent,\r\n NoteEditorComponent,\r\n PrimaryFilterComponent,\r\n RatesManagementComponent,\r\n RejectTripDialog,\r\n ShiftTableComponent,\r\n ShipmentBriefDialog,\r\n ShipmentManagementDialog,\r\n ShipmentStatusCellComponent,\r\n SiteManagementComponent,\r\n TableDisplayComponent,\r\n TripManagementComponent,\r\n UserHaulierComponent,\r\n UserClaimComponent,\r\n VehicleRegistrationDialog,\r\n TripClaimStatusCellComponent,\r\n ClaimBriefDialog,\r\n RejectClaimDialog\r\n];\r\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from \"@angular/core\";\r\nimport {IssueReasonInterface} from \"../../models/issue-reason/issue-reason.interface\";\r\nimport {ReasonInterface} from \"../../models/issue-reason/reason.interface\";\r\n\r\n@Component({\r\n selector: \"issue-selector\",\r\n templateUrl: \"issue-selector.html\",\r\n styleUrls: [\"issue-selector.css\"]\r\n})\r\nexport class IssueSelectorComponent implements OnInit, OnChanges {\r\n @Input() issueReasons: IssueReasonInterface[];\r\n @Input() currentIssue: string;\r\n @Input() currentReason: string;\r\n @Input() currentAdditionalInformation: string;\r\n @Input() readOnly: boolean;\r\n\r\n @Output() additionalInfo: EventEmitter;\r\n @Output() issue: EventEmitter;\r\n @Output() reason: EventEmitter;\r\n\r\n public _issueReasons: IssueReasonInterface[];\r\n public _availableReasons: ReasonInterface[];\r\n\r\n public _selectedIssue: IssueReasonInterface;\r\n public _selectedReason: ReasonInterface;\r\n\r\n public _additionalInfo: string;\r\n\r\n constructor() {\r\n this.issue = new EventEmitter();\r\n this.reason = new EventEmitter();\r\n this.additionalInfo = new EventEmitter();\r\n\r\n this._issueReasons = [];\r\n this._availableReasons = [];\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.issueReasons) {\r\n this._issueReasons = this.issueReasons;\r\n\r\n if(this._selectedIssue) {\r\n this._availableReasons = this._selectedIssue.reason.map(r => r);\r\n }\r\n }\r\n\r\n if(this.currentAdditionalInformation) {\r\n this._additionalInfo = this.currentAdditionalInformation;\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.issueReasons && changes.issueReasons.currentValue) {\r\n this._issueReasons = changes.issueReasons.currentValue;\r\n\r\n if(this._issueReasons.length <= 0) {\r\n return;\r\n }\r\n\r\n if(this.currentIssue) {\r\n let selected = this._issueReasons.find(ir => ir.issue === this.currentIssue);\r\n if(selected) {\r\n this._selectedIssue = selected;\r\n\r\n this._availableReasons = this._selectedIssue.reason.map(r => r);\r\n }\r\n }\r\n\r\n if(this.currentReason) {\r\n let selected = this._availableReasons.find(i => i.reason === this.currentReason);\r\n\r\n if(selected) {\r\n this._selectedReason = selected;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public onAdditionalInfoChange(event: any): void {\r\n this._additionalInfo = event;\r\n this.additionalInfo.emit(event);\r\n }\r\n\r\n public onIssueChange(event: IssueReasonInterface): void {\r\n if(!event) {\r\n this.issue.emit(undefined);\r\n } else {\r\n this.issue.emit(event.issue);\r\n\r\n this._availableReasons = event.reason.map(r => r);\r\n }\r\n }\r\n\r\n public onReasonChange(event: ReasonInterface): void {\r\n if(!event) {\r\n this.reason.emit(undefined);\r\n } else {\r\n this.reason.emit(event.reason);\r\n }\r\n }\r\n}\r\n","export default \".container {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: horizontal;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: row;\\r\\n}\\r\\n\\r\\n.container div {\\r\\n margin: 2px;\\r\\n}\\r\\n\\r\\n.label {\\r\\n font-weight: bold;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL2lzc3VlLXNlbGVjdG9yL2lzc3VlLXNlbGVjdG9yLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDhCQUFtQjtFQUFuQiw2QkFBbUI7VUFBbkIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy9pc3N1ZS1zZWxlY3Rvci9pc3N1ZS1zZWxlY3Rvci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbn1cclxuXHJcbi5jb250YWluZXIgZGl2IHtcclxuICBtYXJnaW46IDJweDtcclxufVxyXG5cclxuLmxhYmVsIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbn1cclxuIl19 */\"","import {Component, OnInit} from \"@angular/core\";\r\nimport {NavigationStart, Router} from \"@angular/router\";\r\nimport {AuthService} from \"@slender/auth\";\r\nimport {PermissionConstants} from \"../../constants/permission.constants\";\r\n\r\n\r\n@Component({\r\n selector: \"navigation\",\r\n templateUrl: \"navigation.html\",\r\n styleUrls: [\"navigation.css\"]\r\n})\r\nexport class NavigationComponent implements OnInit {\r\n public _showFilter: boolean;\r\n public _showRatesFilter: boolean;\r\n\r\n public _superUser: boolean;\r\n public _claimUser: boolean;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _route: Router\r\n ) {\r\n this._showFilter = false;\r\n this._showRatesFilter = false;\r\n\r\n this._superUser = false;\r\n PermissionConstants.superUser.forEach(permission => {\r\n this._superUser = this._superUser || _authService.hasPermission(permission);\r\n });\r\n\r\n this._claimUser = false;\r\n this._claimUser = _authService.hasPermission(PermissionConstants.transporterClaim) || _authService.hasPermission(PermissionConstants.cloverClaim);\r\n\r\n this.showNavigationFilters();\r\n }\r\n\r\n public ngOnInit(): void {\r\n }\r\n\r\n // This method allows the navigation to show where it is suppose to show\r\n // It makes sure where and which search filter is shown\r\n private showNavigationFilters(): void {\r\n this._route.events.forEach((event) => {\r\n if(event instanceof NavigationStart) {\r\n this.onRouteRefresh(event.url);\r\n } else {\r\n this.onRouteRefresh(this._route.url);\r\n }\r\n });\r\n }\r\n\r\n private onRouteRefresh(routeUrl: string): void {\r\n // Remove filters from Home\r\n this._showFilter = !(routeUrl === \"/home\" || routeUrl === \"/site-management\");\r\n\r\n // Determine which filters to show\r\n this._showRatesFilter = routeUrl === '/rates-management';\r\n }\r\n}\r\n","export default \".active-link {\\r\\n color: #F20B22;\\r\\n}\\r\\n\\r\\nbody {\\r\\n font-family: Arial, Helvetica, sans-serif;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.top-nav {\\r\\n background-color: #005ca9;\\r\\n height: 46px;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.top-nav a {\\r\\n color: #f2f2f2;\\r\\n float: left;\\r\\n font-size: 17px;\\r\\n padding: 14px 16px;\\r\\n text-align: center;\\r\\n text-decoration: none;\\r\\n}\\r\\n\\r\\n.top-nav a:hover {\\r\\n background-color: #fff;\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.top-nav a.active {\\r\\n /*background-color: #4CAF50;*/\\r\\n background-color: #e30613;\\r\\n color: white;\\r\\n font-weight: bolder;\\r\\n}\\r\\n\\r\\n.filter-bar {\\r\\n height: 86px;\\r\\n}\\r\\n\\r\\n.contents {\\r\\n height: calc(100% - 46px - 86px);\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UseUNBQXlDO0VBQ3pDLFNBQVM7QUFDWDs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztFQUNkLFdBQVc7RUFDWCxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsWUFBWTtBQUNkOztBQUVBO0VBQ0UsNkJBQTZCO0VBQzdCLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsZ0NBQWdDO0FBQ2xDIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYWN0aXZlLWxpbmsge1xyXG4gIGNvbG9yOiAjRjIwQjIyO1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi50b3AtbmF2IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1Y2E5O1xyXG4gIGhlaWdodDogNDZweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4udG9wLW5hdiBhIHtcclxuICBjb2xvcjogI2YyZjJmMjtcclxuICBmbG9hdDogbGVmdDtcclxuICBmb250LXNpemU6IDE3cHg7XHJcbiAgcGFkZGluZzogMTRweCAxNnB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbi50b3AtbmF2IGE6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4udG9wLW5hdiBhLmFjdGl2ZSB7XHJcbiAgLypiYWNrZ3JvdW5kLWNvbG9yOiAjNENBRjUwOyovXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzMDYxMztcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcclxufVxyXG5cclxuLmZpbHRlci1iYXIge1xyXG4gIGhlaWdodDogODZweDtcclxufVxyXG5cclxuLmNvbnRlbnRzIHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDQ2cHggLSA4NnB4KTtcclxufVxyXG4iXX0= */\"","import {Component, Input, OnInit} from \"@angular/core\";\r\nimport { PrimaryFilter } from \"../../controllers\";\r\nimport { DatePipe } from '@angular/common';\r\nimport { MessageService } from \"primeng/api\";\r\n\r\n\r\n@Component({\r\n selector: \"primary-filter\",\r\n templateUrl: \"primary-filter.html\",\r\n styleUrls: [\"primary-filter.css\"],\r\n providers: [DatePipe, MessageService]\r\n})\r\nexport class PrimaryFilterComponent implements OnInit {\r\n @Input() showRatesFilter: boolean;\r\n\r\n public _dateRange: Date[];\r\n public _monthPicked: Date;\r\n public _maxDate: Date;\r\n public _textSearch: string;\r\n\r\n constructor(\r\n private _filter: PrimaryFilter,\r\n private _datePipe: DatePipe,\r\n private _messageService: MessageService,\r\n ) {\r\n this._dateRange = _filter.dateRange;\r\n this._monthPicked = _filter.monthPicked;\r\n this._textSearch = _filter.textSearch;\r\n }\r\n\r\n public ngOnInit(): void {\r\n\r\n }\r\n\r\n public onFilterChange(): void {\r\n this.checkDateRange();\r\n this.checkMonthPicked();\r\n this.getMaxDate();\r\n\r\n this._filter.dateRange = this._dateRange;\r\n this._filter.monthPicked = this._monthPicked;\r\n this._filter.textSearch = this._textSearch;\r\n\r\n }\r\n \r\n public onFilterClear(): void {\r\n this._textSearch = \"\";\r\n }\r\n\r\n private checkDateRange(): void {\r\n if(!this._dateRange) {\r\n this._dateRange = [new Date()];\r\n }\r\n\r\n if(!this._dateRange[1]) {\r\n let newDate = new Date(this._dateRange[0]);\r\n newDate.setDate(newDate.getDate() + 1);\r\n\r\n this._dateRange[1] = newDate;\r\n }\r\n }\r\n\r\n private checkMonthPicked(): void {\r\n if(!this._monthPicked) {\r\n this._monthPicked = new Date();\r\n }\r\n }\r\n\r\n public getMaxDate(): void {\r\n let newDate = new Date(this._dateRange[0]);\r\n newDate.setDate(newDate.getDate() + 180);\r\n\r\n this._maxDate = newDate; \r\n this.monthLimit();\r\n\r\n }\r\n\r\n public monthLimit(): void {\r\n let limitDate = new Date(this._maxDate);\r\n if (this._dateRange[1] > limitDate) {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Date Range Info\",\r\n detail: \"Date range is restricted to 6 Months only per selection. Maximum date is until \" + this._datePipe.transform(limitDate, 'dd-MM-yyyy') + \" which is already loaded.\",\r\n life: 10000,\r\n closable: false\r\n \r\n });\r\n this._dateRange[1] = limitDate;\r\n }\r\n }\r\n} \r\n","export default \".overlay {\\r\\n background-color: #005ca9;\\r\\n padding: 0 2% 0.5%;\\r\\n z-index: 999;\\r\\n}\\r\\n\\r\\n.filter-label {\\r\\n color: #eee;\\r\\n font-size: 1.2em;\\r\\n font-weight: bolder;\\r\\n margin-bottom: 5px;\\r\\n margin-left: 5px;\\r\\n}\\r\\n\\r\\n.input-size {\\r\\n width: 240px;\\r\\n}\\r\\n\\r\\n.clear-button {\\r\\n font-size: 0.8em;\\r\\n margin-right: 6px;\\r\\n margin-top: -2px;\\r\\n}\\r\\n\\r\\n.search-button {\\r\\n margin-left: 3px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3ByaW1hcnktZmlsdGVyL3ByaW1hcnktZmlsdGVyLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsWUFBWTtBQUNkOztBQUVBO0VBQ0UsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3ByaW1hcnktZmlsdGVyL3ByaW1hcnktZmlsdGVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5vdmVybGF5IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1Y2E5O1xyXG4gIHBhZGRpbmc6IDAgMiUgMC41JTtcclxuICB6LWluZGV4OiA5OTk7XHJcbn1cclxuXHJcbi5maWx0ZXItbGFiZWwge1xyXG4gIGNvbG9yOiAjZWVlO1xyXG4gIGZvbnQtc2l6ZTogMS4yZW07XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcclxuICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweDtcclxufVxyXG5cclxuLmlucHV0LXNpemUge1xyXG4gIHdpZHRoOiAyNDBweDtcclxufVxyXG5cclxuLmNsZWFyLWJ1dHRvbiB7XHJcbiAgZm9udC1zaXplOiAwLjhlbTtcclxuICBtYXJnaW4tcmlnaHQ6IDZweDtcclxuICBtYXJnaW4tdG9wOiAtMnB4O1xyXG59XHJcblxyXG4uc2VhcmNoLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDNweDtcclxufVxyXG4iXX0= */\"","import {animate, AnimationEvent, state, style, transition, trigger} from '@angular/animations';\r\nimport {CommonModule} from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n NgModule,\r\n NgZone,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n Renderer2,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {PrimeTemplate, SharedModule} from 'primeng/api';\r\nimport {ButtonModule} from 'primeng/button';\r\nimport {DomHandler} from 'primeng/dom';\r\n\r\nexport const CALENDAR_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => Calendar),\r\n multi: true\r\n};\r\n\r\nexport interface LocaleSettings {\r\n firstDayOfWeek?: number;\r\n dayNames: string[];\r\n dayNamesShort: string[];\r\n dayNamesMin: string[];\r\n monthNames: string[];\r\n monthNamesShort: string[];\r\n today: string;\r\n clear: string;\r\n dateFormat?: string;\r\n weekHeader?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'p-calendar',\r\n template: `\r\n \r\n \r\n \r\n \r\n
1, 'ui-datepicker-monthpicker': (view === 'month'), 'ui-datepicker-touch-ui': touchUI}\"\r\n [@overlayAnimation]=\"touchUI ? {value: 'visibleTouchUI', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}: \r\n {value: 'visible', params: {showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions}}\"\r\n [@.disabled]=\"inline === true\" (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\r\n (@overlayAnimation.done)=\"onOverlayAnimationDone($event)\" *ngIf=\"inline || overlayVisible\">\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{locale.monthNames[month.month]}}\r\n \r\n \r\n {{view === 'month' ? currentYear : month.year}}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{locale['weekHeader']}}\r\n \r\n {{weekDay}}\r\n
\r\n \r\n {{month.weekNumbers[j]}}\r\n \r\n \r\n \r\n \r\n {{date.day}}\r\n \r\n \r\n \r\n {{date.day}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{m}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n 0{{currentHour}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{timeSeparator}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n 0{{currentMinute}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{timeSeparator}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n 0{{currentSecond}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{pm ? 'PM' : 'AM'}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n `,\r\n animations: [\r\n trigger('overlayAnimation', [\r\n state('visible', style({\r\n transform: 'translateY(0)',\r\n opacity: 1\r\n })),\r\n state('visibleTouchUI', style({\r\n transform: 'translate(-50%,-50%)',\r\n opacity: 1\r\n })),\r\n transition('void => visible', [\r\n style({transform: 'translateY(5%)', opacity: 0}),\r\n animate('{{showTransitionParams}}')\r\n ]),\r\n transition('visible => void', [\r\n animate(('{{hideTransitionParams}}'),\r\n style({\r\n opacity: 0,\r\n transform: 'translateY(5%)'\r\n }))\r\n ]),\r\n transition('void => visibleTouchUI', [\r\n style({opacity: 0, transform: 'translate3d(-50%, -40%, 0) scale(0.9)'}),\r\n animate('{{showTransitionParams}}')\r\n ]),\r\n transition('visibleTouchUI => void', [\r\n animate(('{{hideTransitionParams}}'),\r\n style({\r\n opacity: 0,\r\n transform: 'translate3d(-50%, -40%, 0) scale(0.9)'\r\n }))\r\n ])\r\n ])\r\n ],\r\n host: {\r\n '[class.ui-inputwrapper-filled]': 'filled',\r\n '[class.ui-inputwrapper-focus]': 'focus'\r\n },\r\n providers: [CALENDAR_VALUE_ACCESSOR],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class Calendar implements OnInit, OnDestroy, ControlValueAccessor {\r\n\r\n @Input() defaultDate: Date;\r\n\r\n @Input() style: any;\r\n\r\n @Input() styleClass: string;\r\n\r\n @Input() inputStyle: any;\r\n\r\n @Input() inputId: string;\r\n\r\n @Input() name: string;\r\n\r\n @Input() inputStyleClass: string;\r\n\r\n @Input() placeholder: string;\r\n\r\n @Input() ariaLabelledBy: string;\r\n\r\n @Input() disabled: any;\r\n\r\n @Input() dateFormat: string = 'mm/dd/yy';\r\n\r\n @Input() multipleSeparator: string = ',';\r\n\r\n @Input() rangeSeparator: string = '-';\r\n\r\n @Input() inline: boolean = false;\r\n\r\n @Input() showOtherMonths: boolean = true;\r\n\r\n @Input() selectOtherMonths: boolean;\r\n\r\n @Input() showIcon: boolean;\r\n\r\n @Input() icon: string = 'pi pi-calendar';\r\n\r\n @Input() appendTo: any;\r\n\r\n @Input() readonlyInput: boolean;\r\n\r\n @Input() shortYearCutoff: any = '+10';\r\n\r\n @Input() monthNavigator: boolean;\r\n\r\n @Input() yearNavigator: boolean;\r\n\r\n @Input() hourFormat: string = '24';\r\n\r\n @Input() timeOnly: boolean;\r\n\r\n @Input() stepHour: number = 1;\r\n\r\n @Input() stepMinute: number = 1;\r\n\r\n @Input() stepSecond: number = 1;\r\n\r\n @Input() showSeconds: boolean = false;\r\n\r\n @Input() required: boolean;\r\n\r\n @Input() showOnFocus: boolean = true;\r\n\r\n @Input() showWeek: boolean = false;\r\n\r\n @Input() dataType: string = 'date';\r\n\r\n @Input() selectionMode: string = 'single';\r\n\r\n @Input() maxDateCount: number;\r\n\r\n @Input() showButtonBar: boolean;\r\n\r\n @Input() todayButtonStyleClass: string = 'ui-button-secondary';\r\n\r\n @Input() clearButtonStyleClass: string = 'ui-button-secondary';\r\n\r\n @Input() autoZIndex: boolean = true;\r\n\r\n @Input() baseZIndex: number = 0;\r\n\r\n @Input() panelStyleClass: string;\r\n\r\n @Input() panelStyle: any;\r\n\r\n @Input() keepInvalid: boolean = false;\r\n\r\n @Input() hideOnDateTimeSelect: boolean = true;\r\n\r\n @Input() numberOfMonths: number = 1;\r\n\r\n @Input() view: string = 'date';\r\n\r\n @Input() touchUI: boolean;\r\n\r\n @Input() timeSeparator: string = \":\";\r\n\r\n @Input() showTransitionOptions: string = '225ms ease-out';\r\n\r\n @Input() hideTransitionOptions: string = '195ms ease-in';\r\n\r\n @Output() onFocus: EventEmitter = new EventEmitter();\r\n\r\n @Output() onBlur: EventEmitter = new EventEmitter();\r\n\r\n @Output() onClose: EventEmitter = new EventEmitter();\r\n\r\n @Output() onSelect: EventEmitter = new EventEmitter();\r\n\r\n @Output() onInput: EventEmitter = new EventEmitter();\r\n\r\n @Output() onTodayClick: EventEmitter = new EventEmitter();\r\n\r\n @Output() onClearClick: EventEmitter = new EventEmitter();\r\n\r\n @Output() onMonthChange: EventEmitter = new EventEmitter();\r\n\r\n @Output() onYearChange: EventEmitter = new EventEmitter();\r\n\r\n @Output() onClickOutside: EventEmitter = new EventEmitter();\r\n\r\n @Output() onShow: EventEmitter = new EventEmitter();\r\n\r\n @ContentChildren(PrimeTemplate) templates: QueryList;\r\n\r\n _locale: LocaleSettings = {\r\n firstDayOfWeek: 0,\r\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\r\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\r\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\r\n monthNames: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\r\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n today: 'Today',\r\n clear: 'Clear',\r\n dateFormat: 'mm/dd/yy',\r\n weekHeader: 'Wk'\r\n };\r\n\r\n @Input() tabindex: number;\r\n\r\n @ViewChild('inputfield', {static: false}) inputfieldViewChild: ElementRef;\r\n\r\n @ViewChild('contentWrapper', {static: false}) set content(content: ElementRef) {\r\n this.contentViewChild = content;\r\n\r\n if(this.contentViewChild) {\r\n if(this.isMonthNavigate) {\r\n Promise.resolve(null).then(() => this.updateFocus());\r\n this.isMonthNavigate = false;\r\n } else {\r\n this.initFocusableCell();\r\n }\r\n }\r\n };\r\n\r\n contentViewChild: ElementRef;\r\n\r\n value: any;\r\n\r\n dates: any[];\r\n\r\n months: any[];\r\n\r\n monthPickerValues: any[];\r\n\r\n weekDays: string[];\r\n\r\n currentMonth: number;\r\n\r\n currentYear: number;\r\n\r\n currentHour: number;\r\n\r\n currentMinute: number;\r\n\r\n currentSecond: number;\r\n\r\n pm: boolean;\r\n\r\n mask: HTMLDivElement;\r\n\r\n maskClickListener: Function;\r\n\r\n overlay: HTMLDivElement;\r\n\r\n overlayVisible: boolean;\r\n\r\n onModelChange: Function = () => {\r\n };\r\n\r\n onModelTouched: Function = () => {\r\n };\r\n\r\n calendarElement: any;\r\n\r\n timePickerTimer: any;\r\n\r\n documentClickListener: any;\r\n\r\n ticksTo1970: number;\r\n\r\n yearOptions: number[];\r\n\r\n focus: boolean;\r\n\r\n isKeydown: boolean;\r\n\r\n filled: boolean;\r\n\r\n inputFieldValue: string | null = null;\r\n\r\n _minDate: Date;\r\n\r\n _maxDate: Date;\r\n\r\n _showTime: boolean;\r\n\r\n _yearRange: string;\r\n\r\n preventDocumentListener: boolean;\r\n\r\n dateTemplate: TemplateRef;\r\n\r\n disabledDateTemplate: TemplateRef;\r\n\r\n _disabledDates: Array;\r\n\r\n _disabledDays: Array;\r\n\r\n selectElement: any;\r\n\r\n todayElement: any;\r\n\r\n focusElement: any;\r\n\r\n documentResizeListener: any;\r\n\r\n navigationState: any = null;\r\n\r\n isMonthNavigate: boolean;\r\n\r\n @Input() get minDate(): Date {\r\n return this._minDate;\r\n }\r\n\r\n set minDate(date: Date) {\r\n this._minDate = date;\r\n\r\n if(this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n }\r\n }\r\n\r\n @Input() get maxDate(): Date {\r\n return this._maxDate;\r\n }\r\n\r\n set maxDate(date: Date) {\r\n this._maxDate = date;\r\n\r\n if(this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n }\r\n }\r\n\r\n @Input() get disabledDates(): Date[] {\r\n return this._disabledDates;\r\n }\r\n\r\n set disabledDates(disabledDates: Date[]) {\r\n this._disabledDates = disabledDates;\r\n if(this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\r\n\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n }\r\n }\r\n\r\n @Input() get disabledDays(): number[] {\r\n return this._disabledDays;\r\n }\r\n\r\n set disabledDays(disabledDays: number[]) {\r\n this._disabledDays = disabledDays;\r\n\r\n if(this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n }\r\n }\r\n\r\n @Input() get yearRange(): string {\r\n return this._yearRange;\r\n }\r\n\r\n set yearRange(yearRange: string) {\r\n this._yearRange = yearRange;\r\n\r\n if(yearRange) {\r\n const years = yearRange.split(':');\r\n const yearStart = parseInt(years[0]);\r\n const yearEnd = parseInt(years[1]);\r\n\r\n this.populateYearOptions(yearStart, yearEnd);\r\n }\r\n }\r\n\r\n @Input() get showTime(): boolean {\r\n return this._showTime;\r\n }\r\n\r\n set showTime(showTime: boolean) {\r\n this._showTime = showTime;\r\n\r\n if(this.currentHour === undefined) {\r\n this.initTime(this.value || new Date());\r\n }\r\n this.updateInputfield();\r\n }\r\n\r\n get locale() {\r\n return this._locale;\r\n }\r\n\r\n @Input()\r\n set locale(newLocale: LocaleSettings) {\r\n this._locale = newLocale;\r\n\r\n if(this.view === 'date') {\r\n this.createWeekDays();\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n } else if(this.view === 'month') {\r\n this.createMonthPickerValues();\r\n }\r\n }\r\n\r\n constructor(public el: ElementRef, public renderer: Renderer2, public cd: ChangeDetectorRef, private zone: NgZone) {\r\n }\r\n\r\n ngOnInit() {\r\n const date = this.defaultDate || new Date();\r\n this.currentMonth = date.getMonth();\r\n this.currentYear = date.getFullYear();\r\n\r\n if(this.view === 'date') {\r\n this.createWeekDays();\r\n this.initTime(date);\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n this.ticksTo1970 = (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000);\r\n } else if(this.view === 'month') {\r\n this.createMonthPickerValues();\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.templates.forEach((item) => {\r\n switch(item.getType()) {\r\n case 'date':\r\n this.dateTemplate = item.template;\r\n break;\r\n\r\n case 'disabledDate':\r\n this.disabledDateTemplate = item.template;\r\n break;\r\n\r\n default:\r\n this.dateTemplate = item.template;\r\n break;\r\n }\r\n });\r\n }\r\n\r\n populateYearOptions(start: any, end: any) {\r\n this.yearOptions = [];\r\n\r\n for(let i = start; i <= end; i++) {\r\n this.yearOptions.push(i);\r\n }\r\n }\r\n\r\n createWeekDays() {\r\n this.weekDays = [];\r\n let dayIndex = this.locale.firstDayOfWeek ? this.locale.firstDayOfWeek : 0;\r\n for(let i = 0; i < 7; i++) {\r\n // @ts-ignore\r\n this.weekDays.push(this.locale.dayNamesMin[dayIndex]);\r\n dayIndex = (dayIndex == 6) ? 0 : ++dayIndex;\r\n }\r\n }\r\n\r\n createMonthPickerValues() {\r\n this.monthPickerValues = [];\r\n for(let i = 0; i <= 11; i++) {\r\n this.monthPickerValues.push(this.locale.monthNamesShort[i]);\r\n }\r\n }\r\n\r\n createMonths(month: number, year: number) {\r\n this.months = this.months = [];\r\n for(let i = 0; i < this.numberOfMonths; i++) {\r\n let m = month + i;\r\n let y = year;\r\n if(m > 11) {\r\n m = m % 11 - 1;\r\n y = year + 1;\r\n }\r\n\r\n this.months.push(this.createMonth(m, y));\r\n }\r\n }\r\n\r\n getWeekNumber(date: Date) {\r\n let checkDate = new Date(date.getTime());\r\n checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\r\n let time = checkDate.getTime();\r\n checkDate.setMonth(0);\r\n checkDate.setDate(1);\r\n return Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1;\r\n }\r\n\r\n createMonth(month: number, year: number) {\r\n let dates = [];\r\n let firstDay = this.getFirstDayOfMonthIndex(month, year);\r\n let daysLength = this.getDaysCountInMonth(month, year);\r\n let prevMonthDaysLength = this.getDaysCountInPrevMonth(month, year);\r\n let dayNo = 1;\r\n let today = new Date();\r\n let weekNumbers = [];\r\n let monthRows = Math.ceil((daysLength + firstDay) / 7);\r\n\r\n for(let i = 0; i < monthRows; i++) {\r\n let week = [];\r\n\r\n if(i == 0) {\r\n for(let j = (prevMonthDaysLength - firstDay + 1); j <= prevMonthDaysLength; j++) {\r\n let prev = this.getPreviousMonthAndYear(month, year);\r\n week.push({\r\n day: j,\r\n month: prev.month,\r\n year: prev.year,\r\n otherMonth: true,\r\n today: this.isToday(today, j, prev.month, prev.year),\r\n selectable: this.isSelectable(j, prev.month, prev.year, true)\r\n });\r\n }\r\n\r\n let remainingDaysLength = 7 - week.length;\r\n for(let j = 0; j < remainingDaysLength; j++) {\r\n week.push({\r\n day: dayNo, month: month, year: year, today: this.isToday(today, dayNo, month, year),\r\n selectable: this.isSelectable(dayNo, month, year, false)\r\n });\r\n dayNo++;\r\n }\r\n } else {\r\n for(let j = 0; j < 7; j++) {\r\n if(dayNo > daysLength) {\r\n let next = this.getNextMonthAndYear(month, year);\r\n week.push({\r\n day: dayNo - daysLength, month: next.month, year: next.year, otherMonth: true,\r\n today: this.isToday(today, dayNo - daysLength, next.month, next.year),\r\n selectable: this.isSelectable((dayNo - daysLength), next.month, next.year, true)\r\n });\r\n } else {\r\n week.push({\r\n day: dayNo, month: month, year: year, today: this.isToday(today, dayNo, month, year),\r\n selectable: this.isSelectable(dayNo, month, year, false)\r\n });\r\n }\r\n\r\n dayNo++;\r\n }\r\n }\r\n\r\n if(this.showWeek) {\r\n weekNumbers.push(this.getWeekNumber(new Date(week[0].year, week[0].month, week[0].day)));\r\n }\r\n\r\n dates.push(week);\r\n }\r\n\r\n return {\r\n month: month,\r\n year: year,\r\n dates: dates,\r\n weekNumbers: weekNumbers\r\n };\r\n }\r\n\r\n initTime(date: Date) {\r\n this.pm = date.getHours() > 11;\r\n\r\n if(this.showTime) {\r\n this.currentMinute = date.getMinutes();\r\n this.currentSecond = date.getSeconds();\r\n this.setCurrentHourPM(date.getHours());\r\n } else if(this.timeOnly) {\r\n this.currentMinute = 0;\r\n this.currentHour = 0;\r\n this.currentSecond = 0;\r\n }\r\n }\r\n\r\n navBackward(event: any) {\r\n event.stopPropagation();\r\n\r\n if(this.disabled) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n this.isMonthNavigate = true;\r\n\r\n if(this.view === 'month') {\r\n this.decrementYear();\r\n setTimeout(() => {\r\n this.updateFocus();\r\n }, 1);\r\n } else {\r\n if(this.currentMonth === 0) {\r\n this.currentMonth = 11;\r\n this.decrementYear();\r\n } else {\r\n this.currentMonth--;\r\n }\r\n\r\n this.onMonthChange.emit({month: this.currentMonth + 1, year: this.currentYear});\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n }\r\n }\r\n\r\n navForward(event: any) {\r\n event.stopPropagation();\r\n\r\n if(this.disabled) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n this.isMonthNavigate = true;\r\n\r\n if(this.view === 'month') {\r\n this.incrementYear();\r\n setTimeout(() => {\r\n this.updateFocus();\r\n }, 1);\r\n } else {\r\n if(this.currentMonth === 11) {\r\n this.currentMonth = 0;\r\n this.incrementYear();\r\n } else {\r\n this.currentMonth++;\r\n }\r\n\r\n this.onMonthChange.emit({month: this.currentMonth + 1, year: this.currentYear});\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n }\r\n }\r\n\r\n decrementYear() {\r\n this.currentYear--;\r\n\r\n if(this.yearNavigator && this.currentYear < this.yearOptions[0]) {\r\n let difference = this.yearOptions[this.yearOptions.length - 1] - this.yearOptions[0];\r\n this.populateYearOptions(this.yearOptions[0] - difference, this.yearOptions[this.yearOptions.length - 1] - difference);\r\n }\r\n }\r\n\r\n incrementYear() {\r\n this.currentYear++;\r\n\r\n if(this.yearNavigator && this.currentYear > this.yearOptions[this.yearOptions.length - 1]) {\r\n let difference = this.yearOptions[this.yearOptions.length - 1] - this.yearOptions[0];\r\n this.populateYearOptions(this.yearOptions[0] + difference, this.yearOptions[this.yearOptions.length - 1] + difference);\r\n }\r\n }\r\n\r\n onDateSelect(event: any, dateMeta: any) {\r\n if(this.disabled || !dateMeta.selectable) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n if(this.isMultipleSelection() && this.isSelected(dateMeta)) {\r\n this.value = this.value.filter((date: any, i: number) => {\r\n return !this.isDateEquals(date, dateMeta);\r\n });\r\n if(this.value.length === 0) {\r\n this.value = null;\r\n }\r\n this.updateModel(this.value);\r\n } else {\r\n if(this.shouldSelectDate(dateMeta)) {\r\n this.selectDate(dateMeta);\r\n }\r\n }\r\n\r\n if(this.isSingleSelection() && this.hideOnDateTimeSelect) {\r\n setTimeout(() => {\r\n event.preventDefault();\r\n this.hideOverlay();\r\n\r\n if(this.mask) {\r\n this.disableModality();\r\n }\r\n\r\n this.cd.markForCheck();\r\n }, 150);\r\n }\r\n\r\n this.updateInputfield();\r\n event.preventDefault();\r\n }\r\n\r\n shouldSelectDate(dateMeta: any) {\r\n if(this.isMultipleSelection())\r\n return this.maxDateCount != null ? this.maxDateCount > (this.value ? this.value.length : 0) : true;\r\n else\r\n return true;\r\n }\r\n\r\n onMonthSelect(event: any, index: any) {\r\n if(!DomHandler.hasClass(event.target, 'ui-state-disabled')) {\r\n this.onDateSelect(event, {year: this.currentYear, month: index, day: 1, selectable: true});\r\n }\r\n }\r\n\r\n updateInputfield() {\r\n let formattedValue: string | null = '';\r\n\r\n if(this.value) {\r\n if(this.isSingleSelection()) {\r\n formattedValue = this.formatDateTime(this.value);\r\n } else if(this.isMultipleSelection()) {\r\n for(let i = 0; i < this.value.length; i++) {\r\n let dateAsString = this.formatDateTime(this.value[i]);\r\n formattedValue += dateAsString;\r\n if(i !== (this.value.length - 1)) {\r\n formattedValue += this.multipleSeparator + ' ';\r\n }\r\n }\r\n } else if(this.isRangeSelection()) {\r\n if(this.value && this.value.length) {\r\n let startDate = this.value[0];\r\n let endDate = this.value[1];\r\n\r\n formattedValue = this.formatDateTime(startDate);\r\n if(endDate) {\r\n formattedValue += ' ' + this.rangeSeparator + ' ' + this.formatDateTime(endDate);\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.inputFieldValue = formattedValue;\r\n this.updateFilledState();\r\n if(this.inputfieldViewChild && this.inputfieldViewChild.nativeElement) {\r\n this.inputfieldViewChild.nativeElement.value = this.inputFieldValue;\r\n }\r\n }\r\n\r\n formatDateTime(date: any) {\r\n let formattedValue = null;\r\n if(date) {\r\n if(this.timeOnly) {\r\n formattedValue = this.formatTime(date);\r\n } else {\r\n formattedValue = this.formatDate(date, this.getDateFormat());\r\n if(this.showTime) {\r\n formattedValue += ' ' + this.formatTime(date);\r\n }\r\n }\r\n }\r\n\r\n return formattedValue;\r\n }\r\n\r\n setCurrentHourPM(hours: number) {\r\n if(this.hourFormat == '12') {\r\n this.pm = hours > 11;\r\n if(hours >= 12) {\r\n this.currentHour = (hours == 12) ? 12 : hours - 12;\r\n } else {\r\n this.currentHour = (hours == 0) ? 12 : hours;\r\n }\r\n } else {\r\n this.currentHour = hours;\r\n }\r\n }\r\n\r\n selectDate(dateMeta: any) {\r\n let date = new Date(dateMeta.year, dateMeta.month, dateMeta.day);\r\n\r\n if(this.showTime) {\r\n if(this.hourFormat == '12') {\r\n if(this.currentHour === 12)\r\n date.setHours(this.pm ? 12 : 0);\r\n else\r\n date.setHours(this.pm ? this.currentHour + 12 : this.currentHour);\r\n } else {\r\n date.setHours(this.currentHour);\r\n }\r\n\r\n date.setMinutes(this.currentMinute);\r\n date.setSeconds(this.currentSecond);\r\n }\r\n\r\n if(this.minDate && this.minDate > date) {\r\n date = this.minDate;\r\n this.setCurrentHourPM(date.getHours());\r\n this.currentMinute = date.getMinutes();\r\n this.currentSecond = date.getSeconds();\r\n }\r\n\r\n if(this.maxDate && this.maxDate < date) {\r\n date = this.maxDate;\r\n this.setCurrentHourPM(date.getHours());\r\n this.currentMinute = date.getMinutes();\r\n this.currentSecond = date.getSeconds();\r\n }\r\n\r\n if(this.isSingleSelection()) {\r\n this.updateModel(date);\r\n } else if(this.isMultipleSelection()) {\r\n this.updateModel(this.value ? [...this.value, date] : [date]);\r\n } else if(this.isRangeSelection()) {\r\n if(this.value && this.value.length) {\r\n let startDate = this.value[0];\r\n let endDate = this.value[1];\r\n\r\n if(!endDate && date.getTime() >= startDate.getTime()) {\r\n endDate = date;\r\n } else {\r\n startDate = date;\r\n endDate = null;\r\n }\r\n\r\n this.updateModel([startDate, endDate]);\r\n } else {\r\n this.updateModel([date, null]);\r\n }\r\n }\r\n\r\n this.onSelect.emit(date);\r\n }\r\n\r\n updateModel(value: any) {\r\n this.value = value;\r\n\r\n if(this.dataType == 'date') {\r\n this.onModelChange(this.value);\r\n } else if(this.dataType == 'string') {\r\n if(this.isSingleSelection()) {\r\n this.onModelChange(this.formatDateTime(this.value));\r\n } else {\r\n let stringArrValue = null;\r\n if(this.value) {\r\n stringArrValue = this.value.map((date: any) => this.formatDateTime(date));\r\n }\r\n this.onModelChange(stringArrValue);\r\n }\r\n }\r\n }\r\n\r\n getFirstDayOfMonthIndex(month: number, year: number) {\r\n let day = new Date();\r\n day.setDate(1);\r\n day.setMonth(month);\r\n day.setFullYear(year);\r\n\r\n let dayIndex = day.getDay() + this.getSundayIndex();\r\n return dayIndex >= 7 ? dayIndex - 7 : dayIndex;\r\n }\r\n\r\n getDaysCountInMonth(month: number, year: number) {\r\n return 32 - this.daylightSavingAdjust(new Date(year, month, 32)).getDate();\r\n }\r\n\r\n getDaysCountInPrevMonth(month: number, year: number) {\r\n let prev = this.getPreviousMonthAndYear(month, year);\r\n return this.getDaysCountInMonth(prev.month, prev.year);\r\n }\r\n\r\n getPreviousMonthAndYear(month: number, year: number) {\r\n let m, y;\r\n\r\n if(month === 0) {\r\n m = 11;\r\n y = year - 1;\r\n } else {\r\n m = month - 1;\r\n y = year;\r\n }\r\n\r\n return {'month': m, 'year': y};\r\n }\r\n\r\n getNextMonthAndYear(month: number, year: number) {\r\n let m, y;\r\n\r\n if(month === 11) {\r\n m = 0;\r\n y = year + 1;\r\n } else {\r\n m = month + 1;\r\n y = year;\r\n }\r\n\r\n return {'month': m, 'year': y};\r\n }\r\n\r\n getSundayIndex() {\r\n let firstDayOfWeek = this.locale.firstDayOfWeek ? this.locale.firstDayOfWeek : 0;\r\n\r\n return firstDayOfWeek > 0 ? 7 - firstDayOfWeek : 0;\r\n }\r\n\r\n isSelected(dateMeta: any): boolean {\r\n if(this.value) {\r\n if(this.isSingleSelection()) {\r\n return this.isDateEquals(this.value, dateMeta);\r\n } else if(this.isMultipleSelection()) {\r\n let selected = false;\r\n for(let date of this.value) {\r\n selected = this.isDateEquals(date, dateMeta);\r\n if(selected) {\r\n break;\r\n }\r\n }\r\n\r\n return selected;\r\n } else if(this.isRangeSelection()) {\r\n if(this.value[1])\r\n return this.isDateEquals(this.value[0], dateMeta) || this.isDateEquals(this.value[1], dateMeta) || this.isDateBetween(this.value[0], this.value[1], dateMeta);\r\n else\r\n return this.isDateEquals(this.value[0], dateMeta)\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isMonthSelected(month: number): boolean {\r\n let day = this.value ? (Array.isArray(this.value) ? this.value[0].getDate() : this.value.getDate()) : 1;\r\n return this.isSelected({year: this.currentYear, month: month, day: day, selectable: true});\r\n }\r\n\r\n isDateEquals(value: any, dateMeta: any) {\r\n if(value)\r\n return value.getDate() === dateMeta.day && value.getMonth() === dateMeta.month && value.getFullYear() === dateMeta.year;\r\n else\r\n return false;\r\n }\r\n\r\n isDateBetween(start: any, end: any, dateMeta: any) {\r\n let between: boolean = false;\r\n if(start && end) {\r\n let date: Date = new Date(dateMeta.year, dateMeta.month, dateMeta.day);\r\n return start.getTime() <= date.getTime() && end.getTime() >= date.getTime();\r\n }\r\n\r\n return between;\r\n }\r\n\r\n isSingleSelection(): boolean {\r\n return this.selectionMode === 'single';\r\n }\r\n\r\n isRangeSelection(): boolean {\r\n return this.selectionMode === 'range';\r\n }\r\n\r\n isMultipleSelection(): boolean {\r\n return this.selectionMode === 'multiple';\r\n }\r\n\r\n isToday(today: any, day: any, month: any, year: any): boolean {\r\n return today.getDate() === day && today.getMonth() === month && today.getFullYear() === year;\r\n }\r\n\r\n isSelectable(day: any, month: any, year: any, otherMonth: any): boolean {\r\n let validMin = true;\r\n let validMax = true;\r\n let validDate = true;\r\n let validDay = true;\r\n\r\n if(otherMonth && !this.selectOtherMonths) {\r\n return false;\r\n }\r\n\r\n if(this.minDate) {\r\n if(this.minDate.getFullYear() > year) {\r\n validMin = false;\r\n } else if(this.minDate.getFullYear() === year) {\r\n if(this.minDate.getMonth() > month) {\r\n validMin = false;\r\n } else if(this.minDate.getMonth() === month) {\r\n if(this.minDate.getDate() > day) {\r\n validMin = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(this.maxDate) {\r\n if(this.maxDate.getFullYear() < year) {\r\n validMax = false;\r\n } else if(this.maxDate.getFullYear() === year) {\r\n if(this.maxDate.getMonth() < month) {\r\n validMax = false;\r\n } else if(this.maxDate.getMonth() === month) {\r\n if(this.maxDate.getDate() < day) {\r\n validMax = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(this.disabledDates) {\r\n validDate = !this.isDateDisabled(day, month, year);\r\n }\r\n\r\n if(this.disabledDays) {\r\n validDay = !this.isDayDisabled(day, month, year)\r\n }\r\n\r\n return validMin && validMax && validDate && validDay;\r\n }\r\n\r\n isDateDisabled(day: number, month: number, year: number): boolean {\r\n if(this.disabledDates) {\r\n for(let disabledDate of this.disabledDates) {\r\n if(disabledDate.getFullYear() === year && disabledDate.getMonth() === month && disabledDate.getDate() === day) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isDayDisabled(day: number, month: number, year: number): boolean {\r\n if(this.disabledDays) {\r\n let weekday = new Date(year, month, day);\r\n let weekdayNumber = weekday.getDay();\r\n return this.disabledDays.indexOf(weekdayNumber) !== -1;\r\n }\r\n return false;\r\n }\r\n\r\n onInputFocus(event: Event) {\r\n this.focus = true;\r\n if(this.showOnFocus) {\r\n this.showOverlay();\r\n }\r\n this.onFocus.emit(event);\r\n }\r\n\r\n onInputClick() {\r\n if(this.overlay && this.autoZIndex) {\r\n this.overlay.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\r\n }\r\n\r\n if(this.showOnFocus && !this.overlayVisible) {\r\n this.showOverlay();\r\n }\r\n }\r\n\r\n onInputBlur(event: Event) {\r\n this.focus = false;\r\n this.onBlur.emit(event);\r\n if(!this.keepInvalid) {\r\n this.updateInputfield();\r\n }\r\n this.onModelTouched();\r\n }\r\n\r\n onButtonClick(event: any, inputfield: any) {\r\n if(!this.overlayVisible) {\r\n inputfield.focus();\r\n this.showOverlay();\r\n } else {\r\n this.hideOverlay();\r\n }\r\n }\r\n\r\n onPrevButtonClick(event: any) {\r\n this.navigationState = {backward: true, button: true};\r\n this.navBackward(event);\r\n }\r\n\r\n onNextButtonClick(event: any) {\r\n this.navigationState = {backward: false, button: true};\r\n this.navForward(event);\r\n }\r\n\r\n onContainerButtonKeydown(event: any) {\r\n switch(event.which) {\r\n //tab\r\n case 9:\r\n if(!this.inline) {\r\n this.trapFocus(event);\r\n }\r\n break;\r\n\r\n //escape\r\n case 27:\r\n this.overlayVisible = false;\r\n event.preventDefault();\r\n break;\r\n\r\n default:\r\n //Noop\r\n break;\r\n }\r\n }\r\n\r\n onInputKeydown(event: any) {\r\n this.isKeydown = true;\r\n if(event.keyCode === 9 && this.contentViewChild) {\r\n this.trapFocus(event);\r\n } else if(event.keyCode === 27) {\r\n if(this.overlayVisible) {\r\n this.overlayVisible = false;\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n onDateCellKeydown(event: any, date: any, groupIndex: any) {\r\n const cellContent = event.currentTarget;\r\n const cell = cellContent.parentElement;\r\n\r\n switch(event.which) {\r\n //down arrow\r\n case 40: {\r\n cellContent.tabIndex = '-1';\r\n let cellIndex = DomHandler.index(cell);\r\n let nextRow = cell.parentElement.nextElementSibling;\r\n if(nextRow) {\r\n let focusCell = nextRow.children[cellIndex].children[0];\r\n if(DomHandler.hasClass(focusCell, 'ui-state-disabled')) {\r\n this.navigationState = {backward: false};\r\n this.navForward(event);\r\n } else {\r\n nextRow.children[cellIndex].children[0].tabIndex = '0';\r\n nextRow.children[cellIndex].children[0].focus();\r\n }\r\n } else {\r\n this.navigationState = {backward: false};\r\n this.navForward(event);\r\n }\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //up arrow\r\n case 38: {\r\n cellContent.tabIndex = '-1';\r\n let cellIndex = DomHandler.index(cell);\r\n let prevRow = cell.parentElement.previousElementSibling;\r\n if(prevRow) {\r\n let focusCell = prevRow.children[cellIndex].children[0];\r\n if(DomHandler.hasClass(focusCell, 'ui-state-disabled')) {\r\n this.navigationState = {backward: true};\r\n this.navBackward(event);\r\n } else {\r\n focusCell.tabIndex = '0';\r\n focusCell.focus();\r\n }\r\n } else {\r\n this.navigationState = {backward: true};\r\n this.navBackward(event);\r\n }\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //left arrow\r\n case 37: {\r\n cellContent.tabIndex = '-1';\r\n let prevCell = cell.previousElementSibling;\r\n if(prevCell) {\r\n let focusCell = prevCell.children[0];\r\n if(DomHandler.hasClass(focusCell, 'ui-state-disabled') || DomHandler.hasClass(focusCell.parentElement, 'ui-datepicker-weeknumber')) {\r\n this.navigateToMonth(true, groupIndex);\r\n } else {\r\n focusCell.tabIndex = '0';\r\n focusCell.focus();\r\n }\r\n } else {\r\n this.navigateToMonth(true, groupIndex);\r\n }\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //right arrow\r\n case 39: {\r\n cellContent.tabIndex = '-1';\r\n let nextCell = cell.nextElementSibling;\r\n if(nextCell) {\r\n let focusCell = nextCell.children[0];\r\n if(DomHandler.hasClass(focusCell, 'ui-state-disabled')) {\r\n this.navigateToMonth(false, groupIndex);\r\n } else {\r\n focusCell.tabIndex = '0';\r\n focusCell.focus();\r\n }\r\n } else {\r\n this.navigateToMonth(false, groupIndex);\r\n }\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //enter\r\n case 13: {\r\n this.onDateSelect(event, date);\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //escape\r\n case 27: {\r\n this.overlayVisible = false;\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //tab\r\n case 9: {\r\n if(!this.inline) {\r\n this.trapFocus(event);\r\n }\r\n break;\r\n }\r\n\r\n default:\r\n //no op\r\n break;\r\n }\r\n }\r\n\r\n onMonthCellKeydown(event: any, index: any) {\r\n const cell = event.currentTarget;\r\n switch(event.which) {\r\n //arrows\r\n case 38:\r\n case 40: {\r\n cell.tabIndex = '-1';\r\n var cells = cell.parentElement.children;\r\n var cellIndex = DomHandler.index(cell);\r\n let nextCell = cells[event.which === 40 ? cellIndex + 3 : cellIndex - 3];\r\n if(nextCell) {\r\n nextCell.tabIndex = '0';\r\n nextCell.focus();\r\n }\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //left arrow\r\n case 37: {\r\n cell.tabIndex = '-1';\r\n let prevCell = cell.previousElementSibling;\r\n if(prevCell) {\r\n prevCell.tabIndex = '0';\r\n prevCell.focus();\r\n }\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //right arrow\r\n case 39: {\r\n cell.tabIndex = '-1';\r\n let nextCell = cell.nextElementSibling;\r\n if(nextCell) {\r\n nextCell.tabIndex = '0';\r\n nextCell.focus();\r\n }\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //enter\r\n case 13: {\r\n this.onMonthSelect(event, index);\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //escape\r\n case 27: {\r\n this.overlayVisible = false;\r\n event.preventDefault();\r\n break;\r\n }\r\n\r\n //tab\r\n case 9: {\r\n if(!this.inline) {\r\n this.trapFocus(event);\r\n }\r\n break;\r\n }\r\n\r\n default:\r\n //no op\r\n break;\r\n }\r\n }\r\n\r\n navigateToMonth(prev: any, groupIndex: any) {\r\n if(prev) {\r\n if(this.numberOfMonths === 1 || (groupIndex === 0)) {\r\n this.navigationState = {backward: true};\r\n this.navBackward(event);\r\n } else {\r\n let prevMonthContainer = this.contentViewChild.nativeElement.children[groupIndex - 1];\r\n let cells = DomHandler.find(prevMonthContainer, '.ui-datepicker-calendar td a');\r\n let focusCell = cells[cells.length - 1];\r\n focusCell.tabIndex = '0';\r\n focusCell.focus();\r\n }\r\n } else {\r\n if(this.numberOfMonths === 1 || (groupIndex === this.numberOfMonths - 1)) {\r\n this.navigationState = {backward: false};\r\n this.navForward(event);\r\n } else {\r\n let nextMonthContainer = this.contentViewChild.nativeElement.children[groupIndex + 1];\r\n let focusCell = DomHandler.findSingle(nextMonthContainer, '.ui-datepicker-calendar td a');\r\n focusCell.tabIndex = '0';\r\n focusCell.focus();\r\n }\r\n }\r\n }\r\n\r\n updateFocus() {\r\n let cell;\r\n if(this.navigationState) {\r\n if(this.navigationState.button) {\r\n this.initFocusableCell();\r\n\r\n if(this.navigationState.backward)\r\n DomHandler.findSingle(this.contentViewChild.nativeElement, '.ui-datepicker-prev').focus();\r\n else\r\n DomHandler.findSingle(this.contentViewChild.nativeElement, '.ui-datepicker-next').focus();\r\n } else {\r\n if(this.navigationState.backward) {\r\n let cells = DomHandler.find(this.contentViewChild.nativeElement, '.ui-datepicker-calendar td a');\r\n cell = cells[cells.length - 1];\r\n } else {\r\n cell = DomHandler.findSingle(this.contentViewChild.nativeElement, '.ui-datepicker-calendar td a');\r\n }\r\n\r\n if(cell) {\r\n cell.tabIndex = '0';\r\n cell.focus();\r\n }\r\n }\r\n\r\n this.navigationState = null;\r\n } else {\r\n this.initFocusableCell();\r\n }\r\n }\r\n\r\n initFocusableCell() {\r\n let cell;\r\n if(this.view === 'month') {\r\n let cells = DomHandler.find(this.contentViewChild.nativeElement, '.ui-monthpicker .ui-monthpicker-month:not(.ui-state-disabled)');\r\n let selectedCell = DomHandler.findSingle(this.contentViewChild.nativeElement, '.ui-monthpicker .ui-monthpicker-month.ui-state-highlight');\r\n cells.forEach(cell => cell.tabIndex = -1);\r\n cell = selectedCell || cells[0];\r\n\r\n if(cells.length === 0) {\r\n let disabledCells = DomHandler.find(this.contentViewChild.nativeElement, '.ui-monthpicker .ui-monthpicker-month.ui-state-disabled[tabindex = \"0\"]');\r\n disabledCells.forEach(cell => cell.tabIndex = -1);\r\n }\r\n } else {\r\n cell = DomHandler.findSingle(this.contentViewChild.nativeElement, 'a.ui-state-active');\r\n if(!cell) {\r\n let todayCell = DomHandler.findSingle(this.contentViewChild.nativeElement, 'td.ui-datepicker-today a:not(.ui-state-disabled)');\r\n if(todayCell)\r\n cell = todayCell;\r\n else\r\n cell = DomHandler.findSingle(this.contentViewChild.nativeElement, '.ui-datepicker-calendar td a');\r\n }\r\n }\r\n\r\n if(cell) {\r\n cell.tabIndex = '0';\r\n }\r\n }\r\n\r\n trapFocus(event: any) {\r\n event.preventDefault();\r\n let focusableElements = DomHandler.getFocusableElements(this.contentViewChild.nativeElement);\r\n\r\n if(focusableElements && focusableElements.length > 0) {\r\n if(!document.activeElement) {\r\n focusableElements[0].focus();\r\n } else {\r\n let focusedIndex = focusableElements.indexOf(document.activeElement);\r\n\r\n if(event.shiftKey) {\r\n if(focusedIndex == -1 || focusedIndex === 0)\r\n focusableElements[focusableElements.length - 1].focus();\r\n else\r\n focusableElements[focusedIndex - 1].focus();\r\n } else {\r\n if(focusedIndex == -1 || focusedIndex === (focusableElements.length - 1))\r\n focusableElements[0].focus();\r\n else\r\n focusableElements[focusedIndex + 1].focus();\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMonthDropdownChange(m: string) {\r\n this.currentMonth = parseInt(m);\r\n this.onMonthChange.emit({month: this.currentMonth + 1, year: this.currentYear});\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n }\r\n\r\n onYearDropdownChange(y: string) {\r\n this.currentYear = parseInt(y);\r\n this.onYearChange.emit({month: this.currentMonth + 1, year: this.currentYear});\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n }\r\n\r\n convertTo24Hour = function(hours: number, pm: boolean) {\r\n if(this.hourFormat == '12') {\r\n if(hours === 12) {\r\n return (pm ? 12 : 0);\r\n } else {\r\n return (pm ? hours + 12 : hours);\r\n }\r\n }\r\n return hours;\r\n }\r\n\r\n validateTime(hour: number, minute: number, second: number, pm: boolean) {\r\n let value = this.value;\r\n const convertedHour = this.convertTo24Hour(hour, pm);\r\n if(this.isRangeSelection()) {\r\n value = this.value[1] || this.value[0];\r\n }\r\n if(this.isMultipleSelection()) {\r\n value = this.value[this.value.length - 1];\r\n }\r\n const valueDateString = value ? value.toDateString() : null;\r\n if(this.minDate && valueDateString && this.minDate.toDateString() === valueDateString) {\r\n if(this.minDate.getHours() > convertedHour) {\r\n return false;\r\n }\r\n if(this.minDate.getHours() === convertedHour) {\r\n if(this.minDate.getMinutes() > minute) {\r\n return false;\r\n }\r\n if(this.minDate.getMinutes() === minute) {\r\n if(this.minDate.getSeconds() > second) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(this.maxDate && valueDateString && this.maxDate.toDateString() === valueDateString) {\r\n if(this.maxDate.getHours() < convertedHour) {\r\n return false;\r\n }\r\n if(this.maxDate.getHours() === convertedHour) {\r\n if(this.maxDate.getMinutes() < minute) {\r\n return false;\r\n }\r\n if(this.maxDate.getMinutes() === minute) {\r\n if(this.maxDate.getSeconds() < second) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n\r\n incrementHour(event: any) {\r\n const prevHour = this.currentHour;\r\n let newHour = this.currentHour + this.stepHour;\r\n let newPM = this.pm;\r\n\r\n if(this.hourFormat == '24')\r\n newHour = (newHour >= 24) ? (newHour - 24) : newHour;\r\n else if(this.hourFormat == '12') {\r\n // Before the AM/PM break, now after\r\n if(prevHour < 12 && newHour > 11) {\r\n newPM = !this.pm;\r\n }\r\n newHour = (newHour >= 13) ? (newHour - 12) : newHour;\r\n }\r\n\r\n if(this.validateTime(newHour, this.currentMinute, this.currentSecond, newPM)) {\r\n this.currentHour = newHour;\r\n this.pm = newPM;\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n onTimePickerElementMouseDown(event: Event, type: number, direction: number) {\r\n if(!this.disabled) {\r\n this.repeat(event, null, type, direction);\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n onTimePickerElementMouseUp(event: Event) {\r\n if(!this.disabled) {\r\n this.clearTimePickerTimer();\r\n this.updateTime();\r\n }\r\n }\r\n\r\n onTimePickerElementMouseOut(event: Event) {\r\n if(!this.disabled && this.timePickerTimer) {\r\n this.clearTimePickerTimer();\r\n this.updateTime();\r\n }\r\n }\r\n\r\n repeat(event: Event, interval: number | null, type: number, direction: number) {\r\n let i = interval || 500;\r\n\r\n this.clearTimePickerTimer();\r\n this.timePickerTimer = setTimeout(() => {\r\n this.repeat(event, 100, type, direction);\r\n }, i);\r\n\r\n switch(type) {\r\n case 0:\r\n if(direction === 1)\r\n this.incrementHour(event);\r\n else\r\n this.decrementHour(event);\r\n break;\r\n\r\n case 1:\r\n if(direction === 1)\r\n this.incrementMinute(event);\r\n else\r\n this.decrementMinute(event);\r\n break;\r\n\r\n case 2:\r\n if(direction === 1)\r\n this.incrementSecond(event);\r\n else\r\n this.decrementSecond(event);\r\n break;\r\n }\r\n\r\n this.updateInputfield();\r\n }\r\n\r\n clearTimePickerTimer() {\r\n if(this.timePickerTimer) {\r\n clearTimeout(this.timePickerTimer);\r\n }\r\n }\r\n\r\n decrementHour(event: any) {\r\n let newHour = this.currentHour - this.stepHour;\r\n let newPM = this.pm\r\n\r\n if(this.hourFormat == '24')\r\n newHour = (newHour < 0) ? (24 + newHour) : newHour;\r\n else if(this.hourFormat == '12') {\r\n // If we were at noon/midnight, then switch\r\n if(this.currentHour === 12) {\r\n newPM = !this.pm;\r\n }\r\n newHour = (newHour <= 0) ? (12 + newHour) : newHour;\r\n }\r\n\r\n if(this.validateTime(newHour, this.currentMinute, this.currentSecond, newPM)) {\r\n this.currentHour = newHour;\r\n this.pm = newPM;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n incrementMinute(event: any) {\r\n let newMinute = this.currentMinute + this.stepMinute;\r\n newMinute = (newMinute > 59) ? newMinute - 60 : newMinute;\r\n if(this.validateTime(this.currentHour, newMinute, this.currentSecond, this.pm)) {\r\n this.currentMinute = newMinute;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n decrementMinute(event: any) {\r\n let newMinute = this.currentMinute - this.stepMinute;\r\n newMinute = (newMinute < 0) ? 60 + newMinute : newMinute;\r\n if(this.validateTime(this.currentHour, newMinute, this.currentSecond, this.pm)) {\r\n this.currentMinute = newMinute;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n incrementSecond(event: any) {\r\n let newSecond = this.currentSecond + this.stepSecond;\r\n newSecond = (newSecond > 59) ? newSecond - 60 : newSecond;\r\n if(this.validateTime(this.currentHour, this.currentMinute, newSecond, this.pm)) {\r\n this.currentSecond = newSecond;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n decrementSecond(event: any) {\r\n let newSecond = this.currentSecond - this.stepSecond;\r\n newSecond = (newSecond < 0) ? 60 + newSecond : newSecond;\r\n if(this.validateTime(this.currentHour, this.currentMinute, newSecond, this.pm)) {\r\n this.currentSecond = newSecond;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n updateTime() {\r\n let value = this.value;\r\n if(this.isRangeSelection()) {\r\n value = this.value[1] || this.value[0];\r\n }\r\n if(this.isMultipleSelection()) {\r\n value = this.value[this.value.length - 1];\r\n }\r\n value = value ? new Date(value.getTime()) : new Date();\r\n\r\n if(this.hourFormat == '12') {\r\n if(this.currentHour === 12)\r\n value.setHours(this.pm ? 12 : 0);\r\n else\r\n value.setHours(this.pm ? this.currentHour + 12 : this.currentHour);\r\n } else {\r\n value.setHours(this.currentHour);\r\n }\r\n\r\n value.setMinutes(this.currentMinute);\r\n value.setSeconds(this.currentSecond);\r\n if(this.isRangeSelection()) {\r\n if(this.value[1])\r\n value = [this.value[0], value];\r\n else\r\n value = [value, null];\r\n }\r\n\r\n if(this.isMultipleSelection()) {\r\n value = [...this.value.slice(0, -1), value];\r\n }\r\n\r\n this.updateModel(value);\r\n this.onSelect.emit(value);\r\n this.updateInputfield();\r\n }\r\n\r\n toggleAMPM(event: any) {\r\n const newPM = !this.pm;\r\n if(this.validateTime(this.currentHour, this.currentMinute, this.currentSecond, newPM)) {\r\n this.pm = newPM;\r\n this.updateTime();\r\n }\r\n event.preventDefault();\r\n }\r\n\r\n onUserInput(event: any) {\r\n // IE 11 Workaround for input placeholder : https://github.com/primefaces/primeng/issues/2026\r\n if(!this.isKeydown) {\r\n return;\r\n }\r\n this.isKeydown = false;\r\n\r\n let val = event.target.value;\r\n try {\r\n let value = this.parseValueFromString(val);\r\n if(this.isValidSelection(value)) {\r\n this.updateModel(value);\r\n this.updateUI();\r\n }\r\n } catch(err) {\r\n //invalid date\r\n this.updateModel(null);\r\n }\r\n\r\n this.filled = val != null && val.length;\r\n this.onInput.emit(event);\r\n }\r\n\r\n isValidSelection(value: any): boolean {\r\n let isValid = true;\r\n if(this.isSingleSelection()) {\r\n if(!this.isSelectable(value.getDate(), value.getMonth(), value.getFullYear(), false)) {\r\n isValid = false;\r\n }\r\n } else if(value.every((v: any) => this.isSelectable(v.getDate(), v.getMonth(), v.getFullYear(), false))) {\r\n if(this.isRangeSelection()) {\r\n isValid = value.length > 1 && value[1] > value[0] ? true : false;\r\n }\r\n }\r\n return isValid;\r\n }\r\n\r\n parseValueFromString(text: string): Date | Date[] | null {\r\n if(!text || text.trim().length === 0) {\r\n return null;\r\n }\r\n\r\n let value: any;\r\n\r\n if(this.isSingleSelection()) {\r\n value = this.parseDateTime(text);\r\n } else if(this.isMultipleSelection()) {\r\n let tokens = text.split(this.multipleSeparator);\r\n value = [];\r\n for(let token of tokens) {\r\n value.push(this.parseDateTime(token.trim()));\r\n }\r\n } else if(this.isRangeSelection()) {\r\n let tokens = text.split(' ' + this.rangeSeparator + ' ');\r\n value = [];\r\n for(let i = 0; i < tokens.length; i++) {\r\n value[i] = this.parseDateTime(tokens[i].trim());\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n parseDateTime(text: any): Date {\r\n let date: Date;\r\n let parts: string[] = text.split(' ');\r\n\r\n if(this.timeOnly) {\r\n date = new Date();\r\n this.populateTime(date, parts[0], parts[1]);\r\n } else {\r\n const dateFormat = this.getDateFormat();\r\n if(this.showTime) {\r\n let ampm = this.hourFormat == '12' ? parts.pop() : null;\r\n let timeString = parts.pop();\r\n\r\n date = this.parseDate(parts.join(' '), dateFormat);\r\n this.populateTime(date, timeString, ampm);\r\n } else {\r\n date = this.parseDate(text, dateFormat);\r\n }\r\n }\r\n\r\n return date;\r\n }\r\n\r\n populateTime(value: any, timeString: any, ampm: any) {\r\n if(this.hourFormat == '12' && !ampm) {\r\n throw 'Invalid Time';\r\n }\r\n\r\n this.pm = (ampm === 'PM' || ampm === 'pm');\r\n let time = this.parseTime(timeString);\r\n value.setHours(time.hour);\r\n value.setMinutes(time.minute);\r\n value.setSeconds(time.second);\r\n }\r\n\r\n updateUI() {\r\n let val = this.value || this.defaultDate || new Date();\r\n if(Array.isArray(val)) {\r\n val = val[0];\r\n }\r\n\r\n this.currentMonth = val.getMonth();\r\n this.currentYear = val.getFullYear();\r\n this.createMonths(this.currentMonth, this.currentYear);\r\n\r\n if(this.showTime || this.timeOnly) {\r\n this.setCurrentHourPM(val.getHours());\r\n this.currentMinute = val.getMinutes();\r\n this.currentSecond = val.getSeconds();\r\n }\r\n }\r\n\r\n showOverlay() {\r\n if(!this.overlayVisible) {\r\n this.updateUI();\r\n this.overlayVisible = true;\r\n }\r\n }\r\n\r\n hideOverlay() {\r\n this.overlayVisible = false;\r\n this.clearTimePickerTimer();\r\n\r\n if(this.touchUI) {\r\n this.disableModality();\r\n }\r\n }\r\n\r\n toggle() {\r\n if(!this.inline) {\r\n if(!this.overlayVisible) {\r\n this.showOverlay();\r\n this.inputfieldViewChild.nativeElement.focus();\r\n } else {\r\n this.hideOverlay();\r\n }\r\n }\r\n }\r\n\r\n onOverlayAnimationStart(event: AnimationEvent) {\r\n switch(event.toState) {\r\n case 'visible':\r\n case 'visibleTouchUI':\r\n if(!this.inline) {\r\n this.overlay = event.element;\r\n this.appendOverlay();\r\n if(this.autoZIndex) {\r\n this.overlay.style.zIndex = String(this.baseZIndex + (++DomHandler.zindex));\r\n }\r\n this.alignOverlay();\r\n this.onShow.emit(event);\r\n }\r\n break;\r\n\r\n case 'void':\r\n this.onOverlayHide();\r\n this.onClose.emit(event);\r\n break;\r\n }\r\n }\r\n\r\n onOverlayAnimationDone(event: AnimationEvent) {\r\n switch(event.toState) {\r\n case 'visible':\r\n case 'visibleTouchUI':\r\n if(!this.inline) {\r\n this.bindDocumentClickListener();\r\n this.bindDocumentResizeListener();\r\n }\r\n break;\r\n }\r\n }\r\n\r\n appendOverlay() {\r\n if(this.appendTo) {\r\n if(this.appendTo === 'body')\r\n document.body.appendChild(this.overlay);\r\n else\r\n DomHandler.appendChild(this.overlay, this.appendTo);\r\n }\r\n }\r\n\r\n restoreOverlayAppend() {\r\n if(this.overlay && this.appendTo) {\r\n this.el.nativeElement.appendChild(this.overlay);\r\n }\r\n }\r\n\r\n alignOverlay() {\r\n if(this.touchUI) {\r\n this.enableModality(this.overlay);\r\n } else {\r\n if(this.appendTo)\r\n DomHandler.absolutePosition(this.overlay, this.inputfieldViewChild.nativeElement);\r\n else\r\n DomHandler.relativePosition(this.overlay, this.inputfieldViewChild.nativeElement);\r\n }\r\n }\r\n\r\n enableModality(element: any) {\r\n if(!this.mask) {\r\n this.mask = document.createElement('div');\r\n this.mask.style.zIndex = String(parseInt(element.style.zIndex) - 1);\r\n let maskStyleClass = 'ui-widget-overlay ui-datepicker-mask ui-datepicker-mask-scrollblocker';\r\n DomHandler.addMultipleClasses(this.mask, maskStyleClass);\r\n\r\n this.maskClickListener = this.renderer.listen(this.mask, 'click', (event: any) => {\r\n this.disableModality();\r\n });\r\n document.body.appendChild(this.mask);\r\n DomHandler.addClass(document.body, 'ui-overflow-hidden');\r\n }\r\n }\r\n\r\n disableModality() {\r\n if(this.mask) {\r\n document.body.removeChild(this.mask);\r\n let bodyChildren = document.body.children;\r\n let hasBlockerMasks: boolean = false;\r\n for(let i = 0; i < bodyChildren.length; i++) {\r\n let bodyChild = bodyChildren[i];\r\n if(DomHandler.hasClass(bodyChild, 'ui-datepicker-mask-scrollblocker')) {\r\n hasBlockerMasks = true;\r\n break;\r\n }\r\n }\r\n\r\n if(!hasBlockerMasks) {\r\n DomHandler.removeClass(document.body, 'ui-overflow-hidden');\r\n }\r\n\r\n this.unbindMaskClickListener();\r\n\r\n // @ts-ignore\r\n this.mask = null;\r\n }\r\n }\r\n\r\n unbindMaskClickListener() {\r\n if(this.maskClickListener) {\r\n this.maskClickListener();\r\n // @ts-ignore\r\n this.maskClickListener = null;\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n if(this.value && typeof this.value === 'string') {\r\n this.value = this.parseValueFromString(this.value);\r\n }\r\n\r\n this.updateInputfield();\r\n this.updateUI();\r\n }\r\n\r\n registerOnChange(fn: Function): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: Function): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState(val: boolean): void {\r\n this.disabled = val;\r\n }\r\n\r\n getDateFormat() {\r\n return this.dateFormat || this.locale.dateFormat;\r\n }\r\n\r\n // Ported from jquery-ui datepicker formatDate\r\n formatDate(date: any, format: any) {\r\n if(!date) {\r\n return '';\r\n }\r\n\r\n let iFormat: number;\r\n const lookAhead = (match: any) => {\r\n const matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);\r\n if(matches) {\r\n iFormat++;\r\n }\r\n return matches;\r\n },\r\n formatNumber = (match: any, value: any, len: any) => {\r\n let num = '' + value;\r\n if(lookAhead(match)) {\r\n while(num.length < len) {\r\n num = '0' + num;\r\n }\r\n }\r\n return num;\r\n },\r\n formatName = (match: any, value: any, shortNames: any, longNames: any) => {\r\n return (lookAhead(match) ? longNames[value] : shortNames[value]);\r\n };\r\n let output = '';\r\n let literal = false;\r\n\r\n if(date) {\r\n for(iFormat = 0; iFormat < format.length; iFormat++) {\r\n if(literal) {\r\n if(format.charAt(iFormat) === '\\'' && !lookAhead('\\'')) {\r\n literal = false;\r\n } else {\r\n output += format.charAt(iFormat);\r\n }\r\n } else {\r\n switch(format.charAt(iFormat)) {\r\n case 'd':\r\n output += formatNumber('d', date.getDate(), 2);\r\n break;\r\n case 'D':\r\n output += formatName('D', date.getDay(), this.locale.dayNamesShort, this.locale.dayNames);\r\n break;\r\n case 'o':\r\n output += formatNumber('o',\r\n Math.round((\r\n new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() -\r\n new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);\r\n break;\r\n case 'm':\r\n output += formatNumber('m', date.getMonth() + 1, 2);\r\n break;\r\n case 'M':\r\n output += formatName('M', date.getMonth(), this.locale.monthNamesShort, this.locale.monthNames);\r\n break;\r\n case 'y':\r\n output += lookAhead('y') ? date.getFullYear() : (date.getFullYear() % 100 < 10 ? '0' : '') + (date.getFullYear() % 100);\r\n break;\r\n case '@':\r\n output += date.getTime();\r\n break;\r\n case '!':\r\n output += date.getTime() * 10000 + this.ticksTo1970;\r\n break;\r\n case '\\'':\r\n if(lookAhead('\\'')) {\r\n output += '\\'';\r\n } else {\r\n literal = true;\r\n }\r\n break;\r\n default:\r\n output += format.charAt(iFormat);\r\n }\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n\r\n formatTime(date: any) {\r\n if(!date) {\r\n return '';\r\n }\r\n\r\n let output = '';\r\n let hours = date.getHours();\r\n let minutes = date.getMinutes();\r\n let seconds = date.getSeconds();\r\n\r\n if(this.hourFormat == '12' && hours > 11 && hours != 12) {\r\n hours -= 12;\r\n }\r\n\r\n if(this.hourFormat == '12') {\r\n output += hours === 0 ? 12 : (hours < 10) ? '0' + hours : hours;\r\n } else {\r\n output += (hours < 10) ? '0' + hours : hours;\r\n }\r\n output += ':';\r\n output += (minutes < 10) ? '0' + minutes : minutes;\r\n\r\n if(this.showSeconds) {\r\n output += ':';\r\n output += (seconds < 10) ? '0' + seconds : seconds;\r\n }\r\n\r\n if(this.hourFormat == '12') {\r\n output += date.getHours() > 11 ? ' PM' : ' AM';\r\n }\r\n\r\n return output;\r\n }\r\n\r\n parseTime(value: any) {\r\n let tokens: string[] = value.split(':');\r\n let validTokenLength = this.showSeconds ? 3 : 2;\r\n\r\n if(tokens.length !== validTokenLength) {\r\n throw \"Invalid time\";\r\n }\r\n\r\n let h = parseInt(tokens[0]);\r\n let m = parseInt(tokens[1]);\r\n let s = this.showSeconds ? parseInt(tokens[2]) : null;\r\n\r\n // @ts-ignore\r\n if(isNaN(h) || isNaN(m) || h > 23 || m > 59 || (this.hourFormat == '12' && h > 12) || (this.showSeconds && (isNaN(s) || s > 59))) {\r\n throw \"Invalid time\";\r\n } else {\r\n if(this.hourFormat == '12') {\r\n if(h !== 12 && this.pm) {\r\n h += 12;\r\n } else if(!this.pm && h === 12) {\r\n h -= 12;\r\n }\r\n }\r\n\r\n return {hour: h, minute: m, second: s};\r\n }\r\n }\r\n\r\n // Ported from jquery-ui datepicker parseDate\r\n parseDate(value: any, format: any) {\r\n if(format == null || value == null) {\r\n throw \"Invalid arguments\";\r\n }\r\n\r\n value = (typeof value === \"object\" ? value.toString() : value + \"\");\r\n if(value === \"\") {\r\n return null;\r\n }\r\n\r\n let iFormat: any, dim: any, extra: any,\r\n iValue = 0,\r\n shortYearCutoff = (typeof this.shortYearCutoff !== \"string\" ? this.shortYearCutoff : new Date().getFullYear() % 100 + parseInt(this.shortYearCutoff, 10)),\r\n year = -1,\r\n month = -1,\r\n day = -1,\r\n doy = -1,\r\n literal = false,\r\n date,\r\n lookAhead = (match: any) => {\r\n let matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match);\r\n if(matches) {\r\n iFormat++;\r\n }\r\n return matches;\r\n },\r\n getNumber = (match: any) => {\r\n let isDoubled = lookAhead(match),\r\n size = (match === \"@\" ? 14 : (match === \"!\" ? 20 :\r\n (match === \"y\" && isDoubled ? 4 : (match === \"o\" ? 3 : 2)))),\r\n minSize = (match === \"y\" ? size : 1),\r\n digits = new RegExp(\"^\\\\d{\" + minSize + \",\" + size + \"}\"),\r\n num = value.substring(iValue).match(digits);\r\n if(!num) {\r\n throw \"Missing number at position \" + iValue;\r\n }\r\n iValue += num[0].length;\r\n return parseInt(num[0], 10);\r\n },\r\n getName = (match: any, shortNames: any, longNames: any) => {\r\n let index = -1;\r\n let arr = lookAhead(match) ? longNames : shortNames;\r\n let names = [];\r\n\r\n for(let i = 0; i < arr.length; i++) {\r\n names.push([i, arr[i]]);\r\n }\r\n names.sort((a, b) => {\r\n return -(a[1].length - b[1].length);\r\n });\r\n\r\n for(let i = 0; i < names.length; i++) {\r\n let name = names[i][1];\r\n if(value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {\r\n index = names[i][0];\r\n iValue += name.length;\r\n break;\r\n }\r\n }\r\n\r\n if(index !== -1) {\r\n return index + 1;\r\n } else {\r\n throw \"Unknown name at position \" + iValue;\r\n }\r\n },\r\n checkLiteral = () => {\r\n if(value.charAt(iValue) !== format.charAt(iFormat)) {\r\n throw \"Unexpected literal at position \" + iValue;\r\n }\r\n iValue++;\r\n };\r\n\r\n if(this.view === 'month') {\r\n day = 1;\r\n }\r\n\r\n for(iFormat = 0; iFormat < format.length; iFormat++) {\r\n if(literal) {\r\n if(format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\r\n literal = false;\r\n } else {\r\n checkLiteral();\r\n }\r\n } else {\r\n switch(format.charAt(iFormat)) {\r\n case \"d\":\r\n day = getNumber(\"d\");\r\n break;\r\n case \"D\":\r\n getName(\"D\", this.locale.dayNamesShort, this.locale.dayNames);\r\n break;\r\n case \"o\":\r\n doy = getNumber(\"o\");\r\n break;\r\n case \"m\":\r\n month = getNumber(\"m\");\r\n break;\r\n case \"M\":\r\n month = getName(\"M\", this.locale.monthNamesShort, this.locale.monthNames);\r\n break;\r\n case \"y\":\r\n year = getNumber(\"y\");\r\n break;\r\n case \"@\":\r\n date = new Date(getNumber(\"@\"));\r\n year = date.getFullYear();\r\n month = date.getMonth() + 1;\r\n day = date.getDate();\r\n break;\r\n case \"!\":\r\n date = new Date((getNumber(\"!\") - this.ticksTo1970) / 10000);\r\n year = date.getFullYear();\r\n month = date.getMonth() + 1;\r\n day = date.getDate();\r\n break;\r\n case \"'\":\r\n if(lookAhead(\"'\")) {\r\n checkLiteral();\r\n } else {\r\n literal = true;\r\n }\r\n break;\r\n default:\r\n checkLiteral();\r\n }\r\n }\r\n }\r\n\r\n if(iValue < value.length) {\r\n extra = value.substr(iValue);\r\n if(!/^\\s+/.test(extra)) {\r\n throw \"Extra/unparsed characters found in date: \" + extra;\r\n }\r\n }\r\n\r\n if(year === -1) {\r\n year = new Date().getFullYear();\r\n } else if(year < 100) {\r\n year += new Date().getFullYear() - new Date().getFullYear() % 100 +\r\n (year <= shortYearCutoff ? 0 : -100);\r\n }\r\n\r\n if(doy > -1) {\r\n month = 1;\r\n day = doy;\r\n do {\r\n dim = this.getDaysCountInMonth(year, month - 1);\r\n if(day <= dim) {\r\n break;\r\n }\r\n month++;\r\n day -= dim;\r\n } while(true);\r\n }\r\n\r\n date = this.daylightSavingAdjust(new Date(year, month - 1, day));\r\n if(date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {\r\n throw \"Invalid date\"; // E.g. 31/02/00\r\n }\r\n\r\n return date;\r\n }\r\n\r\n daylightSavingAdjust(date: any) {\r\n if(!date) {\r\n return null;\r\n }\r\n\r\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\r\n\r\n return date;\r\n }\r\n\r\n updateFilledState() {\r\n // @ts-ignore\r\n this.filled = this.inputFieldValue && this.inputFieldValue != '';\r\n }\r\n\r\n onTodayButtonClick(event: any) {\r\n let date: Date = new Date();\r\n let dateMeta = {\r\n day: date.getDate(),\r\n month: date.getMonth(),\r\n year: date.getFullYear(),\r\n otherMonth: date.getMonth() !== this.currentMonth || date.getFullYear() !== this.currentYear,\r\n today: true,\r\n selectable: true\r\n };\r\n\r\n this.onDateSelect(event, dateMeta);\r\n this.onTodayClick.emit(event);\r\n }\r\n\r\n onClearButtonClick(event: any) {\r\n this.updateModel(null);\r\n this.updateInputfield();\r\n this.hideOverlay();\r\n this.onClearClick.emit(event);\r\n }\r\n\r\n bindDocumentClickListener() {\r\n if(!this.documentClickListener) {\r\n this.zone.runOutsideAngular(() => {\r\n this.documentClickListener = this.renderer.listen('document', 'click', (event) => {\r\n if(this.isOutsideClicked(event) && this.overlayVisible) {\r\n this.zone.run(() => {\r\n this.hideOverlay();\r\n this.onClickOutside.emit(event);\r\n\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n });\r\n });\r\n }\r\n }\r\n\r\n unbindDocumentClickListener() {\r\n if(this.documentClickListener) {\r\n this.documentClickListener();\r\n this.documentClickListener = null;\r\n }\r\n }\r\n\r\n bindDocumentResizeListener() {\r\n if(!this.documentResizeListener && !this.touchUI) {\r\n this.documentResizeListener = this.onWindowResize.bind(this);\r\n window.addEventListener('resize', this.documentResizeListener);\r\n }\r\n }\r\n\r\n unbindDocumentResizeListener() {\r\n if(this.documentResizeListener) {\r\n window.removeEventListener('resize', this.documentResizeListener);\r\n this.documentResizeListener = null;\r\n }\r\n }\r\n\r\n isOutsideClicked(event: Event) {\r\n return !(this.el.nativeElement.isSameNode(event.target) || this.isNavIconClicked(event) ||\r\n this.el.nativeElement.contains(event.target) || (this.overlay && this.overlay.contains(event.target)));\r\n }\r\n\r\n isNavIconClicked(event: Event) {\r\n return (DomHandler.hasClass(event.target, 'ui-datepicker-prev') || DomHandler.hasClass(event.target, 'ui-datepicker-prev-icon')\r\n || DomHandler.hasClass(event.target, 'ui-datepicker-next') || DomHandler.hasClass(event.target, 'ui-datepicker-next-icon'));\r\n }\r\n\r\n onWindowResize() {\r\n if(this.overlayVisible && !DomHandler.isAndroid()) {\r\n this.hideOverlay();\r\n }\r\n }\r\n\r\n onOverlayHide() {\r\n this.unbindDocumentClickListener();\r\n this.unbindMaskClickListener();\r\n this.unbindDocumentResizeListener();\r\n // @ts-ignore\r\n this.overlay = null;\r\n this.disableModality();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.clearTimePickerTimer();\r\n this.restoreOverlayAppend();\r\n this.onOverlayHide();\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [CommonModule, ButtonModule, SharedModule],\r\n exports: [Calendar, ButtonModule, SharedModule],\r\n declarations: [Calendar]\r\n})\r\nexport class CalendarModule {\r\n}\r\n","import {Component, OnDestroy, OnInit} from \"@angular/core\";\r\nimport {AuthService} from \"@slender/auth\";\r\nimport {AppStatus, AsyncTaskController} from \"@slender/foundation\";\r\nimport {MessageService} from \"primeng/api\";\r\nimport {DialogService} from \"primeng/dynamicdialog\";\r\nimport {Observable, Subject} from \"rxjs\";\r\nimport {switchMap, takeUntil} from \"rxjs/operators\";\r\nimport {PermissionConstants} from \"../../constants/permission.constants\";\r\nimport {PrimaryFilterController} from \"../../controllers\";\r\nimport {RateModel} from \"../../models/rate.model\";\r\nimport {ColumnDefinitionModel} from \"../../models/table/column-definition.model\";\r\nimport {ColumnFilterModel} from \"../../models/table/column-filter.model\";\r\nimport {TableStateModel} from \"../../models/table/table-state.model\";\r\nimport {RatesService} from \"../../services/rates.service\";\r\nimport {TableService} from \"../../services/table.service\";\r\n\r\n@Component({\r\n selector: \"rates-management\",\r\n templateUrl: \"rates-management.html\",\r\n styleUrls: [\"rates-management.css\"],\r\n providers: [DialogService, MessageService]\r\n})\r\nexport class RatesManagementComponent implements OnInit, OnDestroy {\r\n private _destroy$: Subject;\r\n\r\n public _loading: boolean;\r\n public _readOnlyVar: boolean;\r\n\r\n // Main Table\r\n public _availableColumns: ColumnDefinitionModel[];\r\n public _dataKey: string;\r\n public _tableData: RateModel[];\r\n public _tableLoading: boolean;\r\n public _tableState: TableStateModel;\r\n\r\n private _taskId: string;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _asyncTaskController: AsyncTaskController,\r\n private _dialogService: DialogService,\r\n private _filterController: PrimaryFilterController,\r\n private _messageService: MessageService,\r\n private _ratesService: RatesService,\r\n private _tableService: TableService,\r\n ) {\r\n this._destroy$ = new Subject();\r\n\r\n this._loading = true;\r\n this._tableLoading = true;\r\n\r\n this._readOnlyVar = _authService.hasPermission(PermissionConstants.readOnlyUser);\r\n\r\n this._tableData = [];\r\n\r\n this.setTable();\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._asyncTaskController.updateStatus(new AppStatus(\"info\", \"Ready\"));\r\n\r\n this.loadTableStates();\r\n\r\n this._filterController.filterObservable.pipe(\r\n takeUntil(this._destroy$),\r\n switchMap(filter =>\r\n this.loadTableData(filter.monthPicked)\r\n )\r\n ).subscribe();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if(this._taskId) {\r\n this._asyncTaskController.completeTask(this._taskId);\r\n }\r\n\r\n this._destroy$.next(true);\r\n this._destroy$.unsubscribe();\r\n }\r\n\r\n public saveState(state: TableStateModel): void {\r\n this._tableService.SaveTableStates(state).subscribe(obs => {\r\n if(!obs) {\r\n this._messageService.add({\r\n severity: \"warning\",\r\n summary: \"Table State\",\r\n detail: \"Failed to update table state.\"\r\n });\r\n }\r\n }, error => {\r\n this._messageService.add({severity: \"warning\", summary: \"Table State\", detail: \"Failed to update table state.\"});\r\n });\r\n }\r\n\r\n private loadTableData(monthPicked: Date): Observable {\r\n this._tableLoading = true;\r\n\r\n this._taskId = this._asyncTaskController.startTask(\"Loading rates\");\r\n\r\n this._ratesService.getRates(monthPicked).subscribe(obs => {\r\n if(this._tableLoading) {\r\n this._tableData = obs;\r\n }\r\n\r\n this._tableLoading = false;\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n }, error => {\r\n this._tableLoading = false;\r\n\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Load Data\",\r\n detail: \"Failed to load rates data.\"\r\n });\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n });\r\n\r\n return new Observable();\r\n }\r\n\r\n private loadTableStates(): void {\r\n this._tableService.GetTableStates(this._tableState.name).subscribe(obs => {\r\n if(!obs) {\r\n this._loading = false;\r\n return;\r\n }\r\n\r\n let state: TableStateModel = JSON.parse(obs);\r\n if(state && state.name === this._tableState.name) {\r\n if(!state.groupedColumns) {\r\n state.groupedColumns = [\"tariffCode\"]\r\n } else if(!state.groupedColumns!.includes(\"tariffCode\")) {\r\n let temp = state.groupedColumns.map(gc => gc);\r\n state.groupedColumns = [\"tariffCode\"];\r\n\r\n temp.forEach(c => {\r\n state.groupedColumns!.push(c);\r\n });\r\n }\r\n\r\n this._tableState = state;\r\n }\r\n this._loading = false;\r\n }, error => {\r\n this._loading = false;\r\n this._messageService.add({\r\n severity: \"warning\",\r\n summary: \"Table State\",\r\n detail: \"Failed to restore Transport Request table state.\"\r\n });\r\n });\r\n }\r\n\r\n private setTable(): void {\r\n this._availableColumns = [\r\n {field: \"haulierName\", header: \"Transporter\", width: \"175px\", filter: true},\r\n {field: \"serviceType\", header: \"Service Type\", width: \"180px\", filter: true},\r\n {field: \"tariffCode\", header: \"Tariff ID\", width: \"150px\", filter: true},\r\n {field: \"tariffName\", header: \"Tariff Name\", width: \"180px\", filter: true},\r\n {field: \"chargeName\", header: \"Charge Name\", width: \"180px\", filter: true},\r\n {field: \"chargeTypeName\", header: \"Charge Type\", width: \"180px\", filter: true},\r\n {\r\n field: \"priorMonthRate\",\r\n header: \"Previous Rate\",\r\n width: \"140px\",\r\n filter: true,\r\n dataType: \"number\",\r\n filterConstraint: new ColumnFilterModel(\"number\")\r\n },\r\n {\r\n field: \"currentMonthRate\",\r\n header: \"Current Rate\",\r\n width: \"140px\",\r\n filter: true,\r\n dataType: \"number\",\r\n filterConstraint: new ColumnFilterModel(\"number\")\r\n },\r\n {\r\n field: \"rateVariance\",\r\n header: \"Rate Variance\",\r\n width: \"140px\",\r\n filter: true,\r\n dataType: \"number\",\r\n filterConstraint: new ColumnFilterModel(\"number\")\r\n },\r\n {\r\n field: \"variancePercent\",\r\n header: \"% Variance\",\r\n width: \"140px\",\r\n filter: true,\r\n dataType: \"number\",\r\n filterConstraint: new ColumnFilterModel(\"number\")\r\n }\r\n ];\r\n\r\n this._dataKey = \"rowNumber\";\r\n this._tableState = {\r\n name: \"rates-management-state\"\r\n };\r\n }\r\n}\r\n","export default \".container {\\r\\n height: 100%;\\r\\n margin: auto;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3JhdGVzLW1hbmFnZW1lbnQvcmF0ZXMtbWFuYWdlbWVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0VBQ1osWUFBWTtFQUNaLFdBQVc7QUFDYiIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy9yYXRlcy1tYW5hZ2VtZW50L3JhdGVzLW1hbmFnZW1lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG1hcmdpbjogYXV0bztcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG4iXX0= */\"","export default \".form-group label {\\r\\n margin-right: 25px;\\r\\n}\\r\\n\\r\\n.control-group {\\r\\n margin: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n.control-group button {\\r\\n margin: 1%;\\r\\n }\\r\\n\\r\\n.inputLength {\\r\\n width: 220px;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3JlamVjdC1jbGFpbS9yZWplY3QtY2xhaW0uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7QUFDZjs7QUFFRTtJQUNFLFVBQVU7RUFDWjs7QUFFQTtJQUNFLFlBQVk7RUFDZCIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy9yZWplY3QtY2xhaW0vcmVqZWN0LWNsYWltLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWdyb3VwIGxhYmVsIHtcclxuICBtYXJnaW4tcmlnaHQ6IDI1cHg7XHJcbn1cclxuXHJcbi5jb250cm9sLWdyb3VwIHtcclxuICBtYXJnaW46IDAuNSU7XHJcbiAgcGFkZGluZzogMC41JTtcclxufVxyXG5cclxuICAuY29udHJvbC1ncm91cCBidXR0b24ge1xyXG4gICAgbWFyZ2luOiAxJTtcclxuICB9XHJcblxyXG4gIC5pbnB1dExlbmd0aCB7XHJcbiAgICB3aWR0aDogMjIwcHg7XHJcbiAgfVxyXG4iXX0= */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { Message } from \"primeng/api\";\r\nimport { DynamicDialogConfig, DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { IssueReasonModel } from \"../../models/issue-reason/issue-reason.model\";\r\nimport { ReasonInterface } from \"../../models/issue-reason/reason.interface\";\r\nimport { DialogResponseModel } from \"../../models/response-status/dialog-response.model\";\r\nimport { BriefService } from \"../../services/brief.service\";\r\nimport { TransportRequestService } from \"../../services/transport-request.service\";\r\nimport { ClaimService } from \"../../services/claim.service\";\r\n\r\n@Component({\r\n templateUrl: \"reject-claim.html\",\r\n styleUrls: [\"reject-claim.css\"]\r\n})\r\nexport class RejectClaimDialog implements OnInit {\r\n // Dialog Inputs\r\n private _trCode: string;\r\n private _trId: number;\r\n private _claimId: number | null;\r\n\r\n // Form data\r\n public _loading: boolean;\r\n public _saving: boolean;\r\n\r\n public _selectedReasson: string;\r\n public _issueReasons: IssueReasonModel;\r\n public _rejectReasons: ReasonInterface[];\r\n\r\n public _messages: Message[];\r\n\r\n constructor(\r\n private _config: DynamicDialogConfig,\r\n private _briefService: BriefService,\r\n private _trService: TransportRequestService,\r\n private _ref: DynamicDialogRef,\r\n private _claimService: ClaimService,\r\n ) {\r\n this._loading = true;\r\n this._saving = false;\r\n\r\n this._messages = [];\r\n\r\n this._issueReasons = new IssueReasonModel();\r\n this._rejectReasons = [];\r\n }\r\n\r\n public ngOnInit(): void {\r\n \r\n if (this._config.data.trId) {\r\n this._trId = this._config.data.trId;\r\n }\r\n\r\n if (this._config.data.claimId) {\r\n this._claimId = this._config.data.claimId;\r\n }\r\n\r\n this.loadReasons();\r\n }\r\n\r\n public cancelSubmit(): void {\r\n this._ref.close();\r\n }\r\n\r\n public onSubmit(): void {\r\n this._saving = true;\r\n\r\n this._claimService.changeClaimStatus(this._trId, 'Claim Rejected', this._selectedReasson, this._claimId).subscribe(obs => {\r\n if (!obs) {\r\n this._ref.close(false);\r\n return;\r\n }\r\n this._ref.close(this._saving);\r\n }, error => {\r\n this._messages.push({ severity: \"error\", detail: \"Failed to update claim status\" });\r\n });\r\n \r\n }\r\n\r\n private loadReasons(): void {\r\n this._briefService.getIssueReasons().subscribe(obs => {\r\n if (!obs) {\r\n return;\r\n }\r\n\r\n this._issueReasons = new IssueReasonModel(obs);\r\n\r\n this._issueReasons.tripReject.forEach(issueReason => {\r\n if (issueReason.reason) {\r\n issueReason.reason.forEach(reason => {\r\n this._rejectReasons.push(reason);\r\n });\r\n }\r\n });\r\n\r\n this._loading = false;\r\n }, error => {\r\n this._messages.push({ severity: \"error\", summary: \"Reject\", detail: \"Failed to load reject reasons.\" });\r\n this._loading = false;\r\n });\r\n }\r\n}\r\n","export default \".form-group label {\\r\\n margin-right: 25px;\\r\\n}\\r\\n\\r\\n.control-group {\\r\\n margin: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n.control-group button {\\r\\n margin: 1%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3JlamVjdC10cmlwL3JlamVjdC10cmlwLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxVQUFVO0FBQ1oiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvcmVqZWN0LXRyaXAvcmVqZWN0LXRyaXAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tZ3JvdXAgbGFiZWwge1xyXG4gIG1hcmdpbi1yaWdodDogMjVweDtcclxufVxyXG5cclxuLmNvbnRyb2wtZ3JvdXAge1xyXG4gIG1hcmdpbjogMC41JTtcclxuICBwYWRkaW5nOiAwLjUlO1xyXG59XHJcblxyXG4uY29udHJvbC1ncm91cCBidXR0b24ge1xyXG4gIG1hcmdpbjogMSU7XHJcbn1cclxuIl19 */\"","import {Component, OnInit} from \"@angular/core\";\r\nimport {Message} from \"primeng/api\";\r\nimport {DynamicDialogConfig, DynamicDialogRef} from \"primeng/dynamicdialog\";\r\nimport {IssueReasonModel} from \"../../models/issue-reason/issue-reason.model\";\r\nimport {ReasonInterface} from \"../../models/issue-reason/reason.interface\";\r\nimport {DialogResponseModel} from \"../../models/response-status/dialog-response.model\";\r\nimport {BriefService} from \"../../services/brief.service\";\r\nimport {TransportRequestService} from \"../../services/transport-request.service\";\r\n\r\n@Component({\r\n templateUrl: \"reject-trip.html\",\r\n styleUrls: [\"reject-trip.css\"]\r\n})\r\nexport class RejectTripDialog implements OnInit {\r\n // Dialog Inputs\r\n private _trCode: string;\r\n private _trId: number;\r\n\r\n // Form data\r\n public _loading: boolean;\r\n public _saving: boolean;\r\n\r\n public _selected: ReasonInterface;\r\n public _issueReasons: IssueReasonModel;\r\n public _rejectReasons: ReasonInterface[];\r\n\r\n public _messages: Message[];\r\n\r\n constructor(\r\n private _config: DynamicDialogConfig,\r\n private _briefService: BriefService,\r\n private _trService: TransportRequestService,\r\n private _ref: DynamicDialogRef\r\n ) {\r\n this._loading = true;\r\n this._saving = false;\r\n\r\n this._messages = [];\r\n\r\n this._issueReasons = new IssueReasonModel();\r\n this._rejectReasons = [];\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this._config.data.trCode) {\r\n this._trCode = this._config.data.trCode;\r\n }\r\n if(this._config.data.trId) {\r\n this._trId = this._config.data.trId;\r\n }\r\n\r\n this.loadReasons();\r\n }\r\n\r\n public cancelSubmit(): void {\r\n this._ref.close();\r\n }\r\n\r\n public onSubmit(): void {\r\n this._saving = true;\r\n\r\n this._trService.changeTransportRequestStatus(this._trCode, 0, 2070, this._selected.reason).subscribe(obs => {\r\n let dialogResponse = new DialogResponseModel(\"Reject\");\r\n dialogResponse.addResponseRange(obs);\r\n\r\n this._ref.close(dialogResponse);\r\n }, error => {\r\n this._messages.push({severity: \"error\", detail: `Failed to update trip status. Error: ${error.message}.`});\r\n\r\n this._saving = false;\r\n });\r\n }\r\n\r\n private loadReasons(): void {\r\n this._briefService.getIssueReasons().subscribe(obs => {\r\n if(!obs) {\r\n return;\r\n }\r\n\r\n this._issueReasons = new IssueReasonModel(obs);\r\n\r\n this._issueReasons.tripReject.forEach(issueReason => {\r\n if(issueReason.reason) {\r\n issueReason.reason.forEach(reason => {\r\n this._rejectReasons.push(reason);\r\n });\r\n }\r\n });\r\n\r\n this._loading = false;\r\n }, error => {\r\n this._messages.push({severity: \"error\", summary: \"Reject\", detail: \"Failed to load reject reasons.\"});\r\n this._loading = false;\r\n });\r\n }\r\n}\r\n","export default \".form-container {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.table-container {\\r\\n font-size: 1em;\\r\\n height: 80%;\\r\\n width: 100%;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.table-container table, th, td {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.brief-text-th {\\r\\n font-weight: bolder;\\r\\n font-size: medium;\\r\\n}\\r\\n\\r\\n.brief-text {\\r\\n font-weight: bold;\\r\\n font-size: small;\\r\\n}\\r\\n\\r\\n.control-group {\\r\\n margin: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n.control-group button {\\r\\n margin: 1%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3NoaXBtZW50LWJyaWVmL3NoaXBtZW50LWJyaWVmLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7VUFBdEIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsY0FBYztFQUNkLFdBQVc7RUFDWCxXQUFXO0VBQ1gsVUFBVTtBQUNaOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osYUFBYTtBQUNmOztBQUVBO0VBQ0UsVUFBVTtBQUNaIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3NoaXBtZW50LWJyaWVmL3NoaXBtZW50LWJyaWVmLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG4udGFibGUtY29udGFpbmVyIHtcclxuICBmb250LXNpemU6IDFlbTtcclxuICBoZWlnaHQ6IDgwJTtcclxuICB3aWR0aDogMTAwJTtcclxuICB6LWluZGV4OiAyO1xyXG59XHJcblxyXG4udGFibGUtY29udGFpbmVyIHRhYmxlLCB0aCwgdGQge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmJyaWVmLXRleHQtdGgge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbiAgZm9udC1zaXplOiBtZWRpdW07XHJcbn1cclxuXHJcbi5icmllZi10ZXh0IHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IHNtYWxsO1xyXG59XHJcblxyXG4uY29udHJvbC1ncm91cCB7XHJcbiAgbWFyZ2luOiAwLjUlO1xyXG4gIHBhZGRpbmc6IDAuNSU7XHJcbn1cclxuXHJcbi5jb250cm9sLWdyb3VwIGJ1dHRvbiB7XHJcbiAgbWFyZ2luOiAxJTtcclxufVxyXG4iXX0= */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { AuthService } from \"@slender/auth\";\r\nimport { Message } from \"primeng/api\";\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from \"primeng/dynamicdialog\";\r\nimport { PermissionConstants } from \"../../constants/permission.constants\";\r\nimport { DownloadController } from \"../../controllers\";\r\nimport { BriefAModel } from \"../../models/brief-a.model\";\r\nimport { BriefActualDetailsModel } from \"../../models/brief-actual-details.model\";\r\nimport { BriefExplanationModel } from \"../../models/brief-explanation.model\";\r\nimport { FileType } from \"../../models/file-data/file-type.model\";\r\nimport { IssueReasonModel } from \"../../models/issue-reason/issue-reason.model\";\r\nimport { DialogResponseModel } from \"../../models/response-status/dialog-response.model\";\r\nimport { ShipmentDetailModel } from \"../../models/shipment-detail.model\";\r\nimport { BriefService } from \"../../services/brief.service\";\r\nimport { FileService } from \"../../services/file.service\";\r\nimport { TransportRequestService } from \"../../services/transport-request.service\";\r\nimport { FileDownloadDialog } from \"../file-download/file-download.dialog\";\r\nimport { FileUploadDialog } from \"../file-upload/file-upload.dialog\";\r\n\r\n@Component({\r\n templateUrl: \"shipment-brief.html\",\r\n styleUrls: [\"shipment-brief.css\"],\r\n providers: [DialogService]\r\n})\r\nexport class ShipmentBriefDialog implements OnInit {\r\n public invalidTransportDetails: boolean;\r\n public _transportDetails: ShipmentDetailModel;\r\n\r\n public _briefA: BriefAModel;\r\n public _briefActualDetails: BriefActualDetailsModel;\r\n public _briefExplanations: BriefExplanationModel;\r\n private _productClassType: string;\r\n\r\n private _enableUpload: boolean;\r\n private _enableDownload: boolean;\r\n private _isUndelivered: boolean;\r\n public _shipmentHasFile: boolean;\r\n\r\n public _issueReasons: IssueReasonModel;\r\n\r\n public _actualDistanceVariance: number;\r\n private readonly _distanceVariancePercentage: number;\r\n\r\n public _deliveredWeightVariance: number;\r\n private _deliveredWeightVariancePercent: number;\r\n public _weightThreshold: number;\r\n private readonly _weightVariancePercentage: number;\r\n\r\n public _colArrivalMsg: string;\r\n public _colArrDiffMin: number;\r\n private _colArrDayDiffMin: number;\r\n public _isCollectionArrivalDateValid: boolean;\r\n public _isCollDelArrivalDateValid: boolean;\r\n public _isCollectionArrivalDate24Hours: boolean;\r\n private _collectionArrivalDateCheck: boolean;\r\n public _isCollectionDepartureDateValid: boolean;\r\n\r\n public _colDepartMsg: string;\r\n public _colDepartDiffMin: number;\r\n private _colDepartDayDiffMin: number;\r\n public _isCollDelDepartDateValid: boolean;\r\n public _isCollectionDepartureDate24Hours: boolean;\r\n private _collectionDepartureDateCheck: boolean;\r\n\r\n public _delArrivalMsg: string;\r\n public _delArrDiffMin: number;\r\n private _delArrDayDiffMin: number;\r\n public _isDeliveryArrivalDate24Hours: boolean;\r\n private _deliveryArrivalDateCheck: boolean;\r\n public _isDeliveryArrivalDateValid: boolean;\r\n public _isDelColArrivalDateValid: boolean;\r\n\r\n public _delDepartureMsg: string;\r\n public _delDepartDiffMin: number;\r\n private _delDepartDayDiffMin: number;\r\n public _isDeliveryDepartureDateValid: boolean;\r\n private _isDelColDepartDateValid: boolean;\r\n private _isDeliveryDepartureDate24Hours: boolean;\r\n private _deliveryDepartureDateCheck: boolean;\r\n\r\n public _loading: boolean;\r\n public _messages: Message[];\r\n public _readOnlyVar: boolean;\r\n public _saving: boolean;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _briefService: BriefService,\r\n private _config: DynamicDialogConfig,\r\n private _downloadController: DownloadController,\r\n private _dialogService: DialogService,\r\n private _fileService: FileService,\r\n private _ref: DynamicDialogRef,\r\n private _trService: TransportRequestService\r\n ) {\r\n this._loading = true;\r\n this._saving = false;\r\n this._messages = [];\r\n this._enableDownload = false;\r\n\r\n this._readOnlyVar = _authService.hasPermission(PermissionConstants.readOnlyUser);\r\n this.invalidTransportDetails = false;\r\n\r\n this._issueReasons = new IssueReasonModel();\r\n\r\n this._distanceVariancePercentage = 0.8;\r\n this._weightVariancePercentage = 0.1;\r\n\r\n this._actualDistanceVariance = 0;\r\n\r\n this._deliveredWeightVariance = 0;\r\n this._deliveredWeightVariancePercent = 0.5;\r\n this._weightThreshold = 0;\r\n\r\n this._collectionDepartureDateCheck = true;\r\n this._collectionArrivalDateCheck = true;\r\n this._deliveryDepartureDateCheck = true;\r\n this._deliveryArrivalDateCheck = true;\r\n this._isCollectionArrivalDate24Hours = true;\r\n this._isDeliveryArrivalDate24Hours = true;\r\n this._isCollectionDepartureDate24Hours = true;\r\n this._isDeliveryDepartureDate24Hours = true;\r\n\r\n this._colArrDayDiffMin = 0;\r\n this._colDepartDayDiffMin = 0;\r\n this._delArrDayDiffMin = 0;\r\n this._delDepartDayDiffMin = 0;\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this._config.data.transportDetails) {\r\n this._transportDetails = this._config.data.transportDetails;\r\n this.invalidTransportDetails = false;\r\n } else {\r\n this.invalidTransportDetails = true;\r\n }\r\n\r\n this.loadData();\r\n\r\n this.onStartKmChange(this._briefA.tripStartKilometers);\r\n this.onEndKmChange(this._briefA.tripEndKilometers);\r\n\r\n if(this._transportDetails.dispatchedWeight) {\r\n this.onDispatchedWeightChange(this._transportDetails.dispatchedWeight);\r\n }\r\n this.onDeliveredWeightChange(this._briefA.actualDeliveredWeight);\r\n\r\n this.onCollectionArrivalDateChange(this._briefActualDetails.actualCollectionArrivalDate);\r\n this.onCollectionDepartureDateChange(this._briefActualDetails.actualCollectionDepartureDate);\r\n this.onDeliveryArrivalDateChange(this._briefActualDetails.actualDeliveryArrivalDate);\r\n this.onDeliveryDepartureDateChange(this._briefActualDetails.actualDeliveryDepartureDate);\r\n }\r\n\r\n public cancelSubmit(): void {\r\n this._ref.close();\r\n }\r\n\r\n /**\r\n * Calculate minimum/maximum date range for specified date.\r\n * @param current\r\n * @return Date[] 0 - minimum date, 1 - maximum date.\r\n */\r\n public calculateMinMaxDate(current: Date): Date[] {\r\n let defaultMax = new Date();\r\n let defaultMin = new Date();\r\n defaultMax.setDate(defaultMax.getDate() + 365);\r\n defaultMin.setDate(defaultMin.getDate() - 365);\r\n\r\n let maxDate = current ? new Date(current) : defaultMax;\r\n let minDate = current ? new Date(current) : defaultMin;\r\n\r\n maxDate.setDate(maxDate.getDate() + 30);\r\n minDate.setDate(minDate.getDate() - 30);\r\n\r\n return [\r\n minDate,\r\n maxDate\r\n ];\r\n }\r\n\r\n public issueReasonsSupplied(): boolean {\r\n if(this._actualDistanceVariance >= 15 && (!this._briefExplanations.actualDistanceIssue || !this._briefExplanations.actualDistanceReason)) {\r\n return false;\r\n }\r\n\r\n if(this._transportDetails.collectionArrival && this._colArrDiffMin > 6\r\n && (!this._briefExplanations.collectionArrivalIssue || !this._briefExplanations.collectionArrivalReason)\r\n ) {\r\n return false;\r\n }\r\n\r\n if(this._transportDetails.collectionDeparture && this._colDepartDiffMin > 6\r\n && (!this._briefExplanations.collectionDepartureIssue || !this._briefExplanations.collectionDepartureReason)\r\n ) {\r\n return false;\r\n }\r\n\r\n if(this._transportDetails.deliveryArrival && this._delArrDiffMin > 6\r\n && (!this._briefExplanations.deliveryArrivalIssue || !this._briefExplanations.deliveryArrivalReason)\r\n ) {\r\n return false;\r\n }\r\n\r\n if(this._transportDetails.deliveryDeparture && this._delDepartDiffMin > 6\r\n && (!this._briefExplanations.deliveryDepartureIssue || !this._briefExplanations.deliveryDepartureReason)\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public onSubmit(): void {\r\n this.onCollectionArrivalDateChange(this._briefActualDetails.actualCollectionArrivalDate);\r\n this.onCollectionDepartureDateChange(this._briefActualDetails.actualCollectionDepartureDate);\r\n this.onDeliveryArrivalDateChange(this._briefActualDetails.actualDeliveryArrivalDate);\r\n this.onDeliveryDepartureDateChange(this._briefActualDetails.actualDeliveryDepartureDate);\r\n\r\n if (!this._briefActualDetails.invoiceSubmitted || !this._briefActualDetails.chepNumber) {\r\n return;\r\n }\r\n\r\n if(this._collectionDepartureDateCheck && this._collectionArrivalDateCheck && this._deliveryDepartureDateCheck\r\n && this._deliveryArrivalDateCheck && this._isCollectionArrivalDate24Hours && this._isDeliveryArrivalDate24Hours\r\n && this._isCollectionDepartureDate24Hours && this._isDeliveryDepartureDate24Hours\r\n ) {\r\n this._enableUpload = false;\r\n this._saving = true;\r\n\r\n this._briefService.captureBriefA(this._briefA).subscribe(obs => {\r\n let dialogResponse = new DialogResponseModel(\"Brief\");\r\n dialogResponse.addResponse(obs);\r\n\r\n this._briefService.captureBriefExplanations(this._briefExplanations).subscribe(obs => {\r\n dialogResponse.addResponse(obs);\r\n\r\n this._briefService.captureBriefActuals(this._briefActualDetails).subscribe(obs => {\r\n dialogResponse.addResponse(obs);\r\n\r\n this._saving = false;\r\n this._messages.push({\r\n severity: \"success\",\r\n detail: \"Feedback saved\"\r\n });\r\n\r\n this._transportDetails.briefCompleted = true;\r\n }, error => {\r\n this._messages.push({severity: \"error\", detail: \"Failed to update brief actuals.\"});\r\n this._saving = false;\r\n })\r\n }, error => {\r\n this._messages.push({severity: \"error\", detail: \"Failed to update brief explanations.\"});\r\n this._saving = false;\r\n });\r\n }, error => {\r\n this._messages.push({severity: \"error\", detail: \"Failed to update brief.\"});\r\n this._saving = false;\r\n });\r\n }\r\n }\r\n\r\n public onActualDistanceChange(event: number): void {\r\n this._briefA.actualDistance = event;\r\n this._actualDistanceVariance = Math.abs(this._transportDetails.plannedDistance - this._briefA.actualDistance);\r\n }\r\n\r\n public onCollectionArrivalDateChange(event: Date): void {\r\n if(!event) {\r\n return;\r\n }\r\n\r\n this._briefActualDetails.actualCollectionArrivalDate = event;\r\n\r\n if(this._transportDetails.collectionArrival) {\r\n this._colArrDiffMin = this.getTimeDifference(\r\n new Date(this._transportDetails.collectionArrival),\r\n this._briefActualDetails.actualCollectionArrivalDate\r\n );\r\n this._colArrDayDiffMin = this.getTimeDifference(\r\n this._briefActualDetails.actualCollectionDepartureDate,\r\n this._briefActualDetails.actualCollectionArrivalDate\r\n );\r\n }\r\n\r\n this._isCollectionArrivalDateValid = this.validateDepartureDate(this._briefActualDetails.actualCollectionDepartureDate, this._briefActualDetails.actualCollectionArrivalDate);\r\n this._isCollDelArrivalDateValid = this.validateDepartureDate(this._briefActualDetails.actualDeliveryArrivalDate, this._briefActualDetails.actualCollectionArrivalDate);\r\n\r\n if(this._colArrDayDiffMin < 24) {\r\n this._colArrivalMsg = \"\";\r\n this._isCollectionArrivalDate24Hours = true;\r\n this._collectionArrivalDateCheck = true;\r\n } else {\r\n this._colArrivalMsg = \"Collection arrival time slot is more than 24 hours.\\n\";\r\n this._isCollectionArrivalDate24Hours = false;\r\n this._collectionArrivalDateCheck = false;\r\n }\r\n\r\n if(this._isCollectionArrivalDateValid && this._isCollDelArrivalDateValid) {\r\n this._isCollectionDepartureDateValid = true;\r\n this._collectionArrivalDateCheck = true;\r\n } else {\r\n if(!this._isCollDelArrivalDateValid) {\r\n this._colArrivalMsg += \"\\nCollection arrival date cannot be greater than delivery arrival date.\\n\";\r\n }\r\n if(!this._isCollectionArrivalDateValid) {\r\n this._colArrivalMsg += \"\\nCollection arrival date cannot be greater than departure date.\\n\";\r\n }\r\n\r\n this._collectionArrivalDateCheck = false;\r\n }\r\n }\r\n\r\n public onCollectionDepartureDateChange(event: Date): void {\r\n if(!event) {\r\n return;\r\n }\r\n\r\n this._briefActualDetails.actualCollectionDepartureDate = event;\r\n\r\n if(this._transportDetails.collectionDeparture) {\r\n this._colDepartDiffMin = this.getTimeDifference(\r\n new Date(this._transportDetails.collectionDeparture),\r\n this._briefActualDetails.actualCollectionDepartureDate\r\n );\r\n this._colDepartDayDiffMin = this.getTimeDifference(\r\n this._briefActualDetails.actualCollectionDepartureDate,\r\n this._briefActualDetails.actualCollectionArrivalDate\r\n );\r\n }\r\n\r\n this._isCollectionDepartureDateValid = this.validateDepartureDate(this._briefActualDetails.actualCollectionDepartureDate, this._briefActualDetails.actualCollectionArrivalDate);\r\n this._isCollDelDepartDateValid = this.validateDepartureDate(this._briefActualDetails.actualDeliveryDepartureDate, this._briefActualDetails.actualCollectionDepartureDate);\r\n\r\n if(this._colDepartDayDiffMin < 24) {\r\n this._colDepartMsg = \"\";\r\n this._isCollectionDepartureDate24Hours = true;\r\n this._collectionDepartureDateCheck = true;\r\n } else {\r\n this._colDepartMsg = \"Collection departure time slot is more than 24 hours.\\n\";\r\n this._isCollectionDepartureDate24Hours = false;\r\n this._collectionDepartureDateCheck = false;\r\n }\r\n\r\n if(this._isCollectionDepartureDateValid && this._isCollDelDepartDateValid) {\r\n this._isCollectionArrivalDateValid = true;\r\n this._collectionDepartureDateCheck = true;\r\n } else {\r\n if(!this._isCollDelDepartDateValid) {\r\n this._colDepartMsg += \"\\nCollection departure date cannot be greater than delivery departure date.\\n\";\r\n }\r\n if(!this._isCollectionDepartureDateValid) {\r\n this._colDepartMsg += \"\\nCollection departure date cannot be earlier than arrival date.\\n\";\r\n }\r\n\r\n this._collectionDepartureDateCheck = false;\r\n }\r\n\r\n this.onCollectionArrivalDateChange(this._briefActualDetails.actualCollectionArrivalDate);\r\n }\r\n\r\n public onDeliveredWeightChange(event: number): void {\r\n this._briefA.actualDeliveredWeight = event;\r\n\r\n if(this._transportDetails.plannedWeight) {\r\n this._deliveredWeightVariance = Math.abs(this._transportDetails.plannedWeight - this._briefA.actualDeliveredWeight);\r\n if(this._productClassType.toLowerCase() === \"bulk\") {\r\n this._weightThreshold = Math.abs(this._transportDetails.plannedWeight * this._weightVariancePercentage);\r\n } else {\r\n this._weightThreshold = 45;\r\n }\r\n\r\n this._deliveredWeightVariancePercent = this._transportDetails.plannedWeight * this._weightVariancePercentage;\r\n }\r\n }\r\n\r\n public onDeliveryArrivalDateChange(event: Date): void {\r\n if(!event) {\r\n return;\r\n }\r\n\r\n this._briefActualDetails.actualDeliveryArrivalDate = event;\r\n\r\n if(this._transportDetails.deliveryArrival) {\r\n this._delArrDiffMin = this.getTimeDifference(\r\n new Date(this._transportDetails.deliveryArrival),\r\n this._briefActualDetails.actualDeliveryArrivalDate\r\n );\r\n this._delArrDayDiffMin = this.getTimeDifference(\r\n this._briefActualDetails.actualDeliveryDepartureDate,\r\n this._briefActualDetails.actualDeliveryArrivalDate\r\n );\r\n }\r\n\r\n this._isDeliveryArrivalDateValid = this.validateDepartureDate(this._briefActualDetails.actualDeliveryDepartureDate, this._briefActualDetails.actualDeliveryArrivalDate);\r\n this._isDelColArrivalDateValid = this.validateDepartureDate(this._briefActualDetails.actualDeliveryArrivalDate, this._briefActualDetails.actualCollectionArrivalDate);\r\n\r\n if(this._delArrDayDiffMin < 24) {\r\n this._delArrivalMsg = \"\";\r\n this._isDeliveryArrivalDate24Hours = true;\r\n this._deliveryArrivalDateCheck = true;\r\n } else {\r\n this._delArrivalMsg = \"Delivery arrival time slot is more than 24 hours.\\n\";\r\n this._isDeliveryArrivalDate24Hours = false;\r\n this._deliveryArrivalDateCheck = false;\r\n }\r\n\r\n if(this._isDeliveryArrivalDateValid && this._isDelColArrivalDateValid) {\r\n this._isDeliveryDepartureDateValid = true;\r\n this._deliveryArrivalDateCheck = true;\r\n } else {\r\n if(!this._isDelColArrivalDateValid) {\r\n this._delArrivalMsg += \"\\nCollection arrival date cannot be greater than delivery arrival date.\\n\";\r\n }\r\n if(!this._isDeliveryArrivalDateValid) {\r\n this._delArrivalMsg += \"\\nDelivery departure date cannot be earlier than arrival date\\n\";\r\n }\r\n\r\n this._deliveryArrivalDateCheck = false;\r\n }\r\n }\r\n\r\n public onDeliveryDepartureDateChange(event: Date): void {\r\n if(!event) {\r\n return;\r\n }\r\n\r\n this._briefActualDetails.actualDeliveryDepartureDate = event;\r\n\r\n if(this._transportDetails.deliveryDeparture) {\r\n this._delDepartDiffMin = this.getTimeDifference(\r\n new Date(this._transportDetails.deliveryDeparture),\r\n this._briefActualDetails.actualDeliveryDepartureDate\r\n );\r\n this._delDepartDayDiffMin = this.getTimeDifference(\r\n this._briefActualDetails.actualDeliveryDepartureDate,\r\n this._briefActualDetails.actualDeliveryArrivalDate\r\n );\r\n }\r\n\r\n this._isDeliveryDepartureDateValid = this.validateDepartureDate(this._briefActualDetails.actualDeliveryDepartureDate, this._briefActualDetails.actualDeliveryArrivalDate);\r\n this._isDelColDepartDateValid = this.validateDepartureDate(this._briefActualDetails.actualDeliveryDepartureDate, this._briefActualDetails.actualCollectionDepartureDate);\r\n\r\n if(this._delDepartDayDiffMin < 24) {\r\n this._delDepartureMsg = \"\";\r\n this._isDeliveryDepartureDate24Hours = true;\r\n this._deliveryDepartureDateCheck = true;\r\n } else {\r\n this._delDepartureMsg = \"Collection departure time slot is more than 24 hours.\\n\";\r\n this._isDeliveryArrivalDate24Hours = false;\r\n this._deliveryDepartureDateCheck = false;\r\n }\r\n\r\n if(this._isDeliveryDepartureDateValid && this._isDelColDepartDateValid) {\r\n this._isDeliveryArrivalDateValid = true;\r\n this._deliveryDepartureDateCheck = true;\r\n } else {\r\n if(this._isDelColDepartDateValid) {\r\n this._delDepartureMsg += \"\\nCollection departure date cannot be greater than delivery departure date.\\n\";\r\n }\r\n if(this._isDeliveryDepartureDateValid) {\r\n this._delDepartureMsg += \"\\nDelivery departure date cannot be earlier than arrival date.\\n\";\r\n }\r\n\r\n this._deliveryDepartureDateCheck = false;\r\n }\r\n\r\n this.onDeliveryArrivalDateChange(this._briefActualDetails.actualDeliveryArrivalDate);\r\n }\r\n\r\n public onDispatchedWeightChange(event: number): void {\r\n this._transportDetails.dispatchedWeight = event;\r\n\r\n if(this._transportDetails.plannedWeight) {\r\n if(this._productClassType.toLowerCase() === \"bulk\") {\r\n this._weightThreshold = Math.abs(this._transportDetails.plannedWeight * this._weightVariancePercentage);\r\n } else {\r\n this._weightThreshold = 45;\r\n }\r\n }\r\n }\r\n\r\n public onEndKmChange(event: number): void {\r\n this._briefA.tripEndKilometers = event;\r\n\r\n this._briefA.actualDistance = Math.abs(event - this._briefA.tripStartKilometers);\r\n this.onActualDistanceChange(this._briefA.actualDistance);\r\n }\r\n\r\n public onStartKmChange(event: number): void {\r\n this._briefA.tripStartKilometers = event;\r\n\r\n this._briefA.actualDistance = Math.abs(this._briefA.tripEndKilometers - event);\r\n this.onActualDistanceChange(this._briefA.actualDistance);\r\n }\r\n\r\n public showDownload(): void {\r\n let shipmentId = this._transportDetails.shipmentId;\r\n\r\n const ref = this._dialogService.open(FileDownloadDialog, {\r\n data: {\r\n type: FileType.brief,\r\n fileId: shipmentId,\r\n shipment: true\r\n },\r\n header: \"File Download\",\r\n width: \"75%\"\r\n });\r\n }\r\n\r\n public showUpload(): void {\r\n let shipmentId = this._transportDetails.shipmentIds;\r\n let isUndelivered = this._transportDetails.isUndelivered;\r\n\r\n const ref = this._dialogService.open(FileUploadDialog, {\r\n closable: false,\r\n data: {\r\n type: FileType.brief,\r\n shipmentIds: shipmentId,\r\n isUndelivered: isUndelivered\r\n },\r\n header: \"File Upload\",\r\n width: \"85%\"\r\n });\r\n\r\n ref.onClose.subscribe((obs: boolean) => {\r\n if(!obs) {\r\n return;\r\n }\r\n\r\n let detailCodes = [];\r\n detailCodes.push(`${this._transportDetails.shipmentIds};TR${this._transportDetails.transportRequestId}`);\r\n\r\n this._trService.changeShipmentStatus(detailCodes, 4090).subscribe(() => {\r\n // this._ref.close(dialogResponse);\r\n this._enableDownload = true;\r\n }, error => {\r\n this._messages.push({severity: \"error\", detail: \"Failed to update shipment status\"});\r\n });\r\n });\r\n }\r\n\r\n public getTimeDifference(startDate: Date, endDate: Date): number {\r\n let oneDay = (60 * 60 * 1000);\r\n\r\n return Math.round(\r\n Math.abs(\r\n startDate.getTime() - endDate.getTime()\r\n ) / oneDay\r\n );\r\n }\r\n\r\n public validateDepartureDate(endDate: Date, startDate: Date): boolean {\r\n if(endDate && startDate) {\r\n return endDate >= startDate;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n private loadData(): void {\r\n this.loadIssues();\r\n\r\n // Populate brief models\r\n this._briefA = new BriefAModel();\r\n this._briefActualDetails = new BriefActualDetailsModel();\r\n this._briefExplanations = new BriefExplanationModel();\r\n\r\n this._isUndelivered = this._transportDetails.isUndelivered;\r\n this._enableUpload = !this._isUndelivered;\r\n\r\n this._productClassType = this._transportDetails.productClassCode;\r\n\r\n this._briefA.transportRequestId = this._transportDetails.transportRequestId;\r\n this._briefA.shipmentId = this._transportDetails.shipmentId;\r\n this._briefA.shipmentIds = this._transportDetails.shipmentIds;\r\n\r\n this._briefExplanations.tripId = this._transportDetails.transportRequestId;\r\n this._briefExplanations.shipmentId = this._transportDetails.shipmentId;\r\n this._briefExplanations.shipmentIds = this._transportDetails.shipmentIds;\r\n this._briefExplanations.userName = this._authService.getUsername();\r\n\r\n this._briefActualDetails.tripId = this._transportDetails.transportRequestId;\r\n this._briefActualDetails.tripName = this._transportDetails.shCode;\r\n this._briefActualDetails.shipmentId = this._transportDetails.shipmentId;\r\n this._briefActualDetails.shipmentIds = this._transportDetails.shipmentIds;\r\n\r\n this._briefActualDetails.invoiceSubmitted = this._transportDetails.invoiceSubmitted;\r\n this._briefActualDetails.chepNumber = this._transportDetails.chepNumber;\r\n\r\n if(this._transportDetails.actualCollectionArrival) {\r\n this._enableUpload = false;\r\n this._briefActualDetails.actualCollectionArrivalDate = new Date(this._transportDetails.actualCollectionArrival);\r\n\r\n if(this._transportDetails.collectionArrival) {\r\n this._colArrDiffMin = this.getTimeDifference(\r\n this._briefActualDetails.actualCollectionArrivalDate,\r\n new Date(this._transportDetails.actualCollectionArrival)\r\n );\r\n }\r\n }\r\n if(this._transportDetails.actualCollectionDeparture) {\r\n this._briefActualDetails.actualCollectionDepartureDate = new Date(this._transportDetails.actualCollectionDeparture);\r\n\r\n if(this._transportDetails.collectionDeparture) {\r\n this._colDepartDiffMin = this.getTimeDifference(\r\n this._briefActualDetails.actualCollectionDepartureDate,\r\n new Date(this._transportDetails.collectionDeparture)\r\n );\r\n }\r\n }\r\n if(this._transportDetails.actualDeliveryArrival) {\r\n this._briefActualDetails.actualDeliveryArrivalDate = new Date(this._transportDetails.actualDeliveryArrival);\r\n\r\n if(this._transportDetails.deliveryArrival) {\r\n this._delArrDiffMin = this.getTimeDifference(\r\n this._briefActualDetails.actualDeliveryArrivalDate,\r\n new Date(this._transportDetails.deliveryArrival)\r\n );\r\n }\r\n }\r\n if(this._transportDetails.actualDeliveryDeparture) {\r\n this._briefActualDetails.actualDeliveryDepartureDate = new Date(this._transportDetails.actualDeliveryDeparture);\r\n\r\n if(this._transportDetails.deliveryDeparture) {\r\n this._delDepartDiffMin = this.getTimeDifference(\r\n this._briefActualDetails.actualDeliveryDepartureDate,\r\n new Date(this._transportDetails.deliveryDeparture)\r\n );\r\n }\r\n }\r\n\r\n let plannedWeight = this._transportDetails.plannedWeight ? this._transportDetails.plannedWeight : 0;\r\n let dispatchedWeight = this._transportDetails.dispatchedWeight ? this._transportDetails.dispatchedWeight : 0;\r\n this._briefA.dispatchWeightVariance = Math.abs(\r\n plannedWeight - dispatchedWeight\r\n );\r\n\r\n if(this._isUndelivered) {\r\n this._shipmentHasFile = false;\r\n } else {\r\n this._shipmentHasFile = this._transportDetails.hasFile;\r\n }\r\n\r\n this._briefA.driverName = this._transportDetails.trComment7;\r\n\r\n this._briefA.vehicleRegistration = this._transportDetails.trComment6;\r\n\r\n this._briefA.actualDistance = this._transportDetails.actualKms;\r\n this._briefA.tripStartKilometers = parseFloat(this._transportDetails.trComment15);\r\n this._briefA.tripEndKilometers = parseFloat(this._transportDetails.trComment16);\r\n this._briefA.actualDeliveredWeight = this._transportDetails.shpComment6;\r\n this._deliveredWeightVariance = Math.abs(plannedWeight - this._briefA.actualDeliveredWeight);\r\n\r\n this._briefExplanations.actualDistanceIssue = this._transportDetails.actualDistanceIssue;\r\n this._briefExplanations.actualDistanceReason = this._transportDetails.actualDistanceReason;\r\n this._briefExplanations.actualDistanceAddInfo = this._transportDetails.actualDistanceAddInfo;\r\n\r\n this._briefExplanations.dispatchWeightIssue = this._transportDetails.dispatchWeightIssue;\r\n this._briefExplanations.dispatchWeightReason = this._transportDetails.dispatchWeightReason;\r\n this._briefExplanations.dispatchWeightAddInfo = this._transportDetails.dispatchWeightAddInfo;\r\n\r\n this._briefExplanations.deliveredWeightIssue = this._transportDetails.deliveredWeightIssue;\r\n this._briefExplanations.deliveredWeightReason = this._transportDetails.deliveredWeightReason;\r\n this._briefExplanations.deliveredWeightAddInfo = this._transportDetails.deliveredWeightAddInfo;\r\n\r\n this._briefExplanations.collectionArrivalIssue = this._transportDetails.collectionArrivalIssue;\r\n this._briefExplanations.collectionArrivalReason = this._transportDetails.collectionArrivalReason;\r\n this._briefExplanations.collectionArrivalAddInfo = this._transportDetails.collectionArrivalAddInfo;\r\n\r\n this._briefExplanations.collectionDepartureIssue = this._transportDetails.collectionDepartIssue;\r\n this._briefExplanations.collectionDepartureReason = this._transportDetails.collectionDepartReason;\r\n this._briefExplanations.collectionDepartureAddInfo = this._transportDetails.collectionDepartAddInfo;\r\n\r\n this._briefExplanations.deliveryArrivalIssue = this._transportDetails.deliveryArrivalIssue;\r\n this._briefExplanations.deliveryArrivalReason = this._transportDetails.deliveryArrivalReason;\r\n this._briefExplanations.deliveryArrivalAddInfo = this._transportDetails.deliveryArrivalAddInfo;\r\n\r\n this._briefExplanations.deliveryDepartureIssue = this._transportDetails.deliveryDepartIssue;\r\n this._briefExplanations.deliveryDepartureReason = this._transportDetails.deliveryDepartReason;\r\n this._briefExplanations.deliveryDepartureAddInfo = this._transportDetails.deliveryDepartAddInfo;\r\n\r\n this._loading = false;\r\n }\r\n\r\n private loadIssues(): void {\r\n this._briefService.getIssueReasons().subscribe(obs => {\r\n if(!obs) {\r\n return;\r\n }\r\n this._issueReasons = new IssueReasonModel(obs);\r\n }, error => {\r\n this._messages.push(\r\n {severity: \"error\", detail: \"Failed to load issue/reasons\"}\r\n );\r\n });\r\n }\r\n\r\n // Only AlphaNumeric\r\n public keyPressAlphaNumeric(event: any) {\r\n\r\n var inp = String.fromCharCode(event.keyCode);\r\n\r\n if (/[a-zA-Z0-9]/.test(inp)) {\r\n return true;\r\n } else {\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n}\r\n","export default \".ui-dialog {\\r\\n height: auto !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3NoaXBtZW50LW1hbmFnZW1lbnQvc2hpcG1lbnQtbWFuYWdlbWVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx1QkFBdUI7QUFDekIiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvc2hpcG1lbnQtbWFuYWdlbWVudC9zaGlwbWVudC1tYW5hZ2VtZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi51aS1kaWFsb2cge1xyXG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","import {Component, OnDestroy, OnInit} from \"@angular/core\";\r\nimport {AuthService} from \"@slender/auth\";\r\nimport {AsyncTaskController} from \"@slender/foundation\";\r\nimport {Message} from \"primeng/api\";\r\nimport {DialogService, DynamicDialogConfig, DynamicDialogRef} from \"primeng/dynamicdialog\";\r\nimport {Subject} from \"rxjs\";\r\nimport {takeUntil} from \"rxjs/operators\";\r\nimport {PermissionConstants} from \"../../constants/permission.constants\";\r\nimport {ShipmentDetailModel} from \"../../models/shipment-detail.model\";\r\nimport {ColumnDefinitionModel} from \"../../models/table/column-definition.model\";\r\nimport {ColumnFilterModel} from \"../../models/table/column-filter.model\";\r\nimport {TableStateModel} from \"../../models/table/table-state.model\";\r\nimport {TransportRequestModel} from \"../../models/transport-request.model\";\r\nimport {TableService} from \"../../services/table.service\";\r\nimport {TransportRequestService} from \"../../services/transport-request.service\";\r\n\r\n@Component({\r\n templateUrl: \"shipment-management.html\",\r\n styleUrls: [\"shipment-management.css\"],\r\n providers: [DialogService]\r\n})\r\nexport class ShipmentManagementDialog implements OnInit, OnDestroy {\r\n private _destroy$: Subject;\r\n\r\n public _availableColumns: ColumnDefinitionModel[];\r\n public _dataKey: string;\r\n public _tableData: ShipmentDetailModel[];\r\n public _tableLoading: boolean;\r\n public _tableState: TableStateModel;\r\n\r\n public _financeVar: boolean;\r\n public _loading: boolean;\r\n public _readOnlyVar: boolean;\r\n\r\n public _messages: Message[];\r\n\r\n private _taskId: string;\r\n private _transportRequest: TransportRequestModel;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _asyncTaskController: AsyncTaskController,\r\n private _config: DynamicDialogConfig,\r\n private _ref: DynamicDialogRef,\r\n private _tableService: TableService,\r\n private _tripService: TransportRequestService\r\n ) {\r\n this._destroy$ = new Subject();\r\n\r\n this._tableLoading = true;\r\n\r\n this._financeVar = _authService.hasPermission(PermissionConstants.financeUser);\r\n this._readOnlyVar = _authService.hasPermission(PermissionConstants.readOnlyUser);\r\n\r\n this._tableData = [];\r\n this._messages = [];\r\n\r\n this.setTable();\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.loadTableStates();\r\n\r\n this.loadData(this._config.data.selectedRow);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if(this._taskId)\r\n {\r\n this._asyncTaskController.completeTask(this._taskId);\r\n }\r\n\r\n this._destroy$.next(true);\r\n this._destroy$.unsubscribe();\r\n }\r\n\r\n public loadTableStates(): void {\r\n this._tableService.GetTableStates(this._tableState.name).subscribe(obs => {\r\n if(!obs) {\r\n this._loading = false;\r\n return;\r\n }\r\n\r\n let state: TableStateModel = JSON.parse(obs);\r\n if(state && state.name === this._tableState.name) {\r\n this._tableState = state;\r\n }\r\n\r\n this._tableLoading = false;\r\n });\r\n }\r\n\r\n public onCellUpdate(field: string, row: ShipmentDetailModel): void {\r\n switch(field) {\r\n case \"trComment4\":\r\n this.saveTripComments(row);\r\n break;\r\n\r\n default:\r\n }\r\n }\r\n\r\n public onDataUpdate() {\r\n this.loadData(this._config.data.selectedRow);\r\n }\r\n\r\n public saveState(state: TableStateModel): void {\r\n this._tableService.SaveTableStates(state).subscribe();\r\n }\r\n\r\n private loadData(row: TransportRequestModel): void {\r\n if(row.transportRequestId === undefined || row.transportRequestId === null) {\r\n this._tableData = [];\r\n return;\r\n }\r\n\r\n this._tableLoading = true;\r\n\r\n this._taskId = this._asyncTaskController.startTask(\"Loading shipments\");\r\n\r\n this._transportRequest = row;\r\n\r\n this._tripService.getTransportRequestDetails(row.transportRequestId)\r\n .pipe(\r\n takeUntil(this._destroy$)\r\n )\r\n .subscribe(obs => {\r\n this._tableLoading = false;\r\n\r\n if(!obs || obs.length === 0) {\r\n this._tableData = [];\r\n return;\r\n }\r\n\r\n this._tableData = obs.map(o => o);\r\n\r\n this._tableData.forEach(row => {\r\n row.tariffAmount = this._transportRequest.plannedTariffAmount;\r\n });\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n }, error => {\r\n this._tableLoading = false;\r\n this._tableData = [];\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n });\r\n }\r\n\r\n private saveTripComments(row: ShipmentDetailModel): void {\r\n if(!row.transportRequestId) {\r\n return;\r\n }\r\n\r\n this._tripService.updateTransportRequestComments(row.transportRequestId, row.trComment4).subscribe(obs => {\r\n this._messages.push({\r\n severity: \"success\",\r\n detail: \"Comments updated successfully\"\r\n });\r\n\r\n this._tableData.forEach(model => {\r\n model.trComment4 = row.trComment4;\r\n });\r\n }, error => {\r\n this._messages.push({\r\n severity: \"error\",\r\n detail: \"Failed to update comments\"\r\n })\r\n });\r\n }\r\n\r\n private setTable(): void {\r\n this._availableColumns = [\r\n {\r\n field: \"physicalStatusName\",\r\n header: \"Trip Status\",\r\n width: \"200px\",\r\n filter: true\r\n },\r\n // {field: \"srCode\", header: \"SR Code\", width: \"140px\", filter: true},\r\n {field: \"srReference\", header: \"SR Reference\", width: \"160px\", filter: true},\r\n // {field: \"originMapPointCode\", header: \"Origin Code\", width: \"115px\", filter: true},\r\n {field: \"originMapPointName\", header: \"Collection Location\", width: \"115px\", filter: true},\r\n // {field: \"originAreaName\", header: \"Origin Town\", width: \"115px\", filter: true},\r\n {field: \"originAreaGroupName\", header: \"Collection Area\", width: \"115px\", filter: true},\r\n // {field: \"terminusMapPointCode\", header: \"Destination Code\", width: \"155px\", filter: true},\r\n // {field: \"terminusMapPointName\", header: \"Destination Name\", width: \"155px\", filter: true},\r\n {field: \"destinationSiteName\", header: \"Delivery Location\", width: \"155px\", filter: true},\r\n {field: \"terminusAreaGroupName\", header: \"Delivery Area\", width: \"155px\", filter: true},\r\n {field: \"productClassCode\", header: \"Product Type\", width: \"155px\", filter: true},\r\n {field: \"srAdditionalInformation\", header: \"Clover Note\", width: \"180px\", filter: true},\r\n // {field: \"deliveryWindow\", header: \"Delivery Window\", width: \"180px\", filter: true},\r\n // {\r\n // field: \"actualCollectionArrival\",\r\n // header: \"Collection Arrival\",\r\n // width: \"160px\",\r\n // filter: true,\r\n // dataType: \"date\",\r\n // filterConstraint: new ColumnFilterModel(\"date\")\r\n // },\r\n // {\r\n // field: \"actualCollectionDeparture\",\r\n // header: \"Collection Departure\",\r\n // width: \"200px\",\r\n // filter: true,\r\n // dataType: \"date\", filterConstraint: new ColumnFilterModel(\"date\")\r\n // },\r\n // {\r\n // field: \"actualDeliveryArrival\",\r\n // header: \"Delivery Arrival\",\r\n // width: \"160px\",\r\n // filter: true,\r\n // dataType: \"date\",\r\n // filterConstraint: new ColumnFilterModel(\"date\")\r\n // },\r\n // {\r\n // field: \"actualDeliveryDeparture\",\r\n // header: \"Delivery Departure\",\r\n // width: \"200px\",\r\n // filter: true,\r\n // dataType: \"date\",\r\n // filterConstraint: new ColumnFilterModel(\"date\")\r\n // },\r\n // {field: \"totalShipmentWeightPlanned\", header: \"Planned Shipment Weight\", width: \"180px\", filter: false},\r\n // {field: \"shCustomComment2\", header: \"Delivery Note Number\", width: \"160px\", filter: true},\r\n {\r\n field: \"shLoadingDate\",\r\n header: \"Collection Date\",\r\n width: \"160px\",\r\n filter: true,\r\n dataType: \"date\",\r\n filterConstraint: new ColumnFilterModel(\"date\")\r\n },\r\n {\r\n field: \"shDeliveryDate\",\r\n header: \"Delivery Date\",\r\n width: \"200px\",\r\n filter: true,\r\n dataType: \"date\",\r\n filterConstraint: new ColumnFilterModel(\"date\")\r\n },\r\n // {field: \"unitWeight\", header: \"Weight Actual\", width: \"160px\", filter: true},\r\n // {field: \"shpComment6\", header: \"Weight\", width: \"140px\", filter: true},\r\n {field: \"shTotalWeightActual\", header: \"Actual Unit Weight\", width: \"160px\", filter: true, dataType: \"number\"},\r\n {field: \"shTotalWeightPlanned\", header: \"Planned Unit Weight\", width: \"140px\", filter: true, dataType: \"number\"},\r\n {field: \"shComment1\", header: \"Comments\", width: \"130px\", filter: true},\r\n // {field: \"srCustomComment2\", header: \"Chain PO\", width: \"130px\", filter: true},\r\n {field: \"srComment1\", header: \"Country Code\", width: \"190px\", filter: true},\r\n // {field: \"shCustomComment8\", header: \"Bin Serial Number\", width: \"170px\", filter: true},\r\n // {field: \"shCustomComment5\", header: \"Chain Load Number\", width: \"180px\", filter: true},\r\n // {field: \"volume\", header: \"Volume\", width: \"140px\", filter: true},\r\n // {field: \"actualVolume\", header: \"Actual Volume\", width: \"140px\", filter: true},\r\n {field: \"originAddress\", header: \"Collection Address\", width: \"180px\", filter: true},\r\n {field: \"destinationAddress\", header: \"Delivery Address\", width: \"180px\", filter: true},\r\n // {field: \"productCode\", header: \"Product Code\", width: \"180px\", filter: true},\r\n {field: \"totalQtyPlanned\", header: \"Planned Quantity\", width: \"100px\", filter: true, dataType: \"number\"},\r\n {field: \"totalQtyActual\", header: \"Actual Quantity\", width: \"100px\", filter: true, dataType: \"number\"},\r\n {field: \"tariffAmount\", header: \"Tariff Amount\", width: \"180px\", filter: false, dataType: \"number\"},\r\n {field: \"trComment4\", header: \"Trip Comments\", width: \"160px\", filter: true, editable: true}\r\n ];\r\n\r\n this._dataKey = \"shipmentId\";\r\n this._tableState = {\r\n name: \"shipment-management-state\"\r\n };\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { MessageService } from \"primeng/api\";\r\nimport { DialogService } from \"primeng/dynamicdialog\";\r\nimport { DownloadController } from \"../../controllers\";\r\nimport { FileType } from \"../../models/file-data/file-type.model\";\r\nimport { DialogResponseModel } from \"../../models/response-status/dialog-response.model\";\r\nimport { ShipmentDetailModel } from \"../../models/shipment-detail.model\";\r\nimport { FileService } from \"../../services/file.service\";\r\nimport { TransportRequestService } from \"../../services/transport-request.service\";\r\nimport { FileDownloadDialog } from \"../file-download/file-download.dialog\";\r\nimport { FileUploadDialog } from \"../file-upload/file-upload.dialog\";\r\nimport { ShipmentBriefDialog } from \"../shipment-brief/shipment-brief.dialog\";\r\n\r\n@Component({\r\n selector: \"shipment-status-cell\",\r\n templateUrl: \"shipment-status-cell.html\",\r\n styleUrls: [\"shipment-status-cell.css\"]\r\n})\r\nexport class ShipmentStatusCellComponent implements OnInit {\r\n @Input() financeVar: boolean;\r\n @Input() readOnlyVar: boolean;\r\n @Input() row: ShipmentDetailModel;\r\n\r\n @Output() responseEmitter: EventEmitter;\r\n\r\n public _updating: boolean;\r\n\r\n private _isPublished: boolean;\r\n\r\n constructor(\r\n private _downloadController: DownloadController,\r\n private _dialogService: DialogService,\r\n private _fileService: FileService,\r\n private _messageService: MessageService,\r\n private _trService: TransportRequestService\r\n ) {\r\n this._updating = false;\r\n this._isPublished = false;\r\n\r\n this.responseEmitter = new EventEmitter();\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.row) {\r\n this._isPublished = this.row.physicalStatusName === \"Dispatched\";\r\n }\r\n }\r\n\r\n public podShipment(): void {\r\n let detailCodes = [];\r\n detailCodes.push(`${this.row.shipmentIds};TR${this.row.transportRequestId}`);\r\n\r\n this.updateShipmentState(detailCodes, 4100);\r\n }\r\n\r\n public showBrief(): void {\r\n let requiresPo = this.row.requiresPo === 'T' || !this.row.requiresPo;\r\n\r\n if(requiresPo && !this.row.poNumber) {\r\n return;\r\n }\r\n\r\n const ref = this._dialogService.open(ShipmentBriefDialog, {\r\n closable: false,\r\n data: {\r\n transportDetails: this.row,\r\n readOnlyVar: false\r\n },\r\n dismissableMask: true,\r\n header: \"Confirm Planned Information\",\r\n contentStyle: {\"max-height\": \"90%\", \"overflow\": \"auto\"},\r\n height: \"95%\",\r\n width: \"95%\"\r\n });\r\n\r\n ref.onClose.subscribe(obs => {\r\n this.responseEmitter.emit(obs);\r\n });\r\n }\r\n\r\n public undeliverShipment(): void {\r\n let detailCodes = [];\r\n detailCodes.push(`${this.row.shipmentIds};TR${this.row.transportRequestId}`);\r\n\r\n this.updateShipmentState(detailCodes, 4080);\r\n }\r\n\r\n public downloadFile(): void {\r\n let shipmentId = this.row.shipmentId;\r\n\r\n const ref = this._dialogService.open(FileDownloadDialog, {\r\n data: {\r\n type: FileType.brief,\r\n fileId: shipmentId,\r\n shipment: true\r\n },\r\n header: \"File Download\",\r\n width: \"75%\"\r\n });\r\n }\r\n\r\n public uploadFile(): void {\r\n let shipmentId = this.row.shipmentIds;\r\n let isUndelivered = this.row.isUndelivered;\r\n\r\n const ref = this._dialogService.open(FileUploadDialog, {\r\n closable: false,\r\n data: {\r\n type: FileType.brief,\r\n shipmentIds: shipmentId,\r\n isUndelivered: isUndelivered\r\n },\r\n header: \"File Upload\",\r\n width: \"85%\"\r\n });\r\n\r\n ref.onClose.subscribe((obs: boolean) => {\r\n let dialogResponse = new DialogResponseModel(\"Upload\");\r\n dialogResponse.addResponse({\r\n code: this.row.transportRequestId.toString(),\r\n isError: false,\r\n message: \"\"\r\n });\r\n\r\n if(!obs) {\r\n return;\r\n }\r\n\r\n this._updating = true;\r\n\r\n let detailCodes = [];\r\n detailCodes.push(`${this.row.shipmentIds};TR${this.row.transportRequestId}`);\r\n\r\n this._trService.changeShipmentStatus(detailCodes, 4090).subscribe(obs => {\r\n this.responseEmitter.emit(dialogResponse);\r\n });\r\n });\r\n }\r\n\r\n private updateShipmentState(detailCodes: string[], statusId: number): void {\r\n this._updating = true;\r\n\r\n this._trService.changeShipmentStatus(detailCodes, statusId).subscribe(obs => {\r\n if(!obs) {\r\n this._updating = false;\r\n return;\r\n }\r\n\r\n let response = new DialogResponseModel(\"Shipment\");\r\n response.addResponseRange(obs);\r\n\r\n this.responseEmitter.emit(response);\r\n\r\n this._updating = false;\r\n }, error => {\r\n this._messageService.add(\r\n {\r\n severity: \"error\",\r\n summary: \"Update Shipment\",\r\n detail: `Failed to update shipment status: ${error}`\r\n });\r\n\r\n this._updating = false;\r\n });\r\n }\r\n}\r\n","export default \".file-control {\\r\\n float: right;\\r\\n font-size: 0.8em;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.status-section {\\r\\n margin-left: 20px;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3NoaXBtZW50LXN0YXR1cy1jZWxsL3NoaXBtZW50LXN0YXR1cy1jZWxsLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25CIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3NoaXBtZW50LXN0YXR1cy1jZWxsL3NoaXBtZW50LXN0YXR1cy1jZWxsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5maWxlLWNvbnRyb2wge1xyXG4gIGZsb2F0OiByaWdodDtcclxuICBmb250LXNpemU6IDAuOGVtO1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG5cclxuLnN0YXR1cy1zZWN0aW9uIHtcclxuICBtYXJnaW4tbGVmdDogMjBweDtcclxufVxyXG5cclxuXHJcbiJdfQ== */\"","import {Component, OnInit} from \"@angular/core\";\r\nimport {AuthService} from \"@slender/auth\";\r\nimport {MenuItem} from \"primeng/api\";\r\nimport {PermissionConstants} from \"../../constants/permission.constants\";\r\n\r\nenum MenuAction {\r\n none,\r\n userHaulier,\r\n userClaim\r\n}\r\n\r\n@Component({\r\n selector: \"site-management\",\r\n templateUrl: \"site-management.html\",\r\n styleUrls: [\"site-management.css\"]\r\n})\r\nexport class SiteManagementComponent implements OnInit {\r\n public _superUser: boolean;\r\n\r\n public _menuItems: MenuItem[];\r\n public _currentAction: MenuAction;\r\n\r\n constructor(\r\n private _authService: AuthService\r\n ) {\r\n this._superUser = false;\r\n PermissionConstants.superUser.forEach(permission => {\r\n this._superUser = this._superUser || _authService.hasPermission(permission);\r\n });\r\n\r\n this.loadMenuItems();\r\n }\r\n\r\n public ngOnInit(): void {\r\n }\r\n\r\n public getPanelHeader(): string {\r\n switch(this._currentAction) {\r\n case MenuAction.none:\r\n return \"\";\r\n\r\n case MenuAction.userHaulier:\r\n return \"User Haulier Assignment\";\r\n\r\n case MenuAction.userClaim:\r\n return \"Claim Day(s) Limit Setting\";\r\n\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n private loadMenuItems(): void {\r\n this._menuItems = [\r\n {\r\n label: \"Users\",\r\n items: [\r\n {\r\n label: \"Haulier Assignment\",\r\n command: () => { this._currentAction = MenuAction.userHaulier; }\r\n }\r\n ]\r\n }\r\n //,\r\n //{\r\n // label: \"Users\",\r\n // items: [\r\n // {\r\n // label: \"Claim Day(s) Setting\",\r\n // command: () => { this._currentAction = MenuAction.userClaim; }\r\n // }\r\n // ]\r\n //}\r\n ];\r\n\r\n this._currentAction = MenuAction.userHaulier;\r\n }\r\n}\r\n","export default \".content {\\r\\n height: 100vh;\\r\\n overflow-y: auto;\\r\\n}\\r\\n\\r\\n.container {\\r\\n margin: 2% auto;\\r\\n padding-bottom: 120px;\\r\\n width: 80%;\\r\\n}\\r\\n\\r\\n.action-content {\\r\\n margin: 2% 0;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3NpdGUtbWFuYWdlbWVudC9zaXRlLW1hbmFnZW1lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixxQkFBcUI7RUFDckIsVUFBVTtBQUNaOztBQUVBO0VBQ0UsWUFBWTtBQUNkIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3NpdGUtbWFuYWdlbWVudC9zaXRlLW1hbmFnZW1lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRlbnQge1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLmNvbnRhaW5lciB7XHJcbiAgbWFyZ2luOiAyJSBhdXRvO1xyXG4gIHBhZGRpbmctYm90dG9tOiAxMjBweDtcclxuICB3aWR0aDogODAlO1xyXG59XHJcblxyXG4uYWN0aW9uLWNvbnRlbnQge1xyXG4gIG1hcmdpbjogMiUgMDtcclxufVxyXG4iXX0= */\"","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"user-claim\",\r\n templateUrl: \"user-claim.html\",\r\n styleUrls: [\"user-claim.css\"]\r\n})\r\nexport class UserClaimComponent implements OnInit, OnDestroy {\r\n //Public and Private variables here\r\n\r\n //Constructor\r\n constructor() { }\r\n\r\n //Public and Private functions\r\n public ngOnInit(): void {\r\n\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n\r\n }\r\n\r\n}\r\n","export default \"body {\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3NpdGUtbWFuYWdlbWVudC91c2VyLWNsYWltL3VzZXItY2xhaW0uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvc2l0ZS1tYW5hZ2VtZW50L3VzZXItY2xhaW0vdXNlci1jbGFpbS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJib2R5IHtcclxufVxyXG4iXX0= */\"","import {Component, OnDestroy, OnInit} from \"@angular/core\";\r\nimport {MessageService} from \"primeng/api\";\r\nimport {Subject} from \"rxjs\";\r\nimport {takeUntil} from \"rxjs/operators\";\r\nimport {HaulierModel} from \"../../../models/haulier.model\";\r\nimport {UserHaulierModel} from \"../../../models/user-haulier.model\";\r\nimport {UserService} from \"../../../services/user.service\";\r\n\r\n@Component({\r\n selector: \"user-haulier\",\r\n templateUrl: \"user-haulier.html\",\r\n styleUrls: [\"user-haulier.css\"],\r\n providers: [MessageService]\r\n})\r\nexport class UserHaulierComponent implements OnInit, OnDestroy {\r\n private _destroy$: Subject;\r\n\r\n public _loadingHauliers: boolean;\r\n public _loadingUserHauliers: boolean;\r\n\r\n public _hauliers: HaulierModel[];\r\n public _users: UserHaulierModel[];\r\n\r\n public _availableHauliers: HaulierModel[];\r\n\r\n public _selectedIndex: number;\r\n public _selectedUser?: UserHaulierModel;\r\n\r\n constructor(\r\n private _messageService: MessageService,\r\n private _userService: UserService\r\n ) {\r\n this._destroy$ = new Subject();\r\n\r\n this._loadingHauliers = true;\r\n this._loadingUserHauliers = true;\r\n\r\n this._availableHauliers = [];\r\n this._hauliers = [];\r\n this._users = [];\r\n\r\n this._selectedIndex = -1;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.loadUserHauliers();\r\n this.loadHauliers();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._destroy$.next(true);\r\n this._destroy$.unsubscribe();\r\n }\r\n\r\n public onTabClose(event: number): void {\r\n this._selectedIndex = -1;\r\n this._selectedUser = undefined;\r\n }\r\n\r\n public onTabOpen(event: number): void {\r\n if(event > this._users.length) {\r\n return;\r\n }\r\n\r\n this._selectedIndex = event;\r\n this._selectedUser = UserHaulierModel.Copy(this._users[event]);\r\n\r\n this._availableHauliers = [];\r\n\r\n if(!this._selectedUser) {\r\n return;\r\n }\r\n\r\n this._hauliers.forEach(haulier => {\r\n let idx = this._selectedUser!.hauliers.findIndex(h => h.haulierId === haulier.haulierId);\r\n\r\n if(idx < 0) {\r\n this._availableHauliers.push(haulier);\r\n }\r\n });\r\n }\r\n\r\n public saveAssignments(): void {\r\n if(!this._selectedUser) {\r\n return;\r\n }\r\n\r\n this._userService.saveUserHauliers(this._selectedUser).subscribe(obs => {\r\n if(!obs) {\r\n return;\r\n }\r\n\r\n this._messageService.add({\r\n severity: \"success\",\r\n summary: \"User Save\",\r\n detail: \"User haulier assignment updated\"\r\n });\r\n\r\n let idx = this._users.findIndex(u => u.userId === obs.userId);\r\n if(idx >= 0) {\r\n this._users[idx] = obs;\r\n }\r\n }, error => {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"User Save\",\r\n detail: \"Failed to save user haulier assignment\"\r\n });\r\n });\r\n }\r\n\r\n private loadUserHauliers(): void {\r\n this._loadingUserHauliers = true;\r\n\r\n this._userService.getUserHauliers().pipe(\r\n takeUntil(this._destroy$)\r\n ).subscribe(obs => {\r\n if(!obs) {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Haulier Users\",\r\n detail: \"No haulier users found\"\r\n });\r\n\r\n return;\r\n }\r\n\r\n this._users = obs;\r\n\r\n this._loadingUserHauliers = false;\r\n }, error => {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Haulier Users\",\r\n detail: \"Failed to load user haulier assignments\"\r\n });\r\n\r\n this._loadingUserHauliers = false;\r\n });\r\n }\r\n\r\n private loadHauliers(): void {\r\n this._loadingHauliers = true;\r\n\r\n this._userService.getHauliers().pipe(\r\n takeUntil(this._destroy$)\r\n ).subscribe(obs => {\r\n if(!obs) {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Hauliers\",\r\n detail: \"No hauliers found\"\r\n });\r\n\r\n return;\r\n }\r\n\r\n this._hauliers = obs;\r\n\r\n this._loadingHauliers = false;\r\n }, error => {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Hauliers\",\r\n detail: \"Failed to load hauliers\"\r\n });\r\n\r\n this._loadingHauliers = false;\r\n });\r\n }\r\n}\r\n","export default \".container {\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.ui-accordion-header {\\r\\n background-color: #005ca9 !important;\\r\\n}\\r\\n\\r\\nbody .ui-accordion .ui-accordion-header:not(.ui-state-disabled).ui-state-active a {\\r\\n background-color: #005ca9 !important;\\r\\n}\\r\\n\\r\\n.label {\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.control-group {\\r\\n margin: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n.control-group button {\\r\\n margin: 1%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3NpdGUtbWFuYWdlbWVudC91c2VyLWhhdWxpZXIvdXNlci1oYXVsaWVyLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLG9DQUFvQztBQUN0Qzs7QUFFQTtFQUNFLG9DQUFvQztBQUN0Qzs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxVQUFVO0FBQ1oiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvc2l0ZS1tYW5hZ2VtZW50L3VzZXItaGF1bGllci91c2VyLWhhdWxpZXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4udWktYWNjb3JkaW9uLWhlYWRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNWNhOSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5ib2R5IC51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXI6bm90KC51aS1zdGF0ZS1kaXNhYmxlZCkudWktc3RhdGUtYWN0aXZlIGEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDVjYTkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmxhYmVsIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLmNvbnRyb2wtZ3JvdXAge1xyXG4gIG1hcmdpbjogMC41JTtcclxuICBwYWRkaW5nOiAwLjUlO1xyXG59XHJcblxyXG4uY29udHJvbC1ncm91cCBidXR0b24ge1xyXG4gIG1hcmdpbjogMSU7XHJcbn1cclxuIl19 */\"","export default \".container {\\r\\n -webkit-box-align: center;\\r\\n align-items: center;\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.constraint-selection {\\r\\n margin-bottom: 2em;\\r\\n}\\r\\n\\r\\n.symbol {\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.description {\\r\\n float: right;\\r\\n}\\r\\n\\r\\n.label {\\r\\n font-size: 1.1em;\\r\\n font-weight: bold;\\r\\n margin-bottom: 0.5em;\\r\\n}\\r\\n\\r\\n.value-selection {\\r\\n margin-bottom: 2em;\\r\\n}\\r\\n\\r\\n.control-group {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: horizontal;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: row;\\r\\n margin-bottom: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3RhYmxlLWRpc3BsYXkvY29sdW1uLWZpbHRlci9jb2x1bW4tZmlsdGVyLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUFtQjtVQUFuQixtQkFBbUI7RUFDbkIsb0JBQWE7RUFBYixhQUFhO0VBQ2IsNEJBQXNCO0VBQXRCLDZCQUFzQjtVQUF0QixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDhCQUFtQjtFQUFuQiw2QkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixhQUFhO0FBQ2YiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvdGFibGUtZGlzcGxheS9jb2x1bW4tZmlsdGVyL2NvbHVtbi1maWx0ZXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbnRhaW5lciB7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5jb25zdHJhaW50LXNlbGVjdGlvbiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xyXG59XHJcblxyXG4uc3ltYm9sIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLmRlc2NyaXB0aW9uIHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuXHJcbi5sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAxLjFlbTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcclxufVxyXG5cclxuLnZhbHVlLXNlbGVjdGlvbiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xyXG59XHJcblxyXG4uY29udHJvbC1ncm91cCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNSU7XHJcbiAgcGFkZGluZzogMC41JTtcclxufVxyXG4iXX0= */\"","import {Component, OnInit} from \"@angular/core\";\r\nimport {DynamicDialogConfig, DynamicDialogRef} from \"primeng/dynamicdialog\";\r\nimport {FilterUtils} from \"primeng/utils\";\r\nimport {ColumnFilterModel} from \"../../../models/table/column-filter.model\";\r\nimport {FilterTypeModel} from \"../../../models/table/filter-type.model\";\r\n\r\n@Component({\r\n templateUrl: \"column-filter.html\",\r\n styleUrls: [\"column-filter.css\"]\r\n})\r\nexport class ColumnFilterDialog implements OnInit {\r\n public _type: FilterTypeModel;\r\n public _value: any[];\r\n\r\n public _currentFilter: ColumnFilterModel;\r\n\r\n public readonly _selectOptions: FilterTypeModel[];\r\n\r\n constructor(\r\n private _config: DynamicDialogConfig,\r\n private _ref: DynamicDialogRef\r\n ) {\r\n this._selectOptions = [\r\n {type: \"equals\", symbol: \"\\u003d\", description: \"Equals\"},\r\n {type: \"notEquals\", symbol: \"\\u2260\", description: \"Not Equals\"},\r\n {type: \"lt\", symbol: \"\\u003c\", description: \"Less Than\"},\r\n {type: \"lte\", symbol: \"\\u22dc\", description: \"Equals or Less Than\"},\r\n {type: \"gt\", symbol: \"\\u003e\", description: \"Greater Than\"},\r\n {type: \"gte\", symbol: \"\\u22dd\", description: \"Equals or Greater Than\"},\r\n {type: \"between\", symbol: \"\\u22dc \\u22dd\", description: \"Between Inclusive\"}\r\n ];\r\n\r\n this._currentFilter = new ColumnFilterModel(\"text\");\r\n this._value = [];\r\n }\r\n\r\n public static RegisterCustom(): void {\r\n // @ts-ignore\r\n FilterUtils[\"between\"] = (value: any, filter: any[]): boolean => {\r\n if(value === undefined || value === null) {\r\n return false;\r\n }\r\n\r\n if(!filter || filter[0] === undefined || filter[0] === null || filter[1] === undefined || filter[1] === null) {\r\n return false;\r\n }\r\n\r\n let smallest = filter[0];\r\n let largest = filter[1];\r\n\r\n if(filter[1] < smallest) {\r\n smallest = filter[1];\r\n largest = filter[0];\r\n }\r\n\r\n return value >= smallest && value <= largest;\r\n }\r\n\r\n // @ts-ignore\r\n FilterUtils[\"dateEquals\"] = (value: Date, filter: Date): boolean => {\r\n if(!value || !filter) {\r\n return false;\r\n }\r\n\r\n filter.setHours(0);\r\n filter.setMinutes(0);\r\n filter.setSeconds(0);\r\n\r\n let nextDate = new Date(filter);\r\n nextDate.setHours(23);\r\n nextDate.setMinutes(59);\r\n nextDate.setSeconds(59);\r\n\r\n return value >= filter && value <= nextDate;\r\n }\r\n\r\n // @ts-ignore\r\n FilterUtils[\"dateNotEquals\"] = (value: Date, filter: Date): boolean => {\r\n if(!value || !filter) {\r\n return false;\r\n }\r\n\r\n filter.setHours(0);\r\n filter.setMinutes(0);\r\n filter.setSeconds(0);\r\n\r\n let nextDate = new Date(filter);\r\n nextDate.setHours(23);\r\n nextDate.setMinutes(59);\r\n nextDate.setSeconds(59);\r\n\r\n return value < filter || value > nextDate;\r\n }\r\n\r\n // @ts-ignore\r\n FilterUtils[\"dateLt\"] = (value: Date, filter: Date): boolean => {\r\n if(!value || !filter) {\r\n return false;\r\n }\r\n\r\n filter.setHours(0);\r\n filter.setMinutes(0);\r\n filter.setSeconds(0);\r\n\r\n return value < filter;\r\n }\r\n\r\n // @ts-ignore\r\n FilterUtils[\"dateGt\"] = (value: Date, filter: Date): boolean => {\r\n if(!value || !filter) {\r\n return false;\r\n }\r\n\r\n filter.setHours(23);\r\n filter.setMinutes(59);\r\n filter.setSeconds(59);\r\n\r\n return value > filter;\r\n }\r\n\r\n // @ts-ignore\r\n FilterUtils[\"dateLte\"] = (value: Date, filter: Date): boolean => {\r\n if(!value || !filter) {\r\n return false;\r\n }\r\n\r\n filter.setHours(23);\r\n filter.setMinutes(59);\r\n filter.setSeconds(59);\r\n\r\n return value <= filter;\r\n }\r\n\r\n // @ts-ignore\r\n FilterUtils[\"dateGte\"] = (value: Date, filter: Date): boolean => {\r\n if(!value || !filter) {\r\n return false;\r\n }\r\n\r\n filter.setHours(0);\r\n filter.setMinutes(0);\r\n filter.setSeconds(0);\r\n\r\n return value >= filter;\r\n }\r\n\r\n // @ts-ignore\r\n FilterUtils[\"dateBetween\"] = (value: Date, filter: Date[]): boolean => {\r\n if(!value || !filter[0] || !filter[1]) {\r\n return false;\r\n }\r\n\r\n filter[0].setHours(0);\r\n filter[0].setMinutes(0);\r\n filter[0].setSeconds(0);\r\n\r\n filter[1].setHours(0);\r\n filter[1].setMinutes(0);\r\n filter[1].setSeconds(0);\r\n\r\n let smallest = new Date(filter[0]);\r\n let largest = new Date(filter[1]);\r\n\r\n if(filter[1] < smallest) {\r\n smallest = filter[1];\r\n largest = filter[0];\r\n }\r\n\r\n smallest.setHours(0);\r\n smallest.setMinutes(0);\r\n smallest.setSeconds(0);\r\n\r\n largest.setHours(23);\r\n largest.setMinutes(59);\r\n largest.setSeconds(59);\r\n\r\n return value >= smallest && value <= largest;\r\n }\r\n }\r\n \r\n public ngOnInit(): void {\r\n if(this._config.data.currentFilter) {\r\n this._currentFilter = this._config.data.currentFilter;\r\n\r\n if(this._currentFilter.filterType) {\r\n this._type = this._currentFilter.filterType;\r\n this._type.type = this.getType();\r\n }\r\n\r\n if(this._currentFilter.value) {\r\n if(this._currentFilter.dataType === \"date\") {\r\n if(!this._currentFilter.value[0]) {\r\n this._value[0] = new Date(Date.now());\r\n } else {\r\n this._value[0] = new Date(this._currentFilter.value[0]); \r\n }\r\n\r\n if(!this._currentFilter.value[1]) {\r\n this._value[1] = new Date(Date.now());\r\n } else {\r\n this._value[1] = new Date(this._currentFilter.value[1]);\r\n }\r\n } else {\r\n this._value[0] = this._currentFilter.value[0];\r\n this._value[1] = this._currentFilter.value[1];\r\n }\r\n }\r\n }\r\n }\r\n\r\n public applyFilter(): void {\r\n this._currentFilter.filterType = this._type;\r\n this._currentFilter.filterType.type = this.setType();\r\n \r\n this._currentFilter.value = this._value;\r\n\r\n this._ref.close(this._currentFilter);\r\n }\r\n\r\n public clearFilter(): void {\r\n this._currentFilter.filterType = undefined;\r\n this._currentFilter.value[0] = \"\";\r\n this._currentFilter.value[1] = \"\";\r\n\r\n this._ref.close(this._currentFilter);\r\n }\r\n\r\n public filterValid(): boolean {\r\n if(this._value[0] === undefined || this._value[0] == null || this._value[0] === \"\") {\r\n return false;\r\n }\r\n\r\n if(!this._type || this._type.type === \"between\") {\r\n if(this._value[1] === undefined || this._value[1] == null || this._value[1] === \"\") {\r\n return false;\r\n }\r\n }\r\n\r\n return !!this._currentFilter;\r\n }\r\n \r\n private getType(): string {\r\n if(this._currentFilter.dataType !== \"date\") {\r\n return this._type.type;\r\n }\r\n\r\n switch(this._type.type) {\r\n case \"dateEquals\":\r\n return \"equals\";\r\n case \"dateNotEquals\":\r\n return \"notEquals\";\r\n case \"dateLt\":\r\n return \"lt\";\r\n case \"dateLte\":\r\n return \"lte\";\r\n case \"dateGt\":\r\n return \"gt\";\r\n case \"dateGte\":\r\n return \"gte\";\r\n case \"dateBetween\":\r\n return \"between\";\r\n\r\n default:\r\n return this._type.type;\r\n }\r\n }\r\n \r\n private setType(): string {\r\n if(this._currentFilter.dataType !== \"date\") {\r\n return this._type.type;\r\n }\r\n \r\n switch(this._type.type) {\r\n case \"equals\":\r\n return \"dateEquals\";\r\n case \"notEquals\":\r\n return \"dateNotEquals\";\r\n case \"lt\":\r\n return \"dateLt\";\r\n case \"lte\":\r\n return \"dateLte\";\r\n case \"gt\":\r\n return \"dateGt\";\r\n case \"gte\":\r\n return \"dateGte\";\r\n case \"between\":\r\n return \"dateBetween\";\r\n \r\n default:\r\n return this._type.type;\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from \"@angular/core\";\r\nimport {ColumnDefinitionModel} from \"../../../models/table/column-definition.model\";\r\n\r\n@Component({\r\n selector: \"column-group\",\r\n templateUrl: \"column-group.html\",\r\n styleUrls: [\"column-group.css\"]\r\n})\r\nexport class ColumnGroupComponent implements OnInit, OnChanges {\r\n @Input() columns: ColumnDefinitionModel[];\r\n\r\n @Output() remove: EventEmitter;\r\n\r\n public _columns: ColumnDefinitionModel[];\r\n\r\n constructor() {\r\n this._columns = [];\r\n\r\n this.remove = new EventEmitter();\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(this.columns) {\r\n this._columns = this.columns;\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.columns) {\r\n this._columns = changes.columns.currentValue;\r\n }\r\n }\r\n\r\n public removeColumn(column: ColumnDefinitionModel): void {\r\n this.remove.emit(column);\r\n }\r\n}\r\n","export default \".breadcrumb {\\r\\n margin: 0;\\r\\n padding: .5em;\\r\\n}\\r\\n\\r\\n.breadcrumb ul {\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n}\\r\\n\\r\\n.breadcrumb ul li {\\r\\n display: inline-block;\\r\\n margin: 0.3em 0.25em;\\r\\n}\\r\\n\\r\\n.breadcrumb-column {\\r\\n border: 1px solid #333;\\r\\n border-radius: 3px;\\r\\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 3px 5px 0 rgba(0, 0, 0, 0.19);\\r\\n}\\r\\n\\r\\n.breadcrumb-chevron {\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.label {\\r\\n background: #fff;\\r\\n padding: 0.4em;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.button-text {\\r\\n font-size: 0.75em;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3RhYmxlLWRpc3BsYXkvY29sdW1uLWdyb3VwL2NvbHVtbi1ncm91cC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxTQUFTO0VBQ1QsYUFBYTtBQUNmOztBQUVBO0VBQ0UsU0FBUztFQUNULFVBQVU7QUFDWjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLDJFQUEyRTtBQUM3RTs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2Qsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy90YWJsZS1kaXNwbGF5L2NvbHVtbi1ncm91cC9jb2x1bW4tZ3JvdXAuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJyZWFkY3J1bWIge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAuNWVtO1xyXG59XHJcblxyXG4uYnJlYWRjcnVtYiB1bCB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5icmVhZGNydW1iIHVsIGxpIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWFyZ2luOiAwLjNlbSAwLjI1ZW07XHJcbn1cclxuXHJcbi5icmVhZGNydW1iLWNvbHVtbiB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMztcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDNweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xyXG59XHJcblxyXG4uYnJlYWRjcnVtYi1jaGV2cm9uIHtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcblxyXG4ubGFiZWwge1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgcGFkZGluZzogMC40ZW07XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uYnV0dG9uLXRleHQge1xyXG4gIGZvbnQtc2l6ZTogMC43NWVtO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG4iXX0= */\"","import {animate, state, style, transition, trigger} from \"@angular/animations\";\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from \"@angular/core\";\r\nimport {AuthService} from \"@slender/auth\";\r\nimport {MenuItem, MessageService, SortMeta, TableState} from \"primeng/api\";\r\nimport {DialogService} from \"primeng/dynamicdialog\";\r\nimport {Menu} from \"primeng/menu\";\r\nimport {MultiSelect} from \"primeng/multiselect\";\r\nimport {Table} from \"primeng/table\";\r\nimport {fromEvent, Observable, Subscription} from \"rxjs\";\r\nimport {debounceTime} from \"rxjs/operators\";\r\nimport {DialogResponseModel} from \"../../models/response-status/dialog-response.model\";\r\nimport {ColumnDefinitionModel} from \"../../models/table/column-definition.model\";\r\nimport {GroupMetaDataModel} from \"../../models/table/group-meta-data.model\";\r\nimport {TableStateModel} from \"../../models/table/table-state.model\";\r\nimport {TableService} from \"../../services/table.service\";\r\nimport {VehicleRegistrationDialog} from \"../vehicle-registration/vehicle-registration.dialog\";\r\nimport {ColumnFilterDialog} from \"./column-filter/column-filter.dialog\";\r\nimport Timer = NodeJS.Timer;\r\n\r\n@Component({\r\n selector: \"table-display\",\r\n templateUrl: \"table-display.html\",\r\n animations: [\r\n trigger('rowExpansionTrigger', [\r\n state('void', style({\r\n transform: 'translateX(-10%)',\r\n opacity: 0\r\n })),\r\n state('active', style({\r\n transform: 'translateX(0)',\r\n opacity: 1\r\n })),\r\n transition('* <=> *', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\r\n ])\r\n ],\r\n styleUrls: [\"table-display.css\"],\r\n providers: [DialogService]\r\n})\r\nexport class TableDisplayComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() financeVar: boolean;\r\n @Input() readOnlyVar: boolean;\r\n\r\n @Input() cloverClaim: boolean;\r\n @Input() transporterClaim: boolean;\r\n\r\n // Main table\r\n @Input() availableColumns: ColumnDefinitionModel[];\r\n @Input() dataKey: string;\r\n @Input() stateModel: TableStateModel;\r\n @Input() tableData: any[];\r\n @Input() tableLoading: boolean;\r\n @Input() type: string;\r\n\r\n // Used for adding column for extra dialog\r\n @Input() expandable: boolean;\r\n\r\n @Input() get selectedColumns(): ColumnDefinitionModel[] {\r\n return this._selectedColumns;\r\n }\r\n\r\n set selectedColumns(val: ColumnDefinitionModel[]) {\r\n // this._selectedColumns = this._availableColumns.filter(col => val.includes(col));\r\n\r\n let allColumns = this._availableColumns.map(col => col.field);\r\n let prevSelection = this._selectedColumns.map(col => col.field);\r\n let currentSelection = val.map(col => col.field);\r\n\r\n let newColumns = allColumns.filter(col => !prevSelection.includes(col) && currentSelection.includes(col));\r\n\r\n newColumns.forEach(col => {\r\n let defaultIdx = allColumns.indexOf(col);\r\n\r\n if(this.stateModel.state?.columnOrder) {\r\n let tmp = this.stateModel.state.columnOrder.indexOf(col);\r\n defaultIdx = tmp >= 0 ? tmp : defaultIdx;\r\n }\r\n\r\n let colIdx = val.findIndex(colModel => colModel.field === col);\r\n let column = val.splice(colIdx, 1);\r\n\r\n if(column.length > 0) {\r\n val.splice(defaultIdx, 0, column[0]);\r\n }\r\n });\r\n\r\n val.forEach(column => {\r\n if(column.filterConstraint) {\r\n column.filterConstraint.filterType = undefined;\r\n column.filterConstraint.value[0] = \"\";\r\n column.filterConstraint.value[1] = \"\";\r\n }\r\n });\r\n\r\n this._selectedColumns = val;\r\n\r\n this.updateStateColumnOrder();\r\n this.saveTableState();\r\n }\r\n\r\n @Output() updateTableData: EventEmitter;\r\n @Output() updateTableCell: EventEmitter<{ field: string, row: any }>;\r\n @Output() updateSubTableData: EventEmitter;\r\n @Output() subTableExpand: EventEmitter;\r\n @Output() updateState: EventEmitter;\r\n\r\n @ViewChildren(\"columnFilter\") columnFilters: QueryList;\r\n @ViewChild(\"container\") container: ElementRef;\r\n @ViewChild(\"columnSelection\") columnSelector: MultiSelect;\r\n @ViewChild(\"dt\") table: Table;\r\n\r\n // Columns\r\n public _availableColumns: ColumnDefinitionModel[];\r\n public _selectedColumns: ColumnDefinitionModel[];\r\n // Data\r\n public _displayRow: any;\r\n public _selectedRows: any[];\r\n public _tableData: any[];\r\n // Frozen Columns\r\n public _frozenColumns: ColumnDefinitionModel[];\r\n public _frozenWidth: string;\r\n // Grouping\r\n public _columnGroup: ColumnDefinitionModel[];\r\n private _groupMetaData: GroupMetaDataModel[];\r\n // Header\r\n private _menuColumn: ColumnDefinitionModel;\r\n public _headerMenu: MenuItem[];\r\n // Resize Event\r\n private _resizeObservable$: Observable;\r\n private _resizeSubscription$: Subscription;\r\n // State\r\n public _scrollHeight: string;\r\n public _stateName: string;\r\n // Table Menu\r\n public _tableMenu: MenuItem[];\r\n // Timers\r\n private _cellTimeout: Timer;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _dialogService: DialogService,\r\n private _messageService: MessageService,\r\n private _tableService: TableService\r\n ) {\r\n this._stateName = \"\";\r\n\r\n ColumnFilterDialog.RegisterCustom();\r\n\r\n this._scrollHeight = \"200px\";\r\n\r\n this.updateTableData = new EventEmitter();\r\n this.updateTableCell = new EventEmitter<{field: string, row: any}>();\r\n this.updateSubTableData = new EventEmitter();\r\n this.subTableExpand = new EventEmitter();\r\n this.updateState = new EventEmitter();\r\n\r\n this._availableColumns = [];\r\n this._selectedColumns = [];\r\n\r\n this._frozenColumns = [];\r\n\r\n this._columnGroup = [];\r\n this._groupMetaData = [];\r\n\r\n this.expandable = false;\r\n this._tableData = [];\r\n }\r\n\r\n public ngOnInit(): void {\r\n // Current table\r\n if(!this.tableData) {\r\n return;\r\n }\r\n this._tableData = this.tableData;\r\n\r\n if(!this.availableColumns) {\r\n return;\r\n }\r\n this._availableColumns = this.availableColumns;\r\n\r\n this.loadStateModel();\r\n this.adjustFrozenWidth();\r\n this.generateTableMenu();\r\n this.generateHeaderMenu();\r\n\r\n // Subscribe to resize event\r\n this._resizeObservable$ = fromEvent(window, \"resize\");\r\n this._resizeSubscription$ = this._resizeObservable$\r\n .pipe(debounceTime(1000))\r\n .subscribe(() => {\r\n this.adjustScrollHeight();\r\n });\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.tableData) {\r\n this._tableData = changes.tableData.currentValue;\r\n\r\n if(this._columnGroup.length > 0) {\r\n this.sortColumnGrouping();\r\n }\r\n\r\n this.adjustScrollHeight();\r\n \r\n let first = 0;\r\n if (this.table) {\r\n first = this.table.first;\r\n }\r\n \r\n setTimeout(\r\n () => {this.table.first = first;},\r\n 200\r\n );\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._resizeSubscription$.unsubscribe();\r\n }\r\n\r\n\r\n /** Table function **/\r\n\r\n public sortData(sortMeta: SortMeta[]): void {\r\n if(!this.table) {\r\n return;\r\n }\r\n\r\n let resort = false;\r\n let resortMeta: SortMeta[] = [];\r\n\r\n this._columnGroup.forEach(column => {\r\n let idx = sortMeta.findIndex(sm => sm.field === column.field);\r\n\r\n if(idx < 0) {\r\n resortMeta.push({\r\n field: column.field,\r\n order: 1\r\n });\r\n\r\n resort = true;\r\n } else {\r\n resortMeta.push(sortMeta[idx]);\r\n\r\n sortMeta.splice(idx, 0);\r\n }\r\n });\r\n\r\n if(sortMeta.length > 0 && resort) {\r\n sortMeta.forEach(model => {\r\n resortMeta.push(model);\r\n });\r\n }\r\n\r\n if(resort) {\r\n this.table.multiSortMeta = resortMeta;\r\n this.table.sortMultiple();\r\n }\r\n\r\n this.updateColumnGroupingMetaData();\r\n }\r\n\r\n public resetTable(resetSort: boolean = false): void {\r\n if(!this.table) {\r\n return;\r\n }\r\n\r\n /**\r\n * Reset table filters and paginator state.\r\n */\r\n let sortMeta = this.table.multiSortMeta\r\n\r\n this.table.reset();\r\n\r\n // Reset filters\r\n this._selectedColumns.forEach(column => {\r\n if(column.filterConstraint) {\r\n column.filterConstraint.filterType = undefined;\r\n column.filterConstraint.value[0] = \"\";\r\n column.filterConstraint.value[1] = \"\";\r\n }\r\n });\r\n\r\n this.columnFilters.forEach(item => {\r\n item.nativeElement.value = \"\";\r\n });\r\n\r\n if(!resetSort) {\r\n // Redo sorting\r\n if(sortMeta) {\r\n this.table.multiSortMeta = sortMeta;\r\n this.table.sortMultiple();\r\n }\r\n }\r\n }\r\n\r\n public getPageReport(state: any): string {\r\n let first = state.first;\r\n let rows = state.rows;\r\n let totalRecords = state.totalRecords;\r\n\r\n if(totalRecords === 0) {\r\n return \"No records found.\";\r\n }\r\n\r\n let report = `Showing ${(first + 1).toLocaleString()} to `;\r\n\r\n if(first + rows <= totalRecords) {\r\n report += `${(first + rows).toLocaleString()}`;\r\n } else {\r\n report += `${totalRecords.toLocaleString()}`;\r\n }\r\n\r\n report += ` of ${totalRecords.toLocaleString()} records.`;\r\n return report;\r\n }\r\n\r\n public displayTableMenu(event: any, menu: Menu): void {\r\n menu.toggle(event);\r\n }\r\n\r\n public exportData(type: string): void {\r\n if(!this.table) {\r\n return;\r\n }\r\n\r\n switch(type) {\r\n case \"csv\":\r\n this.table.exportCSV();\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n public csvExportFunction(data: any): string {\r\n let value = data.data;\r\n\r\n if(value instanceof Date) {\r\n let temp = new Date(value);\r\n \r\n value = `${temp.getFullYear()}/${temp.getMonth() + 1}/${temp.getDate()} ${temp.getHours()}:${temp.getMinutes()}`;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n private adjustScrollHeight(): void {\r\n if(!this.container) {\r\n this._scrollHeight = \"200px\";\r\n return;\r\n }\r\n\r\n let containerHeight = this.container.nativeElement.clientHeight;\r\n let captionHeight = 57;\r\n let headerHeight = 85;\r\n let filterHeight = 48;\r\n let paginatorHeight = 48;\r\n\r\n if(this._columnGroup.length > 0) {\r\n captionHeight += 67;\r\n }\r\n\r\n let scrollHeight = containerHeight - (captionHeight + headerHeight + filterHeight + paginatorHeight);\r\n\r\n if(scrollHeight < 75) {\r\n scrollHeight = 75;\r\n }\r\n\r\n this._scrollHeight = `${scrollHeight}px`;\r\n }\r\n\r\n private adjustFrozenWidth(): void {\r\n if(this._frozenColumns.length === 0) {\r\n this._frozenWidth = \"0px\";\r\n return;\r\n }\r\n\r\n let width = 0;\r\n this._frozenColumns.forEach(column => {\r\n let idx = column.width.indexOf(\"px\");\r\n width += parseInt(column.width.substring(0, idx));\r\n });\r\n\r\n this._frozenWidth = `${width}px`;\r\n\r\n if(this.table) {\r\n let element = document.getElementById(this._frozenColumns[0].field + '_label');\r\n if(element) {\r\n element.click();\r\n\r\n element.click();\r\n }\r\n }\r\n }\r\n\r\n private sortColumnGrouping() {\r\n if(this._columnGroup.length === 0) {\r\n return;\r\n }\r\n\r\n this.table.multiSortMeta = [];\r\n\r\n this._columnGroup.forEach(column => {\r\n this.table.multiSortMeta.push({\r\n field: column.field,\r\n order: 1\r\n });\r\n });\r\n\r\n this.table.sortMultiple();\r\n }\r\n\r\n private addSelectedColumn(column: ColumnDefinitionModel): void {\r\n if(this.selectedColumns.findIndex(sc => sc.field === column.field) >= 0) {\r\n return;\r\n }\r\n\r\n let tmp = this.selectedColumns.map(sc => sc);\r\n\r\n tmp.push(column);\r\n this.selectedColumns = tmp;\r\n }\r\n\r\n private removeSelectedColumn(column: ColumnDefinitionModel): void {\r\n let idx = this.selectedColumns.findIndex(sc => sc.field === column.field);\r\n if(idx < 0) {\r\n return;\r\n }\r\n\r\n let tmp = this.selectedColumns.map(sc => sc);\r\n tmp.splice(idx, 1);\r\n\r\n this.selectedColumns = tmp;\r\n }\r\n\r\n private generateTableMenu(): void {\r\n this._tableMenu = [\r\n {\r\n label: \"Export\",\r\n items: [\r\n {\r\n label: \"Export CSV\",\r\n icon: \"pi pi-download\",\r\n command: () => this.exportData(\"csv\")\r\n }\r\n ]\r\n },\r\n {\r\n label: \"Table\",\r\n items: [\r\n {\r\n label: \"Reset\",\r\n icon: \"pi pi-refresh\",\r\n command: () => {this.resetTable()}\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n\r\n /** State functions **/\r\n\r\n public onColumnReorder(columns: ColumnDefinitionModel[]): void {\r\n if(this.stateModel.state && this.stateModel.state.columnOrder) {\r\n this.stateModel.state.columnOrder = columns.map(col => col.field);\r\n }\r\n\r\n this.selectedColumns = columns;\r\n }\r\n\r\n public onColumnResize(element: any, delta: number): void {\r\n // Adjust width of selected columns\r\n let idx = this.selectedColumns.findIndex(col => col.field === element.id);\r\n if(idx >= 0) {\r\n let currentWidth = this.selectedColumns[idx].width;\r\n let width = parseInt(currentWidth.substring(0, currentWidth.indexOf(\"px\"))) + delta;\r\n\r\n this.selectedColumns[idx].width = `${width}px`;\r\n }\r\n\r\n // Adjust width of frozen columns\r\n idx = this._frozenColumns.findIndex(col => col.field === element.id);\r\n\r\n if(idx < 0) {\r\n return;\r\n }\r\n\r\n let currentWidth = this._frozenColumns[idx].width;\r\n let width = parseInt(currentWidth.substring(0, currentWidth.indexOf(\"px\"))) + delta;\r\n\r\n this._frozenColumns[idx].width = `${width}px`;\r\n\r\n this.adjustFrozenWidth();\r\n }\r\n\r\n public onStateSave(state: TableState): void {\r\n if(state.filters) {\r\n delete state.filters;\r\n }\r\n\r\n // Save local\r\n sessionStorage.setItem(this._stateName, JSON.stringify(state));\r\n\r\n this.saveTableState();\r\n }\r\n\r\n private loadStateModel(): void {\r\n if(this.stateModel) {\r\n this._stateName = this.stateModel.name;\r\n\r\n if(this.stateModel.selectedColumns) {\r\n this.selectedColumns = [];\r\n\r\n this.stateModel.selectedColumns.forEach(field => {\r\n let column = this._availableColumns.find(ac => ac.field === field);\r\n\r\n if(column) {\r\n this.selectedColumns.push(column);\r\n }\r\n });\r\n } else {\r\n this.selectedColumns = this._availableColumns;\r\n }\r\n\r\n if(this.stateModel.groupedColumns) {\r\n this._columnGroup = [];\r\n\r\n this.stateModel.groupedColumns.forEach(field => {\r\n let column = this._availableColumns.find(ac => ac.field === field);\r\n\r\n if(column) {\r\n this._columnGroup.push(column);\r\n }\r\n\r\n this.adjustScrollHeight();\r\n });\r\n }\r\n\r\n if(this.stateModel.frozenColumns) {\r\n this._frozenColumns = [];\r\n\r\n let widths: string[] = [];\r\n if(this.stateModel.state?.columnWidths) {\r\n widths = this.stateModel.state.columnWidths.split(\",\");\r\n }\r\n\r\n this.stateModel.frozenColumns.forEach(field => {\r\n let column = this._availableColumns.find(ac => ac.field === field);\r\n\r\n if(column) {\r\n this._frozenColumns.push(column);\r\n\r\n if(widths.length > 0) {\r\n let idx = this._frozenColumns.findIndex(col => col === column);\r\n\r\n this._frozenColumns[idx].width = `${widths[idx]}px`;\r\n }\r\n }\r\n });\r\n\r\n this.adjustFrozenWidth();\r\n }\r\n\r\n if(this.stateModel.state) {\r\n sessionStorage.setItem(this._stateName, JSON.stringify(this.stateModel.state));\r\n }\r\n }\r\n }\r\n\r\n private saveTableState(): void {\r\n if(this.selectedColumns.length === 0) {\r\n return;\r\n }\r\n\r\n let tableState: TableStateModel = {\r\n name: this._stateName\r\n };\r\n\r\n let sessionState = sessionStorage.getItem(this._stateName);\r\n if(sessionState) {\r\n tableState.state = JSON.parse(sessionState);\r\n }\r\n\r\n if(this.selectedColumns) {\r\n tableState.selectedColumns = this.selectedColumns.map(sc => sc.field);\r\n }\r\n\r\n if(this._columnGroup) {\r\n tableState.groupedColumns = this._columnGroup.map(cg => cg.field);\r\n }\r\n\r\n if(this._frozenColumns.length > 0) {\r\n tableState.frozenColumns = this._frozenColumns.map(fc => fc.field);\r\n }\r\n\r\n this.updateState.emit(tableState);\r\n }\r\n\r\n private updateStateColumnOrder(): void {\r\n let currentState = sessionStorage.getItem(this._stateName);\r\n if(!currentState) {\r\n return;\r\n }\r\n\r\n let state: TableState = JSON.parse(currentState);\r\n state.columnOrder = this._selectedColumns.map(sc => sc.field);\r\n\r\n sessionStorage.setItem(this._stateName, JSON.stringify(state));\r\n }\r\n\r\n\r\n /** Header functions **/\r\n\r\n public displayHeaderMenu(event: any, menu: Menu, column: ColumnDefinitionModel): void {\r\n this._menuColumn = column;\r\n menu.toggle(event);\r\n }\r\n\r\n public groupColumn(column: ColumnDefinitionModel, group: boolean): void {\r\n if(group) {\r\n this.addColumnToGrouping(column);\r\n } else {\r\n this.removeColumnFromGrouping(column);\r\n }\r\n }\r\n\r\n private generateHeaderMenu(): void {\r\n this._headerMenu = [\r\n {\r\n label: \"Group\",\r\n items: [\r\n {\r\n label: \"Add to Grouping\",\r\n icon: \"pi pi-plus\",\r\n command: () => {this.groupColumn(this._menuColumn, true)}\r\n },\r\n {\r\n label: \"Remove from Grouping\",\r\n icon: \"pi pi-minus\",\r\n command: () => {this.groupColumn(this._menuColumn, false)}\r\n }\r\n ]\r\n },\r\n {\r\n label: \"Pin\",\r\n items: [\r\n {\r\n label: \"Pin\",\r\n icon: \"pi pi-lock\",\r\n command: () => {this.addColumnToPin(this._menuColumn)}\r\n },\r\n {\r\n label: \"Unpin\",\r\n icon: \"pi pi-lock-open\",\r\n command: () => {this.removeColumnFromPin(this._menuColumn)}\r\n }\r\n ]\r\n },\r\n {\r\n label: \"Sort\",\r\n items: [\r\n {\r\n label: \"Sort Ascending\",\r\n icon: \"pi pi-caret-up\",\r\n command: () => {\r\n this.table.multiSortMeta = [{\r\n field: this._menuColumn.field,\r\n order: 1\r\n }];\r\n this.table.sortMultiple();\r\n }\r\n },\r\n {\r\n label: \"Sort Descending\",\r\n icon: \"pi pi-caret-down\",\r\n command: () => {\r\n this.table.multiSortMeta = [{\r\n field: this._menuColumn.field,\r\n order: -1\r\n }];\r\n this.table.sortMultiple();\r\n }\r\n }\r\n ]\r\n }\r\n ];\r\n }\r\n\r\n private addColumnToGrouping(column: ColumnDefinitionModel): void {\r\n if(this._columnGroup.indexOf(column) >= 0) {\r\n return;\r\n }\r\n\r\n this._columnGroup.push(column);\r\n\r\n this.adjustScrollHeight();\r\n\r\n this.sortColumnGrouping();\r\n this.saveTableState();\r\n }\r\n\r\n private removeColumnFromGrouping(column: ColumnDefinitionModel): void {\r\n let idx = this._columnGroup.findIndex(c => c.field === column.field);\r\n\r\n if(idx < 0) {\r\n return;\r\n }\r\n\r\n this.tableLoading = true;\r\n\r\n this._columnGroup.splice(idx, 1);\r\n\r\n this.adjustScrollHeight();\r\n\r\n if(this._columnGroup.length === 0) {\r\n this._groupMetaData = [];\r\n }\r\n\r\n this.sortColumnGrouping();\r\n this.saveTableState();\r\n\r\n this.tableLoading = false;\r\n }\r\n\r\n private updateColumnGroupingMetaData() {\r\n if(this._columnGroup.length === 0) {\r\n return;\r\n }\r\n\r\n let data = this.table.value;\r\n if(this.table.filteredValue) {\r\n data = this.table.filteredValue;\r\n }\r\n\r\n let rowGroupMetaData: GroupMetaDataModel[] = [];\r\n\r\n for(let dataIdx = 0; dataIdx < data.length; dataIdx++) {\r\n let group: string = \"\";\r\n let property: string = \"\";\r\n\r\n let row = data[dataIdx];\r\n for(let keyIdx = 0; keyIdx < this._columnGroup.length; keyIdx++) {\r\n let key = this._columnGroup[keyIdx].field;\r\n group += `${key};`;\r\n\r\n let tmp = row[key];\r\n if(!tmp) {\r\n tmp = \"na\";\r\n }\r\n property += `${tmp};`;\r\n\r\n if(dataIdx === 0) {\r\n // @ts-ignore\r\n rowGroupMetaData[property] = {\r\n dataKey: group,\r\n index: 0,\r\n size: 1\r\n };\r\n } else {\r\n // @ts-ignore\r\n if(rowGroupMetaData[property]) {\r\n // @ts-ignore\r\n rowGroupMetaData[property].size++;\r\n } else {\r\n // @ts-ignore\r\n rowGroupMetaData[property] = {\r\n dataKey: group,\r\n index: dataIdx,\r\n size: 1\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n this._groupMetaData = rowGroupMetaData;\r\n }\r\n\r\n private addColumnToPin(column: ColumnDefinitionModel): void {\r\n if(this._frozenColumns.indexOf(column) >= 0) {\r\n return;\r\n }\r\n\r\n let idx = this.selectedColumns.findIndex(col => col.field === column.field);\r\n\r\n this._frozenColumns.push(this.selectedColumns[idx]);\r\n this.adjustFrozenWidth();\r\n\r\n this.removeSelectedColumn(column);\r\n\r\n this.saveTableState();\r\n }\r\n\r\n private removeColumnFromPin(column: ColumnDefinitionModel): void {\r\n let idx = this._frozenColumns.findIndex(fc => fc.field === column.field);\r\n\r\n if(idx < 0) {\r\n return;\r\n }\r\n\r\n this._frozenColumns.splice(idx, 1);\r\n this.adjustFrozenWidth();\r\n\r\n this.addSelectedColumn(column);\r\n\r\n this.saveTableState();\r\n }\r\n\r\n\r\n /** Row level functions **/\r\n\r\n public displayTableDialog(row: any) {\r\n this._displayRow = row;\r\n\r\n this.subTableExpand.emit(this._displayRow);\r\n }\r\n\r\n public getGroupMetData(row: any, column: ColumnDefinitionModel): GroupMetaDataModel | null {\r\n if(this._columnGroup.length === 0 || !this._groupMetaData) {\r\n return null;\r\n }\r\n\r\n let keys = this._columnGroup.slice(0, this._columnGroup.indexOf(column) + 1);\r\n let property = \"\";\r\n\r\n for(let i = 0; i < keys.length; i++) {\r\n let tmp = row[keys[i].field];\r\n if(!tmp) {\r\n tmp = \"na\";\r\n }\r\n\r\n property += `${tmp};`;\r\n }\r\n\r\n // @ts-ignore\r\n return this._groupMetaData[property];\r\n }\r\n\r\n public getRowSpanSize(rowIndex: number, column: ColumnDefinitionModel, rowData: any): number {\r\n let metaData = this.getGroupMetData(rowData, column);\r\n\r\n if(!metaData) {\r\n return 1;\r\n }\r\n\r\n if(rowIndex >= metaData.index && rowIndex < (metaData.index + metaData.size)) {\r\n let firstRow = this.table.first;\r\n let span = metaData.index + metaData.size - rowIndex;\r\n\r\n if(metaData.index === rowIndex) {\r\n return metaData.size;\r\n } else if(span === (metaData.size - (firstRow - metaData.index))) {\r\n return span;\r\n }\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n\r\n /** Cell level functions **/\r\n\r\n public cellUpdate(field: string, event: any): void {\r\n if(this._cellTimeout) {\r\n clearTimeout(this._cellTimeout);\r\n }\r\n\r\n if(field === \"plannedVehicleRegistration\") {\r\n this.updateTableCell.emit({\r\n field: field,\r\n row: event\r\n });\r\n\r\n return;\r\n }\r\n\r\n this._cellTimeout = setTimeout(() => {\r\n this.updateTableCell.emit({\r\n field: field,\r\n row: event\r\n });\r\n }, 3000);\r\n }\r\n\r\n public formatDate(value: Date, withTime: boolean = true): string {\r\n if(value === undefined || value === null) {\r\n return \"\";\r\n }\r\n\r\n let day = this.padNumber(value.getDate(), 2);\r\n let month = this.padNumber(value.getMonth() + 1, 2);\r\n let year = this.padNumber(value.getFullYear(), 4);\r\n let hours = this.padNumber(value.getHours(), 2);\r\n let minutes = this.padNumber(value.getMinutes(), 2);\r\n\r\n if(withTime) {\r\n return `${day}/${month}/${year} ${hours}:${minutes}`;\r\n } \r\n \r\n return `${day}/${month}/${year}`;\r\n }\r\n\r\n public formatNumber(value: number): string {\r\n if(value === undefined || value === null) {\r\n return \"\";\r\n }\r\n\r\n return value.toFixed(2);\r\n }\r\n\r\n private padNumber(value: number, width: number): string {\r\n let stringVal = value + '';\r\n return stringVal.length >= width ? stringVal : new Array(width - stringVal.length + 1).join('0') + stringVal;\r\n }\r\n\r\n\r\n /** Filter functions **/\r\n\r\n public editFilter(column: ColumnDefinitionModel): void {\r\n const ref = this._dialogService.open(ColumnFilterDialog, {\r\n data: {\r\n currentFilter: column.filterConstraint\r\n },\r\n header: `${column.header} Filter Type`,\r\n width: \"30%\"\r\n });\r\n\r\n ref.onClose.subscribe(obs => {\r\n if(!obs) {\r\n return;\r\n }\r\n\r\n column.filterConstraint = obs;\r\n\r\n if(column.filterConstraint?.filterType) {\r\n if(column.filterConstraint.filterType.type.toLowerCase().indexOf(\"between\") < 0) {\r\n this.table.filter(\r\n column.filterConstraint?.value[0],\r\n column.field,\r\n column.filterConstraint?.filterType.type\r\n );\r\n } else {\r\n this.table.filter(\r\n column.filterConstraint?.value,\r\n column.field,\r\n column.filterConstraint?.filterType.type\r\n );\r\n }\r\n } else {\r\n this.table.filter(\r\n \"\",\r\n column.field,\r\n \"contains\"\r\n );\r\n }\r\n });\r\n }\r\n\r\n public filterData(): void {\r\n if(this._columnGroup.length > 0) {\r\n this.updateColumnGroupingMetaData();\r\n }\r\n }\r\n\r\n public filterLabel(column: ColumnDefinitionModel): string {\r\n if(!column.filterConstraint?.filterType) {\r\n return \"...\";\r\n }\r\n\r\n let label: string;\r\n\r\n if(column.filterConstraint.filterType.type !== \"between\" && column.filterConstraint.filterType.type !== \"dateBetween\") {\r\n label = `${column.filterConstraint.filterType.symbol}`;\r\n\r\n if(column.filterConstraint.dataType === \"date\" && column.filterConstraint.value) {\r\n label += ` ${this.formatDate(column.filterConstraint.value[0], false)}`;\r\n } else {\r\n label += ` ${column.filterConstraint.value[0]}`;\r\n }\r\n } else {\r\n if(column.filterConstraint.dataType === \"date\") {\r\n label = `${this.formatDate(column.filterConstraint.value[0], false)} - `;\r\n label += `${this.formatDate(column.filterConstraint.value[1], false)}`;\r\n } else {\r\n label = `${column.filterConstraint.value[0]} - ${column.filterConstraint.value[1]}`;\r\n }\r\n }\r\n\r\n return label;\r\n }\r\n \r\n\r\n /** Custom control functions **/\r\n // TODO: --- Add custom controls here ---\r\n\r\n public dialogResponse(rowData: any, response: DialogResponseModel): void {\r\n if(!response) {\r\n return;\r\n }\r\n\r\n let refreshIds: string[] = [];\r\n let failedUpdates: string[] = [];\r\n let successfulUpdates: string[] = [];\r\n\r\n response.responses.forEach(model => {\r\n if(model.isError) {\r\n failedUpdates.push(model.message);\r\n } else {\r\n successfulUpdates.push(model.message);\r\n refreshIds.push(model.code);\r\n }\r\n });\r\n\r\n if(successfulUpdates.length === response.responses.length) {\r\n this._messageService.add({severity: \"success\", summary: response.responseType, detail: \"All updates successfully completed.\"});\r\n } else {\r\n failedUpdates.forEach(model => {\r\n this._messageService.add({severity: \"error\", summary: response.responseType, detail: model});\r\n });\r\n }\r\n\r\n this.updateTableData.emit(refreshIds);\r\n }\r\n\r\n public subDialogResponse(response: DialogResponseModel): void {\r\n this.updateSubTableData.emit(response);\r\n }\r\n\r\n public validateVehicleRegistration(registration: string): boolean {\r\n if(registration.length < 6 || registration.length > 8) {\r\n return false;\r\n }\r\n\r\n let format = /^[a-zA-Z0-9]*$/;\r\n if(!format.test(registration)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public vehicleRegistrationEdit(rowData: any): boolean {\r\n switch (rowData.physicalStatusName.toLowerCase()) {\r\n case \"published\":\r\n case \"accepted\":\r\n case \"haulier confirmed\":\r\n return false;\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n public displayVehicleSelection(rowData: any): void {\r\n if(!rowData.transportRequestId) {\r\n return;\r\n }\r\n\r\n const ref = this._dialogService.open(VehicleRegistrationDialog, {\r\n data: {\r\n transportRequestId: rowData.transportRequestId,\r\n vehicleRegistration: rowData.plannedVehicleRegistration\r\n },\r\n dismissableMask: true,\r\n header: `${rowData.code} Vehicle`,\r\n width: \"30%\"\r\n });\r\n\r\n ref.onClose.subscribe(obs => {\r\n if(!obs) {\r\n return;\r\n }\r\n\r\n rowData.plannedVehicleRegistration = obs;\r\n this.cellUpdate(\"plannedVehicleRegistration\", rowData);\r\n });\r\n }\r\n}\r\n","export default \":host ::ng-deep .ui-paginator {\\r\\n margin-top: 15px;\\r\\n}\\r\\n\\r\\n:host ::ng-deep .ui-paginator-current {\\r\\n float: left;\\r\\n}\\r\\n\\r\\n.container {\\r\\n margin: 0.5% auto;\\r\\n min-height: 99%;\\r\\n overflow-y: auto;\\r\\n width: 98%;\\r\\n}\\r\\n\\r\\n.caption-search {\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.caption-columns {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.caption-grouping {\\r\\n border: 1px dashed #333;\\r\\n border-radius: 5px;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.clear-button {\\r\\n font-size: 0.7em;\\r\\n font-weight: bold;\\r\\n margin-left: 30px;\\r\\n}\\r\\n\\r\\n.header-menu {\\r\\n font-size: 0.85em;\\r\\n}\\r\\n\\r\\n.row-group {\\r\\n font-weight: bold;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\ntd {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.table-header {\\r\\n height: 85px;\\r\\n}\\r\\n\\r\\n.table-filter {\\r\\n height: 35px;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n.table-row {\\r\\n height: 50px;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n.overlay-container {\\r\\n width: 80%;\\r\\n margin: auto;\\r\\n}\\r\\n\\r\\n.page-label {\\r\\n padding-right: 15px;\\r\\n padding-top: 8px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3RhYmxlLWRpc3BsYXkvdGFibGUtZGlzcGxheS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixVQUFVO0FBQ1o7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7QUFDZDs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3RhYmxlLWRpc3BsYXkvdGFibGUtZGlzcGxheS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCA6Om5nLWRlZXAgLnVpLXBhZ2luYXRvciB7XHJcbiAgbWFyZ2luLXRvcDogMTVweDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC51aS1wYWdpbmF0b3ItY3VycmVudCB7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbn1cclxuXHJcbi5jb250YWluZXIge1xyXG4gIG1hcmdpbjogMC41JSBhdXRvO1xyXG4gIG1pbi1oZWlnaHQ6IDk5JTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIHdpZHRoOiA5OCU7XHJcbn1cclxuXHJcbi5jYXB0aW9uLXNlYXJjaCB7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG5cclxuLmNhcHRpb24tY29sdW1ucyB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbi5jYXB0aW9uLWdyb3VwaW5nIHtcclxuICBib3JkZXI6IDFweCBkYXNoZWQgIzMzMztcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG5cclxuLmNsZWFyLWJ1dHRvbiB7XHJcbiAgZm9udC1zaXplOiAwLjdlbTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBtYXJnaW4tbGVmdDogMzBweDtcclxufVxyXG5cclxuLmhlYWRlci1tZW51IHtcclxuICBmb250LXNpemU6IDAuODVlbTtcclxufVxyXG5cclxuLnJvdy1ncm91cCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG5cclxudGQge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLnRhYmxlLWhlYWRlciB7XHJcbiAgaGVpZ2h0OiA4NXB4O1xyXG59XHJcblxyXG4udGFibGUtZmlsdGVyIHtcclxuICBoZWlnaHQ6IDM1cHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLnRhYmxlLXJvdyB7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5vdmVybGF5LWNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDgwJTtcclxuICBtYXJnaW46IGF1dG87XHJcbn1cclxuXHJcbi5wYWdlLWxhYmVsIHtcclxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xyXG4gIHBhZGRpbmctdG9wOiA4cHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbiJdfQ== */\"","import { Component, Input, OnInit, Output, EventEmitter } from \"@angular/core\";\r\nimport { TransportRequestModel } from \"../../models/transport-request.model\";\r\nimport { ClaimModel } from \"../../models/claim.model\";\r\nimport { ClaimBriefDialog } from \"../claim-brief/claim-brief.dialog\";\r\nimport { DialogResponseModel } from \"../../models/response-status/dialog-response.model\";\r\nimport { DialogService } from \"primeng/dynamicdialog\";\r\nimport { ClaimService } from \"../../services/claim.service\";\r\nimport { ConfirmationService, Message } from \"primeng/api\";\r\nimport { AuthService } from \"@slender/auth\";\r\nimport { UpdateStatusResponseModel } from \"../../models/response-status/update-status-response.model\";\r\nimport { TripClaimDialog } from \"../trip-claim-dialog/trip-claim-dialog.component\";\r\nimport { ClaimSaveModel } from \"../../models/claim-save.model\";\r\n\r\n@Component({\r\n selector: \"trip-claim-dialog-status-cell\",\r\n templateUrl: \"trip-claim-dialog-status-cell.html\",\r\n styleUrls: [\"trip-claim-dialog-status-cell.css\"],\r\n providers: [ConfirmationService, DialogService]\r\n})\r\nexport class TripClaimDialogStatusCellComponent implements OnInit {\r\n @Input() type: string;\r\n @Input() transportRequestRow: TransportRequestModel;\r\n @Input() claimRow: ClaimSaveModel;\r\n\r\n @Input() readOnlyVar: boolean;\r\n @Input() cloverClaim: boolean;\r\n @Input() transporterClaim: boolean;\r\n\r\n @Output() responseEmitter: EventEmitter;\r\n\r\n public _userName: string;\r\n public _readOnlyVar: boolean;\r\n public _cloverClaim: boolean;\r\n public _transporterClaim: boolean;\r\n\r\n public _isClaimLodger: boolean;\r\n public _isSameUserGroup: boolean;\r\n\r\n private _claimDetails: ClaimSaveModel;\r\n public _messages: Message[];\r\n\r\n constructor(\r\n private _confirmationService: ConfirmationService,\r\n private _dialogService: DialogService,\r\n private _claimService: ClaimService,\r\n private _authService: AuthService,\r\n ) {\r\n this.responseEmitter = new EventEmitter();\r\n this._claimDetails = new ClaimSaveModel();\r\n this._messages = [];\r\n\r\n this._isSameUserGroup = false;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._claimDetails = this.claimRow;\r\n\r\n this._userName = this._authService.getUsername();\r\n this._readOnlyVar = this.readOnlyVar;\r\n this._cloverClaim = this.cloverClaim;\r\n this._transporterClaim = this.transporterClaim;\r\n\r\n //This Czhecks if the user that created the claim is the one \r\n //viewing it at the moment\r\n //you cannot deal with your own claim\r\n if (this._claimDetails) {\r\n if (this._userName === this._claimDetails.claimer) {\r\n this._isClaimLodger = true;\r\n }\r\n else {\r\n this._isClaimLodger = false;\r\n }\r\n\r\n //This checks if the person is a clover user and if the \r\n //same user is the one that created the claim.\r\n // Clover users cannot Deal with Clover created claims and Vice-versa for Transporters\r\n if (this._cloverClaim && this._claimDetails.userGroup === \"Clover\") {\r\n this._isSameUserGroup = true;\r\n }\r\n\r\n if (this._transporterClaim && this._claimDetails.userGroup === \"Transporter\") {\r\n this._isSameUserGroup = true;\r\n }\r\n }\r\n }\r\n\r\n public acceptClaimCompletion(): void {\r\n this._confirmationService.confirm({\r\n message: \"Confirm claim completion?\",\r\n header: \"Complete Claim\",\r\n icon: \"pi pi-question-circle\",\r\n accept: () => {\r\n this.confirmClaim();\r\n }\r\n });\r\n }\r\n\r\n private confirmClaim(): void {\r\n let dialogResponse = new DialogResponseModel(\"Claim\");\r\n\r\n this._claimService.changeClaimStatus(this.claimRow.transportRequestId, 'Claim Completed', ' ', this.claimRow.claimId).subscribe(obs => {\r\n if (!obs) {\r\n return;\r\n }\r\n\r\n //let dialogResponse = new DialogResponseModel(\"Claim\");\r\n dialogResponse.addResponse(obs);\r\n\r\n this.responseEmitter.emit(dialogResponse);\r\n this._messages.push({\r\n severity: \"success\",\r\n detail: \"Status Updated to Completed.\"\r\n });\r\n\r\n }, error => {\r\n this._messages.push({ severity: \"error\", detail: \"Failed to update claim status\" });\r\n });\r\n }\r\n\r\n public showClaimForm(): void {\r\n\r\n const ref = this._dialogService.open(ClaimBriefDialog, {\r\n data: {\r\n claimDetails: this._claimDetails,\r\n readOnlyVar: false,\r\n cloverClaim: this.cloverClaim,\r\n transporterClaim: this.transporterClaim,\r\n isClaimLodger: this._isClaimLodger,\r\n isSameUserGroup: this._isSameUserGroup,\r\n type: null\r\n },\r\n header: \"Lodge A Claim For \" + this.claimRow.transportRequestId,\r\n width: \"85%\"\r\n });\r\n\r\n //ref.onClose.subscribe(obs => {\r\n // if (!obs) {\r\n // return;\r\n // }\r\n\r\n // this.responseEmitter.emit(obs);\r\n //});\r\n ref.onClose.subscribe(obs => {\r\n\r\n if (obs) {\r\n let updateResponse = new UpdateStatusResponseModel();\r\n updateResponse.isError = false;\r\n updateResponse.message = \"Claim Updated\";\r\n updateResponse.code = `${this._claimDetails.transportRequestId}`;\r\n\r\n let response = new DialogResponseModel(\"Claims\");\r\n response.addResponse(updateResponse);\r\n this.responseEmitter.emit(response);\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n public showTripClaims(): void {\r\n\r\n const ref = this._dialogService.open(TripClaimDialog, {\r\n data: {\r\n claimDetails: this._claimDetails,\r\n readOnlyVar: false,\r\n cloverClaim: this.cloverClaim,\r\n transporterClaim: this.transporterClaim,\r\n isClaimLodger: this._isClaimLodger,\r\n isSameUserGroup: this._isSameUserGroup\r\n },\r\n header: \"Lodge A Claim For \" + this.claimRow.transportRequestId,\r\n width: \"85%\"\r\n });\r\n\r\n ref.onClose.subscribe(obs => {\r\n\r\n if (obs) {\r\n let updateResponse = new UpdateStatusResponseModel();\r\n updateResponse.isError = false;\r\n updateResponse.message = \"Claim Updated\";\r\n updateResponse.code = `${this._claimDetails.transportRequestId}`;\r\n\r\n let response = new DialogResponseModel(\"Claims\");\r\n response.addResponse(updateResponse);\r\n this.responseEmitter.emit(response);\r\n\r\n }\r\n\r\n });\r\n } \r\n}\r\n","export default \"body {\\r\\n}\\r\\n.claim-lodged {\\r\\n color: green;\\r\\n}\\r\\n.claim-progress {\\r\\n color: orange;\\r\\n}\\r\\n.claim-completed {\\r\\n color: green;\\r\\n}\\r\\n.claim-rejected {\\r\\n color: #F20B22;\\r\\n}\\r\\n.claim-view {\\r\\n color: blue;\\r\\n}\\r\\ni {\\r\\n font-size: 2em;\\r\\n border: groove;\\r\\n border-width: thin;\\r\\n border-color: black;\\r\\n}\\r\\n.parent {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-align: center;\\r\\n align-items: center;\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center;\\r\\n}\\r\\n.narrow {\\r\\n width: 40px;\\r\\n}\\r\\n.wide {\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1;\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3RyaXAtY2xhaW0tZGlhbG9nLXN0YXR1cy1jZWxsL3RyaXAtY2xhaW0tZGlhbG9nLXN0YXR1cy1jZWxsLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFFQTtFQUNFLGFBQWE7QUFDZjtBQUVBO0VBQ0UsWUFBWTtBQUNkO0FBRUE7RUFDRSxjQUFjO0FBQ2hCO0FBRUE7RUFDRSxXQUFXO0FBQ2I7QUFFQTtFQUNFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjtBQUVBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2IseUJBQW1CO1VBQW5CLG1CQUFtQjtFQUNuQix3QkFBdUI7VUFBdkIsdUJBQXVCO0FBQ3pCO0FBRUE7RUFDRSxXQUFXO0FBQ2I7QUFFQTtFQUNFLG1CQUFPO1VBQVAsT0FBTztFQUNQLGdCQUFnQjtBQUNsQiIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy90cmlwLWNsYWltLWRpYWxvZy1zdGF0dXMtY2VsbC90cmlwLWNsYWltLWRpYWxvZy1zdGF0dXMtY2VsbC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJib2R5IHtcclxufVxyXG4uY2xhaW0tbG9kZ2VkIHtcclxuICBjb2xvcjogZ3JlZW47XHJcbn1cclxuXHJcbi5jbGFpbS1wcm9ncmVzcyB7XHJcbiAgY29sb3I6IG9yYW5nZTtcclxufVxyXG5cclxuLmNsYWltLWNvbXBsZXRlZCB7XHJcbiAgY29sb3I6IGdyZWVuO1xyXG59XHJcblxyXG4uY2xhaW0tcmVqZWN0ZWQge1xyXG4gIGNvbG9yOiAjRjIwQjIyO1xyXG59XHJcblxyXG4uY2xhaW0tdmlldyB7XHJcbiAgY29sb3I6IGJsdWU7XHJcbn1cclxuXHJcbmkge1xyXG4gIGZvbnQtc2l6ZTogMmVtO1xyXG4gIGJvcmRlcjogZ3Jvb3ZlO1xyXG4gIGJvcmRlci13aWR0aDogdGhpbjtcclxuICBib3JkZXItY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4ucGFyZW50IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5uYXJyb3cge1xyXG4gIHdpZHRoOiA0MHB4O1xyXG59XHJcblxyXG4ud2lkZSB7XHJcbiAgZmxleDogMTtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcbiJdfQ== */\"","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { AuthService } from \"@slender/auth\";\r\nimport { AppStatus, AsyncTaskController } from \"@slender/foundation\";\r\nimport { MessageService } from \"primeng/api\";\r\nimport { DialogService, DynamicDialogConfig } from \"primeng/dynamicdialog\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { switchMap, takeUntil } from \"rxjs/operators\";\r\nimport { PermissionConstants } from \"../../constants/permission.constants\";\r\nimport { PrimaryFilterController } from \"../../controllers\";\r\nimport { ClaimModel } from \"../../models/claim.model\";\r\nimport { ClaimSaveModel } from \"../../models/claim-save.model\";\r\nimport { ColumnDefinitionModel } from \"../../models/table/column-definition.model\";\r\nimport { ColumnFilterModel } from \"../../models/table/column-filter.model\";\r\nimport { TableStateModel } from \"../../models/table/table-state.model\";\r\nimport { ClaimService } from \"../../services/claim.service\";\r\nimport { TableService } from \"../../services/table.service\";\r\n\r\n@Component({\r\n selector: \"trip-claim-dialog\",\r\n templateUrl: \"trip-claim.html\",\r\n styleUrls: [\"trip-claim.css\"],\r\n providers: [DialogService]\r\n})\r\nexport class TripClaimDialog implements OnInit\r\n{\r\n private _destroy$: Subject;\r\n\r\n public _loading: boolean;\r\n public _readOnlyVar: boolean;\r\n public _cloverClaim: boolean;\r\n public _transporterClaim: boolean;\r\n\r\n // Main Table\r\n public _availableColumns: ColumnDefinitionModel[];\r\n public _dataKey: string;\r\n public _tableData: ClaimSaveModel[];\r\n public _tableLoading: boolean;\r\n public _tableState: TableStateModel;\r\n\r\n private _taskId: string;\r\n private _claimRequest: ClaimSaveModel;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _asyncTaskController: AsyncTaskController,\r\n private _claimService: ClaimService,\r\n private _dialogService: DialogService,\r\n private _config: DynamicDialogConfig,\r\n private _filterController: PrimaryFilterController,\r\n private _messageService: MessageService,\r\n private _tableService: TableService\r\n ) {\r\n this._destroy$ = new Subject();\r\n\r\n this._loading = true;\r\n this._tableLoading = true;\r\n\r\n this._readOnlyVar = _authService.hasPermission(PermissionConstants.readOnlyUser);\r\n this._cloverClaim = _authService.hasPermission(PermissionConstants.cloverClaim);\r\n this._transporterClaim = _authService.hasPermission(PermissionConstants.transporterClaim);\r\n\r\n this._tableData = [];\r\n this.setTable();\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._asyncTaskController.updateStatus(new AppStatus(\"info\", \"Ready\"));\r\n\r\n this.loadTableStates();\r\n\r\n this.loadTableData(this._config.data.claimDetails);\r\n }\r\n\r\n public onDataUpdate(tripId: number): void {\r\n\r\n let _trID: number;\r\n _trID = tripId;\r\n \r\n\r\n\r\n this._taskId = this._asyncTaskController.startTask(\"Updating\");\r\n\r\n this.loadUpdateTableData(_trID);\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n \r\n } \r\n\r\n public ngOnDestroy(): void {\r\n if (this._taskId) {\r\n this._asyncTaskController.completeTask(this._taskId);\r\n }\r\n\r\n this._destroy$.next(true);\r\n this._destroy$.unsubscribe();\r\n }\r\n\r\n public saveState(state: TableStateModel): void {\r\n this._tableService.SaveTableStates(state).subscribe(obs => {\r\n if (!obs) {\r\n this._messageService.add({\r\n severity: \"warning\",\r\n summary: \"Table State\",\r\n detail: \"Failed to update table state.\"\r\n });\r\n }\r\n }, error => {\r\n this._messageService.add({ severity: \"warning\", summary: \"Table State\", detail: \"Failed to update table state.\" });\r\n });\r\n }\r\n\r\n private loadTableData(row: ClaimSaveModel): void {\r\n if (row.transportRequestId === undefined || row.transportRequestId === null) {\r\n this._tableData = [];\r\n return;\r\n }\r\n this._tableLoading = true;\r\n\r\n this._taskId = this._asyncTaskController.startTask(\"Loading claims\");\r\n\r\n //this._claimRequest = row;\r\n this.loadUpdateTableData(row.transportRequestId);\r\n }\r\n\r\n private loadUpdateTableData(tripId: number): void {\r\n\r\n this._claimService.loadClaimSavedData(tripId,0)\r\n .pipe(\r\n takeUntil(this._destroy$)\r\n )\r\n .subscribe(obs => {\r\n this._tableLoading = false;\r\n\r\n if (!obs || obs.length === 0) {\r\n this._tableData = [];\r\n return;\r\n }\r\n\r\n this._tableData = obs.map(o => o);\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n }, error => {\r\n this._tableLoading = false;\r\n this._tableData = [];\r\n\r\n this._asyncTaskController.completeTask(this._taskId);\r\n });\r\n }\r\n\r\n private loadTableStates(): void {\r\n this._tableService.GetTableStates(this._tableState.name).subscribe(obs => {\r\n if (!obs) {\r\n this._loading = false;\r\n return;\r\n }\r\n\r\n let state: TableStateModel = JSON.parse(obs);\r\n if (state && state.name === this._tableState.name) {\r\n this._tableState = state;\r\n }\r\n this._loading = false;\r\n }, error => {\r\n this._loading = false;\r\n this._messageService.add({\r\n severity: \"warning\",\r\n summary: \"Table State\",\r\n detail: \"Failed to restore Transport Request table state.\"\r\n });\r\n });\r\n }\r\n\r\n private setTable(): void {\r\n this._availableColumns = [\r\n { field: \"claimId\", header: \"Claim ID\", width: \"150px\", filter: true },\r\n { field: \"claimer\", header: \"Claimed By\", width: \"200px\", filter: true },\r\n { field: \"handler\", header: \"Handled By\", width: \"150px\", filter: true },\r\n //{ field: \"transportRequestStatus\", header: \"Trip Status\", width: \"150px\", filter: true },\r\n { field: \"claimDetailsStatus\", header: \"Claim Status\", width: \"150px\", filter: true },\r\n { field: \"userGroup\", header: \"User Group\", width: \"175px\", filter: true },\r\n { field: \"rejectReason\", header: \"Reject Reason\", width: \"175px\", filter: true }, \r\n ////{field: \"haulierCode\", header: \"Haulier Code\", width: \"150px\", filter: true},\r\n //{ field: \"haulierName\", header: \"Transporter Name\", width: \"175px\", filter: true },\r\n //{ field: \"origin\", header: \"Collection Location\", width: \"200px\", filter: true },\r\n //{ field: \"destination\", header: \"Delivery Location\", width: \"200px\", filter: true },\r\n {\r\n field: \"incidentDate\",\r\n header: \"Incident Date\",\r\n width: \"175px\",\r\n filter: true,\r\n dataType: \"date\",\r\n filterConstraint: new ColumnFilterModel(\"date\")\r\n },\r\n {\r\n field: \"claimDate\",\r\n header: \"Claim Lodge Date\",\r\n width: \"175px\",\r\n filter: true,\r\n dataType: \"date\",\r\n filterConstraint: new ColumnFilterModel(\"date\")\r\n }\r\n ];\r\n\r\n this._dataKey = \"transportRequestId\";\r\n this._tableState = {\r\n name: \"claims-management-state-details\"\r\n };\r\n }\r\n}\r\n","export default \".claim-lodged {\\r\\n color:blue;\\r\\n}\\r\\n\\r\\n.claim-progress {\\r\\n color: orange;\\r\\n}\\r\\n\\r\\n.claim-completed {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.claim-rejected {\\r\\n color: red;\\r\\n}\\r\\n\\r\\ni {\\r\\n font-size: 2em;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3RyaXAtY2xhaW0tZGlhbG9nL3RyaXAtY2xhaW0uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsY0FBYztBQUNoQiIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy90cmlwLWNsYWltLWRpYWxvZy90cmlwLWNsYWltLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jbGFpbS1sb2RnZWQge1xyXG4gIGNvbG9yOmJsdWU7XHJcbn1cclxuXHJcbi5jbGFpbS1wcm9ncmVzcyB7XHJcbiAgY29sb3I6IG9yYW5nZTtcclxufVxyXG5cclxuLmNsYWltLWNvbXBsZXRlZCB7XHJcbiAgY29sb3I6IGdyZWVuO1xyXG59XHJcblxyXG4uY2xhaW0tcmVqZWN0ZWQge1xyXG4gIGNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbmkge1xyXG4gIGZvbnQtc2l6ZTogMmVtO1xyXG59XHJcbiJdfQ== */\"","import { Component, Input, OnInit, Output, EventEmitter } from \"@angular/core\";\r\nimport { TransportRequestModel } from \"../../models/transport-request.model\";\r\nimport { ClaimModel } from \"../../models/claim.model\";\r\nimport { ClaimBriefDialog } from \"../claim-brief/claim-brief.dialog\";\r\nimport { DialogResponseModel } from \"../../models/response-status/dialog-response.model\";\r\nimport { DialogService } from \"primeng/dynamicdialog\";\r\nimport { ClaimService } from \"../../services/claim.service\";\r\nimport { ConfirmationService, Message } from \"primeng/api\";\r\nimport { AuthService } from \"@slender/auth\";\r\nimport { UpdateStatusResponseModel } from \"../../models/response-status/update-status-response.model\";\r\nimport { TripClaimDialog } from \"../trip-claim-dialog/trip-claim-dialog.component\";\r\nimport { ClaimSaveModel } from \"../../models/claim-save.model\";\r\n\r\n@Component({\r\n selector: \"trip-claim-status-cell\",\r\n templateUrl: \"trip-claim-status-cell.html\",\r\n styleUrls: [\"trip-claim-status-cell.css\"],\r\n providers: [ConfirmationService, DialogService]\r\n})\r\nexport class TripClaimStatusCellComponent implements OnInit {\r\n @Input() type: string;\r\n @Input() transportRequestRow: TransportRequestModel;\r\n @Input() claimRow: ClaimSaveModel;\r\n //ToDo: Only one claimRow must be passed, refactor this\r\n @Input() claimRow1: ClaimModel;\r\n\r\n @Input() readOnlyVar: boolean;\r\n @Input() cloverClaim: boolean;\r\n @Input() transporterClaim: boolean;\r\n\r\n @Output() responseEmitter: EventEmitter;\r\n\r\n public _userName: string;\r\n public _readOnlyVar: boolean;\r\n public _cloverClaim: boolean;\r\n public _transporterClaim: boolean;\r\n\r\n public _isClaimLodger: boolean;\r\n public _isSameUserGroup: boolean;\r\n\r\n public _disableClaimView: boolean;\r\n\r\n private _claimDetails: ClaimSaveModel;\r\n private _claimRowDetails: ClaimModel;\r\n public _messages: Message[];\r\n\r\n constructor(\r\n private _confirmationService: ConfirmationService,\r\n private _dialogService: DialogService,\r\n private _claimService: ClaimService,\r\n private _authService: AuthService,\r\n ) {\r\n this.responseEmitter = new EventEmitter();\r\n this._claimDetails = new ClaimSaveModel();\r\n this._messages = [];\r\n\r\n this._isSameUserGroup = false;\r\n this._disableClaimView = false;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._claimDetails = this.claimRow;\r\n this._claimRowDetails = this.claimRow1;\r\n\r\n this._userName = this._authService.getUsername();\r\n this._readOnlyVar = this.readOnlyVar;\r\n this._cloverClaim = this.cloverClaim;\r\n this._transporterClaim = this.transporterClaim;\r\n\r\n //This Czhecks if the user that created the claim is the one \r\n //viewing it at the moment\r\n //you cannot deal with your own claim\r\n if (this._claimDetails) {\r\n if (this._userName === this._claimDetails.userGroup) {\r\n this._isClaimLodger = true;\r\n }\r\n else {\r\n this._isClaimLodger = false; \r\n }\r\n\r\n //This checks if the person is a clover user and if the \r\n //same user is the one that created the claim.\r\n // Clover users cannot Deal with Clover created claims and Vice-versa for Transporters\r\n if (this._cloverClaim && this._claimDetails.userGroup === \"Clover\") {\r\n this._isSameUserGroup = true;\r\n }\r\n\r\n if (this._transporterClaim && this._claimDetails.userGroup === \"Transporter\") {\r\n this._isSameUserGroup = true;\r\n }\r\n\r\n if (!this.claimRow1.tripClaim) {\r\n this._disableClaimView = true;\r\n }\r\n }\r\n }\r\n\r\n //public acceptClaimCompletion(): void {\r\n // this._confirmationService.confirm({\r\n // message: \"Confirm claim completion?\",\r\n // header: \"Complete Claim\",\r\n // icon: \"pi pi-question-circle\",\r\n // accept: () => {\r\n // this.confirmClaim();\r\n // }\r\n // });\r\n //}\r\n\r\n //private confirmClaim(): void {\r\n // let dialogResponse = new DialogResponseModel(\"Claim\");\r\n\r\n // this._claimService.changeClaimStatus(this.claimRow.transportRequestId, 'Claim Completed', ' ').subscribe(obs => {\r\n // if (!obs) {\r\n // return;\r\n // }\r\n\r\n // //let dialogResponse = new DialogResponseModel(\"Claim\");\r\n // dialogResponse.addResponse(obs);\r\n\r\n // this.responseEmitter.emit(dialogResponse);\r\n // this._messages.push({\r\n // severity: \"success\",\r\n // detail: \"Status Updated to Completed.\"\r\n // });\r\n\r\n // }, error => {\r\n // this._messages.push({ severity: \"error\", detail: \"Failed to update claim status\" });\r\n // });\r\n //}\r\n\r\n public showClaimForm(): void {\r\n\r\n const ref = this._dialogService.open(ClaimBriefDialog, {\r\n data: {\r\n claimDetails: this._claimDetails,\r\n readOnlyVar: false,\r\n cloverClaim: this.cloverClaim,\r\n transporterClaim: this.transporterClaim,\r\n isClaimLodger: this._isClaimLodger,\r\n isSameUserGroup: this._isSameUserGroup,\r\n type: 'new'\r\n },\r\n header: \"Lodge A Claim For \" + this.claimRow1.transportRequestCode,\r\n width: \"85%\"\r\n });\r\n\r\n //ref.onClose.subscribe(obs => {\r\n // if (!obs) {\r\n // return;\r\n // }\r\n\r\n // this.responseEmitter.emit(obs);\r\n //});\r\n ref.onClose.subscribe(obs => {\r\n\r\n if (obs) {\r\n let updateResponse = new UpdateStatusResponseModel();\r\n updateResponse.isError = false;\r\n updateResponse.message = \"Claim Updated\";\r\n updateResponse.code = `${this.claimRow1.transportRequestCode}`;\r\n\r\n let response = new DialogResponseModel(\"Claims\");\r\n response.addResponse(updateResponse);\r\n this.responseEmitter.emit(response);\r\n\r\n }\r\n \r\n });\r\n } \r\n\r\n\r\n public showTripClaims(): void {\r\n\r\n const ref = this._dialogService.open(TripClaimDialog, {\r\n data: {\r\n claimDetails: this._claimDetails,\r\n readOnlyVar: false,\r\n cloverClaim: this.cloverClaim,\r\n transporterClaim: this.transporterClaim,\r\n isClaimLodger: this._isClaimLodger,\r\n isSameUserGroup: this._isSameUserGroup\r\n },\r\n header: \"View Claims For \" + this.claimRow1.transportRequestCode,\r\n width: \"85%\"\r\n });\r\n\r\n ref.onClose.subscribe(obs => {\r\n\r\n if (obs) {\r\n let updateResponse = new UpdateStatusResponseModel();\r\n updateResponse.isError = false;\r\n updateResponse.message = \"Claim Updated\";\r\n updateResponse.code = `${this._claimDetails.transportRequestId}`;\r\n\r\n let response = new DialogResponseModel(\"Claims\");\r\n response.addResponse(updateResponse);\r\n this.responseEmitter.emit(response);\r\n\r\n }\r\n\r\n });\r\n } \r\n}\r\n","export default \".claim-lodged {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.claim-progress {\\r\\n color: orange;\\r\\n}\\r\\n\\r\\n.claim-completed {\\r\\n color: green;\\r\\n}\\r\\n\\r\\n.claim-rejected {\\r\\n color: #F20B22;\\r\\n}\\r\\n\\r\\n.claim-view {\\r\\n color: blue;\\r\\n}\\r\\n\\r\\ni {\\r\\n font-size: 2em;\\r\\n border: groove;\\r\\n border-width:thin;\\r\\n border-color: black;\\r\\n}\\r\\n\\r\\n.parent {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-align: center;\\r\\n align-items: center;\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.narrow {\\r\\n width: 40px;\\r\\n}\\r\\n\\r\\n.wide {\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1;\\r\\n text-align:left;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3RyaXAtY2xhaW0tc3RhdHVzLWNlbGwvdHJpcC1jbGFpbS1zdGF0dXMtY2VsbC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsY0FBYztFQUNkLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2IseUJBQW1CO1VBQW5CLG1CQUFtQjtFQUNuQix3QkFBdUI7VUFBdkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsbUJBQU87VUFBUCxPQUFPO0dBQ04sZUFBZTtBQUNsQiIsImZpbGUiOiJPcHNpLkhhdWxpZXJXZWIuVUkuU2VydmVyL3NyYy9hcHAvY29tcG9uZW50cy90cmlwLWNsYWltLXN0YXR1cy1jZWxsL3RyaXAtY2xhaW0tc3RhdHVzLWNlbGwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNsYWltLWxvZGdlZCB7XHJcbiAgY29sb3I6IGdyZWVuO1xyXG59XHJcblxyXG4uY2xhaW0tcHJvZ3Jlc3Mge1xyXG4gIGNvbG9yOiBvcmFuZ2U7XHJcbn1cclxuXHJcbi5jbGFpbS1jb21wbGV0ZWQge1xyXG4gIGNvbG9yOiBncmVlbjtcclxufVxyXG5cclxuLmNsYWltLXJlamVjdGVkIHtcclxuICBjb2xvcjogI0YyMEIyMjtcclxufVxyXG5cclxuLmNsYWltLXZpZXcge1xyXG4gIGNvbG9yOiBibHVlO1xyXG59XHJcblxyXG5pIHtcclxuICBmb250LXNpemU6IDJlbTtcclxuICBib3JkZXI6IGdyb292ZTtcclxuICBib3JkZXItd2lkdGg6dGhpbjtcclxuICBib3JkZXItY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4ucGFyZW50IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5uYXJyb3cge1xyXG4gIHdpZHRoOiA0MHB4O1xyXG59XHJcblxyXG4ud2lkZSB7XHJcbiAgZmxleDogMTtcclxuICAgdGV4dC1hbGlnbjpsZWZ0O1xyXG59XHJcbiJdfQ== */\"","import {Component, OnDestroy, OnInit} from \"@angular/core\";\r\nimport {AuthService} from \"@slender/auth\";\r\nimport {AppStatus, AsyncTaskController} from \"@slender/foundation\";\r\nimport {MessageService} from \"primeng/api\";\r\nimport {DialogService} from \"primeng/dynamicdialog\";\r\nimport {Observable, Subject} from \"rxjs\";\r\nimport {switchMap, takeUntil} from \"rxjs/operators\";\r\nimport {PermissionConstants} from \"../../constants/permission.constants\";\r\nimport {PrimaryFilterController} from \"../../controllers\";\r\nimport {ColumnDefinitionModel} from \"../../models/table/column-definition.model\";\r\nimport {ColumnFilterModel} from \"../../models/table/column-filter.model\";\r\nimport {TableStateModel} from \"../../models/table/table-state.model\";\r\nimport {TransportRequestUpdateModel} from \"../../models/transport-request-update.model\";\r\nimport {TransportRequestModel} from \"../../models/transport-request.model\";\r\nimport {TableService} from \"../../services/table.service\";\r\nimport {TransportRequestService} from \"../../services/transport-request.service\";\r\nimport {ShipmentManagementDialog} from \"../shipment-management/shipment-management.dialog\";\r\n\r\n@Component({\r\n selector: \"trip-management\",\r\n templateUrl: \"trip-management.html\",\r\n styleUrls: [\"trip-management.css\"],\r\n providers: [DialogService, MessageService]\r\n})\r\nexport class TripManagementComponent implements OnInit, OnDestroy {\r\n private _destroy$: Subject;\r\n\r\n public _financeVar: boolean;\r\n public _loading: boolean;\r\n public _readOnlyVar: boolean;\r\n\r\n // Main Table\r\n public _availableColumns: ColumnDefinitionModel[];\r\n public _dataKey: string;\r\n public _tableData: TransportRequestModel[];\r\n public _tableLoading: boolean;\r\n public _tableStateMain: TableStateModel;\r\n\r\n // Sub Table\r\n public _tableStateSub: TableStateModel;\r\n\r\n private _task: string;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _asyncTaskController: AsyncTaskController,\r\n private _dialogService: DialogService,\r\n private _filterController: PrimaryFilterController,\r\n private _messageService: MessageService,\r\n private _tableService: TableService,\r\n private _tripService: TransportRequestService\r\n ) {\r\n this._destroy$ = new Subject();\r\n\r\n this._loading = true;\r\n this._tableLoading = true;\r\n\r\n this._financeVar = _authService.hasPermission(PermissionConstants.financeUser);\r\n this._readOnlyVar = _authService.hasPermission(PermissionConstants.readOnlyUser);\r\n\r\n this._tableData = [];\r\n\r\n this.setTable();\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._asyncTaskController.updateStatus(new AppStatus(\"info\", \"Ready\"));\r\n\r\n this.loadTableStates();\r\n\r\n this._filterController.filterObservable.pipe(\r\n takeUntil(this._destroy$),\r\n switchMap(filter =>\r\n this.loadTableData(filter.dateRange[0], filter.dateRange[1], filter.textSearch)\r\n )\r\n ).subscribe();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if(this._task) {\r\n this._asyncTaskController.completeTask(this._task);\r\n }\r\n\r\n this._destroy$.next(true);\r\n this._destroy$.unsubscribe();\r\n }\r\n\r\n public onCellUpdate(field: string, row: any): void {\r\n switch(field) {\r\n case \"customComment4\":\r\n this.saveTripComments(row);\r\n break;\r\n\r\n case \"customComment6\":\r\n case \"customComment7\":\r\n case \"customComment9\":\r\n case \"plannedVehicleRegistration\":\r\n this.saveTripRow(row);\r\n break;\r\n\r\n default:\r\n }\r\n }\r\n\r\n public onDataUpdate(trCodes: string[]): void {\r\n if(!trCodes || trCodes.length === 0) {\r\n return;\r\n }\r\n\r\n this._task = this._asyncTaskController.startTask(\"Updating\");\r\n\r\n this._tripService.getUpdatedTransportRequests(\r\n this._filterController.getFilters().dateRange[0],\r\n this._filterController.getFilters().dateRange[1],\r\n trCodes\r\n ).subscribe(obs => {\r\n obs.forEach(model => {\r\n let index = this._tableData.findIndex(tr => tr.code === model.code);\r\n if(index >= 0) {\r\n this._tableData[index] = model;\r\n\r\n this._tableData = this._tableData.map(data => data);\r\n }\r\n\r\n this._asyncTaskController.completeTask(this._task);\r\n });\r\n }, error => {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Updates\",\r\n detail: \"Failed to load updated transport requests.\"\r\n });\r\n\r\n this._asyncTaskController.completeTask(this._task);\r\n });\r\n }\r\n\r\n public displayShipments(row: TransportRequestModel): void {\r\n if(row.transportRequestId === undefined || row.transportRequestId == null) {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Shipment Data\",\r\n detail: \"No shipment data loaded\"\r\n });\r\n return;\r\n }\r\n\r\n const ref = this._dialogService.open(ShipmentManagementDialog, {\r\n data: {\r\n selectedRow: row\r\n },\r\n dismissableMask: true,\r\n header: `${row.code} Shipments`,\r\n height: \"70%\",\r\n width: \"90%\"\r\n });\r\n\r\n ref.onClose.subscribe(() => {\r\n this.onDataUpdate([`${row.transportRequestId}`]);\r\n }, error => {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Trip Management\",\r\n detail: \"Failed to update trip\"\r\n });\r\n });\r\n }\r\n\r\n public saveState(state: TableStateModel): void {\r\n this._tableService.SaveTableStates(state).subscribe(obs => {\r\n if(!obs) {\r\n this._messageService.add({\r\n severity: \"warning\",\r\n summary: \"Table State\",\r\n detail: \"Failed to update table state.\"\r\n });\r\n }\r\n }, error => {\r\n this._messageService.add({severity: \"warning\", summary: \"Table State\", detail: \"Failed to update table state.\"});\r\n });\r\n }\r\n\r\n private loadTableData(fromDate: Date, toDate: Date, filter: string): Observable {\r\n this._tableLoading = true;\r\n\r\n this._task = this._asyncTaskController.startTask(\"Loading requests\");\r\n\r\n this._tripService.getTransportRequests(fromDate, toDate, filter).subscribe(obs => {\r\n if(this._tableLoading) {\r\n this._tableData = obs;\r\n }\r\n\r\n this._tableLoading = false;\r\n\r\n this._asyncTaskController.completeTask(this._task);\r\n }, error => {\r\n this._tableLoading = false;\r\n\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Load Data\",\r\n detail: \"Failed to load transport requests.\"\r\n });\r\n\r\n this._asyncTaskController.completeTask(this._task);\r\n });\r\n\r\n return new Observable();\r\n }\r\n\r\n private loadTableStates(): void {\r\n this._tableService.GetTableStates(this._tableStateMain.name).subscribe(obs => {\r\n if(!obs) {\r\n this._loading = false;\r\n return;\r\n }\r\n\r\n let state: TableStateModel = JSON.parse(obs);\r\n if(state && state.name === this._tableStateMain.name) {\r\n this._tableStateMain = state;\r\n }\r\n this._loading = false;\r\n }, error => {\r\n this._loading = false;\r\n this._messageService.add({\r\n severity: \"warning\",\r\n summary: \"Table State\",\r\n detail: \"Failed to restore Transport Request table state.\"\r\n });\r\n });\r\n }\r\n\r\n private saveTripComments(row: TransportRequestModel): void {\r\n if(!row.transportRequestId) {\r\n return;\r\n }\r\n\r\n this._tripService.updateTransportRequestComments(row.transportRequestId, row.customComment4).subscribe(obs => {\r\n if(!obs) {\r\n this._messageService.add({\r\n severity: \"warning\",\r\n summary: \"Update Comment\",\r\n detail: \"Trip comments failed to update.\"\r\n });\r\n return;\r\n }\r\n\r\n if(!obs.isError) {\r\n this._messageService.add({severity: \"success\", summary: \"Update Comment\", detail: obs.message});\r\n this.onDataUpdate([obs.code]);\r\n } else {\r\n this._messageService.add({severity: \"error\", summary: \"Update Comment\", detail: obs.message});\r\n }\r\n }, error => {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Update Comment\",\r\n detail: `Failed to update trip comments: ${error.message}.`\r\n });\r\n });\r\n }\r\n\r\n private saveTripRow(row: TransportRequestModel): void {\r\n if(!row.transportRequestId) {\r\n return;\r\n }\r\n\r\n let toUpdate: TransportRequestUpdateModel = {\r\n requestId: row.transportRequestId,\r\n vehicleRegistration: row.customComment6,\r\n driverName: row.customComment7,\r\n transporterReference: row.customComment9,\r\n plannedVehicleRegistration: row.plannedVehicleRegistration\r\n };\r\n\r\n this._tripService.updateTransportRequest(toUpdate).subscribe(obs => {\r\n if(!obs) {\r\n this._messageService.add({\r\n severity: \"warning\",\r\n summary: \"Request Update\",\r\n detail: \"Transport request failed to update.\"\r\n });\r\n return;\r\n }\r\n\r\n if(!obs.isError) {\r\n this._messageService.add({severity: \"success\", summary: \"Request Update\", detail: obs.message});\r\n this.onDataUpdate([obs.code]);\r\n } else {\r\n this._messageService.add({severity: \"error\", summary: \"Request Update\", detail: obs.message});\r\n }\r\n }, error => {\r\n this._messageService.add({\r\n severity: \"error\",\r\n summary: \"Request Update\",\r\n detail: `Failed to update transport request: ${error.message}.`\r\n });\r\n });\r\n }\r\n\r\n private setTable(): void {\r\n this._availableColumns = [\r\n //{field: \"claimStatus\", header: \"Claim Status\", width: \"150px\", filter: true, visible: false},\r\n {\r\n field: \"physicalStatusName\",\r\n header: \"Trip Status\",\r\n width: \"250px\",\r\n filter: true\r\n },\r\n // {field: \"codeClient\", header: \"Client Code\", width: \"140px\", filter: true},\r\n {field: \"code\", header: \"Trip Code\", width: \"130px\", filter: true},\r\n {field: \"srReference\", header: \"Reference Number\", width: \"350px\", filter: true},\r\n // {field: \"deliveryWindows\", header: \"Delivery Window\", width: \"180px\", filter: true},\r\n { field: \"ppcNotes\", header: \"Clover Note\", width: \"180px\", filter: true },\r\n { field: \"chepNumber\", header: \"Chep Document Number\", width: \"250px\", filter: true },\r\n { field: \"invoiceNumber\", header: \"Invoice Captured\", width: \"180px\", filter: true },\r\n { field: \"invoiceSubmitted\", header: \"Invoice Submitted\", width: \"180px\", filter: true },\r\n {field: \"poNumber\", header: \"PO Order Number\", width: \"160px\", filter: true},\r\n {\r\n field: \"startDate\",\r\n header: \"Collection Date\",\r\n width: \"160px\",\r\n filter: true,\r\n dataType: \"date\",\r\n filterConstraint: new ColumnFilterModel(\"date\")\r\n },\r\n {\r\n field: \"deliveryArrival\",\r\n header: \"Delivery Date\",\r\n width: \"160px\",\r\n filter: true,\r\n dataType: \"date\",\r\n filterConstraint: new ColumnFilterModel(\"date\")\r\n },\r\n // {field: \"originCode\", header: \"Origin Code\", width: \"100px\", filter: true},\r\n {field: \"originName\", header: \"Collection Location\", width: \"120px\", filter: true},\r\n {field: \"originAreaGroupName\", header: \"Collection Area\", width: \"100px\", filter: true},\r\n // {field: \"terminusCode\", header: \"Terminus Code\", width: \"150px\", filter: true},\r\n {field: \"terminusName\", header: \"Delivery Location\", width: \"160px\", filter: true},\r\n {field: \"terminusAreaGroupName\", header: \"Delivery Area\", width: \"160px\", filter: true},\r\n {field: \"haulierName\", header: \"Transporter Name\", width: \"140px\", filter: true},\r\n // {\r\n // field: \"createdOn\",\r\n // header: \"Created On\",\r\n // width: \"120px\",\r\n // filter: true,\r\n // dataType: \"date\",\r\n // filterConstraint: new ColumnFilterModel(\"date\")\r\n // },\r\n {field: \"vehicleName\", header: \"Planned Vehicle\", width: \"130px\", filter: true},\r\n {field: \"vehicleClassName\", header: \"Vehicle Class\", width: \"130px\", filter: true},\r\n {field: \"tariffCode\", header: \"Tariff Code\", width: \"110px\", filter: true},\r\n {field: \"tariff\", header: \"Tariff Name\", width: \"110px\", filter: true},\r\n {field: \"plannedTariffAmount\", header: \"Tariff Amount\", width: \"180px\", filter: false, dataType: \"number\"},\r\n // {field: \"tariffNote\", header: \"Tariff Note\", width: \"200px\", filter: true},\r\n // {field: \"delNumber\", header: \"Del Number\", width: \"200px\", filter: true},\r\n // {field: \"plannedDistance\", header: \"Planned Distance\", width: \"180px\", filter: false, dataType: \"number\"},\r\n {field: \"customComment4\", header: \"Trip Comments\", width: \"160px\", filter: true, editable: true},\r\n {\r\n field: \"actualKms\",\r\n header: \"Actual KMs\",\r\n width: \"100px\",\r\n filter: true,\r\n dataType: \"number\"\r\n },\r\n {field: \"totalWeightPlanned\", header: \"Planned Trip Weight\", width: \"180px\", filter: true, dataType: \"number\"},\r\n {\r\n field: \"plannedVehicleRegistration\",\r\n header: \"Confirmed Vehicle\",\r\n width: \"160px\",\r\n filter: true,\r\n editable: true,\r\n filterMaxLength: 10\r\n },\r\n {field: \"customComment6\", header: \"Dispatched Vehicle\", width: \"160px\", filter: true},\r\n {field: \"customComment7\", header: \"Driver Name\", width: \"130px\", filter: true, editable: true},\r\n // {field: \"customComment9\", header: \"Transporter Reference\", width: \"200px\", filter: true, editable: true},\r\n {field: \"totalQtyPlanned\", header: \"Planned Trip Quantity\", width: \"100px\", filter: true, dataType: \"number\"},\r\n {field: \"tripComment\", header: \"Clover Trip Comments\", width: \"200px\", filter: true}\r\n ];\r\n\r\n if(!this._authService.hasPermission(PermissionConstants.haulier)) {\r\n this._availableColumns.push({\r\n field: \"poAmount\",\r\n header: \"PO Amount\",\r\n width: \"120px\",\r\n filter: true,\r\n dataType: \"number\",\r\n filterConstraint: new ColumnFilterModel(\"number\"),\r\n filterMaxLength: 2\r\n });\r\n }\r\n\r\n this._dataKey = \"transportRequestId\";\r\n this._tableStateMain = {\r\n name: \"trip-management-state\"\r\n };\r\n\r\n this._tableStateSub = {\r\n name: \"shipment-management-state\"\r\n };\r\n }\r\n}\r\n","export default \".container {\\r\\n height: 100%;\\r\\n margin: auto;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3RyaXAtbWFuYWdlbWVudC90cmlwLW1hbmFnZW1lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtFQUNaLFlBQVk7RUFDWixXQUFXO0FBQ2IiLCJmaWxlIjoiT3BzaS5IYXVsaWVyV2ViLlVJLlNlcnZlci9zcmMvYXBwL2NvbXBvbmVudHMvdHJpcC1tYW5hZ2VtZW50L3RyaXAtbWFuYWdlbWVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY29udGFpbmVyIHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcbiJdfQ== */\"","export default \".container {\\r\\n margin: 1em;\\r\\n}\\r\\n\\r\\n.label {\\r\\n font-size: 1.3em;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.control-group {\\r\\n margin: 0.5%;\\r\\n padding: 0.5%;\\r\\n}\\r\\n\\r\\n.control-group button {\\r\\n margin: 1%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3ZlaGljbGUtcmVnaXN0cmF0aW9uL3ZlaGljbGUtcmVnaXN0cmF0aW9uLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osYUFBYTtBQUNmOztBQUVBO0VBQ0UsVUFBVTtBQUNaIiwiZmlsZSI6Ik9wc2kuSGF1bGllcldlYi5VSS5TZXJ2ZXIvc3JjL2FwcC9jb21wb25lbnRzL3ZlaGljbGUtcmVnaXN0cmF0aW9uL3ZlaGljbGUtcmVnaXN0cmF0aW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xyXG4gIG1hcmdpbjogMWVtO1xyXG59XHJcblxyXG4ubGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogMS4zZW07XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5jb250cm9sLWdyb3VwIHtcclxuICBtYXJnaW46IDAuNSU7XHJcbiAgcGFkZGluZzogMC41JTtcclxufVxyXG5cclxuLmNvbnRyb2wtZ3JvdXAgYnV0dG9uIHtcclxuICBtYXJnaW46IDElO1xyXG59XHJcbiJdfQ== */\"","import {Component, OnInit} from \"@angular/core\";\r\nimport {Message} from \"primeng/api\";\r\nimport {DynamicDialogConfig, DynamicDialogRef} from \"primeng/dynamicdialog\";\r\nimport {TransportRequestVehicleModel} from \"../../models/transport-request-vehicle.model\";\r\nimport {TransportRequestService} from \"../../services/transport-request.service\";\r\n\r\n@Component({\r\n templateUrl: \"vehicle-registration.html\",\r\n styleUrls: [\"vehicle-registration.css\"]\r\n})\r\nexport class VehicleRegistrationDialog implements OnInit {\r\n // Dialog Inputs\r\n private _transportRequestId: number;\r\n private _vehicleRegistration: string;\r\n\r\n public _availableVehicles: TransportRequestVehicleModel[];\r\n public _messages: Message[];\r\n public _loading: boolean;\r\n public _selectedVehicle: TransportRequestVehicleModel;\r\n\r\n constructor(\r\n private _config: DynamicDialogConfig,\r\n private _tripService: TransportRequestService,\r\n private _ref: DynamicDialogRef\r\n ) {\r\n this._availableVehicles = [];\r\n this._messages = [];\r\n this._loading = true;\r\n }\r\n\r\n public ngOnInit(): void {\r\n if(!this._config.data.transportRequestId) {\r\n return;\r\n }\r\n\r\n this._transportRequestId = this._config.data.transportRequestId;\r\n this._vehicleRegistration = this._config.data.vehicleRegistration;\r\n\r\n this.loadData();\r\n }\r\n\r\n public cancel(): void {\r\n this._ref.close();\r\n }\r\n\r\n public saveData(): void {\r\n if(!this._selectedVehicle) {\r\n this._messages.push({\r\n severity: \"error\",\r\n detail: \"No vehicle selected\"\r\n });\r\n\r\n return;\r\n }\r\n\r\n this._ref.close(this._selectedVehicle.vehicle);\r\n }\r\n\r\n private loadData(): void {\r\n this._tripService.getHaulierVehicles(this._transportRequestId).subscribe(obs => {\r\n if(!obs) {\r\n this._loading = false;\r\n return;\r\n }\r\n\r\n this._availableVehicles = obs;\r\n\r\n let idx = this._availableVehicles.findIndex(v => v.vehicle === this._vehicleRegistration);\r\n if(idx >= 0) {\r\n this._selectedVehicle = this._availableVehicles[idx];\r\n }\r\n\r\n this._loading = false;\r\n }, error => {\r\n this._messages.push({\r\n severity: \"error\",\r\n detail: \"Failed to load vehicles\"\r\n });\r\n\r\n this._loading = false;\r\n });\r\n }\r\n}\r\n","export class PermissionConstants {\r\n // Super user\r\n public static superUser = [\"inhance system administrator\", \"super\", \"haulierwebsuper\"];\r\n\r\n public static readOnlyUser = \"ReadOnlyUser\";\r\n public static financeUser = \"FinanceController\";\r\n public static haulier = \"all haulier web\";\r\n\r\n public static cloverClaim = \"CloverClaim\";\r\n public static transporterClaim = \"TransporterClaim\";\r\n}\r\n","import {HttpResponse} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class DownloadController {\r\n constructor() {\r\n }\r\n\r\n public downloadFile(response: HttpResponse): boolean {\r\n if(!response.body || response.body.size === 0) {\r\n return false;\r\n }\r\n\r\n let fileName = \"DownloadedFile\";\r\n let content = response.headers.get(\"Content-Disposition\");\r\n if(content) {\r\n let idx = content.indexOf(\"filename\");\r\n if(idx >= 0) {\r\n fileName = content.substring(idx + \"filename=\".length);\r\n idx = fileName.indexOf(\";\");\r\n fileName = fileName.substring(0, idx);\r\n }\r\n }\r\n\r\n let downloadedFile = new Blob([response.body], {type: response.body.type});\r\n\r\n let a = document.createElement(\"a\");\r\n a.setAttribute(\"style\", \"display: none\");\r\n\r\n document.body.appendChild(a);\r\n\r\n a.download = fileName ? fileName : \"File\";\r\n a.href = URL.createObjectURL(downloadedFile);\r\n a.target = \"_blank\";\r\n a.click();\r\n\r\n document.body.removeChild(a);\r\n\r\n return true;\r\n }\r\n}\r\n","import {DownloadController} from \"./download.controller\";\r\nimport {PrimaryFilter} from \"./primary-filter\";\r\nimport {PrimaryFilterController} from \"./primary-filter.controller\";\r\n\r\nexport {\r\n DownloadController, PrimaryFilter, PrimaryFilterController\r\n}\r\n\r\nexport const CONTROLLERS = [\r\n DownloadController,\r\n PrimaryFilter,\r\n PrimaryFilterController\r\n];\r\n","import {Injectable} from \"@angular/core\";\r\nimport {AuthController} from \"@slender/auth\";\r\nimport {Cookie} from \"ng2-cookies\";\r\nimport {BehaviorSubject, Observable} from \"rxjs\";\r\nimport {IFilter} from \"../models/filter/filter.interface\";\r\nimport {PrimaryFilter} from \"./primary-filter\";\r\n\r\n@Injectable()\r\nexport class PrimaryFilterController {\r\n public filterObservable: Observable;\r\n\r\n private readonly FilterCookie = \"PrimaryFilter\";\r\n\r\n private _filterSource: BehaviorSubject;\r\n\r\n constructor(\r\n private _authController: AuthController\r\n ) {\r\n this._filterSource = new BehaviorSubject(this.getFilters());\r\n this.filterObservable = this._filterSource.asObservable();\r\n\r\n //this._authController.loggedOut.subscribe(() => {\r\n // this.clearFilter();\r\n //});\r\n }\r\n\r\n public setFilter(filter: IFilter): void {\r\n let filterJson = JSON.stringify(filter);\r\n\r\n Cookie.set(this.FilterCookie, filterJson);\r\n this._filterSource.next(filter);\r\n }\r\n\r\n public getFilters(): IFilter {\r\n let filterCookie = Cookie.get(this.FilterCookie);\r\n\r\n if(filterCookie) {\r\n let filters = JSON.parse(filterCookie);\r\n\r\n return {\r\n dateRange: [\r\n new Date(filters.dateRange[0]),\r\n new Date(filters.dateRange[1])\r\n ],\r\n monthPicked: new Date(filters.monthPicked),\r\n textSearch: filters.textSearch\r\n };\r\n }\r\n\r\n return {\r\n dateRange: [\r\n new Date(new Date().setDate(new Date().getDate() - 1)),\r\n new Date(new Date().setDate(new Date().getDate() + 2))\r\n ],\r\n monthPicked: new Date(new Date().setDate(new Date().getDate() - 1)),\r\n textSearch: \"\"\r\n };\r\n }\r\n\r\n private clearFilter(): void {\r\n let filter = {\r\n dateRange: [\r\n new Date(new Date().setDate(new Date().getDate() - 1)),\r\n new Date(new Date().setDate(new Date().getDate() + 2))\r\n ],\r\n monthPicked: new Date(new Date().setDate(new Date().getDate() - 1)),\r\n textSearch: \"\"\r\n };\r\n\r\n this._filterSource.next(filter);\r\n\r\n Cookie.delete(this.FilterCookie);\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {IFilter} from \"../models/filter/filter.interface\";\r\nimport {PrimaryFilterController} from \"./primary-filter.controller\";\r\nimport Timer = NodeJS.Timer;\r\n\r\n@Injectable()\r\nexport class PrimaryFilter {\r\n public get dateRange(): Date[] {\r\n return this._filter.dateRange;\r\n }\r\n public set dateRange(range: Date[]) {\r\n range[0].setHours(0);\r\n range[0].setMinutes(0);\r\n range[0].setSeconds(0);\r\n\r\n range[1].setHours(23);\r\n range[1].setMinutes(59);\r\n range[1].setSeconds(59);\r\n\r\n this._filter.dateRange = range;\r\n\r\n this.setFilters();\r\n }\r\n\r\n public get monthPicked(): Date {\r\n return this._filter.monthPicked;\r\n }\r\n public set monthPicked(picked: Date) {\r\n this._filter.monthPicked = picked;\r\n\r\n this.setFilters();\r\n }\r\n\r\n public get textSearch(): string {\r\n return this._filter.textSearch;\r\n }\r\n public set textSearch(text: string) {\r\n this._filter.textSearch = text;\r\n\r\n this.setFilters();\r\n }\r\n\r\n private readonly _filter: IFilter;\r\n\r\n private _filterTimeout: Timer;\r\n\r\n constructor(private _filterController: PrimaryFilterController) {\r\n this._filter = _filterController.getFilters();\r\n }\r\n\r\n private setFilters(): void {\r\n if(this._filterTimeout) {\r\n clearTimeout(this._filterTimeout);\r\n }\r\n\r\n this._filterTimeout = setTimeout(() => {\r\n this._filterController.setFilter(this._filter);\r\n }, 1000);\r\n }\r\n}\r\n","import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs\";\r\nimport {filter, map} from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class JsonDateInterceptor implements HttpInterceptor {\r\n private _isoDateFormat = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d*)?Z$/;\r\n\r\n public intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(req).pipe(\r\n filter(event => event instanceof HttpResponse && req.url.includes(\"api\")),\r\n map((event: HttpResponse) => {\r\n event = event.clone({\r\n body: this.convert(event.body)\r\n });\r\n\r\n return event;\r\n })\r\n );\r\n }\r\n\r\n private convert(body: any): any {\r\n if(body === null || body === undefined) {\r\n return body;\r\n }\r\n\r\n if(typeof body !== \"object\") {\r\n return body;\r\n }\r\n\r\n for(let key of Object.keys(body)) {\r\n let value = body[key];\r\n \r\n if(this.isIsoDateString(value)) {\r\n let timeZoneIndex = value.indexOf(\"Z\");\r\n\r\n if(timeZoneIndex >= 0) {\r\n value = value.substring(0, timeZoneIndex);\r\n }\r\n\r\n body[key] = new Date(value);\r\n } else if(typeof value === \"object\") {\r\n body[key] = this.convert(value);\r\n }\r\n }\r\n\r\n return body;\r\n }\r\n\r\n private isIsoDateString(value: any): boolean {\r\n if(value === null || value === undefined) {\r\n return false;\r\n }\r\n\r\n if(typeof value === 'string') {\r\n return this._isoDateFormat.test(value);\r\n }\r\n return false;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse} from \"@angular/common/http\";\r\nimport {Observable} from \"rxjs\";\r\nimport {filter, map} from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class JsonNumberInterceptor implements HttpInterceptor {\r\n public intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(req).pipe(\r\n filter(event => event instanceof HttpResponse && req.url.includes(\"api\")),\r\n map((event: HttpResponse) => {\r\n event = event.clone({\r\n body: this.convert(event.body)\r\n });\r\n \r\n return event;\r\n })\r\n );\r\n }\r\n \r\n private convert(body: any): any {\r\n if(body === null || body === undefined) {\r\n return body;\r\n }\r\n \r\n if(typeof body !== \"object\") {\r\n return body;\r\n }\r\n \r\n for(let key of Object.keys(body)) {\r\n let value = body[key];\r\n \r\n if(typeof value === \"number\") {\r\n let temp = body[key].toFixed(2);\r\n body[key] = parseFloat(temp);\r\n } else if(typeof value === \"object\") {\r\n body[key] = this.convert(value);\r\n }\r\n }\r\n \r\n return body;\r\n }\r\n}\r\n","export class BriefAModel {\r\n transportRequestId: number;\r\n shipmentId: number;\r\n shipmentIds: string;\r\n vehicleRegistration?: string;\r\n tripStartKilometers: number;\r\n tripEndKilometers: number;\r\n actualDistance?: number;\r\n dispatchWeightVariance: number;\r\n driverName?: string;\r\n actualDeliveredWeight: number;\n\r\n constructor() {\r\n this.transportRequestId = 0;\r\n this.shipmentId = 0;\r\n this.shipmentIds = \"\";\r\n this.tripStartKilometers = 0;\r\n this.tripEndKilometers = 0;\r\n this.actualDistance = 0;\r\n this.dispatchWeightVariance = 0;\r\n this.actualDeliveredWeight = 0;\r\n }\r\n}\r\n","export class BriefActualDetailsModel {\r\n tripId: number;\r\n tripName: string;\r\n shipmentId: number;\r\n shipmentIds: string;\r\n\r\n actualCollectionArrivalDate: Date;\r\n actualCollectionDepartureDate: Date;\r\n actualDeliveryArrivalDate: Date;\r\n actualDeliveryDepartureDate: Date;\r\n invoiceSubmitted?: string;\r\n chepNumber?: string;\r\n\r\n constructor() {\r\n this.tripId = 0;\r\n this.tripName = \"\";\r\n this.shipmentId = 0;\r\n this.shipmentIds = \"\";\r\n\r\n this.actualCollectionArrivalDate = new Date(Date.now());\r\n this.actualCollectionDepartureDate = new Date(Date.now());\r\n\r\n this.actualDeliveryArrivalDate = new Date(Date.now());\r\n this.actualDeliveryDepartureDate = new Date(Date.now());\r\n }\r\n}\r\n","export class BriefExplanationModel {\r\n tripId: number;\r\n shipmentId: number;\r\n shipmentIds: string;\r\n userName: string;\r\n\r\n actualDistanceIssue: string;\r\n actualDistanceReason: string;\r\n actualDistanceAddInfo: string;\r\n\r\n dispatchWeightIssue: string;\r\n dispatchWeightReason: string;\r\n dispatchWeightAddInfo: string;\r\n\r\n deliveredWeightIssue: string;\r\n deliveredWeightReason: string;\r\n deliveredWeightAddInfo: string;\r\n\r\n collectionArrivalIssue: string;\r\n collectionArrivalReason: string;\r\n collectionArrivalAddInfo: string;\r\n\r\n collectionDepartureIssue: string;\r\n collectionDepartureReason: string;\r\n collectionDepartureAddInfo: string;\r\n\r\n deliveryArrivalIssue: string;\r\n deliveryArrivalReason: string;\r\n deliveryArrivalAddInfo: string;\r\n\r\n deliveryDepartureIssue: string;\r\n deliveryDepartureReason: string;\r\n deliveryDepartureAddInfo: string;\r\n\r\n constructor() {\r\n this.tripId = 0;\r\n this.shipmentId = 0;\r\n this.shipmentIds = \"\";\r\n this.userName = \"\";\r\n\r\n this.actualDistanceIssue = \"\";\r\n this.actualDistanceReason = \"\";\r\n this.actualDistanceAddInfo = \"\";\r\n\r\n this.dispatchWeightIssue = \"\";\r\n this.dispatchWeightReason = \"\";\r\n this.dispatchWeightAddInfo = \"\";\r\n\r\n this.deliveredWeightIssue = \"\";\r\n this.deliveredWeightReason = \"\";\r\n this.deliveredWeightAddInfo = \"\";\r\n\r\n this.collectionArrivalIssue = \"\";\r\n this.collectionArrivalReason = \"\";\r\n this.collectionArrivalAddInfo = \"\";\r\n\r\n this.collectionDepartureIssue = \"\";\r\n this.collectionDepartureReason = \"\";\r\n this.collectionDepartureAddInfo = \"\";\r\n\r\n this.deliveryArrivalIssue = \"\";\r\n this.deliveryArrivalReason = \"\";\r\n this.deliveryArrivalAddInfo = \"\";\r\n\r\n this.deliveryDepartureIssue = \"\";\r\n this.deliveryDepartureReason = \"\";\r\n this.deliveryDepartureAddInfo = \"\";\r\n }\r\n}\r\n","export class ClaimDataModel {\r\n transportRequestId: number;\r\n date: Date;\r\n issue: string;\r\n reason: string;\r\n otherReason: string;\r\n description: string;\r\n amount: number;\r\n sealNumber: string;\r\n claimStatus: string;\r\n isSealIntact: boolean;\r\n isPalletCorrectlyPacked: boolean;\r\n isProductInPallet: boolean;\r\n isCrateInGoodCondition: boolean;\r\n isPalletSlip: boolean;\r\n isLoadSheet: boolean;\r\n hasFile?: boolean;\r\n\r\n constructor() {\r\n //this.transportRequestId = 0;\r\n //this.date = new Date();\r\n //this.reason = \"\";\r\n //this.otherReason = \"\";\r\n //this.description = \"\";\r\n //this.amount = 10;\r\n //this.sealNumber = \"\";\r\n //this.issue = \"\";\r\n\r\n //this.isSealIntact = true;\r\n //this.isPalletCorrectlyPacked = true;\r\n //this.isProductInPallet = true;\r\n //this.isCrateInGoodCondition = true;\r\n //this.isPalletSlip = true;\r\n //this.isLoadSheet = true;\r\n //this.hasFile = false;\r\n }\r\n}\r\n","export class ClaimSaveModel {\r\n claimId: number;\r\n claimUserId: number;\r\n transportRequestId: number;\r\n trCode: string;\r\n claimDetailsStatus: string;\r\n issue: string;\r\n reason: string;\r\n otherReason: string;\r\n description: string;\r\n amount: number;\r\n claimDate: Date;\r\n sealNumber: string;\r\n isSealIntact: boolean;\r\n isPalletCorrectlyPacked: boolean;\r\n isProductInPallet: boolean;\r\n isCrateInGoodCondition: boolean;\r\n isPalletSlip: boolean;\r\n isLoadSheet: boolean;\r\n hasFile?: boolean;\r\n userGroup: string;\r\n claimer: string;\r\n handler: string;\r\n rejectReason: string;\r\n incidentDate: Date;\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","export class ClaimModel {\r\n clientId: number;\r\n clientName: string;\r\n\r\n transportRequestId: number;\r\n transportRequestCode: string;\r\n transportRequestStatus: string;\r\n\r\n //claimStatus: string;\r\n\r\n haulierName: string;\r\n haulierCode: string;\r\n\r\n origin: string;\r\n destination: string;\r\n\r\n startDate: Date;\r\n\r\n //rejectReason: string;\r\n\r\n tripClaim: string;\r\n\r\n //claimLodgedBy: string;\r\n\r\n //userGroup: string;\r\n\r\n constructor() {\r\n }\r\n}\r\n","export class FileLocationModel {\r\n locationId: number;\r\n fileName: string;\r\n documentType: string;\r\n\r\n constructor() {\r\n this.locationId = 0;\r\n }\r\n}\r\n","export enum FileType {\r\n none,\r\n brief,\r\n claim\r\n}\r\n\r\nexport class FileTypeModel {\r\n name: string;\r\n code: string;\r\n\r\n constructor() {\r\n }\r\n\r\n public static getBriefTypes(): FileTypeModel[] {\r\n return [\r\n {name: \"POD\", code: \"Pod\"},\r\n {name: \"Invoice\", code: \"Invoice\"},\r\n {name: \"Export\", code: \"Export\"}\r\n ];\r\n }\r\n\r\n public static getClaimTypes(): FileTypeModel[] {\r\n return [\r\n {name: \"Claim\", code: \"Claim\"}\r\n ];\r\n }\r\n\r\n public static getName(code: string): string {\r\n let item = this.getBriefTypes().find(f => f.code === code);\r\n\r\n if (!item) {\r\n item = this.getClaimTypes().find(f => f.code === code);\r\n if (!item) {\r\n return \"\";\r\n }\r\n }\r\n\r\n return item.name;\r\n }\r\n}\r\n","export class ContactModel {\r\n id: number;\r\n name: string;\r\n email: string;\r\n cell?: string;\r\n office: string;\r\n header?: string;\r\n\r\n constructor() {\r\n this.id = -1;\r\n this.name = \"\";\r\n this.email = \"\";\r\n this.cell = \"\";\r\n this.office = \"\";\r\n this.header = \"\";\r\n }\r\n\r\n public static Copy(model: ContactModel): ContactModel {\r\n let contact = new ContactModel();\r\n\r\n contact.id = model.id;\r\n contact.name = model.name;\r\n contact.email = model.email;\r\n contact.cell = model.cell;\r\n contact.office = model.office;\r\n contact.header = model.header;\r\n\r\n return contact;\r\n }\r\n\r\n public validate(): boolean {\r\n if(!this.name) {\r\n return false;\r\n }\r\n if(!this.email) {\r\n return false;\r\n }\r\n if(!this.office) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import {ContactModel} from \"./contact.model\";\r\nimport {DriverRouteModel} from \"./driver-route.model\";\r\n\r\nexport class DriverDetailModel {\r\n contact: ContactModel;\r\n routes: DriverRouteModel[];\r\n\r\n constructor() {\r\n this.contact = new ContactModel();\r\n this.routes = [];\r\n }\r\n\r\n public static Copy(model: DriverDetailModel): DriverDetailModel {\r\n let contact = ContactModel.Copy(model.contact);\r\n\r\n let routes: DriverRouteModel[] = [];\r\n model.routes.forEach(route => {\r\n routes.push(DriverRouteModel.Copy(route));\r\n });\r\n\r\n let driverDetail = new DriverDetailModel();\r\n driverDetail.contact = contact;\r\n driverDetail.routes = routes;\r\n\r\n return driverDetail;\r\n }\r\n\r\n public validate(): boolean {\r\n if(!this.contact.validate()) {\r\n return false;\r\n }\r\n this.routes.forEach(route => {\r\n if(!route.validate()) {\r\n return false;\r\n }\r\n });\r\n\r\n return true;\r\n }\r\n}\r\n","export class DriverRouteModel {\r\n id: number;\r\n origin: string;\r\n direction: string;\r\n destination: string;\r\n vehicleType: string;\r\n\r\n constructor() {\r\n this.id = -1;\r\n }\r\n\r\n public static Copy(model: DriverRouteModel): DriverRouteModel {\r\n let route = new DriverRouteModel();\r\n\r\n route.id = model.id;\r\n route.origin = model.origin;\r\n route.direction = model.direction;\r\n route.destination = model.destination;\r\n route.vehicleType = model.vehicleType;\r\n\r\n return route;\r\n }\r\n\r\n public validate(): boolean {\r\n if(!this.origin) {\r\n return false;\r\n }\r\n if(!this.direction) {\r\n return false;\r\n }\r\n if(!this.destination) {\r\n return false;\r\n }\r\n if(!this.vehicleType) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","export class ShiftEntryModel {\r\n id: number;\r\n timeSlot: string;\r\n timeFrom: string;\r\n timeTo: string;\r\n\r\n constructor() {\r\n this.id = -1;\r\n }\r\n\r\n public static Copy(model: ShiftEntryModel): ShiftEntryModel {\r\n let shift = new ShiftEntryModel();\r\n\r\n shift.id = model.id;\r\n shift.timeSlot = model.timeSlot;\r\n shift.timeFrom = model.timeFrom;\r\n shift.timeTo = model.timeTo;\r\n\r\n return shift;\r\n }\r\n\r\n public validate(): boolean {\r\n if(!this.timeSlot) {\r\n return false;\r\n }\r\n if(!this.timeFrom) {\r\n return false;\r\n }\r\n if(!this.timeTo) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import {ShiftEntryModel} from \"./shift-entry.model\";\r\n\r\nexport class ShiftsModel {\r\n entries: ShiftEntryModel[];\r\n text: string;\r\n\r\n constructor() {\r\n this.entries = [];\r\n }\r\n\r\n public static Copy(model: ShiftsModel): ShiftsModel {\r\n let shiftModel = new ShiftsModel();\r\n\r\n shiftModel.text = model.text;\r\n model.entries.forEach(shift => {\r\n shiftModel.entries.push(ShiftEntryModel.Copy(shift));\r\n });\r\n\r\n return shiftModel;\r\n }\r\n\r\n public validate(): boolean {\r\n let shiftsValid: boolean = true;\r\n\r\n this.entries.forEach(shift => {\r\n shiftsValid = shiftsValid && shift.validate();\r\n });\r\n\r\n return shiftsValid;\r\n }\r\n}\r\n","import {IssueReasonDto} from \"./issue-reason.dto\";\r\nimport {IssueReasonInterface} from \"./issue-reason.interface\";\r\nimport { ClaimIssueReasonDto } from \"../claim-issue-reason/claim-issue-reason.dto\";\r\nimport { ClaimIssueReasonInterface } from \"../claim-issue-reason/claim-issue-reason.interface\";\r\n\r\nexport class IssueReasonModel {\r\n collectionArrival: IssueReasonInterface[];\r\n collectionDeparture: IssueReasonInterface[];\r\n deliveredWeight: IssueReasonInterface[];\r\n deliveryArrival: IssueReasonInterface[];\r\n deliveryDeparture: IssueReasonInterface[];\r\n dispatchedWeight: IssueReasonInterface[];\r\n distance: IssueReasonInterface[];\r\n tripReject: IssueReasonInterface[];\r\n claimIssue: ClaimIssueReasonInterface[];\r\n\r\n constructor(issueReasons?: IssueReasonDto[]) {\r\n this.collectionArrival = [];\r\n this.collectionDeparture = [];\r\n this.deliveredWeight = [];\r\n this.deliveryArrival = [];\r\n this.deliveryDeparture = [];\r\n this.dispatchedWeight = [];\r\n this.distance = [];\r\n this.tripReject = [];\r\n this.claimIssue = [];\r\n\r\n if(issueReasons) {\r\n this.generateIssues(issueReasons);\r\n this.generateClaimIssues(issueReasons);\r\n }\r\n }\r\n\r\n private createClaimIssueReason(id: number, issue?: string, reason?: string, isCloverClaimTransporter?: boolean): ClaimIssueReasonInterface {\r\n return {\r\n id: id,\r\n issue: issue ? issue : \"\",\r\n reason: reason ? [{ reason: reason }] : [{ reason: \"\" }],\r\n isCloverClaimTransporter: isCloverClaimTransporter ? isCloverClaimTransporter : false\r\n };\r\n }\r\n\r\n private createIssueReason(id: number, issue?: string, reason?: string): IssueReasonInterface {\r\n return {\r\n id: id,\r\n issue: issue ? issue : \"\",\r\n reason: reason ? [{reason: reason}] : [{reason: \"\"}]\r\n };\r\n }\r\n\r\n private generateIssues(issueReasons: IssueReasonDto[]): void {\r\n for(let issue of issueReasons) {\r\n if(issue.tripRejectReason) {\r\n this.tripReject.push(this.createIssueReason(issue.issueReasonId, \"\", issue.tripRejectReason)\r\n );\r\n }\r\n if(issue.distanceIssue) {\r\n let issueReason = this.distance.find(r => r.issue === issue.distanceIssue);\r\n\r\n if(issueReason && issue.distanceReason) {\r\n issueReason.reason.push({reason: issue.distanceReason});\r\n } else {\r\n this.distance.push(\r\n this.createIssueReason(issue.issueReasonId, issue.distanceIssue, issue.distanceReason)\r\n );\r\n }\r\n }\r\n if(issue.dispatchedWeightIssue) {\r\n let issueReason = this.dispatchedWeight.find(r => r.issue === issue.dispatchedWeightIssue);\r\n\r\n if(issueReason && issue.dispatchedWeightReason) {\r\n issueReason.reason.push({reason: issue.dispatchedWeightReason});\r\n } else {\r\n this.dispatchedWeight.push(\r\n this.createIssueReason(issue.issueReasonId, issue.dispatchedWeightIssue, issue.dispatchedWeightReason)\r\n );\r\n }\r\n }\r\n if(issue.deliveredWeightIssue) {\r\n let issueReason = this.deliveredWeight.find(r => r.issue === issue.deliveredWeightIssue);\r\n\r\n if(issueReason && issue.deliveredWeightReason) {\r\n issueReason.reason.push({reason: issue.deliveredWeightReason});\r\n } else {\r\n this.deliveredWeight.push(\r\n this.createIssueReason(issue.issueReasonId, issue.deliveredWeightIssue, issue.deliveredWeightReason)\r\n );\r\n }\r\n }\r\n if(issue.deliveryArrivalIssue) {\r\n let issueReason = this.deliveryArrival.find(r => r.issue === issue.deliveryArrivalIssue);\r\n\r\n if(issueReason && issue.deliveryArrivalReason) {\r\n issueReason.reason.push({reason: issue.deliveryArrivalReason});\r\n } else {\r\n this.deliveryArrival.push(\r\n this.createIssueReason(issue.issueReasonId, issue.deliveryArrivalIssue, issue.deliveryArrivalReason)\r\n );\r\n }\r\n }\r\n if(issue.deliveryDepartureIssue) {\r\n let issueReason = this.deliveryDeparture.find(r => r.issue === issue.deliveryDepartureIssue);\r\n\r\n if(issueReason && issue.deliveryDepartureReason) {\r\n issueReason.reason.push({reason: issue.deliveryDepartureReason});\r\n } else {\r\n this.deliveryDeparture.push(\r\n this.createIssueReason(issue.issueReasonId, issue.deliveryDepartureIssue, issue.deliveryDepartureReason)\r\n );\r\n }\r\n }\r\n if(issue.collectionArrivalIssue) {\r\n let issueReason = this.collectionArrival.find(r => r.issue === issue.collectionArrivalIssue);\r\n\r\n if(issueReason && issue.collectionArrivalReason) {\r\n issueReason.reason.push({reason: issue.collectionArrivalReason});\r\n } else {\r\n this.collectionArrival.push(\r\n this.createIssueReason(issue.issueReasonId, issue.collectionArrivalIssue, issue.collectionArrivalReason)\r\n );\r\n }\r\n }\r\n if(issue.collectionDepartureIssue) {\r\n let issueReason = this.collectionDeparture.find(r => r.issue === issue.collectionDepartureIssue);\r\n\r\n if(issueReason && issue.collectionDepartureReason) {\r\n issueReason.reason.push({reason: issue.collectionDepartureReason});\r\n } else {\r\n this.collectionDeparture.push(\r\n this.createIssueReason(issue.issueReasonId, issue.collectionDepartureIssue, issue.collectionDepartureReason)\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n private generateClaimIssues(claimIssueReasons: ClaimIssueReasonDto[]): void {\r\n for (let issue of claimIssueReasons) {\r\n\r\n if (issue.claimIssue) {\r\n let issueReason = this.claimIssue.find(r => r.issue === issue.claimIssue);\r\n\r\n if (issueReason && issue.claimIssue) {\r\n issueReason.reason.push({ reason: issue.claimReason! });\r\n } else {\r\n this.claimIssue.push(\r\n this.createClaimIssueReason(issue.issueReasonId, issue.claimIssue, issue.claimReason, issue.isCloverClaimTransporter)\r\n );\r\n }\r\n }\r\n }\r\n }\r\n \r\n}\r\n","import {UpdateStatusResponseModel} from \"./update-status-response.model\";\r\n\r\nexport class DialogResponseModel {\r\n responseType: string;\r\n responses: UpdateStatusResponseModel[];\r\n\r\n constructor(type: string) {\r\n this.responseType = type;\r\n this.responses = [];\r\n }\r\n\r\n public addResponse(response: UpdateStatusResponseModel): void {\r\n this.responses.push(response);\r\n }\r\n\r\n public addResponseRange(responses: UpdateStatusResponseModel[]): void {\r\n responses.forEach(response => {\r\n this.responses.push(response);\r\n });\r\n }\r\n}\r\n","export class ResponseMessageModel {\r\n isError: boolean;\r\n message: string;\r\n}\r\n","import {ResponseMessageModel} from \"./response-message.model\";\r\n\r\nexport class UpdateStatusResponseModel extends ResponseMessageModel {\r\n code: string;\r\n}\r\n","export class ShipmentDetailModel {\r\n rowNumber: number;\r\n srReference: string;\r\n schDistance?: number;\r\n schEmptyLeg?: number;\r\n\r\n originSiteName: string;\r\n destinationSiteName: string;\r\n\r\n transportRequestId: number;\r\n shipmentId: number;\r\n\r\n shActualCollectDate?: Date;\r\n shActualDeliverDate?: Date;\r\n shLoadingDate?: Date;\r\n shDeliveryDate?: Date;\r\n\r\n srCode: string;\r\n srComment1: string;\r\n srComment2: string;\r\n srComment3: string;\r\n srComment5: string;\r\n\r\n shCode: string;\r\n shComment1: string;\r\n shComment2: string;\r\n shComment3: string;\r\n shComment5: string;\r\n shComment8: string;\r\n shPhysicalStatusId: number;\r\n physicalStatusName: string;\r\n\r\n shTotalWeightPlanned: number;\r\n shTotalWeightActual: number;\r\n\r\n collectionArrival?: Date;\r\n collectionDeparture?: Date;\r\n deliveryArrival?: Date;\r\n deliveryDeparture?: Date;\r\n\r\n totalWeightPlanned?: number;\r\n productClassCode: string;\r\n actualKms?: number;\r\n totalQtyPlanned?: number;\r\n totalQtyActual?: number;\r\n\r\n trComment4: string;\r\n trComment6: string;\r\n trComment7: string;\r\n trComment15: string;\r\n trComment16: string;\r\n\r\n actualCollectionArrival?: Date;\r\n actualCollectionDeparture?: Date;\r\n actualDeliveryArrival?: Date;\r\n actualDeliveryDeparture?: Date;\r\n\r\n actualDistanceIssue: string;\r\n actualDistanceReason: string;\r\n actualDistanceAddInfo: string;\r\n dispatchWeightIssue: string;\r\n dispatchWeightReason: string;\r\n dispatchWeightAddInfo: string;\r\n deliveredWeightIssue: string;\r\n deliveredWeightReason: string;\r\n deliveredWeightAddInfo: string;\r\n collectionArrivalIssue: string;\r\n collectionArrivalReason: string;\r\n collectionArrivalAddInfo: string;\r\n collectionDepartIssue: string;\r\n collectionDepartReason: string;\r\n collectionDepartAddInfo: string;\r\n deliveryArrivalIssue: string;\r\n deliveryArrivalReason: string;\r\n deliveryArrivalAddInfo: string;\r\n deliveryDepartIssue: string;\r\n deliveryDepartReason: string;\r\n deliveryDepartAddInfo: string;\r\n\r\n srAdditionalInformation: string;\r\n\r\n originAddress: string;\r\n destinationAddress: string;\r\n\r\n totalShipmentWeightPlanned?: number;\r\n dispatchedWeight?: number;\r\n unitWeight?: number;\r\n shpComment6: number;\r\n plannedWeight?: number;\r\n plannedDistance: number;\r\n\r\n originMapPointName: string;\r\n originMapPointCode: string;\r\n originAreaName: string;\r\n originAreaGroupName: string;\r\n\r\n terminusMapPointName: string;\r\n terminusMapPointCode: string;\r\n terminusAreaName: string;\r\n terminusAreaGroupName: string;\r\n\r\n poNumber?: string;\r\n requiresPo?: string;\r\n\r\n hasFile: boolean;\r\n briefCompleted: boolean;\r\n isUndelivered: boolean;\r\n\r\n tariffAmount?: number;\r\n\r\n shipmentIds: string;\r\n invoiceSubmitted?: string;\r\n chepNumber?: string;\r\n\r\n}\r\n","import {FilterTypeModel} from \"./filter-type.model\";\r\n\r\nexport class ColumnFilterModel {\r\n dataType: string;\r\n filterType?: FilterTypeModel;\r\n value: any[];\r\n\r\n constructor(dataType: string) {\r\n this.dataType = dataType;\r\n\r\n if(this.dataType === \"date\") {\r\n this.value = [\r\n new Date(),\r\n new Date().setDate(new Date().getDate() + 1)\r\n ];\r\n } else {\r\n this.value = [\r\n \"\", \"\"\r\n ];\r\n }\r\n }\r\n}\r\n","import {TRPhysicalStatus} from \"./enums\";\r\n\r\nexport class TransportRequestModel {\r\n code: string;\r\n createdOn?: Date;\r\n financialStatusNameId?: number;\r\n finishDate?: Date;\r\n haulierId: number;\r\n originId?: number;\r\n physicalStatusNameId?: TRPhysicalStatus;\r\n reference: string;\r\n startDate?: Date;\r\n tariffId?: number;\r\n terminusId?: number;\r\n transportRequestId?: number;\r\n actTripId?: number;\r\n vehicleClassId?: number;\r\n vehicleId?: number;\r\n trLaneId?: number;\r\n spotRateAmount?: number;\r\n plannedTariffAmount?: number;\r\n userName: string;\r\n loginUser: string;\r\n physicalStatusName: string;\r\n financialStatusName: string;\r\n haulierName: string;\r\n tariffReference: string;\r\n\r\n originCode: string;\r\n originName: string;\r\n\r\n originSiteInfo1: string;\r\n originSiteInfo2: string;\r\n originSiteInfo3: string;\r\n\r\n terminusCode: string;\r\n terminusName: string;\r\n\r\n vehicleName: string;\r\n vehicleClassName: string;\r\n tariffCode: string;\r\n tariff: string;\r\n haulierCode: string;\r\n\r\n laneId?: number;\r\n\r\n totalQtyPlanned?: number;\r\n totalWeightPlanned?: number;\r\n totalQtyActual?: number;\r\n totalWeightActual?: number;\r\n qtyUtil?: number;\r\n weightUtil?: number;\r\n\r\n tripGroup: string;\r\n originAreaGroup: string;\r\n terminusAreaGroup: string;\r\n\r\n totalVolumePlanned?: number;\r\n totalUnit1Planned?: number;\r\n totalUnit2Planned?: number;\r\n totalUnit3Planned?: number;\r\n totalVolumeActual?: number;\r\n totalUnit1Actual?: number;\r\n totalUnit2Actual?: number;\r\n totalUnit3Actual?: number;\r\n\r\n clientId?: number;\r\n clientName: string;\r\n clientCode: string;\r\n arTariffId?: number;\r\n plannedArTariffAmount?: number;\r\n\r\n actualKms?: number;\r\n\r\n additionalInformation: string;\r\n\r\n plannedCollectDate?: Date;\r\n plannedDeliveryDate?: Date;\r\n actualCollectDate?: Date;\r\n actualDeliveryDate?: Date;\r\n\r\n customComment1: string;\r\n customComment2: string;\r\n customComment3: string;\r\n customComment4: string;\r\n customComment5: string;\r\n customComment6: string;\r\n customComment7: string;\r\n customComment8: string;\r\n customComment9: string;\r\n customComment10: string;\r\n customComment11: string;\r\n customComment12: string;\r\n customComment13: string;\r\n customComment14: string;\r\n customComment15: string;\r\n customComment16: string;\r\n customComment17: string;\r\n customComment18: string;\r\n\r\n originCityTown: string;\r\n terminusCityTown: string;\r\n originAreaGroupName: string;\r\n terminusAreaGroupName: string;\r\n\r\n poNumber: string;\r\n poAmount?: number;\r\n tariffAmount?: number;\r\n tariffNote: string;\r\n deliveryArrival?: Date;\r\n soNumber: string;\r\n delNumber: string;\r\n codeClient: string;\r\n ppcNotes: string;\r\n deliveryWindows: string;\r\n plannedDistance?: number;\r\n plannedVehicleRegistration: string;\r\n\r\n srReference: string;\r\n\r\n claimStatus: string;\r\n\r\n plannedQuantity: number;\r\n\r\n customFlag2: string;\r\n tripComment?: string;\r\n\r\n invoiceNumber?: string;\r\n invoiceSubmitted?: string;\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {HaulierModel} from \"./haulier.model\";\r\n\r\nexport class UserHaulierModel {\r\n userId: number;\r\n loginName: string;\r\n hauliers: HaulierModel[];\r\n\r\n constructor() {\r\n this.hauliers = [];\r\n }\r\n\r\n public static Copy(model: UserHaulierModel): UserHaulierModel {\r\n let userHaulier = new UserHaulierModel();\r\n\r\n userHaulier.userId = model.userId;\r\n userHaulier.loginName = model.loginName;\r\n userHaulier.hauliers = model.hauliers.map(h => h);\r\n\r\n return userHaulier;\r\n }\r\n}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {AccordionModule} from \"primeng/accordion\";\r\nimport {ConfirmationService} from \"primeng/api\";\r\nimport {ButtonModule} from \"primeng/button\";\r\nimport {CardModule} from \"primeng/card\";\r\nimport {CheckboxModule} from \"primeng/checkbox\";\r\nimport {ConfirmDialogModule} from \"primeng/confirmdialog\";\r\nimport {DropdownModule} from \"primeng/dropdown\";\r\nimport {DynamicDialogModule} from \"primeng/dynamicdialog\";\r\nimport {EditorModule} from \"primeng/editor\";\r\nimport {FileUploadModule} from \"primeng/fileupload\";\r\nimport {InputTextModule} from \"primeng/inputtext\"\r\nimport {InputTextareaModule} from \"primeng/inputtextarea\";\r\nimport {MenuModule} from \"primeng/menu\";\r\nimport {MessageModule} from \"primeng/message\";\r\nimport {MessagesModule} from \"primeng/messages\";\r\nimport {MultiSelectModule} from \"primeng/multiselect\";\r\nimport {OverlayPanelModule} from \"primeng/overlaypanel\";\r\nimport {PaginatorModule} from \"primeng/paginator\";\r\nimport {PanelModule} from \"primeng/panel\";\r\nimport {PickListModule} from \"primeng/picklist\";\r\nimport {ProgressSpinnerModule} from \"primeng/progressspinner\";\r\nimport {TableModule} from \"primeng/table\";\r\nimport {ToastModule} from \"primeng/toast\";\r\nimport {TooltipModule} from \"primeng/tooltip\";\r\nimport {TriStateCheckboxModule} from \"primeng/tristatecheckbox\";\r\nimport {FilterUtils} from \"primeng/utils\";\r\nimport { VirtualScrollerModule } from \"primeng/virtualscroller\";\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\n\r\nimport {CalendarModule} from \"./components/primeng-custom/calendar/calendar.component\";\r\n\r\n@NgModule({\r\n exports: [\r\n AccordionModule,\r\n ButtonModule,\r\n CalendarModule,\r\n CardModule,\r\n CheckboxModule,\r\n ConfirmDialogModule,\r\n ConfirmationService,\r\n DropdownModule,\r\n DynamicDialogModule,\r\n EditorModule,\r\n FileUploadModule,\r\n FilterUtils,\r\n MenuModule,\r\n MessageModule,\r\n MessagesModule,\r\n MultiSelectModule,\r\n OverlayPanelModule,\r\n PaginatorModule,\r\n PanelModule,\r\n PickListModule,\r\n ProgressSpinnerModule,\r\n InputTextModule,\r\n InputTextareaModule,\r\n TableModule,\r\n ToastModule,\r\n TooltipModule,\r\n TriStateCheckboxModule,\r\n VirtualScrollerModule,\r\n SelectButtonModule\r\n ]\r\n})\r\nexport class PrimeClassModule {\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class AuthInterceptorService {\r\n private readonly _tokenKey: string = \"token\";\r\n\r\n constructor() {\r\n }\r\n\r\n public request(config: any): Observable {\r\n config.headers = config.headers || {};\r\n\r\n let authData = sessionStorage.getItem(this._tokenKey);\r\n if(authData) {\r\n config.headers.Authorization = `Bearer ${authData}`;\r\n }\r\n\r\n let observable = new Observable(subscriber => {\r\n subscriber.next(config);\r\n });\r\n return observable;\r\n }\r\n\r\n public response(rejection: any): Observable {\r\n if(rejection.response === 401) {\r\n let sessionToken = sessionStorage.getItem(this._tokenKey);\r\n if(!sessionToken) {\r\n sessionStorage.clear();\r\n }\r\n\r\n window.location.href = `/PTWeb/Login?type=NotLoggedIn`;\r\n }\r\n\r\n let observable = new Observable(subscriber => {\r\n subscriber.error(rejection);\r\n });\r\n return observable;\r\n }\r\n}\r\n","import {HttpClient} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs\";\r\nimport {BriefAModel} from \"../models/brief-a.model\";\r\nimport {BriefActualDetailsModel} from \"../models/brief-actual-details.model\";\r\nimport {BriefExplanationModel} from \"../models/brief-explanation.model\";\r\nimport {IssueReasonDto} from \"../models/issue-reason/issue-reason.dto\";\r\nimport {UpdateStatusResponseModel} from \"../models/response-status/update-status-response.model\";\r\n\r\n@Injectable()\r\nexport class BriefService {\r\n constructor(private _http: HttpClient) {\r\n }\r\n\r\n public getIssueReasons(): Observable {\r\n let path = `/api/brief/issueReasons`;\r\n return this._http.get(path);\r\n }\r\n\r\n public captureBriefA(briefA: BriefAModel): Observable {\r\n // return $http.post('/api/TR/AddBriefA', briefA);\r\n let path = `/api/brief/a`;\r\n return this._http.post(path, briefA);\r\n }\r\n\r\n public captureBriefActuals(actuals: BriefActualDetailsModel): Observable {\r\n // return $http.post('/api/TR/AddBriefExplanations', briefExplanations);\r\n let path = `/api/brief/actuals`;\r\n return this._http.post(path, actuals);\r\n }\r\n\r\n public captureBriefExplanations(briefExplanations: BriefExplanationModel): Observable {\r\n // return $http.post('/api/TR/AddBriefActuals', briefActuals);\r\n let path = `/api/brief/explanations`;\r\n return this._http.post(path, briefExplanations);\r\n }\r\n}\r\n","import {HttpClient, HttpParams} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {Observable, of} from \"rxjs\";\r\nimport { ClaimModel } from \"../models/claim.model\";\r\nimport { ClaimSaveModel } from \"../models/claim-save.model\";\r\nimport { UpdateStatusResponseModel } from \"../models/response-status/update-status-response.model\";\r\nimport { ClaimIssueReasonDto } from \"../models/claim-issue-reason/claim-issue-reason.dto\";\r\n\r\n@Injectable()\r\nexport class ClaimService {\r\n constructor(private _http: HttpClient) {\r\n }\r\n\r\n public getAllClaims(fromDate: Date, toDate: Date): Observable {\r\n let path = `/api/claims`;\r\n\r\n let params = new HttpParams()\r\n .set(\"fromDate\", fromDate.toISOString())\r\n .set(\"toDate\", toDate.toISOString());\r\n\r\n return this._http.get(path, {params: params});\r\n }\r\n\r\n public getUpdatedClaims(fromDate: Date, toDate: Date, trCodes: string[]): Observable {\r\n let path = `/api/claims/${trCodes}/updated`;\r\n\r\n let params = new HttpParams()\r\n .set(\"fromDate\", fromDate.toISOString())\r\n .set(\"toDate\", toDate.toISOString());\r\n\r\n return this._http.get(path, { params: params });\r\n }\r\n\r\n public saveClaimData(claimData: ClaimSaveModel): Observable {\r\n let path = `/api/claims/saveClaim`;\r\n\r\n return this._http.post(path, claimData);\r\n }\r\n\r\n public changeClaimStatus(tripId: number, claimStatus: string, rejectReason: string, claimId: number | null): Observable {\r\n let path = `/api/claims/${tripId}/${claimStatus}/${rejectReason}/${claimId}/changeClaimStatus`;\r\n\r\n return this._http.post(path, \"\");\r\n }\r\n\r\n\r\n public getClaimIssueReasons(): Observable {\r\n let path = `/api/claims/issueReasons`;\r\n return this._http.get(path);\r\n }\r\n\r\n //ToDo: Return an Array when multiple claims will be allowed\r\n public loadClaimSavedData(transportRequestId: number, claimId: number): Observable {\r\n let path = `/api/claims/${transportRequestId}/${claimId}/details`;\r\n\r\n return this._http.get(path);\r\n }\r\n\r\n}\r\n","import {HttpClient} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class ExpeditorService {\r\n constructor(private _http: HttpClient) {\r\n }\r\n\r\n public getExpediterData(fromDate: Date, toDate: Date, pageNumber: number, pageSize: number, filter: string, multiFilter: string): Observable {\r\n let path = `/api/em/Expeditor`;\r\n\r\n let queryString = `fromDate=${fromDate}&toDate=${toDate}&pageNumber=${pageNumber}&pageSize=${pageSize}`;\r\n queryString += `&columnFilters=${encodeURIComponent(filter)}`;\r\n queryString += `multiFilter=${encodeURIComponent(multiFilter)}`;\r\n\r\n return this._http.get(path, {params: {param: queryString}});\r\n }\r\n\r\n public getLatenessDateBoundaries(params: any): Observable {\r\n let path = `/api/em/GetLatenessDates`;\r\n return this._http.post(path, params);\r\n }\r\n\r\n public getStatusAndReasons() {\r\n let path = `/api/em/StatusReasons`;\r\n return this._http.get(path);\r\n }\r\n\r\n public getTripMapDetails(transportRequestId: number): Observable {\r\n let path = `/api/em/MapDetails?transportRequestID=${transportRequestId}`;\r\n return this._http.get(path);\r\n }\r\n\r\n public getUpdatedData(transportRequestId: number): Observable {\r\n let path = `/api/em/ExpeditorByTR?TransportRequestID=${transportRequestId}`;\r\n return this._http.get(path);\r\n }\r\n\r\n public saveChangeLog(data: any): Observable {\r\n let path = `/api/em/SaveChangeLogInfo`;\r\n return this._http.post(path, data);\r\n }\r\n\r\n public SaveExpediterChanges(data: any): Observable {\r\n let path = `/api/em/SaveExpeditorInfo`;\r\n return this._http.post(path, data);\r\n }\r\n}\r\n","import { HttpClient, HttpEvent, HttpParams, HttpRequest } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { FileLocationModel } from \"../models/file-data/file-location.model\";\r\n\r\n@Injectable()\r\nexport class FileService {\r\n constructor(private _http: HttpClient) {\r\n }\r\n\r\n public downloadFile(fileId: number): Observable> {\r\n let path = `/api/file/${fileId}`;\r\n\r\n return this._http.request(new HttpRequest(\r\n 'GET',\r\n path,\r\n null,\r\n {\r\n responseType: 'blob'\r\n }\r\n ));\r\n }\r\n\r\n public getFiles(fileId: number, downType: string, shipment: boolean): Observable {\r\n let path = `/api/file/${fileId}/${downType}/files`;\r\n\r\n let params = new HttpParams()\r\n .set(\"shipment\", JSON.stringify(shipment))\r\n\r\n return this._http.get(path, {params: params});\r\n }\r\n\r\n public totalFiles(shipmentId: number): Observable {\r\n let path = `/api/file/${shipmentId}/files`;\r\n return this._http.get(path);\r\n }\r\n\r\n\r\n public getDiversionReport(originSo: any, diversionSo: any): Observable {\r\n let path = `/api/dw/${originSo}/${diversionSo}/DiversionReport`;\r\n return this._http.get(path, {responseType: \"arraybuffer\"});\r\n }\r\n\r\n public getReport(reportName: string, reportType: string, fromDate: Date, toDate: Date): Observable {\r\n let path = `/api/dw/${reportName}/${reportType}/${fromDate}/${toDate}/Reports`;\r\n return this._http.get(path);\r\n }\r\n}\r\n","import {HttpClient} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class HomeService {\r\n constructor(private _http: HttpClient) {\r\n }\r\n\r\n public GetHomeData(): Observable {\r\n return this._http.get(\"/api/home\");\r\n }\r\n\r\n public SaveHomeData(data: Object): Observable {\r\n let obj = {\r\n \"data\": JSON.stringify(data)\r\n };\r\n return this._http.post(\"/api/home\", obj);\r\n }\r\n}\r\n","import {AuthInterceptorService} from \"./auth-interceptor.service\";\r\nimport {BriefService} from \"./brief.service\";\r\nimport {ClaimService} from \"./claim.service\";\r\nimport {ExpeditorService} from \"./expeditor.service\";\r\nimport {FileService} from \"./file.service\";\r\nimport {HomeService} from \"./home.service\";\r\nimport {RatesService} from \"./rates.service\";\r\nimport {TableService} from \"./table.service\";\r\nimport {TransportRequestService} from \"./transport-request.service\";\r\nimport {UserProfileService} from \"./user-profile.service\";\r\nimport {UserService} from \"./user.service\";\r\n\r\nexport const SERVICES = [\r\n AuthInterceptorService,\r\n BriefService,\r\n ClaimService,\r\n ExpeditorService,\r\n FileService,\r\n HomeService,\r\n RatesService,\r\n TableService,\r\n TransportRequestService,\r\n UserProfileService,\r\n UserService\r\n];\r\n","import {HttpClient, HttpParams} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs\";\r\nimport {RateModel} from \"../models/rate.model\";\r\n\r\n@Injectable()\r\nexport class RatesService {\r\n constructor(private _http: HttpClient) {\r\n }\r\n\r\n public getRates(filterDate: Date): Observable\r\n {\r\n let path = `/api/rates`;\r\n\r\n let params = new HttpParams()\r\n .set(\"date\", filterDate.toISOString());\r\n\r\n return this._http.get(path, {params: params});\r\n }\r\n\r\n\r\n public exportAll(settings: any): Observable {\r\n let path = `/api/RM/Export`;\r\n return this._http.post(path, settings);\r\n }\r\n}\r\n","import {HttpClient} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs\";\r\nimport {TableStateModel} from \"../models/table/table-state.model\";\r\nimport {UserProfileService} from \"./user-profile.service\";\r\n\r\n@Injectable()\r\nexport class TableService {\r\n constructor(\r\n private _http: HttpClient,\r\n private _userProfileService: UserProfileService\r\n ) {\r\n }\r\n\r\n public GetTableStates(name: string): Observable {\r\n let obj = localStorage.getItem(name);\r\n let data: any = null;\r\n if(obj) {\r\n data = obj;\r\n }\r\n\r\n return new Observable(subscriber => {\r\n subscriber.next(data);\r\n });\r\n }\r\n\r\n public SaveTableStates(data: TableStateModel): Observable {\r\n if(data.name != \"\") {\r\n localStorage.setItem(data.name, JSON.stringify(data));\r\n // this._userProfileService.setUserProfile().subscribe();\r\n }\r\n\r\n return new Observable(subscriber => {\r\n subscriber.next(true)\r\n });\r\n }\r\n}\r\n","import {HttpClient, HttpParams} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs\";\r\nimport {AcceptedRequestModel} from \"../models/accepted-request.model\";\r\nimport {UpdateStatusResponseModel} from \"../models/response-status/update-status-response.model\";\r\nimport {ShipmentDetailModel} from \"../models/shipment-detail.model\";\r\nimport {TransportRequestUpdateModel} from \"../models/transport-request-update.model\";\r\nimport {TransportRequestVehicleModel} from \"../models/transport-request-vehicle.model\";\r\nimport {TransportRequestModel} from \"../models/transport-request.model\";\r\n\r\n@Injectable()\r\nexport class TransportRequestService {\r\n constructor(private _http: HttpClient) {\r\n }\r\n\r\n public getTransportRequests(fromDate: Date, toDate: Date, filter?: string): Observable {\r\n let path = `/api/transportrequests`;\r\n\r\n let params = new HttpParams()\r\n .set(\"fromDate\", fromDate.toISOString())\r\n .set(\"toDate\", toDate.toISOString())\r\n .set(\"filter\", filter ? filter : \"\");\r\n\r\n return this._http.get(path, {params: params});\r\n }\r\n\r\n public getUpdatedTransportRequests(fromDate: Date, toDate: Date, trCodes: string[]): Observable {\r\n let path = `/api/transportrequests/${trCodes}/updated`;\r\n\r\n let params = new HttpParams()\r\n .set(\"fromDate\", fromDate.toISOString())\r\n .set(\"toDate\", toDate.toISOString());\r\n\r\n return this._http.get(path, {params: params});\r\n }\r\n\r\n public getTransportRequestDetails(transportRequestId: number): Observable {\r\n let path = `/api/transportrequests/${transportRequestId}/details`;\r\n\r\n return this._http.get(path);\r\n }\r\n\r\n public getHaulierVehicles(transportRequestId: number): Observable\r\n {\r\n let path = `/api/transportrequests/${transportRequestId}/haulierVehicles`;\r\n return this._http.get(path);\r\n }\r\n\r\n public saveAcceptedDetails(data: AcceptedRequestModel[]): Observable {\r\n let path = `/api/transportrequests/accept`;\r\n return this._http.post(path, data);\r\n }\r\n\r\n public changeTransportRequestStatus(trCodes: string, haulierId: number, statusId: number, reason: string): Observable {\r\n let path = `/api/transportrequests/${trCodes}/${statusId}/status/${haulierId}`;\r\n\r\n let params = new HttpParams()\r\n .set(\"reason\", JSON.stringify(reason));\r\n\r\n return this._http.post(path, \"\", {params: params});\r\n }\r\n\r\n public changeShipmentStatus(shipmentCodes: string[], statusId: number): Observable {\r\n let codes = shipmentCodes.join(\",\");\r\n\r\n let path = `/api/transportrequests/${codes}/${statusId}/shipmentStatus`;\r\n return this._http.post(path, \"\");\r\n }\r\n\r\n public updateTransportRequest(update: TransportRequestUpdateModel): Observable {\r\n let path = `/api/transportrequests/${update.requestId}/update`;\r\n return this._http.post(path, update);\r\n }\r\n\r\n public updateTransportRequestComments(transportRequestId: number, comment: string): Observable {\r\n let path = `/api/transportrequests/${transportRequestId}/comments`;\r\n\r\n let body = [\r\n comment\r\n ];\r\n\r\n return this._http.post(path, body);\r\n }\r\n\r\n\r\n public addComments(comments: string): Observable {\r\n let path = `/api/TR/AddComments`;\r\n return this._http.post(path, comments);\r\n }\r\n\r\n public captureBriefActuals(briefActuals: any): Observable {\r\n let path = `/api/TR/AddBriefActuals`;\r\n return this._http.post(path, briefActuals);\r\n }\r\n\r\n public getExportAll(exportSettings: any): Observable {\r\n let path = `/api/TR/Export`;\r\n return this._http.post(path, exportSettings);\r\n }\r\n\r\n public getHaulierRatings(transportRequestId: number): Observable {\r\n let path = `/api/TR/${transportRequestId}/GetHaulierRatings`;\r\n return this._http.get(path);\r\n }\r\n\r\n public getIsHaulierUser(username: string): Observable {\r\n let path = `/api/TR/${username}/GetIsHaulierUser`;\r\n return this._http.get(path);\r\n }\r\n\r\n public getTransportRequestShipmentLineItems(shipmentId: number): Observable {\r\n let path = `/api/TR/${shipmentId}/GetTRShipmentLineItems`;\r\n return this._http.get(path);\r\n }\r\n\r\n public getTransportRequestShipments(transportRequestId: number): Observable {\r\n let path = `/api/TR/${transportRequestId}/GetTRShipments`;\r\n return this._http.get(path);\r\n }\r\n\r\n public getTransportVouchers(transportRequestId: number): Observable {\r\n let path = `/api/TR/${transportRequestId}/GetTransportVouchers`;\r\n return this._http.get(path);\r\n }\r\n\r\n public postAcceptBid(haulierId: number, tariffId: number, transportRequest: number, haulierRatingId: number): Observable {\r\n let path = `/api/TR/${haulierId}/${tariffId}/${transportRequest}/${haulierRatingId}/AcceptBid`;\r\n return this._http.post(path, \"\");\r\n }\r\n\r\n public postHaulierBid(haulierCode: string, amount: string, trCodes: string[]): Observable {\r\n let path = `/api/TR/${haulierCode}/${amount}/${trCodes}/PushBid`;\r\n return this._http.post(path, \"\");\r\n }\r\n\r\n public saveTripRow(tripRow: any): Observable {\r\n let path = `/api/TR/AddTripRow`;\r\n return this._http.post(path, tripRow);\r\n }\r\n\r\n public testService(): Observable {\r\n let path = `/api/TR/testService`;\r\n return this._http.get(path);\r\n }\r\n\r\n public runApProcess(trCodes: string): Observable {\r\n let path = `/api/TR/${trCodes}/APProcess`;\r\n return this._http.post(path, \"\");\r\n }\r\n}\r\n","import {HttpClient} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs\";\r\nimport {UserProfileModel} from \"../models/user-profile.model\";\r\n\r\n@Injectable()\r\nexport class UserProfileService {\r\n public static userTableKey = \"user-management-state\";\r\n public static tripTableKey = \"trip-management-state\";\r\n public static shipmentTableKey = \"shipment-management-state\";\r\n public static ratesTableKey = \"rates-management-state\";\r\n public static claimsTableKey = \"claims-management-state\";\r\n\r\n constructor(private _http: HttpClient) {\r\n }\r\n\r\n public getUserProfile(): Observable {\r\n let path = \"/api/profiles\";\r\n return this._http.get(path);\r\n }\r\n\r\n public setUserProfile(userId: number): Observable {\r\n let path = \"/api/profiles\";\r\n return this._http.post(path, this.readUserProfile(userId));\r\n }\r\n\r\n private readUserProfile(userId: number): UserProfileModel {\r\n let userProfile = localStorage.getItem(UserProfileService.userTableKey);\r\n let tripProfile = localStorage.getItem(UserProfileService.tripTableKey);\r\n let shipmentProfile = localStorage.getItem(UserProfileService.shipmentTableKey);\r\n let ratesProfile = localStorage.getItem(UserProfileService.ratesTableKey);\r\n let claimsProfile = localStorage.getItem(UserProfileService.claimsTableKey);\r\n\r\n return {\r\n userId: userId,\r\n userProfile: userProfile ? userProfile : \"\",\r\n tripProfile: tripProfile ? tripProfile : \"\",\r\n shipmentProfile: shipmentProfile ? shipmentProfile : \"\",\r\n ratesProfile: ratesProfile ? ratesProfile : \"\",\r\n claimsProfile: claimsProfile ? claimsProfile : \"\"\r\n };\r\n }\r\n}\r\n","import {HttpClient} from \"@angular/common/http\";\r\nimport {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs\";\r\nimport {HaulierModel} from \"../models/haulier.model\";\r\nimport {UserHaulierModel} from \"../models/user-haulier.model\";\r\n\r\n@Injectable()\r\nexport class UserService {\r\n constructor(private _http: HttpClient) {\r\n }\r\n\r\n public getUserHauliers(): Observable {\r\n let path = \"/api/users/haulierMappings\";\r\n\r\n return this._http.get(path);\r\n }\r\n\r\n public saveUserHauliers(userHaulier: UserHaulierModel): Observable {\r\n let path = \"/api/users/haulierMappings\";\r\n\r\n return this._http.post(path, userHaulier);\r\n }\r\n\r\n public getHauliers(): Observable {\r\n let path = \"/api/users/hauliers\";\r\n\r\n return this._http.get(path);\r\n }\r\n}\r\n","import {platformBrowserDynamic} from \"@angular/platform-browser-dynamic\";\r\n\r\nimport {SlenderBootModule} from \"@slender/foundation\";\r\nimport {SlenderPlatformModule} from \"@slender/platform\";\r\nimport \"zone.js\";\r\nimport {AppModule} from \"./app/app.module\";\r\n//import { enableProdMode } from \"@angular/core\";\r\n\r\nlet platformModule = SlenderPlatformModule({ lazyModule: AppModule });\r\nlet bootModule = SlenderBootModule({ lazyModule: platformModule });\r\n\r\n//enableProdMode();\r\n\r\nplatformBrowserDynamic().bootstrapModule(bootModule);\r\n","import { LoginComponent } from './login/login.component';\r\nexport { LoginComponent }\r\n\r\nexport const COMPONENTS = [\r\n LoginComponent\r\n];\r\n","import { trigger, animate, style, group, animateChild, query, stagger, transition, state } from '@angular/animations';\r\n\r\nexport const logoAnimation = trigger('logoAnim', [\r\n state('true', style({\r\n left: '13px',\r\n top: '3px',\r\n height: '44px'\r\n })),\r\n transition('*=>true', [animate('500ms ease')])\r\n]);\r\n\r\nexport const headerAnimation = trigger('headerAnim', [\r\n state('true', style({\r\n backgroundColor: '#1600ba'\r\n })),\r\n transition('*=>true', [animate('500ms ease')])\r\n]);\r\n\r\nexport const canvasAnimation = trigger('canvasAnim', [\r\n state('true', style({\r\n opacity: 0\r\n //transform: 'perspective(1000px) translateZ(-100px)'\r\n })),\r\n transition('*=>true', [animate('500ms ease-out')])\r\n]);\r\n\r\nexport class CloudAnim \r\n{\r\n public canvas: HTMLCanvasElement;\r\n public logo: HTMLImageElement;\r\n\r\n public background: string;\r\n public colors: string[];\r\n\r\n public c: CanvasRenderingContext2D;\r\n public t: number;\r\n public particles: Particle[];\r\n public handle: number;\r\n\r\n constructor()\r\n {\r\n this.canvas = document.querySelector('canvas')!;\r\n this.logo = document.querySelector('img')!;\r\n\r\n this.background = '#052850';\r\n this.colors = [\"#1600ba\", \"#fa6900\", \"#a7dbd8\", \"#e0e4cc\", \"#ff5b00\"];\r\n\r\n this.c = this.canvas.getContext('2d')!;\r\n this.t = 0;\r\n\r\n addEventListener('resize', () =>\r\n {\r\n this.init();\r\n });\r\n }\r\n\r\n public init()\r\n {\r\n this.t = 0;\r\n this.particles = [];\r\n\r\n this.canvas.width = innerWidth;\r\n this.canvas.height = innerHeight;\r\n\r\n this.logo.style.right = `${(innerWidth / 2) - 15}px`;\r\n this.logo.style.bottom = `${(innerHeight / 2) - 55}px`;\r\n\r\n for (let i = 0; i < 250; i++)\r\n {\r\n const radius = (Math.random() * 7) + 2;\r\n this.particles.push(new Particle(\r\n this.c,\r\n this.canvas.width / 2,\r\n this.canvas.height / 2,\r\n radius,\r\n this.randomColorFrom(this.colors)));\r\n }\r\n\r\n cancelAnimationFrame(this.handle);\r\n this.animate();\r\n }\r\n\r\n public animate()\r\n {\r\n this.handle = requestAnimationFrame(() => this.animate());\r\n this.c.fillStyle = \"#05285050\";\r\n this.c.fillRect(0, 0, this.canvas.width, this.canvas.height);\r\n\r\n this.particles.forEach(particle =>\r\n {\r\n particle.update(this.t);\r\n });\r\n\r\n this.t++;\r\n }\r\n\r\n public stop()\r\n {\r\n cancelAnimationFrame(this.handle);\r\n }\r\n\r\n public randomIntFromRange(min: number, max: number)\r\n {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n public randomColorFrom(colors: string[])\r\n {\r\n return colors[Math.floor(Math.random() * colors.length)];\r\n }\r\n}\r\n\r\nexport class Particle\r\n{\r\n public x: number;\r\n public y: number;\r\n public radius: { real: number; display: number; };\r\n public color: string;\r\n public radians: number;\r\n public orbit: any;\r\n public fling: any;\r\n public center: { x: number; y: number; };\r\n public velocity: number;\r\n public c: CanvasRenderingContext2D;\r\n\r\n constructor(c: CanvasRenderingContext2D,\r\n x: number, y: number, radius: number, color: string)\r\n {\r\n this.c = c;\r\n this.x = x;\r\n this.y = y;\r\n this.radius = {\r\n real: radius,\r\n display: 0\r\n };\r\n this.color = color;\r\n this.radians = Math.random() * Math.PI * 2;\r\n this.orbit = this.randomFromRange(0.001, 0.05);\r\n this.fling = this.randomFromRange(0.01, 0.3);\r\n\r\n this.center = { x: x, y: y };\r\n }\r\n\r\n public update(t: number) \r\n {\r\n let lastPoint = { x: this.x, y: this.y };\r\n\r\n this.radius.display = this.radius.real * ((this.y - 200) / 300);\r\n this.orbit += this.fling;\r\n this.velocity = (1 / this.orbit) + ((this.y - 200) / 100000);\r\n this.radians += this.velocity;\r\n if (this.radians > Math.PI * 2)\r\n {\r\n this.radians = 0;\r\n }\r\n\r\n if (t == 100)\r\n {\r\n this.fling *= 300;\r\n }\r\n else if (t > 100 && this.fling > 0.01)\r\n {\r\n this.fling /= 1.07;\r\n }\r\n\r\n this.x = this.center.x + (this.orbit * Math.sin(this.radians));\r\n this.y = this.center.y + ((this.orbit / 5) * Math.cos(this.radians));\r\n\r\n this.draw();\r\n }\r\n\r\n public draw()\r\n {\r\n this.c.beginPath();\r\n this.c.arc(this.x, this.y, Math.max(this.radius.display, 0.1), 0, Math.PI * 2, false);\r\n this.c.fillStyle = this.color;\r\n this.c.fill();\r\n this.c.closePath();\r\n }\r\n\r\n public randomFromRange(min: number, max: number)\r\n {\r\n return Math.random() * (max - min) + min;\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\n\r\nimport {AuthService} from '../../services';\r\nimport {canvasAnimation, CloudAnim, headerAnimation, logoAnimation} from './animations';\r\n\r\n@Component({\r\n templateUrl: 'login.html',\r\n styleUrls: ['login.css'],\r\n animations: [logoAnimation, headerAnimation, canvasAnimation],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LoginComponent\r\n{\r\n public status: string;\r\n public statusMessage: string;\r\n public disableLoginButton: boolean;\r\n\r\n public changePasswordMode: boolean;\r\n public newPasswordModel: any = {};\r\n\r\n public saltHash = this._authService.saltHash;\r\n public enablePasswordChange: boolean;\r\n\r\n public loggingIn = false;\r\n\r\n private _cloudAnim: CloudAnim;\r\n\r\n constructor(\r\n private _router: Router,\r\n private _authService: AuthService,\r\n private _cd: ChangeDetectorRef) { }\r\n\r\n public ngOnInit()\r\n {\r\n this.enablePasswordChange = this._authService.config.enablePasswordChange;\r\n // this._cloudAnim = new CloudAnim();\r\n // this._cloudAnim.init();\r\n }\r\n\r\n public onLogin(usernameField: string, password: string)\r\n {\r\n let usernameFields = usernameField.split('@');\r\n let username = usernameFields[0];\r\n let system = usernameFields[1];\r\n\r\n //this.loggingIn = true;\r\n\r\n this.disableLoginButton = true;\r\n this._authService.getCredentials(username).subscribe(\r\n success =>\r\n {\r\n this._authService.login(system, username, this.saltHash(password, success)).subscribe(\r\n success => this.handleLoginSuccess(),\r\n err =>\r\n {\r\n if (err.status == 401 || err.status == 403)\r\n {\r\n this.setInvalid(\"Invalid login, please try again...\");\r\n }\r\n else\r\n {\r\n this.setInvalid(\"Server Error: Please contact support!\")\r\n }\r\n }\r\n )\r\n },\r\n err =>\r\n {\r\n if (err.status == 404)\r\n {\r\n this.setInvalid(\"Invalid login, please try again...\");\r\n }\r\n else\r\n {\r\n this.setInvalid(\"Server Error: Please contact support!\")\r\n }\r\n }\r\n );\r\n\r\n // this._authService.login(system, username, password).subscribe(\r\n // success => this.handleLoginSuccess(),\r\n // err =>\r\n // {\r\n // if (err.status == 401 || err.status == 403)\r\n // {\r\n // this.setInvalid(\"Invalid login, please try again...\");\r\n // }\r\n // else\r\n // {\r\n // this.setInvalid(\"Server Error: Please contact support!\")\r\n // }\r\n // });\r\n }\r\n\r\n public handleLoginSuccess()\r\n {\r\n if (this.changePasswordMode)\r\n {\r\n this._authService.changePassword(this.newPasswordModel.a).subscribe();\r\n }\r\n\r\n // this._cloudAnim.stop();\r\n this.loggingIn = true;\r\n this._cd.markForCheck();\r\n\r\n setTimeout(() => this._router.navigate(['/']), 500);\r\n }\r\n\r\n public setInvalid(message: string)\r\n {\r\n this.status = 'invalid';\r\n this.statusMessage = message;\r\n this._cd.markForCheck();\r\n\r\n setTimeout(() =>\r\n {\r\n this.status = 'retry';\r\n this.disableLoginButton = false;\r\n this.loggingIn = false;\r\n this._cd.markForCheck();\r\n }, 3000);\r\n }\r\n\r\n public isNewPasswordValid()\r\n {\r\n return !this.newPasswordModel.a || !this.newPasswordModel.b ||\r\n this.newPasswordModel.a == this.newPasswordModel.b;\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center;\\r\\n width: 100vw;\\r\\n height: 100vh;\\r\\n}\\r\\n\\r\\n.login-form {\\r\\n align-content: center;\\r\\n -webkit-box-align: center;\\r\\n align-items: center;\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.login {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n width: 450px;\\r\\n height: -webkit-fit-content;\\r\\n height: -moz-fit-content;\\r\\n height: fit-content;\\r\\n padding: 20px;\\r\\n margin-top: 10vh;\\r\\n border: whitesmoke solid 1px;\\r\\n border-radius: 3px;\\r\\n background-color: rgba(255,255,255,0.7);\\r\\n /*position: absolute;*/\\r\\n}\\r\\n\\r\\n.login .heading {\\r\\n font-size: 24px;\\r\\n color: #1600ba;\\r\\n margin-bottom: 10px;\\r\\n }\\r\\n\\r\\n.full-width {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\nmd-input-container {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.invalid {\\r\\n border: 1px solid red;\\r\\n}\\r\\n\\r\\n.error-message {\\r\\n color: red;\\r\\n font-weight: bold;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.no-match {\\r\\n color: red;\\r\\n}\\r\\n\\r\\n.change-pass-text {\\r\\n color: rgb(131, 170, 220);\\r\\n margin-top: 10px;\\r\\n margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.buttons {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n.change-pass-button {\\r\\n margin-left: auto;\\r\\n align-self: flex-end;\\r\\n}\\r\\n\\r\\n.login-logo {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n flex-display: column;\\r\\n margin: 2% auto;\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n/*svg {\\r\\n animation: fill-anim 2s ease-out forwards;\\r\\n}*/\\r\\n\\r\\n/*svg > * {\\r\\n stroke-dasharray: 100px;\\r\\n animation: line-anim 3s ease-in forwards;\\r\\n }*/\\r\\n\\r\\n/*@keyframes line-anim {\\r\\n to {\\r\\n stroke-dasharray: 1000px;\\r\\n }\\r\\n}*/\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2F1dGgvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7RUFDYix3QkFBdUI7VUFBdkIsdUJBQXVCO0VBQ3ZCLFlBQVk7RUFDWixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIseUJBQW1CO1VBQW5CLG1CQUFtQjtFQUNuQixvQkFBYTtFQUFiLGFBQWE7RUFDYiw0QkFBc0I7RUFBdEIsNkJBQXNCO1VBQXRCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7VUFBdEIsc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWiwyQkFBbUI7RUFBbkIsd0JBQW1CO0VBQW5CLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLDRCQUE0QjtFQUM1QixrQkFBa0I7RUFDbEIsdUNBQXVDO0VBQ3ZDLHNCQUFzQjtBQUN4Qjs7QUFFRTtJQUNFLGVBQWU7SUFDZixjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCOztBQUVGO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsVUFBVTtFQUNWLGlCQUFpQjtFQUNqQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxVQUFVO0FBQ1o7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtBQUNmOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLG9CQUFvQjtFQUNwQixlQUFlO0VBQ2Ysd0JBQXVCO1VBQXZCLHVCQUF1QjtBQUN6Qjs7QUFFQTs7RUFFRTs7QUFFQTs7O0lBR0U7O0FBRUo7Ozs7RUFJRSIsImZpbGUiOiJPcHNpLldlYkFwcHMuU2xlbmRlci9hdXRoL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMHZ3O1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcbi5sb2dpbi1mb3JtIHtcclxuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5sb2dpbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHdpZHRoOiA0NTBweDtcclxuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xyXG4gIHBhZGRpbmc6IDIwcHg7XHJcbiAgbWFyZ2luLXRvcDogMTB2aDtcclxuICBib3JkZXI6IHdoaXRlc21va2Ugc29saWQgMXB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNyk7XHJcbiAgLypwb3NpdGlvbjogYWJzb2x1dGU7Ki9cclxufVxyXG5cclxuICAubG9naW4gLmhlYWRpbmcge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgY29sb3I6ICMxNjAwYmE7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIH1cclxuXHJcbi5mdWxsLXdpZHRoIHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxubWQtaW5wdXQtY29udGFpbmVyIHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmludmFsaWQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcclxufVxyXG5cclxuLmVycm9yLW1lc3NhZ2Uge1xyXG4gIGNvbG9yOiByZWQ7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgbWFyZ2luLXRvcDogMTBweDtcclxufVxyXG5cclxuLm5vLW1hdGNoIHtcclxuICBjb2xvcjogcmVkO1xyXG59XHJcblxyXG4uY2hhbmdlLXBhc3MtdGV4dCB7XHJcbiAgY29sb3I6IHJnYigxMzEsIDE3MCwgMjIwKTtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDVweDtcclxufVxyXG5cclxuLmJ1dHRvbnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbi5jaGFuZ2UtcGFzcy1idXR0b24ge1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4ubG9naW4tbG9nbyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpc3BsYXk6IGNvbHVtbjtcclxuICBtYXJnaW46IDIlIGF1dG87XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi8qc3ZnIHtcclxuICBhbmltYXRpb246IGZpbGwtYW5pbSAycyBlYXNlLW91dCBmb3J3YXJkcztcclxufSovXHJcblxyXG4gIC8qc3ZnID4gKiB7XHJcbiAgICBzdHJva2UtZGFzaGFycmF5OiAxMDBweDtcclxuICAgIGFuaW1hdGlvbjogbGluZS1hbmltIDNzIGVhc2UtaW4gZm9yd2FyZHM7XHJcbiAgfSovXHJcblxyXG4vKkBrZXlmcmFtZXMgbGluZS1hbmltIHtcclxuICB0byB7XHJcbiAgICBzdHJva2UtZGFzaGFycmF5OiAxMDAwcHg7XHJcbiAgfVxyXG59Ki9cclxuIl19 */\"","import { Injectable } from '@angular/core'\r\nimport { Broadcaster } from '@slender/core';\r\nimport { Session } from '../infrastructure';\r\n\r\n@Injectable()\r\nexport class AuthController\r\n{\r\n public verified = new Broadcaster();\r\n public loggedOut = new Broadcaster();\r\n\r\n constructor() { }\r\n}\r\n","import { AuthController } from './auth.controller';\r\nexport * from './auth.controller';\r\n\r\nexport const CONTROLLERS = [\r\n AuthController\r\n];\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\nimport { ADMIN_COMPONENTS } from './admin';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n\r\n MatInputModule,\r\n MatButtonModule,\r\n MatMenuModule\r\n ],\r\n declarations: [ADMIN_COMPONENTS],\r\n exports: [ADMIN_COMPONENTS]\r\n})\r\nexport class SlenderAdminModule { }\r\n","import {Component, EventEmitter, Output} from '@angular/core';\r\n\r\nimport {AuthService} from '../../services';\r\n\r\n@Component({\r\n selector: 'slender-admin-panel',\r\n templateUrl: 'admin-panel.html',\r\n styleUrls: ['admin-panel.css'],\r\n})\r\nexport class AdminPanelComponent\r\n{\r\n @Output()\r\n public softReload = new EventEmitter<{ value: string }>();\r\n\r\n public userFullName: string;\r\n\r\n constructor(private _authService: AuthService) { }\r\n\r\n public ngOnInit()\r\n {\r\n this.userFullName = this._authService.currentSession.fullName;\r\n if(!this.userFullName || this.userFullName.length === 0 || this.userFullName === \" \") {\r\n this.userFullName = this._authService.currentSession.username.replace(\"_\", \" \");\r\n }\r\n }\r\n\r\n private onAccount() { }\r\n\r\n private onSettings() { }\r\n\r\n private onSoftReload(e: any)\r\n {\r\n this.softReload.emit(e);\r\n }\r\n\r\n private onLogout()\r\n {\r\n this._authService.logout();\r\n }\r\n}\r\n","export default \".admin-panel-link {\\r\\n font-size: 17px;\\r\\n padding: 7px;\\r\\n color: #e30613;\\r\\n}\\r\\n\\r\\n::ng-deep.admin-panel .mat-menu-content {\\r\\n padding: 0 !important;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2F1dGgvZmVhdHVyZXMvYWRtaW4vYWRtaW4tcGFuZWwuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZUFBZTtFQUNmLFlBQVk7RUFDWixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UscUJBQXFCO0FBQ3ZCIiwiZmlsZSI6Ik9wc2kuV2ViQXBwcy5TbGVuZGVyL2F1dGgvZmVhdHVyZXMvYWRtaW4vYWRtaW4tcGFuZWwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFkbWluLXBhbmVsLWxpbmsge1xyXG4gIGZvbnQtc2l6ZTogMTdweDtcclxuICBwYWRkaW5nOiA3cHg7XHJcbiAgY29sb3I6ICNlMzA2MTM7XHJcbn1cclxuXHJcbjo6bmctZGVlcC5hZG1pbi1wYW5lbCAubWF0LW1lbnUtY29udGVudCB7XHJcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG59XHJcbiJdfQ== */\"","import { AdminPanelComponent } from './admin-panel.component';\r\nexport { AdminPanelComponent }\r\n\r\nexport const ADMIN_COMPONENTS = [\r\n AdminPanelComponent\r\n];\r\n","export * from './admin.module';\r\n","export * from './package.module';\r\n\r\nexport * from './infrastructure';\r\n\r\nexport * from './components';\r\nexport * from './services';\r\nexport * from './controllers';\r\n\r\nexport * from './features';","export * from './interface';\r\nexport * from './typings';\r\n","export class AuthConfig\r\n{\r\n public enablePasswordChange: boolean = false;\r\n}\r\n","export * from './user';\r\nexport * from './session';\r\nexport * from './sessionToken';\r\nexport * from './auth-config';","export class Session\r\n{\r\n public username: string = \"anonymous\";\r\n public system: string = \"\";\r\n public companyKey: string = \"\";\r\n public fullName: string = \"Anonymous Guest\";\r\n public permissions: string;\r\n\r\n public get isAuthenticated()\r\n {\r\n return this.username !== \"anonymous\";\r\n }\r\n\r\n public static get anonymous()\r\n {\r\n return new Session();\r\n }\r\n}\r\n","export class SessionToken\r\n{\r\n token: string;\r\n}\r\n","export class User\r\n{\r\n public username: string;\r\n public organizationIds: string[];\r\n public partitionIds: string[];\r\n public name: string;\r\n public lastName: string;\r\n\r\n public get isValid(): boolean\r\n {\r\n return !!this.username &&\r\n !!this.name &&\r\n !!this.lastName\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\nimport { COMPONENTS } from './components';\r\nimport { SERVICES } from './services';\r\nimport { CONTROLLERS } from './controllers';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n FormsModule,\r\n\r\n MatInputModule,\r\n MatButtonModule\r\n ],\r\n declarations: [COMPONENTS],\r\n providers: [SERVICES, CONTROLLERS]\r\n})\r\nexport class SlenderAuthModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate\r\n{\r\n constructor(private _authService: AuthService) { }\r\n\r\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable \r\n {\r\n return this._authService.verify();\r\n }\r\n}\r\n","import {HttpClient} from '@angular/common/http';\r\nimport {Injectable} from '@angular/core'\r\nimport {Router} from '@angular/router';\r\nimport jsSHA from \"jssha\";\r\nimport {Cookie} from 'ng2-cookies/cookie';\r\n\r\nimport {Observable, of as observableOf} from 'rxjs';\r\nimport {catchError, map, tap} from 'rxjs/operators';\r\nimport {AuthController} from '../controllers';\r\n\r\nimport {AuthConfig, IAuthService, Session, SessionToken, User} from '../infrastructure';\r\n\r\n@Injectable()\r\nexport class AuthService implements IAuthService\r\n{\r\n public currentSession: Session;\r\n public get isAuthenticated() { return this.currentSession.isAuthenticated; };\r\n\r\n public config: AuthConfig;\r\n\r\n private _onVerifiedFn: (session: Session) => void;\r\n private _permissionCache: { [key: string]: boolean } = {};\r\n\r\n private readonly COOKIE_NAME = \"SlenderAuthenticationToken\";\r\n\r\n constructor(\r\n private _http: HttpClient,\r\n private _router: Router,\r\n private _authController: AuthController)\r\n {\r\n this.currentSession = Session.anonymous;\r\n this.config = new AuthConfig();\r\n }\r\n\r\n public login(system: string, username: string, password: string): Observable\r\n {\r\n return this._http.post('auth/login', { system, username, password }).pipe(\r\n tap(sessionToken => Cookie.set(this.COOKIE_NAME, sessionToken.token)));\r\n }\r\n\r\n public verify(): Observable\r\n {\r\n if (Cookie.get(this.COOKIE_NAME))\r\n {\r\n return this._http.get('auth/verify').pipe(\r\n tap(session =>\r\n {\r\n this.currentSession = session;\r\n this._authController.verified.broadcast(session);\r\n }),\r\n map(() => true),\r\n catchError(err => this.gotoLogin()));\r\n }\r\n else\r\n {\r\n return this.gotoLogin();\r\n }\r\n }\r\n\r\n public logout()\r\n {\r\n this._http.get('auth/logout').subscribe(obs => {\r\n this.currentSession = Session.anonymous;\r\n this._permissionCache = {};\r\n Cookie.delete(this.COOKIE_NAME);\r\n\r\n this._authController.loggedOut.broadcast(this.currentSession);\r\n\r\n this.gotoLogin();\r\n }, error => {\r\n this.currentSession = Session.anonymous;\r\n this._permissionCache = {};\r\n Cookie.delete(this.COOKIE_NAME);\r\n\r\n this._authController.loggedOut.broadcast(this.currentSession);\r\n \r\n this.gotoLogin();\r\n });\r\n }\r\n\r\n public changePassword(newPasswordHash: string): Observable\r\n {\r\n return this._http.post('auth/change-password', { newPasswordHash: newPasswordHash });\r\n }\r\n\r\n public hasPermission(permission: string): boolean\r\n {\r\n if (this._permissionCache[permission])\r\n {\r\n return true;\r\n }\r\n\r\n for (let pattern of this.currentSession.permissions)\r\n {\r\n if(pattern.toLowerCase() === permission.toLowerCase())\r\n {\r\n this._permissionCache[permission] = true;\r\n \r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n \r\n public getUsername(): string {\r\n return this.currentSession.username.replace(\"_\", \" \");\r\n }\r\n\r\n public createUser(user: User, password: string): Observable\r\n {\r\n var newUser: any = user;\r\n newUser.password = password;\r\n return this._http.post('auth/create-user', newUser);\r\n }\r\n\r\n public getCredentials(data: string): Observable\r\n {\r\n return this._http.post('auth/credentials', {username: data, password: \"\"});\r\n }\r\n\r\n public saltHash(data: string, salt: string): string\r\n {\r\n let shaObj = new jsSHA(\"SHA-512\", \"TEXT\", {encoding: \"UTF8\"});\r\n\r\n shaObj.update(data);\r\n shaObj.update(salt);\r\n\r\n let saltedHash = shaObj.getHash(\"HEX\");\r\n \r\n // let uint8array = new TextEncoder(\"utf-8\")\r\n // .encode(\"$3$2lC.K7/Zeno$\" + data);\r\n //\r\n // let saltedHashArray = sha256(uint8array);\r\n //\r\n // let saltedHash = \"\";\r\n // for (let i = 0; i < saltedHashArray.length; i++)\r\n // {\r\n // saltedHash += (\"0\" + saltedHashArray[i].toString(16)).slice(-2);\r\n // }\r\n\r\n return saltedHash;\r\n }\r\n\r\n private gotoLogin(): Observable\r\n {\r\n this._router.navigate(['pub/login']);\r\n return observableOf(false);\r\n }\r\n}\r\n","import { AuthService } from './auth.service';\r\nexport * from './auth.service';\r\n\r\nimport { AuthGuard } from './auth-guard.service';\r\nexport * from './auth-guard.service';\r\n\r\nexport const SERVICES = [\r\n AuthService,\r\n AuthGuard\r\n];\r\n","export * from './package.module';\r\n\r\nexport * from './infrastructure';\r\n","import { Observable, Subscriber } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nexport class Broadcaster extends Observable\r\n{\r\n public get value(): T { return this._value!; }\r\n protected _value: T | undefined;\r\n\r\n public get hasSubscribers(): boolean { return this._subscribers.some(s => !s.closed); }\r\n\r\n protected _enableReplay: boolean;\r\n\r\n protected _subscribers: Subscriber[];\r\n\r\n constructor(enableReplay = false)\r\n {\r\n super(s =>\r\n {\r\n this._subscribers.push(s);\r\n if (this._enableReplay && this._value !== undefined)\r\n {\r\n s.next(this._value);\r\n }\r\n });\r\n\r\n this._enableReplay = enableReplay;\r\n this._subscribers = [];\r\n }\r\n\r\n public subscribeUntil(notifier: Observable, next?: (value: T) => void, error?: (error: any) => void, complete?: () => void)\r\n {\r\n return super\r\n .pipe(takeUntil(notifier))\r\n .subscribe(next, error, complete);\r\n }\r\n\r\n public purgeOn(notifier: Observable)\r\n {\r\n notifier.subscribe(() =>\r\n {\r\n this._value = undefined;\r\n });\r\n }\r\n\r\n //public broadcastIfChanged(data: T)\r\n //{\r\n // if (!this._broadcast.equals(data))\r\n // {\r\n // this.broadcast(data);\r\n // }\r\n //}\r\n\r\n //public broadcastIfChangedByValue(data: T)\r\n //{\r\n // if (!this._broadcast.equalsByValue(data))\r\n // {\r\n // this.broadcast(data);\r\n // }\r\n //}\r\n\r\n public broadcast(value?: T): void\r\n {\r\n if (value !== undefined)\r\n {\r\n this._value = value\r\n }\r\n\r\n if (this._value !== undefined)\r\n {\r\n this.publish(this._value);\r\n }\r\n }\r\n\r\n public rebroadcast(interceptFn?: (model: T) => T): void\r\n {\r\n let value = interceptFn && this._value ? interceptFn(this._value) : this._value;\r\n if (value !== undefined)\r\n {\r\n this.publish(value);\r\n }\r\n }\r\n\r\n protected publish(value: T): void\r\n {\r\n for (let i = 0; i < this._subscribers.length;)\r\n {\r\n if (this._subscribers[i].closed)\r\n {\r\n this._subscribers.splice(i, 1);\r\n }\r\n else\r\n {\r\n this._subscribers[i].next(value);\r\n i++;\r\n }\r\n }\r\n }\r\n}\r\n","export * from './broadcaster';\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n//import { COMPONENTS } from './components';\r\n//import { SERVICES } from './services';\r\n//import { CONTROLLERS } from './controllers';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ],\r\n declarations: [],\r\n providers: [\r\n //CONTROLLERS,\r\n //SERVICES\r\n ]\r\n})\r\nexport class SlenderCoreModule { }\r\n","import { Component, Input, Host, ContentChild, AfterViewInit, Renderer2, ElementRef, ViewEncapsulation, ViewChild } from '@angular/core';\r\nimport { CollapseBoxComponent } from './collapse-box.component';\r\nimport { Collapse_ICON_ANIMATION } from './collapse-box.animations';\r\nimport { CollapseHeaderContentDirective } from '../directives/collapse-header-content.directive';\r\n\r\n@Component({\r\n selector: 'flx-collapse-header',\r\n templateUrl: 'collapse-box-header.html',\r\n styleUrls: ['collapse-box-header.css'],\r\n animations: [Collapse_ICON_ANIMATION],\r\n host: {\r\n 'class': 'flx flx-collapse-header',\r\n '(click)': 'toggle()'\r\n },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CollapseHeaderComponent implements AfterViewInit\r\n{\r\n @ContentChild(CollapseHeaderContentDirective, { static: true, read: ElementRef }) headerContentElement: ElementRef;\r\n @ViewChild('rowIcon', { static: true }) rowIconElement: ElementRef;\r\n\r\n @Input()\r\n public headerContentOn: 'open' | 'close' | 'always' = 'close';\r\n\r\n constructor(\r\n @Host() private collapseBox: CollapseBoxComponent,\r\n private _renderer: Renderer2)\r\n {\r\n\r\n }\r\n\r\n ngAfterViewInit()\r\n {\r\n this.DisplayHeaderContent();\r\n }\r\n\r\n private DisplayHeaderContent()\r\n {\r\n if (this.headerContentElement && this.headerContentElement.nativeElement)\r\n {\r\n if (this.checkDisplayHeaderContent())\r\n {\r\n this._renderer.setStyle(this.headerContentElement.nativeElement, 'display', 'block');\r\n }\r\n else\r\n {\r\n this._renderer.setStyle(this.headerContentElement.nativeElement, 'display', 'none');\r\n }\r\n }\r\n }\r\n\r\n private checkDisplayHeaderContent()\r\n {\r\n let display = this.headerContentOn === 'always' ? true : false;\r\n\r\n if (!display)\r\n {\r\n let checkOpen = this.collapseBox.open && this.headerContentOn === 'open';\r\n let checkClose = this.collapseBox.close && this.headerContentOn === 'close';\r\n\r\n if (checkOpen)\r\n {\r\n display = true;\r\n }\r\n else if (checkClose)\r\n display = true;\r\n else\r\n display = false;\r\n\r\n }\r\n return display;\r\n }\r\n public toggle()\r\n {\r\n this.collapseBox.toggle();\r\n this.DisplayHeaderContent();\r\n }\r\n\r\n public stateChangeCompleted(event: any)\r\n {\r\n if (event && this.collapseBox.direction === 'row')\r\n {\r\n // this._renderer.setStyle(this.rowIconElement.nativeElement, 'transform-origin', '50% 1.8%');\r\n }\r\n\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n}\\r\\ni {\\r\\n padding-left: 5px;\\r\\n padding-right: 5px;\\r\\n padding-top: 1px;\\r\\n padding-bottom: 1px;\\r\\n}\\r\\n.flx-collapse-header {\\r\\n cursor: pointer;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZsZXgvY29tcG9uZW50cy9jb2xsYXBzZS1ib3gtaGVhZGVyLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLG9CQUFhO0lBQWIsYUFBYTtBQUNqQjtBQUNBO0lBQ0ksaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0FBQ3ZCO0FBQ0E7SUFDSSxlQUFlO0FBQ25CIiwiZmlsZSI6Ik9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZsZXgvY29tcG9uZW50cy9jb2xsYXBzZS1ib3gtaGVhZGVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuaSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICAgIHBhZGRpbmctdG9wOiAxcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMXB4O1xyXG59XHJcbi5mbHgtY29sbGFwc2UtaGVhZGVyIHtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxufSJdfQ== */\"","import { Component,Input } from '@angular/core';\r\nimport { trigger, state, style, animate, transition, keyframes } from '@angular/animations';\r\nexport const Collapse_BOX_ANIMATION =\r\n trigger('state', [\r\n state('closed', style({\r\n 'flex-basis': '0',\r\n display: 'none',\r\n opacity : '0'\r\n })),\r\n state('open', style({\r\n 'flex-basis': '*',\r\n opacity: '1',\r\n display: 'flex'\r\n })),\r\n transition('closed => open',\r\n animate(100, keyframes([\r\n style({ opacity: 0}),\r\n style({ opacity: 0.5}),\r\n style({ opacity: 1}),\r\n ])\r\n )\r\n ),\r\n transition('open => closed',\r\n animate(50, keyframes([\r\n style({ opacity: 1 }),\r\n style({ opacity: 0.5, 'flex-basis': '*' }),\r\n style({ opacity: 0 }),\r\n ])\r\n )\r\n )\r\n ]);\r\n\r\nexport const Collapse_ICON_ANIMATION = \r\n trigger('state', [\r\n state('closed', style({\r\n transform: 'rotate(180deg)' \r\n })),\r\n state('open', style({\r\n })),\r\n transition('closed => open',\r\n animate(100, keyframes([\r\n style({ transform: 'rotate(170deg)' }),\r\n style({ transform: 'rotate(90deg)' }),\r\n style({ transform: 'rotate(0deg)' }),\r\n ])\r\n )\r\n ),\r\n transition('open => closed',\r\n animate(100, keyframes([\r\n style({ transform: 'rotate(0deg)' }),\r\n style({ transform: 'rotate(90deg)' }),\r\n style({ transform: 'rotate(170deg)' }),\r\n ])\r\n )\r\n )\r\n ]);","import { Component, Input, Output, EventEmitter, ElementRef, ContentChild, ViewEncapsulation, ViewChild, HostListener, Renderer2, Host, OnInit, AfterViewInit } from '@angular/core';\r\nimport { Collapse_BOX_ANIMATION } from './collapse-box.animations';\r\nimport { CollapseHeaderTitleDirective } from '../directives/collapse-header-title.directive';\r\n\r\n@Component({\r\n selector: 'flx-collapse-box',\r\n templateUrl: 'collapse-box.html',\r\n styleUrls: ['collapse-box.css'],\r\n animations: [Collapse_BOX_ANIMATION],\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n 'class': 'flx flx-collapse-box',\r\n '[class.v]': 'direction === \"column\"',\r\n }\r\n})\r\nexport class CollapseBoxComponent implements OnInit, AfterViewInit\r\n{\r\n @ContentChild(CollapseHeaderTitleDirective, { static: true, read: ElementRef }) headerTitleElement: ElementRef;\r\n\r\n @Input()\r\n public direction: 'column' | 'row' = 'column';\r\n\r\n @Input()\r\n public resize: boolean = false;\r\n\r\n @Input()\r\n public viewBasis: number;\r\n\r\n @Input() public set open(value)\r\n {\r\n this._open = value;\r\n this.state = this.open ? 'open' : 'closed';\r\n }\r\n\r\n public get open()\r\n {\r\n return this._open;\r\n }\r\n\r\n public get close()\r\n {\r\n return !this.open;\r\n }\r\n\r\n private get container()\r\n {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n private _open: boolean = true;\r\n\r\n public state: string;\r\n\r\n private _parent: HTMLElement;\r\n private _minViewBasis: number = 0;\r\n private _currentViewBasis: number;\r\n private _dragging: boolean = false;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _renderer: Renderer2)\r\n {\r\n }\r\n\r\n ngOnInit()\r\n {\r\n if (this.resize)\r\n {\r\n this.setContainerComponent();\r\n }\r\n }\r\n\r\n ngAfterViewInit()\r\n {\r\n if (this.resize)\r\n {\r\n this.setMinViewBasis();\r\n }\r\n if (this.viewBasis)\r\n {\r\n this._currentViewBasis = this.viewBasis;\r\n this.updateViewBasis();\r\n }\r\n }\r\n\r\n private setMinViewBasis()\r\n {\r\n if (this.direction === 'column')\r\n {\r\n this._minViewBasis = (this.container.offsetHeight / this._parent.offsetHeight) * 100;\r\n }\r\n else\r\n this._minViewBasis = (this.container.offsetWidth / this._parent.offsetWidth) * 100;\r\n }\r\n\r\n public onHandleMouseDown(e: MouseEvent)\r\n {\r\n e.preventDefault();\r\n this._dragging = true;\r\n }\r\n\r\n public toggle()\r\n {\r\n this.open = !this.open;\r\n\r\n this.updateViewBasis();\r\n }\r\n\r\n public changeLayoutOrientation()\r\n {\r\n if (this.direction === 'row' && this.headerTitleElement)\r\n {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n private onMouseMove(e: MouseEvent)\r\n {\r\n if (this._dragging)\r\n {\r\n if (this.direction === 'column')\r\n {\r\n this._currentViewBasis = ((e.y - this.container.offsetTop) / this._parent.offsetHeight) * 100;\r\n }\r\n else\r\n this._currentViewBasis = ((e.x - this.container.offsetLeft) / this._parent.offsetWidth) * 100;\r\n\r\n this.updateViewBasis();\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup')\r\n private onMouseUp()\r\n {\r\n if (this._dragging)\r\n {\r\n this._dragging = false;\r\n }\r\n }\r\n\r\n private setContainerComponent()\r\n {\r\n this._parent = this._renderer.parentNode(this.container);\r\n }\r\n\r\n private updateViewBasis()\r\n {\r\n if (this.open)\r\n {\r\n if (this._currentViewBasis >= this._minViewBasis && this._currentViewBasis <= 100)\r\n {\r\n this._renderer.setStyle(this.container, 'flex-basis', this._currentViewBasis + '%');\r\n }\r\n }\r\n else\r\n this._renderer.setStyle(this.container, 'flex-basis', 'auto');\r\n }\r\n}\r\n","export default \".handle {\\r\\n background-color: Scrollbar;\\r\\n opacity: 0;\\r\\n}\\r\\n\\r\\n.column-handle {\\r\\n cursor: ns-resize;\\r\\n height: 6px;\\r\\n}\\r\\n\\r\\n.column-handle:hover { \\r\\n opacity: 1;\\r\\n}\\r\\n\\r\\n.row-handle {\\r\\n cursor: ew-resize;\\r\\n width: 6px;\\r\\n}\\r\\n\\r\\n.row-handle:hover {\\r\\n opacity: 1;\\r\\n}\\r\\n\\r\\n.row-handle-drag {\\r\\n opacity: 1;\\r\\n}\\r\\n\\r\\n.ellips-icon {\\r\\n color: #ccc;\\r\\n padding: 0px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZsZXgvY29tcG9uZW50cy9jb2xsYXBzZS1ib3guY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsMkJBQTJCO0VBQzNCLFVBQVU7QUFDWjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixXQUFXO0FBQ2I7O0FBQ0E7RUFDRSxVQUFVO0FBQ1o7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsVUFBVTtBQUNaOztBQUNBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7QUFDZCIsImZpbGUiOiJPcHNpLldlYkFwcHMuU2xlbmRlci9mbGV4L2NvbXBvbmVudHMvY29sbGFwc2UtYm94LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5oYW5kbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IFNjcm9sbGJhcjtcclxuICBvcGFjaXR5OiAwO1xyXG59XHJcblxyXG4uY29sdW1uLWhhbmRsZSB7XHJcbiAgY3Vyc29yOiBucy1yZXNpemU7XHJcbiAgaGVpZ2h0OiA2cHg7XHJcbn1cclxuLmNvbHVtbi1oYW5kbGU6aG92ZXIgeyBcclxuICBvcGFjaXR5OiAxO1xyXG59XHJcblxyXG4ucm93LWhhbmRsZSB7XHJcbiAgY3Vyc29yOiBldy1yZXNpemU7XHJcbiAgd2lkdGg6IDZweDtcclxufVxyXG4ucm93LWhhbmRsZTpob3ZlciB7XHJcbiAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuLnJvdy1oYW5kbGUtZHJhZyB7XHJcbiAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuLmVsbGlwcy1pY29uIHtcclxuICBjb2xvcjogI2NjYztcclxuICBwYWRkaW5nOiAwcHg7XHJcbn1cclxuIl19 */\"","import { SplitterBoxComponent } from \"./splitter-box.component\";\r\nexport * from \"./splitter-box.component\";\r\n\r\nimport { CollapseBoxComponent } from \"./collapse-box.component\";\r\nimport { CollapseHeaderComponent } from \"./collapse-box-header.component\";\r\n\r\nexport const COMPONENTS = [\r\n SplitterBoxComponent,\r\n CollapseBoxComponent,\r\n CollapseHeaderComponent\r\n];\r\n","import { Component, Input, Output, EventEmitter, HostListener, ElementRef, ViewChild, ContentChildren, Renderer2 } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'flx-splitter-box',\r\n templateUrl: 'splitter-box.html',\r\n styleUrls: ['splitter-box.css']\r\n})\r\nexport class SplitterBoxComponent\r\n{\r\n @Input()\r\n public direction: 'column' | 'row' = 'column';\r\n\r\n @Input()\r\n public viewBasis: number;\r\n\r\n @Input()\r\n public renderType: 'flex' | 'px' = 'flex';\r\n\r\n @Output()\r\n public changed = new EventEmitter();\r\n\r\n @Output()\r\n public change = new EventEmitter();\r\n\r\n public elA: HTMLElement;\r\n public elS: HTMLElement;\r\n public elB: HTMLElement;\r\n\r\n public elAWidth: number;\r\n public elAHeight: number;\r\n public elBWidth: number;\r\n public elBHeight: number;\r\n\r\n private _dragging: boolean;\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n private _renderer: Renderer2)\r\n { }\r\n\r\n public ngAfterViewInit()\r\n {\r\n if (this._elementRef.nativeElement.children.length == 3)\r\n {\r\n this.elA = this._elementRef.nativeElement.children[0];\r\n this.elS = this._elementRef.nativeElement.children[1];\r\n this.elB = this._elementRef.nativeElement.children[2];\r\n }\r\n else\r\n {\r\n throw new Error(\"flx-splitter-box requires two content elements with flx-splitter-box-item-a and -b\");\r\n }\r\n\r\n this._renderer.setStyle(this._elementRef.nativeElement, \"flex-direction\", this.direction == \"column\" ? \"row\" : \"column\");\r\n\r\n if (this.viewBasis)\r\n {\r\n this.updateView();\r\n }\r\n }\r\n\r\n public onSplitterMouseDown(e: MouseEvent)\r\n {\r\n e.preventDefault();\r\n this._dragging = true;\r\n }\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n private onMouseMove(e: MouseEvent)\r\n {\r\n if (this._dragging)\r\n {\r\n let container = this._elementRef.nativeElement;\r\n if (this.direction == 'column')\r\n {\r\n this.elAWidth = (e.x - container.offsetLeft);\r\n this.elBWidth = container.offsetWidth - this.elAWidth - this.elS.offsetWidth;\r\n\r\n this.viewBasis = ((e.x - container.offsetLeft) / container.offsetWidth) * 100;\r\n }\r\n else if (this.direction == 'row')\r\n {\r\n this.elAHeight = (e.y - container.offsetTop);\r\n this.elBHeight = container.offsetHeight - this.elAHeight - this.elS.offsetHeight;\r\n\r\n this.viewBasis = ((e.y - container.offsetTop) / container.offsetHeight) * 100;\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup')\r\n private onMouseUp()\r\n {\r\n if (this._dragging)\r\n {\r\n this._dragging = false;\r\n this.changed.emit(this.getEventData());\r\n }\r\n }\r\n\r\n private updateView()\r\n {\r\n //console.log(\"Splitter Update View\");\r\n\r\n if (this.renderType == 'flex')\r\n {\r\n this._renderer.setStyle(this.elA, 'flex', this.viewBasis + \" 1 0\");\r\n this._renderer.setStyle(this.elB, 'flex', (100 - this.viewBasis) + \" 1 0\");\r\n }\r\n else if (this.direction == 'column')\r\n {\r\n if (!this.elAWidth && !this.elBWidth)\r\n {\r\n this.elAWidth = this._elementRef.nativeElement.offsetWidth * (this.viewBasis / 100);\r\n this.elBWidth = this._elementRef.nativeElement.offsetWidth - this.elAWidth;\r\n }\r\n\r\n this._renderer.setStyle(this.elA, 'width', this.elAWidth + \"px\");\r\n this._renderer.setStyle(this.elB, 'width', this.elBWidth + \"px\");\r\n }\r\n else if (this.direction == 'row')\r\n {\r\n if (!this.elAHeight && !this.elBHeight)\r\n {\r\n this.elAHeight = this._elementRef.nativeElement.offsetHeight * (this.viewBasis / 100);\r\n this.elBHeight = this._elementRef.nativeElement.offsetHeight - this.elAHeight;\r\n }\r\n\r\n this._renderer.setStyle(this.elA, 'height', this.elAHeight + \"px\");\r\n this._renderer.setStyle(this.elB, 'height', this.elBHeight + \"px\");\r\n }\r\n\r\n this.change.emit(this.getEventData());\r\n }\r\n\r\n private getEventData()\r\n {\r\n let data = {\r\n viewBasis: this.viewBasis,\r\n panelA: {\r\n width: this.elA.offsetWidth,\r\n height: this.elA.offsetHeight\r\n },\r\n panelB: {\r\n width: this.elB.offsetWidth,\r\n height: this.elB.offsetHeight\r\n }\r\n };\r\n\r\n return data;\r\n }\r\n}\r\n\r\nexport type SplitterChangeEvent = {\r\n viewBasis: number,\r\n panelA: { width: number, height: number },\r\n panelB: { width: number, height: number }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.panel {\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-splitter-bar.column {\\r\\n min-width: 5px;\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 0;\\r\\n border-left: 1px solid silver;\\r\\n border-right: 1px solid silver;\\r\\n background-color: whitesmoke;\\r\\n cursor: col-resize;\\r\\n}\\r\\n\\r\\n.flx-splitter-bar.row {\\r\\n min-height: 5px;\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 0;\\r\\n border-top: 1px solid silver;\\r\\n border-bottom: 1px solid silver;\\r\\n background-color: whitesmoke;\\r\\n cursor: row-resize;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZsZXgvY29tcG9uZW50cy9zcGxpdHRlci1ib3guY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztFQUNkLG1CQUFXO1VBQVgsV0FBVztFQUNYLDZCQUE2QjtFQUM3Qiw4QkFBOEI7RUFDOUIsNEJBQTRCO0VBQzVCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixtQkFBVztVQUFYLFdBQVc7RUFDWCw0QkFBNEI7RUFDNUIsK0JBQStCO0VBQy9CLDRCQUE0QjtFQUM1QixrQkFBa0I7QUFDcEIiLCJmaWxlIjoiT3BzaS5XZWJBcHBzLlNsZW5kZXIvZmxleC9jb21wb25lbnRzL3NwbGl0dGVyLWJveC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ucGFuZWwge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5mbHgtc3BsaXR0ZXItYmFyLmNvbHVtbiB7XHJcbiAgbWluLXdpZHRoOiA1cHg7XHJcbiAgZmxleDogMCAwIDA7XHJcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBzaWx2ZXI7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgc2lsdmVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlc21va2U7XHJcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xyXG59XHJcblxyXG4uZmx4LXNwbGl0dGVyLWJhci5yb3cge1xyXG4gIG1pbi1oZWlnaHQ6IDVweDtcclxuICBmbGV4OiAwIDAgMDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgc2lsdmVyO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBzaWx2ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGVzbW9rZTtcclxuICBjdXJzb3I6IHJvdy1yZXNpemU7XHJcbn1cclxuIl19 */\"","import { Directive, ElementRef} from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'flx-collapse-content',\r\n host: {\r\n 'class' : 'flx-collapse-content'\r\n }\r\n})\r\nexport class CollapseContentDirective\r\n{\r\n constructor()\r\n {\r\n }\r\n}","import { Directive, ElementRef} from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'flx-collapse-header-content',\r\n host: {\r\n 'class': 'flx-collapse-header-content'\r\n }\r\n})\r\nexport class CollapseHeaderContentDirective\r\n{\r\n constructor()\r\n {\r\n\r\n }\r\n}","import { Directive} from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'flx-collapse-header-title',\r\n host: {\r\n 'class': 'flx-collapse-header-title'\r\n }\r\n})\r\nexport class CollapseHeaderTitleDirective\r\n{\r\n \r\n constructor()\r\n {\r\n \r\n }\r\n}","import { Directive, Input, Output, EventEmitter, ElementRef, Renderer2, HostListener, HostBinding } from '@angular/core';\r\n\r\n@Directive({ selector: '[flx-dynamic-sep]' })\r\nexport class DynamicSeparatorDirective\r\n{\r\n private _dragging: boolean;\r\n private viewASpan: number;\r\n private viewBSpan: number;\r\n\r\n @Input(\"panelA\")\r\n public viewA: Element;\r\n\r\n @Input(\"panelB\")\r\n public viewB: Element;\r\n\r\n @Input(\"direction\")\r\n public direction: 'column' | 'row' = 'column';\r\n\r\n @Output()\r\n public change = new EventEmitter();\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n private _renderer: Renderer2,\r\n ) { }\r\n\r\n public ngOnInit()\r\n {\r\n this._elementRef.nativeElement.classList.add(this.direction);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n public onMouseDown(e: MouseEvent)\r\n {\r\n e.preventDefault();\r\n this._dragging = true;\r\n }\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n public onMouseMove(e: MouseEvent)\r\n {\r\n if (this._dragging)\r\n {\r\n if (this.direction == 'column')\r\n {\r\n if (this.viewA)\r\n {\r\n this.viewASpan = this.viewA.clientWidth + e.movementX;\r\n this._renderer.setStyle(this.viewA, 'width', this.viewASpan + \"px\");\r\n }\r\n if (this.viewB)\r\n {\r\n this.viewBSpan = this.viewB.clientWidth - e.movementX;\r\n this._renderer.setStyle(this.viewB, 'width', this.viewASpan + \"px\");\r\n }\r\n }\r\n else \r\n {\r\n if (this.viewA)\r\n {\r\n this.viewASpan = this.viewA.clientHeight + e.movementY;\r\n this._renderer.setStyle(this.viewA, 'height', this.viewASpan + \"px\");\r\n }\r\n if (this.viewB)\r\n {\r\n this.viewBSpan = this.viewB.clientHeight - e.movementY;\r\n this._renderer.setStyle(this.viewB, 'height', this.viewASpan + \"px\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup')\r\n public onMouseUp()\r\n {\r\n if (this._dragging)\r\n {\r\n this._dragging = false;\r\n this.change.emit({\r\n spanA: this.viewASpan,\r\n spanB: this.viewBSpan,\r\n });\r\n }\r\n }\r\n}\r\n","import { DynamicSeparatorDirective } from \"./dynamic-sep.directive\";\r\nimport { CollapseContentDirective } from './collapse-content.directive';\r\nimport { CollapseHeaderTitleDirective } from './collapse-header-title.directive';\r\nimport { CollapseHeaderContentDirective } from './collapse-header-content.directive';\r\n\r\nexport const DIRECTIVES = [\r\n DynamicSeparatorDirective,\r\n CollapseContentDirective,\r\n CollapseHeaderTitleDirective,\r\n CollapseHeaderContentDirective\r\n];\r\n","export * from \"./package.module\";\r\n\r\nexport * from \"./components\";\r\nexport * from \"./directives\";\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { COMPONENTS } from \"./components\";\r\nimport { DIRECTIVES } from \"./directives\";\r\n\r\nimport \"style-loader!./assets/css/flex.css\";\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [COMPONENTS, DIRECTIVES],\r\n providers: [],\r\n exports: [COMPONENTS, DIRECTIVES]\r\n})\r\nexport class SlenderFlexModule { }\r\n","import { NgModule, ErrorHandler, Optional, SkipSelf } from '@angular/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { RouterModule, Route, Routes } from '@angular/router';\r\n\r\nimport { SlenderAuthModule, LoginComponent, AuthGuard } from '@slender/auth';\r\n\r\nimport { RootComponent, MainComponent } from './components';\r\nimport { CONTROLLERS, ErrorController, EventController } from './controllers';\r\nimport { SERVICES } from './services';\r\n\r\nimport { FEATURE_SERVICES, LoggingService } from './features';\r\n\r\nexport function SlenderBootModule(config: BootConfig)\r\n{\r\n @NgModule({\r\n imports: [\r\n BrowserAnimationsModule,\r\n SlenderAuthModule,\r\n RouterModule.forRoot(rootRoutes(config), { useHash: true }),\r\n\r\n ...(config.importModules || []),\r\n ],\r\n declarations: [\r\n RootComponent,\r\n MainComponent\r\n ],\r\n providers: [\r\n {\r\n provide: 'BASE_URL',\r\n useFactory: () => document.getElementsByTagName('base')[0].href\r\n },\r\n {\r\n provide: ErrorHandler,\r\n useFactory: (eb: EventController, ls: LoggingService) => new ErrorController(eb, ls),\r\n deps: [\r\n EventController,\r\n LoggingService\r\n ]\r\n },\r\n CONTROLLERS,\r\n SERVICES,\r\n FEATURE_SERVICES\r\n ],\r\n bootstrap: [RootComponent]\r\n })\r\n class Module\r\n {\r\n constructor(@Optional() @SkipSelf() thisModule: Module)\r\n {\r\n if (thisModule) { throw new Error(\"SlenderBootModule is already loaded. Import at root only.\"); }\r\n }\r\n }\r\n\r\n return Module;\r\n}\r\n\r\nfunction rootRoutes(config: BootConfig)\r\n{\r\n let rootPath: Route = {\r\n path: '',\r\n component: config.mainComponent,\r\n loadChildren: config.lazyModule ? () => config.lazyModule : undefined,\r\n children: config.appRoutes,\r\n canActivate: [AuthGuard]\r\n };\r\n\r\n return [\r\n rootPath,\r\n { path: 'pub/login', component: LoginComponent },\r\n { path: '**', redirectTo: '', pathMatch: 'full' }\r\n ]\r\n}\r\n\r\ntype BootConfig = {\r\n importModules?: any[],\r\n lazyModule?: any,\r\n mainComponent?: any,\r\n appRoutes?: Routes\r\n};\r\n","export * from './root.component';\r\nexport * from './main.component';\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'slender-authenticated-route-container',\r\n template: ''\r\n})\r\nexport class MainComponent { }\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ConfigService } from '../services';\r\n\r\n@Component({\r\n selector: 'slender-root',\r\n template: ''\r\n})\r\nexport class RootComponent\r\n{\r\n constructor(private _configService: ConfigService) { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Broadcaster } from '@slender/core';\r\nimport { ErrorDetails } from '../features';\r\n\r\n@Injectable()\r\nexport class AsyncTaskController\r\n{\r\n public taskChanges = new Broadcaster();\r\n public statusChanges = new Broadcaster(true);\r\n\r\n private _tasks: AsyncTask[] = [];\r\n private _statusTimeout: any;\r\n\r\n public startTask(name: string): string\r\n {\r\n let task = new AsyncTask();\r\n task.id = Math.floor(Math.random() * 1000000000).toString();\r\n task.name = name;\r\n this._tasks.push(task);\r\n this.taskChanges.broadcast(this._tasks);\r\n\r\n return task.id;\r\n }\r\n\r\n public updateTask(id: string, progress: number)\r\n {\r\n let task = this._tasks.find(t => t.id == id);\r\n if (!!task)\r\n {\r\n task.progress = progress;\r\n this.taskChanges.broadcast(this._tasks);\r\n }\r\n }\r\n\r\n public completeTask(id: string)\r\n {\r\n let task = this._tasks.find(t => t.id == id);\r\n if (!!task)\r\n {\r\n task.isComplete = true;\r\n this.taskChanges.broadcast(this._tasks);\r\n }\r\n }\r\n\r\n public throwTaskError(id: string, error: any)\r\n {\r\n let task = this._tasks.find(t => t.id == id);\r\n if (!!task)\r\n {\r\n task.isComplete = true;\r\n task.error = ErrorDetails.from(error);\r\n this.taskChanges.broadcast(this._tasks);\r\n }\r\n }\r\n\r\n public updateStatus(status: AppStatus, timeout: number = 0)\r\n {\r\n this.statusChanges.broadcast(status);\r\n if (timeout > 0)\r\n {\r\n if (this._statusTimeout)\r\n {\r\n clearTimeout(this._statusTimeout);\r\n }\r\n this._statusTimeout = setTimeout(() =>\r\n {\r\n this.statusChanges.broadcast(new AppStatus('info', \"Ready\"));\r\n this._statusTimeout = null;\r\n }, timeout * 1000);\r\n }\r\n }\r\n}\r\n\r\nexport class AppStatus\r\n{\r\n public type: AppStatusType;\r\n public text: string;\r\n\r\n constructor(type: AppStatusType, text: string)\r\n {\r\n this.type = type;\r\n this.text = text;\r\n }\r\n}\r\n\r\nexport type AppStatusType = 'info' | 'wait' | 'success' | 'warning' | 'error';\r\n\r\nexport class AsyncTask\r\n{\r\n public id: string;\r\n public name: string;\r\n public isComplete: boolean;\r\n public progress: number;\r\n public error: ErrorDetails;\r\n}\r\n","import { Injectable, ErrorHandler, isDevMode } from '@angular/core'\r\n\r\nimport { EventController } from './event.controller'\r\nimport { LoggingService, ErrorDetails } from '../features';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class ErrorController implements ErrorHandler\r\n{\r\n constructor(\r\n private _eventBroadcaster: EventController,\r\n private _loggingService: LoggingService) { }\r\n\r\n public handleError(error: Error)\r\n {\r\n try\r\n {\r\n this._eventBroadcaster.error.broadcast(ErrorDetails.from(error));\r\n\r\n if (!(error instanceof HttpErrorResponse))\r\n {\r\n this._loggingService.logError(error);\r\n }\r\n }\r\n catch (e)\r\n {\r\n console.error(error);\r\n }\r\n\r\n if (isDevMode())\r\n {\r\n console.error(error);\r\n }\r\n }\r\n}\r\n","import { Injectable, Injector } from '@angular/core'\r\nimport { Broadcaster } from '@slender/core';\r\nimport { Info, Warning, ErrorDetails } from '../features';\r\n\r\n@Injectable()\r\nexport class EventController\r\n{\r\n public event = new Broadcaster();\r\n\r\n public info = new Broadcaster();\r\n public warning = new Broadcaster();\r\n public error = new Broadcaster();\r\n}\r\n","import { EventController } from './event.controller';\r\nexport * from './event.controller';\r\n\r\nimport { ErrorController } from './error.controller';\r\nexport * from './error.controller';\r\n\r\nimport { AsyncTaskController } from './async-task.controller';\r\nexport * from './async-task.controller';\r\n\r\nimport { TimeController } from './time.controller';\r\nexport * from './time.controller';\r\n\r\nexport const CONTROLLERS = [\r\n EventController,\r\n ErrorController,\r\n AsyncTaskController,\r\n TimeController\r\n];\r\n","import { Injectable } from '@angular/core'\r\nimport { Broadcaster } from '@slender/core';\r\nimport { addSeconds } from 'date-fns';\r\n\r\n@Injectable()\r\nexport class TimeController\r\n{\r\n public tick = new Broadcaster(true);\r\n\r\n public get now(): Date { return new Date(this._now); }\r\n private _now: Date;\r\n\r\n private _mode: 'real-time' | 'mock' = 'real-time';\r\n private _mockRate: number;\r\n private _timer: any;\r\n\r\n constructor()\r\n {\r\n this.setTickInterval();\r\n }\r\n\r\n public mock(time: Date, rate: number, interval: number)\r\n {\r\n this._mode = 'mock';\r\n this._now = time;\r\n this._mockRate = rate;\r\n this.setTickInterval(interval);\r\n }\r\n\r\n public clearMock()\r\n {\r\n this._mode = 'real-time';\r\n this.setTickInterval();\r\n }\r\n\r\n private setTickInterval(interval: number = 1000)\r\n {\r\n if (this._timer)\r\n {\r\n clearInterval(this._timer);\r\n }\r\n\r\n this._timer = setInterval(() =>\r\n {\r\n if (this._mode == 'real-time')\r\n {\r\n this._now = new Date();\r\n }\r\n else\r\n {\r\n this._now = addSeconds(this._now, this._mockRate);\r\n }\r\n this.tick.broadcast(this._now);\r\n }, interval);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { DialogProvider } from '@slender/modals';\r\n\r\nimport { ErrorDetailsComponent } from \"./error-details.component\";\r\nimport { ErrorDetails } from \"./error-details\";\r\n\r\n@Injectable()\r\nexport class ErrorDetailsModalProvider\r\n{\r\n constructor(private _dialogProvider: DialogProvider) { };\r\n\r\n public show(errorDetails: ErrorDetails)\r\n {\r\n this._dialogProvider.showDialog(ErrorDetailsComponent, errorDetails);\r\n }\r\n}\r\n","import { Component, Input, Inject, Optional } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { ErrorDetails } from './error-details';\r\n\r\n@Component({\r\n selector: 'error-details',\r\n templateUrl: 'error-details.html',\r\n styleUrls: ['error-details.css'],\r\n})\r\nexport class ErrorDetailsComponent\r\n{\r\n @Input()\r\n public errorDetails: ErrorDetails;\r\n\r\n constructor(\r\n @Optional() @Inject(MAT_DIALOG_DATA) public data: ErrorDetails,\r\n @Optional() private _dialogRef: MatDialogRef)\r\n {\r\n this.errorDetails = data;\r\n }\r\n\r\n public ngOnInit()\r\n {\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.main {\\r\\n padding: 0 10px;\\r\\n}\\r\\n\\r\\n.section {\\r\\n flex-shrink: 0;\\r\\n padding-bottom: 10px;\\r\\n margin-top: 10px;\\r\\n}\\r\\n\\r\\n.section:not(:last-child) {\\r\\n border-bottom: 1px solid silver;\\r\\n }\\r\\n\\r\\n.label {\\r\\n font-weight: bold;\\r\\n margin-right: 5px;\\r\\n}\\r\\n\\r\\n.type {\\r\\n padding: 5px;\\r\\n font-weight: bold;\\r\\n color: white;\\r\\n background-color: cadetblue;\\r\\n border-radius: 3px;\\r\\n}\\r\\n\\r\\n.status {\\r\\n padding: 5px;\\r\\n font-weight: bold;\\r\\n color: white;\\r\\n background-color: cornflowerblue;\\r\\n border-radius: 3px;\\r\\n}\\r\\n\\r\\n.stack {\\r\\n background-color: lightgoldenrodyellow;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZvdW5kYXRpb24vZmVhdHVyZXMvZXJyb3ItZGV0YWlscy9lcnJvci1kZXRhaWxzLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7VUFBdEIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxvQkFBb0I7RUFDcEIsZ0JBQWdCO0FBQ2xCOztBQUVFO0lBQ0UsK0JBQStCO0VBQ2pDOztBQUVGO0VBQ0UsaUJBQWlCO0VBQ2pCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLDJCQUEyQjtFQUMzQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLFlBQVk7RUFDWixnQ0FBZ0M7RUFDaEMsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usc0NBQXNDO0FBQ3hDIiwiZmlsZSI6Ik9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZvdW5kYXRpb24vZmVhdHVyZXMvZXJyb3ItZGV0YWlscy9lcnJvci1kZXRhaWxzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5tYWluIHtcclxuICBwYWRkaW5nOiAwIDEwcHg7XHJcbn1cclxuXHJcbi5zZWN0aW9uIHtcclxuICBmbGV4LXNocmluazogMDtcclxuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4gIC5zZWN0aW9uOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHNpbHZlcjtcclxuICB9XHJcblxyXG4ubGFiZWwge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIG1hcmdpbi1yaWdodDogNXB4O1xyXG59XHJcblxyXG4udHlwZSB7XHJcbiAgcGFkZGluZzogNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBjYWRldGJsdWU7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4uc3RhdHVzIHtcclxuICBwYWRkaW5nOiA1cHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGNvcm5mbG93ZXJibHVlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxufVxyXG5cclxuLnN0YWNrIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdvbGRlbnJvZHllbGxvdztcclxufVxyXG4iXX0= */\"","import { HttpErrorResponse } from \"@angular/common/http\";\r\n\r\nexport class ErrorDetails\r\n{\r\n public title: string;\r\n public type: string;\r\n public code: string;\r\n public message: string;\r\n public stack?: string;\r\n\r\n public serverResponse: string;\r\n\r\n constructor() { }\r\n\r\n public static from(error: any)\r\n {\r\n if (error instanceof ErrorDetails)\r\n {\r\n return error;\r\n }\r\n\r\n let errorDetails = new ErrorDetails();\r\n if (typeof error == \"string\")\r\n {\r\n errorDetails.title = \"An error has occured\";\r\n errorDetails.type = \"General Error\";\r\n errorDetails.message = error;\r\n }\r\n else if (error instanceof Error)\r\n {\r\n errorDetails.title = \"An application error has occured\";\r\n errorDetails.type = \"Application Error\";\r\n errorDetails.message = error.message;\r\n errorDetails.stack = error.stack;\r\n }\r\n else if (error instanceof HttpErrorResponse)\r\n {\r\n errorDetails.title = \"The server responded with an error\";\r\n errorDetails.type = \"Server Request Unsuccessful\";\r\n errorDetails.message = `URL ${error.url} responded with status ${error.status} ${error.statusText}`;\r\n errorDetails.code = `${error.status.toString()} ${error.statusText}`;\r\n\r\n if (error.error)\r\n {\r\n if (typeof (error.error) === 'string')\r\n {\r\n errorDetails.serverResponse = error.error;\r\n }\r\n else if (typeof (error.error.text) === 'string')\r\n {\r\n errorDetails.serverResponse = error.error.text;\r\n }\r\n else \r\n {\r\n errorDetails.serverResponse = JSON.stringify(error.error, null, \" \");\r\n }\r\n }\r\n }\r\n else \r\n {\r\n errorDetails.title = \"An unknown aplication error has occured\";\r\n errorDetails.type = \"Unknown Error\";\r\n errorDetails.message = \"Please refresh the page.\";\r\n errorDetails.stack = error.stack;\r\n }\r\n\r\n return errorDetails;\r\n }\r\n}\r\n","export * from './error-details.component';\r\nexport * from './error-details-modal';\r\nexport * from './error-details';\r\n","import { NgModule, ModuleWithProviders, isDevMode } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatNativeDateModule, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\nimport { DialogProvider } from '@slender/modals';\r\n\r\nimport { ErrorDetailsComponent, ErrorDetailsModalProvider } from './error-details';\r\nimport { LOGS_COMPONENTS } from './logs';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n\r\n MatFormFieldModule, MatInputModule,\r\n MatButtonModule, MatButtonToggleModule,\r\n MatCheckboxModule, MatRadioModule, MatSelectModule,\r\n MatDialogModule,\r\n MatDatepickerModule, MatNativeDateModule\r\n ],\r\n declarations: [\r\n ErrorDetailsComponent,\r\n LOGS_COMPONENTS\r\n ],\r\n entryComponents: [\r\n ErrorDetailsComponent,\r\n ],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-ZA' }\r\n ],\r\n exports: [\r\n ErrorDetailsComponent,\r\n LOGS_COMPONENTS\r\n ]\r\n})\r\nexport class SlenderFoundationModule\r\n{\r\n public static forRoot(): ModuleWithProviders\r\n {\r\n if (!SlenderFoundationModule._singleton)\r\n {\r\n SlenderFoundationModule._singleton = {\r\n ngModule: SlenderFoundationModule,\r\n providers: [\r\n DialogProvider,\r\n ErrorDetailsModalProvider\r\n ]\r\n };\r\n }\r\n\r\n return SlenderFoundationModule._singleton;\r\n }\r\n\r\n private static _singleton: ModuleWithProviders;\r\n}\r\n","export * from './foundation.module';\r\n\r\nexport * from './error-details';\r\nexport * from './logs';\r\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { LogItem, LogFormatModel } from '../infrastructure';\r\n\r\n@Component({\r\n selector: 'slender-log-item',\r\n templateUrl: 'log-item.html',\r\n styleUrls: ['log-item.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LogItemComponent\r\n{\r\n @Input()\r\n public log: LogItem;\r\n\r\n @Input()\r\n public format: LogFormatModel;\r\n\r\n public showError: boolean;\r\n}\r\n","export default \"pre {\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.log-item {\\r\\n font-family: monospace;\\r\\n margin-bottom: 3px;\\r\\n}\\r\\n\\r\\n.log-item.info {\\r\\n background-color: #f2faff;\\r\\n }\\r\\n\\r\\n.log-item.warning {\\r\\n background-color: #ffffd5;\\r\\n }\\r\\n\\r\\n.log-item.error {\\r\\n background-color: #ffefec;\\r\\n color: firebrick;\\r\\n font-weight: bold;\\r\\n }\\r\\n\\r\\n.log-item .timestamp {\\r\\n font-weight: bold;\\r\\n margin-right: 10px;\\r\\n }\\r\\n\\r\\n.log-item .source {\\r\\n color: silver;\\r\\n margin-right: 5px;\\r\\n }\\r\\n\\r\\n.log-item .user {\\r\\n color: gray;\\r\\n margin-right: 5px;\\r\\n }\\r\\n\\r\\n.log-item .message {\\r\\n white-space: pre;\\r\\n margin-right: 10px;\\r\\n }\\r\\n\\r\\n.log-item .error-item {\\r\\n padding: 3px 0 12px 20px;\\r\\n }\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZvdW5kYXRpb24vZmVhdHVyZXMvbG9ncy9jb21wb25lbnRzL2xvZy1pdGVtLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFNBQVM7QUFDWDs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixrQkFBa0I7QUFDcEI7O0FBRUU7SUFDRSx5QkFBeUI7RUFDM0I7O0FBRUE7SUFDRSx5QkFBeUI7RUFDM0I7O0FBRUE7SUFDRSx5QkFBeUI7SUFDekIsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtFQUNuQjs7QUFFQTtJQUNFLGlCQUFpQjtJQUNqQixrQkFBa0I7RUFDcEI7O0FBRUE7SUFDRSxhQUFhO0lBQ2IsaUJBQWlCO0VBQ25COztBQUVBO0lBQ0UsV0FBVztJQUNYLGlCQUFpQjtFQUNuQjs7QUFFQTtJQUNFLGdCQUFnQjtJQUNoQixrQkFBa0I7RUFDcEI7O0FBRUE7SUFDRSx3QkFBd0I7RUFDMUIiLCJmaWxlIjoiT3BzaS5XZWJBcHBzLlNsZW5kZXIvZm91bmRhdGlvbi9mZWF0dXJlcy9sb2dzL2NvbXBvbmVudHMvbG9nLWl0ZW0uY3NzIiwic291cmNlc0NvbnRlbnQiOlsicHJlIHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5sb2ctaXRlbSB7XHJcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcclxuICBtYXJnaW4tYm90dG9tOiAzcHg7XHJcbn1cclxuXHJcbiAgLmxvZy1pdGVtLmluZm8ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZmFmZjtcclxuICB9XHJcblxyXG4gIC5sb2ctaXRlbS53YXJuaW5nIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZDU7XHJcbiAgfVxyXG5cclxuICAubG9nLWl0ZW0uZXJyb3Ige1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWZlYztcclxuICAgIGNvbG9yOiBmaXJlYnJpY2s7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcblxyXG4gIC5sb2ctaXRlbSAudGltZXN0YW1wIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLmxvZy1pdGVtIC5zb3VyY2Uge1xyXG4gICAgY29sb3I6IHNpbHZlcjtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gIH1cclxuXHJcbiAgLmxvZy1pdGVtIC51c2VyIHtcclxuICAgIGNvbG9yOiBncmF5O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG5cclxuICAubG9nLWl0ZW0gLm1lc3NhZ2Uge1xyXG4gICAgd2hpdGUtc3BhY2U6IHByZTtcclxuICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICB9XHJcblxyXG4gIC5sb2ctaXRlbSAuZXJyb3ItaXRlbSB7XHJcbiAgICBwYWRkaW5nOiAzcHggMCAxMnB4IDIwcHg7XHJcbiAgfVxyXG4iXX0= */\"","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { LogFilterModel } from '../infrastructure';\r\n\r\n@Component({\r\n selector: 'slender-logs-filter',\r\n templateUrl: 'logs-filter.html',\r\n styleUrls: ['logs-filter.css']\r\n})\r\nexport class LogsFilterComponent\r\n{\r\n @Output()\r\n public change = new EventEmitter();\r\n\r\n public today = new Date();\r\n\r\n private _filterModel: LogFilterModel = { maxCount: 50, type: \"$info$warning$error\" };\r\n\r\n constructor() { }\r\n\r\n public onStartDateChange(event: { target: { value: Date; }; })\r\n {\r\n this._filterModel.startTime = event.target.value;\r\n this.change.emit({ value: this._filterModel });\r\n }\r\n\r\n public onTypeChange(event: { value: any; type: string; })\r\n {\r\n if (event.value)\r\n {\r\n this._filterModel.type += event.type;\r\n }\r\n else\r\n {\r\n this._filterModel.type = this._filterModel.type && this._filterModel.type.replace(event.type, \"\");\r\n }\r\n\r\n this.change.emit({ value: this._filterModel });\r\n }\r\n\r\n public onSourceChange(event: { target: { value: string; }; })\r\n {\r\n this._filterModel.source = event.target.value;\r\n this.change.emit({ value: this._filterModel });\r\n }\r\n\r\n public onMessageKeywordChange(event: { target: { value: string; }; })\r\n {\r\n this._filterModel.message = event.target.value;\r\n this.change.emit({ value: this._filterModel });\r\n }\r\n\r\n public onMaxCountChange(event: { target: { value: number; }; })\r\n {\r\n this._filterModel.maxCount = event.target.value;\r\n this.change.emit({ value: this._filterModel });\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZvdW5kYXRpb24vZmVhdHVyZXMvbG9ncy9jb21wb25lbnRzL2xvZ3MtZmlsdGVyLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7VUFBdEIsc0JBQXNCO0FBQ3hCIiwiZmlsZSI6Ik9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZvdW5kYXRpb24vZmVhdHVyZXMvbG9ncy9jb21wb25lbnRzL2xvZ3MtZmlsdGVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuIl19 */\"","import { Component, Input, ChangeDetectionStrategy, ViewChild, ElementRef } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { filter, scan, tap } from 'rxjs/operators';\r\n\r\nimport { LogItem, LogFilterModel, LogFormatModel } from '../infrastructure';\r\nimport { LoggingService } from '../services/logging.service';\r\n\r\n@Component({\r\n selector: 'slender-logs-view-live',\r\n templateUrl: 'logs-view-live.html',\r\n styleUrls: ['logs-view-live.css']\r\n})\r\nexport class LogsViewLiveComponent\r\n{\r\n @Input()\r\n public filter: LogFilterModel | null;\r\n\r\n @Input()\r\n public bufferMax = 100;\r\n\r\n @Input()\r\n public liveScroll = true;\r\n\r\n @Input()\r\n public format = new LogFormatModel();\r\n\r\n @ViewChild('liveLogsContainer', { static: true })\r\n public liveLogsContainer: ElementRef;\r\n\r\n public liveLogs$: Observable;\r\n\r\n constructor(private _loggingService: LoggingService) { }\r\n\r\n public ngOnInit()\r\n {\r\n //if (this.filter)\r\n //{\r\n // let history = this._loggingService.getLogs(this.filter);\r\n //}\r\n this.liveLogs$ = this._loggingService.broadcaster\r\n .pipe(\r\n filter(log => log.isMatch(this.filter)),\r\n scan((logs, log, i) =>\r\n {\r\n logs.push(log);\r\n if (logs.length > this.bufferMax)\r\n {\r\n logs.shift();\r\n }\r\n\r\n return logs;\r\n }, []),\r\n tap(() => this.autoScroll(this.liveLogsContainer.nativeElement)));\r\n\r\n this._loggingService.connect();\r\n }\r\n\r\n private autoScroll(el: HTMLElement)\r\n {\r\n if (this.liveScroll)\r\n {\r\n //let offset = el.scrollHeight - el.clientHeight - el.scrollTop;\r\n setTimeout(() =>\r\n {\r\n let scrollTop = el.scrollHeight - el.clientHeight;\r\n el.scrollTo({ top: scrollTop, behavior: 'smooth' });\r\n });\r\n }\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n#logs-end {\\r\\n color: yellow;\\r\\n font-weight: bold;\\r\\n padding: 3px;\\r\\n text-align: center;\\r\\n background-color: navy;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZvdW5kYXRpb24vZmVhdHVyZXMvbG9ncy9jb21wb25lbnRzL2xvZ3Mtdmlldy1saXZlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7VUFBdEIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0QixlQUFlO0FBQ2pCIiwiZmlsZSI6Ik9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZvdW5kYXRpb24vZmVhdHVyZXMvbG9ncy9jb21wb25lbnRzL2xvZ3Mtdmlldy1saXZlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbiNsb2dzLWVuZCB7XHJcbiAgY29sb3I6IHllbGxvdztcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAzcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IG5hdnk7XHJcbiAgbWFyZ2luLXRvcDogNXB4O1xyXG59XHJcbiJdfQ== */\"","import { Component, Input, ChangeDetectionStrategy, ViewChild, ElementRef } from '@angular/core';\r\n\r\nimport { Observable, of as observableOf } from 'rxjs';\r\n\r\nimport { LogItem, LogFilterModel, LogFormatModel } from '../infrastructure';\r\nimport { LoggingService } from '../services/logging.service';\r\n\r\n@Component({\r\n selector: 'slender-logs-view',\r\n templateUrl: 'logs-view.html',\r\n styleUrls: ['logs-view.css']\r\n})\r\nexport class LogsViewComponent\r\n{\r\n @Input()\r\n public set logs(value: Observable | any[])\r\n {\r\n this.historyLogs$ = (value instanceof Observable) ? value : observableOf(value);\r\n }\r\n\r\n @Input()\r\n public set filter(value: LogFilterModel)\r\n {\r\n if (value)\r\n {\r\n this.historyLogs$ = this._loggingService.getLogs(value);\r\n }\r\n }\r\n\r\n @Input()\r\n public format = new LogFormatModel();\r\n\r\n public historyLogs$: Observable;\r\n\r\n constructor(private _loggingService: LoggingService)\r\n {\r\n this.historyLogs$ = this._loggingService.getLogs();\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n#logs-end {\\r\\n color: yellow;\\r\\n font-weight: bold;\\r\\n padding: 3px;\\r\\n text-align: center;\\r\\n background-color: #5e5e98;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZvdW5kYXRpb24vZmVhdHVyZXMvbG9ncy9jb21wb25lbnRzL2xvZ3Mtdmlldy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7RUFDYiw0QkFBc0I7RUFBdEIsNkJBQXNCO1VBQXRCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQix5QkFBeUI7RUFDekIsZUFBZTtBQUNqQiIsImZpbGUiOiJPcHNpLldlYkFwcHMuU2xlbmRlci9mb3VuZGF0aW9uL2ZlYXR1cmVzL2xvZ3MvY29tcG9uZW50cy9sb2dzLXZpZXcuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuI2xvZ3MtZW5kIHtcclxuICBjb2xvcjogeWVsbG93O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDNweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVlNWU5ODtcclxuICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuIl19 */\"","export * from './infrastructure';\r\n\r\nimport { LogsViewComponent } from './components/logs-view.component';\r\nimport { LogsViewLiveComponent } from './components/logs-view-live.component';\r\nimport { LogItemComponent } from './components/log-item.component';\r\nimport { LogsFilterComponent } from './components/logs-filter.component';\r\n\r\nexport const LOGS_COMPONENTS = [\r\n\tLogsViewComponent,\r\n\tLogsViewLiveComponent,\r\n\tLogItemComponent,\r\n\tLogsFilterComponent\r\n];\r\n\r\n//export * from './controllers/logs.controller';\r\n\r\nimport { LoggingService } from './services/logging.service';\r\nexport * from './services/logging.service';\r\n\r\nexport const FEATURE_SERVICES = [\r\n\tLoggingService\r\n];\r\n","export * from './log-item';\r\nexport * from './log-filter-model';\r\nexport * from './log-format-model';\r\n","export class LogFilterModel\r\n{\r\n public maxCount?: number;\r\n\r\n public startTime?: Date;\r\n public endTime?: Date;\r\n\r\n public type?: string;\r\n public user?: string;\r\n public source?: string;\r\n public message?: string;\r\n}\r\n","export class LogFormatModel\r\n{\r\n public showTimestamp: boolean = true;\r\n public showUser: boolean = true;\r\n public showSource: boolean = true;\r\n public oneLine: boolean = true;\r\n}\r\n","import { LogFilterModel } from './log-filter-model';\r\n\r\nexport class LogItem\r\n{\r\n constructor(\r\n public timestamp: string,\r\n public type: string,\r\n public user: string,\r\n public source: string,\r\n public message: string,\r\n public error: string)\r\n {\r\n if (type == 'error' && !error)\r\n {\r\n this.error = message;\r\n this.message = message.slice(0, 100) + \"...\";\r\n }\r\n }\r\n\r\n public isMatch(filter: LogFilterModel | null): boolean\r\n {\r\n if (!filter) { return true; }\r\n\r\n let time = new Date(this.timestamp);\r\n return (\r\n !!filter.type && filter.type.includes(this.type) &&\r\n (!filter.startTime || time >= filter.startTime) &&\r\n (!filter.endTime || time <= filter.endTime) &&\r\n (!filter.user || this.user.includes(filter.user)) &&\r\n (!filter.source || this.source.includes(filter.source)) &&\r\n (!filter.message || this.message.includes(filter.message) ||\r\n this.error.includes(filter.message)));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport sha256 from \"fast-sha256\";\r\nimport { TextEncoder } from 'text-encoding-shim';\r\n\r\nimport { LogItem, LogFilterModel } from '../infrastructure';\r\nimport { SignalRService } from '../../../services';\r\n\r\n@Injectable()\r\nexport class LoggingService extends SignalRService\r\n{\r\n private _lastMessages = new Array(5).fill(\"\");\r\n\r\n constructor(private _http: HttpClient)\r\n {\r\n super();\r\n console.debug(\"LoggingService ctor\");\r\n }\r\n\r\n public getLogs(filterModel?: LogFilterModel): Observable\r\n {\r\n let params: any = {};\r\n\r\n if (filterModel)\r\n {\r\n filterModel.maxCount ? params.maxCount = filterModel.maxCount : 1;\r\n filterModel.startTime ? params.startTime = filterModel.startTime.toISOString() : null;\r\n filterModel.endTime ? params.endTime = filterModel.endTime.toISOString() : null;\r\n filterModel.type ? params.type = filterModel.type : \"error\";\r\n filterModel.source ? params.source = filterModel.source : null;\r\n filterModel.user ? params.user = filterModel.user : null;\r\n filterModel.message ? params.message = filterModel.message : null;\r\n }\r\n else\r\n {\r\n params = { maxCount: 50, type: \"$info$warning$error\" };\r\n }\r\n\r\n return this._http.get('logs', { params: params })\r\n .pipe(map(logs => logs.map(logData => this.formatLogData(logData))));\r\n }\r\n\r\n public connect()\r\n {\r\n super.connect(\"/logs-hub\", 'log-event');\r\n }\r\n\r\n protected onReceive(value: string)\r\n {\r\n this.broadcaster.broadcast(this.formatLogData(JSON.parse(value)));\r\n }\r\n\r\n private formatLogData(logData: any): LogItem\r\n {\r\n return new LogItem(\r\n logData['@t'],\r\n (logData['@l'] || \"info\").toLowerCase(),\r\n logData['User'] ? logData['User'] : \"anonymous\",\r\n logData['SourceContext'],\r\n logData['@m'] ? logData['@m'].split(\" //\", 1)[0] : logData['@mt'],\r\n logData['@x']);\r\n }\r\n\r\n public logInfo(info: Info)\r\n {\r\n if (this.isNew(info.message))\r\n {\r\n this._http.post('logs/log-info', info)\r\n .subscribe(res => { }, err => console.error(err));\r\n }\r\n }\r\n\r\n public logWarning(warning: Warning)\r\n {\r\n if (this.isNew(warning.message))\r\n {\r\n this._http.post('logs/log-warning', warning)\r\n .subscribe(res => { }, err => console.error(err));\r\n }\r\n }\r\n\r\n public logError(error: Error)\r\n {\r\n if (this.isNew(error.message))\r\n {\r\n this._http.post('logs/log-error', {\r\n name: error.name,\r\n message: error.message,\r\n stack: error.stack\r\n }).subscribe(res => { }, err => console.error(err));\r\n }\r\n }\r\n\r\n private isNew(data: string): boolean\r\n {\r\n let hash = this.hash(data);\r\n if (!this._lastMessages.includes(hash))\r\n {\r\n this._lastMessages.unshift(hash);\r\n this._lastMessages.pop();\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private hash(data: string): string\r\n {\r\n let uint8array = new TextEncoder(\"utf-8\").encode(data);\r\n let hashArray = sha256(uint8array);\r\n\r\n let hash = \"\";\r\n for (let i = 0; i < hashArray.length; i++)\r\n {\r\n hash += (\"0\" + hashArray[i].toString(16)).slice(-2);\r\n }\r\n\r\n return hash;\r\n }\r\n}\r\n\r\nexport interface Info\r\n{\r\n message: string;\r\n}\r\n\r\nexport interface Warning\r\n{\r\n message: string;\r\n severity: 'low' | 'medium' | 'high';\r\n}\r\n","export * from './boot.module';\r\n\r\nexport * from './components';\r\nexport * from './controllers';\r\nexport * from './services';\r\n\r\nexport * from './features';\r\n","import { Injectable } from '@angular/core'\r\n\r\nimport { AuthController } from '@slender/auth';\r\n\r\n@Injectable()\r\nexport class ConfigService\r\n{\r\n public systemData: any = {};\r\n public userData: any = {};\r\n\r\n private readonly _baseKey = \"SlenderSystemConfig\";\r\n private _userKey: string;\r\n\r\n constructor(private _authController: AuthController)\r\n {\r\n console.debug(\"ConfigService ctor\");\r\n\r\n this.systemData = this.load(this._baseKey);\r\n _authController.verified.subscribe(session =>\r\n {\r\n this._userKey = `${this._baseKey}:${session.username}`;\r\n this.userData = this.load(this._userKey)\r\n }); \r\n }\r\n\r\n public load(key: string): any\r\n {\r\n let jsonData = localStorage.getItem(key);\r\n return jsonData ? JSON.parse(jsonData) : {};\r\n }\r\n\r\n public saveSystem()\r\n {\r\n localStorage.setItem(this._baseKey, JSON.stringify(this.systemData));\r\n }\r\n\r\n public saveUser()\r\n {\r\n localStorage.setItem(this._userKey, JSON.stringify(this.userData));\r\n }\r\n}\r\n","import { SystemConfigService } from './system-config.service';\r\nexport * from './system-config.service';\r\n\r\nimport { SystemBuildInfoService } from './system-build-info.service';\r\nexport * from './system-build-info.service';\r\n \r\nimport { ConfigService } from './config.service';\r\nexport * from './config.service';\r\n\r\nexport * from './signalR.service';\r\n\r\nimport { PushEventService } from './push-event.service';\r\nexport * from './push-event.service';\r\n\r\nexport const SERVICES = [\r\n SystemConfigService,\r\n SystemBuildInfoService,\r\n ConfigService,\r\n PushEventService\r\n];\r\n","import { Injectable } from '@angular/core'\r\n\r\nimport { SignalRService } from './signalR.service';\r\n\r\n@Injectable()\r\nexport class PushEventService extends SignalRService\r\n{\r\n public connect()\r\n {\r\n super.connect(\"/events-hub\");\r\n }\r\n\r\n public on(channel: string, fn: (value: any) => void)\r\n {\r\n this._hubConnection.on(channel, fn);\r\n }\r\n}\r\n","import { HubConnectionBuilder, HubConnection } from '@aspnet/signalr';\r\nimport { Broadcaster } from '@slender/core';\r\n\r\nexport abstract class SignalRService\r\n{\r\n public broadcaster = new Broadcaster();\r\n\r\n protected _hubConnection: HubConnection;\r\n\r\n public connect(url: string, channel?: string)\r\n {\r\n if (!this._hubConnection)\r\n {\r\n this._hubConnection = new HubConnectionBuilder()\r\n .withUrl(url)\r\n .build();\r\n\r\n this._hubConnection.onclose(err =>\r\n {\r\n console.log(\"Connection lost: \" + err);\r\n setTimeout(() => this.start(), 100);\r\n });\r\n\r\n if (channel)\r\n {\r\n this._hubConnection.on(channel, value => this.onReceive(value));\r\n }\r\n\r\n this.start();\r\n }\r\n }\r\n\r\n public start()\r\n {\r\n this._hubConnection.start()\r\n .then(() => console.debug('Connection started'))\r\n .catch(err =>\r\n {\r\n console.error(err.toString());\r\n setTimeout(() => this.start(), 5000);\r\n });\r\n }\r\n\r\n protected onReceive(value: any)\r\n {\r\n this.broadcaster.broadcast(value);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SystemBuildInfoService \r\n{\r\n constructor(private _http: HttpClient) { }\r\n\r\n public get(): Observable\r\n {\r\n return this._http.get(`config/build-info`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SystemConfigService \r\n{\r\n constructor(private _http: HttpClient) { }\r\n\r\n public get(section: string): Observable\r\n {\r\n return this._http.get(`config/system/${section}`);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n templateUrl: 'confirmation.html',\r\n styleUrls: ['confirmation.css']\r\n})\r\nexport class ConfirmationComponent\r\n{\r\n public message: string;\r\n\r\n constructor() { }\r\n\r\n private onInit(data: any)\r\n {\r\n this.message = data.message;\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL21vZGFscy9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7QUFDZiIsImZpbGUiOiJPcHNpLldlYkFwcHMuU2xlbmRlci9tb2RhbHMvY29tcG9uZW50cy9jb25maXJtYXRpb24uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuIl19 */\"","import { Component, Input, Optional, Inject, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'slr-dialog-container',\r\n templateUrl: 'dialog-container.html',\r\n styleUrls: ['dialog-container.css']\r\n})\r\nexport class DialogContainerComponent\r\n{\r\n @Input()\r\n public title: string;\r\n\r\n @Input()\r\n public titleIcon: 'none' | 'info' | 'warn' | 'error' | 'action';\r\n\r\n @Input()\r\n public commitButtonTitle: string;\r\n\r\n @Input()\r\n public cancelButtonTitle: string;\r\n\r\n @Output()\r\n public init = new EventEmitter();\r\n\r\n constructor(\r\n @Optional() @Inject(MAT_DIALOG_DATA) public data: any,\r\n @Optional() private _dialogRef: MatDialogRef)\r\n { }\r\n\r\n public ngOnInit()\r\n {\r\n if (this.data)\r\n {\r\n this.title = this.title || this.data.title || \"Dialog\";\r\n this.titleIcon = this.titleIcon || this.data.titleIcon || 'none';\r\n this.commitButtonTitle = this.commitButtonTitle || this.data.commitButtonTitle || \"OK\";\r\n this.cancelButtonTitle = this.cancelButtonTitle || this.data.cancelButtonTitle || \"Cancel\";\r\n this.init.emit(this.data || null);\r\n }\r\n else\r\n {\r\n this.title = this.title || \"Dialog\";\r\n this.init.emit();\r\n }\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n}\\r\\n\\r\\n.title-icon {\\r\\n margin-right: 5px;\\r\\n}\\r\\n\\r\\n.yes-button {\\r\\n background-color: darkseagreen;\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.cancel-button {\\r\\n background-color: tomato;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL21vZGFscy9jb21wb25lbnRzL2RpYWxvZy1jb250YWluZXIuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2IsNEJBQXNCO0VBQXRCLDZCQUFzQjtVQUF0QixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSw4QkFBOEI7RUFDOUIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usd0JBQXdCO0FBQzFCIiwiZmlsZSI6Ik9wc2kuV2ViQXBwcy5TbGVuZGVyL21vZGFscy9jb21wb25lbnRzL2RpYWxvZy1jb250YWluZXIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOmhvc3Qge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuLnRpdGxlLWljb24ge1xyXG4gIG1hcmdpbi1yaWdodDogNXB4O1xyXG59XHJcblxyXG4ueWVzLWJ1dHRvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya3NlYWdyZWVuO1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxufVxyXG5cclxuLmNhbmNlbC1idXR0b24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRvbWF0bztcclxufVxyXG4iXX0= */\"","import { DialogContainerComponent } from './dialog-container.component';\r\nexport * from './dialog-container.component';\r\n\r\nimport { ConfirmationComponent } from './confirmation.component';\r\nexport * from './confirmation.component';\r\n\r\nexport const COMPONENTS = [\r\n DialogContainerComponent,\r\n ConfirmationComponent\r\n];","export * from './package.module';\r\n\r\nexport * from './components';\r\nexport * from './providers';\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\nimport { COMPONENTS } from './components';\r\nimport { PROVIDERS } from './providers';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatDialogModule\r\n ],\r\n declarations: [COMPONENTS],\r\n entryComponents: [COMPONENTS],\r\n providers: [PROVIDERS],\r\n exports: [COMPONENTS]\r\n})\r\nexport class SlenderModalsModule { }\r\n","import {Injectable, TemplateRef} from \"@angular/core\";\r\nimport {MatDialog} from \"@angular/material/dialog\";\r\n\r\nimport {ConfirmationComponent} from \"../components\";\r\n\r\n@Injectable()\r\nexport class DialogProvider\r\n{\r\n constructor(private _dialog: MatDialog) { }\r\n\r\n public showDialog(component: any, data: any)\r\n {\r\n return this.showDialogMedium(component, data);\r\n }\r\n\r\n public showConfirmation(data: any, component: any = null)\r\n {\r\n if (!component)\r\n {\r\n component = ConfirmationComponent;\r\n }\r\n\r\n return this.showDialogSmall(component, data);\r\n }\r\n\r\n public confirm(title: string, commitButtonTitle: string, message: string, confirmedFn: () => void)\r\n {\r\n this.showConfirmation({ title, titleIcon: 'warn', commitButtonTitle, message })\r\n .afterClosed()\r\n .subscribe(yes =>\r\n {\r\n if (yes)\r\n {\r\n confirmedFn();\r\n }\r\n });\r\n }\r\n\r\n private showDialogMedium(component: TemplateRef, data: any)\r\n {\r\n let dialogRef = this._dialog.open(component, {\r\n width: '60vw', height: '70vh',\r\n panelClass: 'no-padding-table-dialog',\r\n data: data\r\n });\r\n\r\n return dialogRef;\r\n }\r\n\r\n private showDialogSmall(component: TemplateRef, data: any)\r\n {\r\n let dialogRef = this._dialog.open(component, {\r\n width: '450px', height: '200px',\r\n panelClass: 'no-padding-table-dialog',\r\n data: data\r\n });\r\n\r\n return dialogRef;\r\n }\r\n}\r\n","import { DialogProvider } from './dialog.provider';\r\nexport * from './dialog.provider';\r\n\r\nexport const PROVIDERS = [\r\n DialogProvider\r\n];\r\n","import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { AsyncTaskController, AppStatus } from '@slender/foundation';\r\n\r\n@Component({\r\n templateUrl: 'layout.html',\r\n styleUrls: ['layout.css'],\r\n host: { style: \"display:flex; flex-direction:column; width: 100vw; height: 100vh;\" },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PlatformLayoutComponent\r\n{\r\n constructor(private _asyncTaskController: AsyncTaskController)\r\n {\r\n console.debug(\"LayoutComponent ctor\");\r\n }\r\n\r\n public ngOnInit()\r\n {\r\n console.debug(\"Platform LayoutComponent init\");\r\n }\r\n}\r\n","export default \"app-header {\\r\\n height: 50px;\\r\\n}\\r\\n\\r\\n#app-container > *:not(router-outlet) {\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n max-width: 100vw;\\r\\n}\\r\\n\\r\\n#view-container > *:not(router-outlet) {\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n max-width: 100vw;\\r\\n}\\r\\n\\r\\napp-statusbar {\\r\\n height: 25px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL3BsYXRmb3JtL2NvbXBvbmVudHMvX2xheW91dC9sYXlvdXQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsbUJBQVc7VUFBWCxXQUFXO0VBQ1gsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQVc7VUFBWCxXQUFXO0VBQ1gsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsWUFBWTtBQUNkIiwiZmlsZSI6Ik9wc2kuV2ViQXBwcy5TbGVuZGVyL3BsYXRmb3JtL2NvbXBvbmVudHMvX2xheW91dC9sYXlvdXQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiYXBwLWhlYWRlciB7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG59XHJcblxyXG4jYXBwLWNvbnRhaW5lciA+ICo6bm90KHJvdXRlci1vdXRsZXQpIHtcclxuICBmbGV4OiAxIDEgMDtcclxuICBtYXgtd2lkdGg6IDEwMHZ3O1xyXG59XHJcblxyXG4jdmlldy1jb250YWluZXIgPiAqOm5vdChyb3V0ZXItb3V0bGV0KSB7XHJcbiAgZmxleDogMSAxIDA7XHJcbiAgbWF4LXdpZHRoOiAxMDB2dztcclxufVxyXG5cclxuYXBwLXN0YXR1c2JhciB7XHJcbiAgaGVpZ2h0OiAyNXB4O1xyXG59XHJcbiJdfQ== */\"","import { trigger, animate, style, transition } from '@angular/animations';\r\n\r\nexport const asyncTaskAnimation = trigger('taskAnim', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'translateX(50px)' }),\r\n animate(500)\r\n ]),\r\n transition(':leave', [\r\n animate('0.5s ease', style({\r\n margin: '0',\r\n width: '0',\r\n padding: '0',\r\n opacity: 0\r\n }))\r\n ])\r\n]);\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport { AuthService } from '@slender/auth';\r\nimport { AsyncTaskController, AppStatus } from '@slender/foundation';\r\n\r\nimport { ConfigService } from '../../services';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: 'header.html',\r\n styleUrls: ['header.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HeaderComponent\r\n{\r\n constructor(\r\n private _authService: AuthService,\r\n private _configService: ConfigService,\r\n private _asyncTaskController: AsyncTaskController,\r\n private _cd: ChangeDetectorRef)\r\n {\r\n console.debug(\"HeaderComponent ctor\");\r\n }\r\n\r\n public ngOnInit()\r\n {\r\n this._asyncTaskController.updateStatus(new AppStatus('wait', `Loading...`));\r\n }\r\n\r\n private onSoftReload()\r\n {\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n.header-container {\\r\\n width: 100%;\\r\\n background-color: #ddd;\\r\\n border-bottom: 1px solid #00bce4\\r\\n}\\r\\n\\r\\n.header-container > * {\\r\\n margin-right: 20px;\\r\\n }\\r\\n\\r\\n.logo {\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.logo img {\\r\\n height: 100%;\\r\\n }\\r\\n\\r\\n.at-home {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n::ng-deep .admin-panel-link {\\r\\n font-weight: bold;\\r\\n color: #fcb131;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL3BsYXRmb3JtL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7QUFDZjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxzQkFBc0I7RUFDdEI7QUFDRjs7QUFFRTtJQUNFLGtCQUFrQjtFQUNwQjs7QUFFRjtFQUNFLFlBQVk7QUFDZDs7QUFFRTtJQUNFLFlBQVk7RUFDZDs7QUFFRjtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCIiwiZmlsZSI6Ik9wc2kuV2ViQXBwcy5TbGVuZGVyL3BsYXRmb3JtL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLmhlYWRlci1jb250YWluZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMGJjZTRcclxufVxyXG5cclxuICAuaGVhZGVyLWNvbnRhaW5lciA+ICoge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gIH1cclxuXHJcbi5sb2dvIHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbiAgLmxvZ28gaW1nIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4uYXQtaG9tZSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5hZG1pbi1wYW5lbC1saW5rIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBjb2xvcjogI2ZjYjEzMTtcclxufVxyXG4iXX0= */\"","import { PlatformLayoutComponent } from './_layout/layout.component';\r\nexport { PlatformLayoutComponent }\r\n\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { StatusbarComponent } from './statusbar/statusbar.component';\r\n\r\nexport const COMPONENTS = [\r\n PlatformLayoutComponent,\r\n HeaderComponent,\r\n StatusbarComponent\r\n];\r\n","export const altVersion = \"1.5.0\";\r\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, NgZone} from '@angular/core';\r\n\r\nimport {\r\n AppStatus,\r\n AsyncTask,\r\n AsyncTaskController,\r\n ErrorDetails,\r\n ErrorDetailsModalProvider,\r\n EventController,\r\n SystemBuildInfoService\r\n} from '@slender/foundation';\r\n\r\nimport {Subject} from 'rxjs';\r\n\r\nimport {asyncTaskAnimation} from '../animations';\r\nimport {altVersion} from './alt-version';\r\n\r\n@Component({\r\n selector: 'app-statusbar',\r\n templateUrl: 'statusbar.html',\r\n styleUrls: ['statusbar.css'],\r\n animations: [asyncTaskAnimation],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class StatusbarComponent\r\n{\r\n public mode: 'default' | 'error' = 'default';\r\n\r\n public status: AppStatus;\r\n public tasks: AsyncTask[] = [];\r\n public taskErrorLog: AsyncTask[] = [];\r\n\r\n public appVersion: string = \"0.8.4\";\r\n\r\n public errorDetails: ErrorDetails;\r\n\r\n private onDestroy = new Subject();\r\n\r\n constructor(\r\n private _systemBuildInfoService: SystemBuildInfoService,\r\n private _asyncTaskController: AsyncTaskController,\r\n private _eventController: EventController,\r\n private _errorModalProvider: ErrorDetailsModalProvider,\r\n private _zone: NgZone,\r\n private _cd: ChangeDetectorRef)\r\n {\r\n console.debug(\"StatusbarComponent ctor\");\r\n this.status = new AppStatus('info', \"Ready\");\r\n this._systemBuildInfoService.get().subscribe(info => {\r\n this.appVersion = info.version || altVersion\r\n });\r\n }\r\n\r\n public ngOnInit()\r\n {\r\n console.debug(\"StatusbarComponent init\");\r\n\r\n this._eventController.error.subscribe(error => this.handleError(error));\r\n this._asyncTaskController.statusChanges.subscribeUntil(this.onDestroy, s => this.updateStatus(s));\r\n this._asyncTaskController.taskChanges.subscribeUntil(this.onDestroy, tasks => this.updateTasks(tasks));\r\n }\r\n\r\n private updateStatus(status: AppStatus)\r\n {\r\n this.status = status;\r\n this._cd.markForCheck();\r\n }\r\n\r\n private updateTasks(tasks: AsyncTask[])\r\n {\r\n this.tasks = tasks;\r\n this.tasks.forEach(t =>\r\n {\r\n let delay = t.isComplete && !t.error ? 500 : 3000;\r\n setTimeout(() => this.handleCompletedTask(t.id), delay);\r\n });\r\n this._cd.markForCheck();\r\n }\r\n\r\n private onTaskClick(id: string)\r\n {\r\n let task = this.tasks.find(t => t.id == id);\r\n if (!!task)\r\n {\r\n if (task.error)\r\n {\r\n this._errorModalProvider.show(task.error);\r\n this.removeTaskById(task.id);\r\n }\r\n else if (task.isComplete)\r\n {\r\n this.removeTaskById(task.id);\r\n }\r\n }\r\n }\r\n\r\n private onTaskClose(id: string)\r\n {\r\n let existingTask_i = this.tasks.findIndex(t => t.id == id);\r\n if (existingTask_i >= 0)\r\n {\r\n this.removeTask(existingTask_i);\r\n }\r\n }\r\n\r\n private onErrorLogItemClick(i: number)\r\n {\r\n this._errorModalProvider.show(this.taskErrorLog[i].error);\r\n }\r\n\r\n private handleCompletedTask(id: string)\r\n {\r\n let task = this.tasks.find(t => t.id == id);\r\n if (task)\r\n {\r\n if (task.error)\r\n {\r\n //this.status = new AppStatus('info', \"Task Error\");\r\n this.taskErrorLog.push(task);\r\n }\r\n this.removeTaskById(task.id);\r\n }\r\n }\r\n\r\n private removeTaskById(id: string)\r\n {\r\n let task_i = this.tasks.findIndex(t => t.id == id);\r\n this.removeTask(task_i);\r\n }\r\n\r\n private removeTask(index: number)\r\n {\r\n if (index >= 0)\r\n {\r\n this.tasks.splice(index, 1);\r\n this._cd.markForCheck();\r\n }\r\n }\r\n\r\n private handleError(error: ErrorDetails)\r\n {\r\n this._zone.run(() =>\r\n {\r\n this.mode = 'error';\r\n this.errorDetails = error;\r\n this._cd.markForCheck();\r\n });\r\n }\r\n\r\n private onErrorDetailsClick()\r\n {\r\n this.mode = 'default';\r\n this._errorModalProvider.show(this.errorDetails);\r\n }\r\n\r\n private onErrorDismissClick()\r\n {\r\n this.mode = 'default';\r\n this._cd.markForCheck();\r\n }\r\n\r\n public ngOnDestroy()\r\n {\r\n this.onDestroy.next(true);\r\n }\r\n}\r\n","export default \":host {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n#status-label, #status-text {\\r\\n margin-right: 10px;\\r\\n}\\r\\n\\r\\n.status-section {\\r\\n border-right: 1px solid silver;\\r\\n}\\r\\n\\r\\n.status-section.info {\\r\\n background-color: whitesmoke;\\r\\n }\\r\\n\\r\\n.status-section.wait {\\r\\n background-color: #f7f0bb;\\r\\n }\\r\\n\\r\\n.status-section.success {\\r\\n background-color: #c1d7c1;\\r\\n }\\r\\n\\r\\n.status-section.warning {\\r\\n background-color: #ffbb68;\\r\\n }\\r\\n\\r\\n.status-section.error {\\r\\n background-color: tomato;\\r\\n }\\r\\n\\r\\n.status-section.error a {\\r\\n font-weight: bold;\\r\\n color: white;\\r\\n }\\r\\n\\r\\n.status-section.error a:hover {\\r\\n color: #337ab7;\\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.task {\\r\\n padding-left: 3px;\\r\\n background-color: skyblue;\\r\\n border: 1px solid gray;\\r\\n border-radius: 2px;\\r\\n margin: 0 5px;\\r\\n overflow: hidden;\\r\\n text-wrap: none;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n.task.success {\\r\\n background-color: darkseagreen;\\r\\n }\\r\\n\\r\\n.task.error {\\r\\n background-color: tomato;\\r\\n }\\r\\n\\r\\n.task .label {\\r\\n padding: 0 3px;\\r\\n }\\r\\n\\r\\n.task .icon {\\r\\n font-size: 12px;\\r\\n padding-top: 2px;\\r\\n }\\r\\n\\r\\n.task .icon.close {\\r\\n padding-right: 3px;\\r\\n }\\r\\n\\r\\n.task .icon.close:hover {\\r\\n color: white;\\r\\n }\\r\\n\\r\\n#error-log .icon {\\r\\n color: orangered;\\r\\n}\\r\\n\\r\\n#error-log .count {\\r\\n font-size: 10px;\\r\\n}\\r\\n\\r\\n#error-log .icon:hover {\\r\\n color: tomato;\\r\\n}\\r\\n\\r\\n#error-log-list .log-item:hover {\\r\\n color: blue;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL3BsYXRmb3JtL2NvbXBvbmVudHMvc3RhdHVzYmFyL3N0YXR1c2Jhci5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLDhCQUE4QjtBQUNoQzs7QUFFRTtJQUNFLDRCQUE0QjtFQUM5Qjs7QUFFQTtJQUNFLHlCQUF5QjtFQUMzQjs7QUFFQTtJQUNFLHlCQUF5QjtFQUMzQjs7QUFFQTtJQUNFLHlCQUF5QjtFQUMzQjs7QUFFQTtJQUNFLHdCQUF3QjtFQUMxQjs7QUFFRTtNQUNFLGlCQUFpQjtNQUNqQixZQUFZO0lBQ2Q7O0FBRUU7UUFDRSxjQUFjO01BQ2hCOztBQUVOO0VBQ0UsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsbUJBQW1CO0FBQ3JCOztBQUVFO0lBQ0UsOEJBQThCO0VBQ2hDOztBQUVBO0lBQ0Usd0JBQXdCO0VBQzFCOztBQUVBO0lBQ0UsY0FBYztFQUNoQjs7QUFFQTtJQUNFLGVBQWU7SUFDZixnQkFBZ0I7RUFDbEI7O0FBRUU7TUFDRSxrQkFBa0I7SUFDcEI7O0FBRUU7UUFDRSxZQUFZO01BQ2Q7O0FBRU47RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsV0FBVztBQUNiIiwiZmlsZSI6Ik9wc2kuV2ViQXBwcy5TbGVuZGVyL3BsYXRmb3JtL2NvbXBvbmVudHMvc3RhdHVzYmFyL3N0YXR1c2Jhci5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuI3N0YXR1cy1sYWJlbCwgI3N0YXR1cy10ZXh0IHtcclxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbi5zdGF0dXMtc2VjdGlvbiB7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgc2lsdmVyO1xyXG59XHJcblxyXG4gIC5zdGF0dXMtc2VjdGlvbi5pbmZvIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlc21va2U7XHJcbiAgfVxyXG5cclxuICAuc3RhdHVzLXNlY3Rpb24ud2FpdCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmMGJiO1xyXG4gIH1cclxuXHJcbiAgLnN0YXR1cy1zZWN0aW9uLnN1Y2Nlc3Mge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MxZDdjMTtcclxuICB9XHJcblxyXG4gIC5zdGF0dXMtc2VjdGlvbi53YXJuaW5nIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNjg7XHJcbiAgfVxyXG5cclxuICAuc3RhdHVzLXNlY3Rpb24uZXJyb3Ige1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdG9tYXRvO1xyXG4gIH1cclxuXHJcbiAgICAuc3RhdHVzLXNlY3Rpb24uZXJyb3IgYSB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB9XHJcblxyXG4gICAgICAuc3RhdHVzLXNlY3Rpb24uZXJyb3IgYTpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICMzMzdhYjc7XHJcbiAgICAgIH1cclxuXHJcbi50cnVuY2F0ZSB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG59XHJcblxyXG4udGFzayB7XHJcbiAgcGFkZGluZy1sZWZ0OiAzcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogc2t5Ymx1ZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCBncmF5O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBtYXJnaW46IDAgNXB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC13cmFwOiBub25lO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbiAgLnRhc2suc3VjY2VzcyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrc2VhZ3JlZW47XHJcbiAgfVxyXG5cclxuICAudGFzay5lcnJvciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0b21hdG87XHJcbiAgfVxyXG5cclxuICAudGFzayAubGFiZWwge1xyXG4gICAgcGFkZGluZzogMCAzcHg7XHJcbiAgfVxyXG5cclxuICAudGFzayAuaWNvbiB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBwYWRkaW5nLXRvcDogMnB4O1xyXG4gIH1cclxuXHJcbiAgICAudGFzayAuaWNvbi5jbG9zZSB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDNweDtcclxuICAgIH1cclxuXHJcbiAgICAgIC50YXNrIC5pY29uLmNsb3NlOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgIH1cclxuXHJcbiNlcnJvci1sb2cgLmljb24ge1xyXG4gIGNvbG9yOiBvcmFuZ2VyZWQ7XHJcbn1cclxuXHJcbiNlcnJvci1sb2cgLmNvdW50IHtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbn1cclxuXHJcbiNlcnJvci1sb2cgLmljb246aG92ZXIge1xyXG4gIGNvbG9yOiB0b21hdG87XHJcbn1cclxuXHJcbiNlcnJvci1sb2ctbGlzdCAubG9nLWl0ZW06aG92ZXIge1xyXG4gIGNvbG9yOiBibHVlO1xyXG59XHJcbiJdfQ== */\"","\r\nexport const CONTROLLERS: any[] = [\r\n\r\n];\r\n","export * from './package.module';\r\n\r\nexport * from './components';\r\nexport * from './controllers';\r\nexport * from './services';\r\n\r\nexport * from './infrastructure';\r\n","export * from './user-config';\r\n ","export class UserConfig\r\n{\r\n public state: UserState;\r\n public applets: { [key: string]: IAppletConfig };\r\n\r\n public readonly isLoaded: boolean;\r\n\r\n constructor(data: any)\r\n {\r\n if (!data)\r\n {\r\n throw new Error(\"Invalid configuration data to construct UserConfig\");\r\n }\r\n\r\n this.state = new UserState(data.state);\r\n this.applets = data.applets || {};\r\n\r\n this.isLoaded = true;\r\n }\r\n}\r\n\r\nexport class UserState\r\n{\r\n public data: any;\r\n\r\n constructor(data: any)\r\n {\r\n this.data = data;\r\n } \r\n}\r\n\r\nexport interface IAppletConfig \r\n{\r\n layout: any;\r\n state: any;\r\n}\r\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\n//import { LogisticsModule } from '@logistics';\r\n\r\nimport { SlenderFoundationModule } from '@slender/foundation';\r\nimport { SlenderAdminModule } from '@slender/auth';\r\nimport { SlenderFlexModule } from \"@slender/flex\";\r\n//import { SlenderDateRangePickerModule } from \"@slender/date-range-picker\";\r\n\r\n//import { OpsiCloudCoreModule } from '@opsi-cloud/core';\r\n\r\nimport { COMPONENTS, PlatformLayoutComponent } from './components';\r\nimport { CONTROLLERS } from './controllers';\r\nimport { SERVICES } from './services';\r\n\r\nexport function SlenderPlatformModule(config: PlatformConfig)\r\n{\r\n @NgModule({\r\n imports: [\r\n CommonModule,\r\n\r\n MatButtonModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n MatMenuModule,\r\n\r\n //LogisticsModule,\r\n\r\n SlenderFoundationModule.forRoot(),\r\n SlenderAdminModule,\r\n SlenderFlexModule,\r\n //SlenderDateRangePickerModule,\r\n\r\n //OpsiCloudCoreModule,\r\n\r\n RouterModule.forChild([{\r\n path: '',\r\n component: PlatformLayoutComponent,\r\n children: config.appRoutes,\r\n loadChildren: config.lazyModule ? () => config.lazyModule : undefined\r\n }])\r\n ],\r\n declarations: [\r\n COMPONENTS\r\n ],\r\n providers: [\r\n CONTROLLERS,\r\n SERVICES\r\n ]\r\n })\r\n class PlatformModuleClass\r\n {\r\n constructor(@Optional() @SkipSelf() thisModule: PlatformModuleClass)\r\n {\r\n if (thisModule) { throw new Error(\"PlatformModule is already loaded. Import at root only.\"); }\r\n }\r\n }\r\n\r\n return PlatformModuleClass;\r\n}\r\n\r\ntype PlatformConfig = {\r\n appRoutes?: Routes,\r\n lazyModule?: any\r\n};\r\n","import { Injectable } from '@angular/core'\r\n\r\nimport { ConfigService as BaseConfigService } from '@slender/foundation';\r\n\r\nimport { UserConfig } from '../infrastructure';\r\n\r\n@Injectable()\r\nexport class ConfigService\r\n{\r\n public systemData: any;\r\n public get userConfig(): UserConfig\r\n {\r\n if (!this._isInitialized || !(this._baseConfigService.userData instanceof UserConfig))\r\n {\r\n this._isInitialized = true;\r\n this._baseConfigService.userData = new UserConfig(this._baseConfigService.userData)\r\n }\r\n return this._baseConfigService.userData;\r\n }\r\n\r\n private _isInitialized: boolean;\r\n\r\n constructor(private _baseConfigService: BaseConfigService)\r\n {\r\n console.debug(\"Platform ConfigService ctor\");\r\n }\r\n\r\n public saveSystem()\r\n {\r\n this._baseConfigService.saveSystem();\r\n }\r\n\r\n public saveUser()\r\n {\r\n this._baseConfigService.saveUser();\r\n }\r\n}\r\n","import { ConfigService } from './config.service';\r\nexport * from './config.service';\r\n\r\nexport const SERVICES = [\r\n ConfigService\r\n];\r\n","export default \"/* ========================\\r\\n ---[CONTAINER]---------- \\r\\n ========================*/\\r\\n\\r\\n.flx, [flx] {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n.flx.v, [flx][v] { /*vertical*/\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n }\\r\\n\\r\\n/* ===[Expansion]============== */\\r\\n\\r\\n[flx][fix], [flx-fix] { /*fix*/\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 auto;\\r\\n overflow: hidden;\\r\\n }\\r\\n\\r\\n[flx][exp], [flx-exp] { /*expand*/\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 0 0%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n }\\r\\n\\r\\n[flx][max], [flx-max] /*expand and overflow*/ {\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 0 auto;\\r\\n }\\r\\n\\r\\n/* ===[Scrolling]============== */\\r\\n\\r\\n[flx][scrl] { /*expand scroll both*/\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n overflow: auto;\\r\\n }\\r\\n\\r\\n[flx][scrlv] { /*expand scroll vertical*/\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n overflow-y: auto;\\r\\n }\\r\\n\\r\\n[flx][scrlh] { /*expand scroll horizontal*/\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n overflow-x: auto;\\r\\n }\\r\\n\\r\\n/* ===[Justification]============== */\\r\\n\\r\\n.flx.js, [flx][js] {\\r\\n -webkit-box-pack: start;\\r\\n justify-content: flex-start;\\r\\n }\\r\\n\\r\\n.flx.je, [flx][je] {\\r\\n -webkit-box-pack: end;\\r\\n justify-content: flex-end;\\r\\n }\\r\\n\\r\\n.flx.jc, [flx][jc] {\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center;\\r\\n }\\r\\n\\r\\n.flx.jsb, [flx][jsb] {\\r\\n -webkit-box-pack: justify;\\r\\n justify-content: space-between;\\r\\n }\\r\\n\\r\\n.flx.jsa, [flx][jsa] {\\r\\n justify-content: space-around;\\r\\n }\\r\\n\\r\\n.flx.jd > *, .flx.jdp > *, [flx][jd] > *, [flx][jdp] > * { /*justify distributed (padded)*/\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n }\\r\\n\\r\\n.flx.jdp > *:not(:last-child), [flx][jdp] > *:not(:last-child) { /*justify distributed padded*/\\r\\n margin-right: 10px;\\r\\n }\\r\\n\\r\\n/* ===[Alignment]============== */\\r\\n\\r\\n.flx.as, [flx][as] {\\r\\n -webkit-box-align: start;\\r\\n align-items: flex-start;\\r\\n }\\r\\n\\r\\n.flx.ac, [flx][ac] {\\r\\n -webkit-box-align: center;\\r\\n align-items: center;\\r\\n }\\r\\n\\r\\n.flx.ab, [flx][ab] {\\r\\n -webkit-box-align: baseline;\\r\\n align-items: baseline;\\r\\n }\\r\\n\\r\\n.flx.ae, [flx][ae] {\\r\\n -webkit-box-align: end;\\r\\n align-items: flex-end;\\r\\n }\\r\\n\\r\\n.flx.ad > *, .flx.adp > *, [flx][ad] > *, [flx][adp] > * { /*justify distributed (padded)*/\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n }\\r\\n\\r\\n.flx.adp > *:not(:last-child), [flx][adp] > *:not(:last-child) { /*justify distributed padded*/\\r\\n margin-right: 10px;\\r\\n }\\r\\n\\r\\n/* ===[Smart Align]============== */\\r\\n\\r\\n/* ---[Top]-------------- */\\r\\n\\r\\n[flx]:not([v])[sat] { /*h*/\\r\\n -webkit-box-align: start;\\r\\n align-items: flex-start; /*top*/\\r\\n }\\r\\n\\r\\n[flx][v][sat] { /*v*/\\r\\n -webkit-box-pack: start;\\r\\n justify-content: flex-start; /*top*/\\r\\n }\\r\\n\\r\\n[flx][satl] { /*h v*/\\r\\n -webkit-box-align: start;\\r\\n align-items: flex-start; /*top*/\\r\\n -webkit-box-pack: start;\\r\\n justify-content: flex-start; /*left*/\\r\\n }\\r\\n\\r\\n[flx]:not([v])[satc] { /*h*/\\r\\n -webkit-box-align: start;\\r\\n align-items: flex-start; /*top*/\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center; /*center*/\\r\\n }\\r\\n\\r\\n[flx][v][satc] { /*v*/\\r\\n -webkit-box-pack: start;\\r\\n justify-content: flex-start; /*top*/\\r\\n -webkit-box-align: center;\\r\\n align-items: center; /*center*/\\r\\n }\\r\\n\\r\\n[flx]:not([v])[satr] { /*h*/\\r\\n -webkit-box-align: start;\\r\\n align-items: flex-start; /*top*/\\r\\n -webkit-box-pack: end;\\r\\n justify-content: flex-end; /*right*/\\r\\n }\\r\\n\\r\\n[flx][v][satr] { /*v*/\\r\\n -webkit-box-pack: start;\\r\\n justify-content: flex-start; /*top*/\\r\\n -webkit-box-align: end;\\r\\n align-items: flex-end; /*right*/\\r\\n }\\r\\n\\r\\n/* ---[Center]-------------- */\\r\\n\\r\\n[flx]:not([v])[sac] { /*h*/\\r\\n -webkit-box-align: center;\\r\\n align-items: center; /*center*/\\r\\n }\\r\\n\\r\\n[flx][v][sac] { /*v*/\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center; /*center*/\\r\\n }\\r\\n\\r\\n[flx]:not([v])[sacl] { /*h*/\\r\\n -webkit-box-align: center;\\r\\n align-items: center; /*center*/\\r\\n -webkit-box-pack: start;\\r\\n justify-content: flex-start; /*left*/\\r\\n }\\r\\n\\r\\n[flx][v][sacl] { /*v*/\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center; /*center*/\\r\\n -webkit-box-align: start;\\r\\n align-items: flex-start; /*left*/\\r\\n }\\r\\n\\r\\n[flx][sacc] { /*h v*/\\r\\n -webkit-box-align: center;\\r\\n align-items: center; /*center*/\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center; /*center*/\\r\\n }\\r\\n\\r\\n[flx]:not([v])[sacr] { /*h*/\\r\\n -webkit-box-align: center;\\r\\n align-items: center; /*center*/\\r\\n -webkit-box-pack: end;\\r\\n justify-content: flex-end; /*right*/\\r\\n }\\r\\n\\r\\n[flx][v][sacr] { /*v*/\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center; /*center*/\\r\\n -webkit-box-align: end;\\r\\n align-items: flex-end; /*right*/\\r\\n }\\r\\n\\r\\n/* ---[Bottom]-------------- */\\r\\n\\r\\n[flx]:not([v])[sab] { /*h*/\\r\\n -webkit-box-align: end;\\r\\n align-items: flex-end; /*bottom*/\\r\\n }\\r\\n\\r\\n[flx][v][sab] { /*v*/\\r\\n -webkit-box-pack: end;\\r\\n justify-content: flex-end; /*bottom*/\\r\\n }\\r\\n\\r\\n[flx]:not([v])[sabl] { /*h*/\\r\\n -webkit-box-align: end;\\r\\n align-items: flex-end; /*bottom*/\\r\\n -webkit-box-pack: start;\\r\\n justify-content: flex-start; /*left*/\\r\\n }\\r\\n\\r\\n[flx][v][sabl] { /*v*/\\r\\n -webkit-box-pack: end;\\r\\n justify-content: flex-end; /*bottom*/\\r\\n -webkit-box-align: start;\\r\\n align-items: flex-start; /*left*/\\r\\n }\\r\\n\\r\\n[flx]:not([v])[sabc] { /*h*/\\r\\n -webkit-box-align: end;\\r\\n align-items: flex-end; /*bottom*/\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center; /*center*/\\r\\n }\\r\\n\\r\\n[flx][v][sabc] { /*v*/\\r\\n -webkit-box-pack: end;\\r\\n justify-content: flex-end; /*bottom*/\\r\\n -webkit-box-align: center;\\r\\n align-items: center; /*center*/\\r\\n }\\r\\n\\r\\n[flx][sabr] { /*h v*/\\r\\n -webkit-box-align: end;\\r\\n align-items: flex-end; /*bottom*/\\r\\n -webkit-box-pack: end;\\r\\n justify-content: flex-end; /*right*/\\r\\n }\\r\\n\\r\\n/* ---[Stretch]-------------- */\\r\\n\\r\\n[flx]:not([v])[sas] { /*h*/\\r\\n -webkit-box-align: stretch;\\r\\n align-items: stretch; /*stretch*/\\r\\n }\\r\\n\\r\\n[flx][v][sas] { /*v*/\\r\\n -webkit-box-pack: inherit;\\r\\n justify-content: inherit; /*stretch*/\\r\\n }\\r\\n\\r\\n/* ===[Smart Distribute]============== */\\r\\n\\r\\n/* ---[fixed p3]-------------- */\\r\\n\\r\\n[flx]:not([v])[sdm3] > *:not(:last-child) { /*h*/\\r\\n margin-right: 3px;\\r\\n }\\r\\n\\r\\n[flx][v][sdm3] > *:not(:last-child) { /*v*/\\r\\n margin-bottom: 3px;\\r\\n }\\r\\n\\r\\n/* ---[fixed p5]-------------- */\\r\\n\\r\\n[flx]:not([v])[sdm5] > *:not(:last-child) { /*h*/\\r\\n margin-right: 5px;\\r\\n }\\r\\n\\r\\n[flx][v][sdm5] > *:not(:last-child) { /*v*/\\r\\n margin-bottom: 5px;\\r\\n }\\r\\n\\r\\n/* ---[fixed p10]-------------- */\\r\\n\\r\\n[flx]:not([v])[sdm10] > *:not(:last-child) { /*h*/\\r\\n margin-right: 5px;\\r\\n }\\r\\n\\r\\n[flx][v][sdm10] > *:not(:last-child) { /*v*/\\r\\n margin-bottom: 5px;\\r\\n }\\r\\n\\r\\n/* ---[stretch p5]-------------- */\\r\\n\\r\\n[flx][sdsm5] > *, [flx][sdsm10] > * { /*h*/\\r\\n -webkit-box-flex: 1;\\r\\n flex-grow: 1;\\r\\n }\\r\\n\\r\\n[flx]:not([v])[sdsm5] > *:not(:last-child) { /*h*/\\r\\n margin-right: 5px;\\r\\n }\\r\\n\\r\\n[flx][v][sdsm5] > *:not(:last-child) { /*v*/\\r\\n margin-bottom: 5px;\\r\\n }\\r\\n\\r\\n/* ---[stretch p10]-------------- */\\r\\n\\r\\n[flx]:not([v])[sdsm10] > *:not(:last-child) { /*h*/\\r\\n margin-right: 5px;\\r\\n }\\r\\n\\r\\n[flx][v][sdsm10] > *:not(:last-child) { /*v*/\\r\\n margin-bottom: 5px;\\r\\n }\\r\\n\\r\\n/*============================*/\\r\\n\\r\\n/* ===[Padding]============== */\\r\\n\\r\\n.flx.pad-s, [flx][p3] {\\r\\n padding: 3px;\\r\\n }\\r\\n\\r\\n.flx.pad, [flx][p5] {\\r\\n padding: 5px;\\r\\n }\\r\\n\\r\\n.flx.pad-l, [flx][p10] {\\r\\n padding: 10px;\\r\\n }\\r\\n\\r\\n.flx.pad-xl, [flx][p20] {\\r\\n padding: 20px;\\r\\n }\\r\\n\\r\\n.flx.pad-xxl, [flx][p30] {\\r\\n padding: 30px;\\r\\n }\\r\\n\\r\\n.flx.pad-xxl, [flx][p50] {\\r\\n padding: 50px;\\r\\n }\\r\\n\\r\\n.flx.pad-xxl, [flx][p100] {\\r\\n padding: 100px;\\r\\n }\\r\\n\\r\\n/* ===[Margin]============== */\\r\\n\\r\\n.flx.pad-s, [flx][m3] {\\r\\n margin: 3px;\\r\\n }\\r\\n\\r\\n.flx.pad, [flx][m5] {\\r\\n margin: 5px;\\r\\n }\\r\\n\\r\\n.flx.pad-l, [flx][m10] {\\r\\n margin: 10px;\\r\\n }\\r\\n\\r\\n.flx.pad-xl, [flx][m20] {\\r\\n margin: 20px;\\r\\n }\\r\\n\\r\\n.flx.pad-xxl, [flx][m30] {\\r\\n margin: 30px;\\r\\n }\\r\\n\\r\\n.flx.pad-xxl, [flx][m50] {\\r\\n margin: 50px;\\r\\n }\\r\\n\\r\\n.flx.pad-xxl, [flx][m100] {\\r\\n margin: 100px;\\r\\n }\\r\\n\\r\\n[flx][ml5] {\\r\\n margin-left: 5px;\\r\\n }\\r\\n\\r\\n[flx][ml10] {\\r\\n margin-left: 10px;\\r\\n }\\r\\n\\r\\n[flx][mt5] {\\r\\n margin-top: 5px;\\r\\n }\\r\\n\\r\\n[flx][mt10] {\\r\\n margin-top: 10px;\\r\\n }\\r\\n\\r\\n/* ===[Wrapping]============== */\\r\\n\\r\\n.flx.wrap, [flx][wrap] {\\r\\n flex-wrap: wrap;\\r\\n }\\r\\n\\r\\n/* ========================\\r\\n ---[CHILD]-------------- \\r\\n ========================*/\\r\\n\\r\\n/* ===[Self Alignment]============== */\\r\\n\\r\\n.flx-as, [flx-as] {\\r\\n align-self: flex-start;\\r\\n}\\r\\n\\r\\n.flx-ac, [flx-ac] {\\r\\n align-self: center;\\r\\n}\\r\\n\\r\\n.flx-ae, [flx-ae] {\\r\\n align-self: flex-end;\\r\\n}\\r\\n\\r\\n/* ===[Size]============== */\\r\\n\\r\\n.flx-0-1, [fix-0-1] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 1.39%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-0-2, [fix-0-2] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 2.78%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-0-3, [fix-0-3] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 4.17%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-0-4, [fix-0-4] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 5.56%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-0-5, [fix-0-5] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 6.94%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-1, [fix-1], [f1] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 8.33%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-1-1, [fix-1-1] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 9.72%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-1-2, [fix-1-2] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 11.11%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-1-3, [fix-1-3] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 12.5%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-1-4, [fix-1-4] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 13.89%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-1-5, [fix-1-5] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 15.27%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-2, [fix-2], [f2] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 16.67%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-3, [fix-3], [f3] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 25%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-4, [fix-4], [f4] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 33.33%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-5, [fix-5], [f5] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 41.67%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-6, [fix-6], [f6] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 50%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-7, [fix-7], [f7] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 58.33%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-8, [fix-8], [f8] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 66.67%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-9, [fix-9], [f9] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 75%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-10, [fix-10], [f10] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 83.33%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-11, [fix-11], [f11] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 91.67%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-12, [fix-12] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 100%;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n/* ===[Expansion]============== */\\r\\n\\r\\n.flx-fix, [flx-fix] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 auto;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-fill {\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n min-height: 0;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.flx-exp {\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 0 auto;\\r\\n}\\r\\n\\r\\n/* ===[Scrolling]============== */\\r\\n\\r\\n.flx-fsxy {\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n overflow: auto;\\r\\n}\\r\\n\\r\\n.flx-fsx {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n overflow-x: auto;\\r\\n}\\r\\n\\r\\n.flx-fsy {\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-orient: vertical;\\r\\n -webkit-box-direction: normal;\\r\\n flex-direction: column;\\r\\n -webkit-box-flex: 1;\\r\\n flex: 1 1 0;\\r\\n overflow-y: auto;\\r\\n}\\r\\n\\r\\n/* ===[Separation]============== */\\r\\n\\r\\n[flx-sep] {\\r\\n -webkit-box-flex: 0;\\r\\n flex: 0 0 auto;\\r\\n align-self: stretch;\\r\\n border-bottom: 1px solid lightgray;\\r\\n border-right: 1px solid lightgray;\\r\\n}\\r\\n\\r\\n[flx-sep][dark] {\\r\\n border-bottom-color: gray;\\r\\n border-right-color: gray;\\r\\n }\\r\\n\\r\\n[flx][v] > [flx-sep][m3] {\\r\\n margin: 3px 0;\\r\\n}\\r\\n\\r\\n[flx]:not([v]) > [flx-sep][m3] {\\r\\n margin: 0 3px;\\r\\n}\\r\\n\\r\\n[flx][v] > [flx-sep][m5] {\\r\\n margin: 5px 0;\\r\\n}\\r\\n\\r\\n[flx]:not([v]) > [flx-sep][m5] {\\r\\n margin: 0 5px;\\r\\n}\\r\\n\\r\\n[flx][v] > [flx-sep][pad], .flx.v > [flx-sep][pad] {\\r\\n margin: 5px 0;\\r\\n}\\r\\n\\r\\n[flx]:not([v]) > [flx-sep][pad], .flx:not(.v) > [flx-sep][pad] {\\r\\n margin: 0 5px;\\r\\n}\\r\\n\\r\\n[flx-spacer], .flx-spacer {\\r\\n -webkit-box-flex: 0;\\r\\n flex-grow: 0;\\r\\n margin-left: auto;\\r\\n margin-top: auto;\\r\\n}\\r\\n\\r\\n/* ===[Debugging]============== */\\r\\n\\r\\n.debug, [flx][dbg] {\\r\\n border: 10px solid hotpink;\\r\\n}\\r\\n\\r\\n.debug-2 {\\r\\n border: 1px solid lightsteelblue;\\r\\n margin: 5px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZsZXgvYXNzZXRzL2Nzcy9mbGV4LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7NEJBRTRCOztBQUU1QjtFQUNFLG9CQUFhO0VBQWIsYUFBYTtBQUNmOztBQUVFLG1CQUFtQixXQUFXO0lBQzVCLDRCQUFzQjtJQUF0Qiw2QkFBc0I7WUFBdEIsc0JBQXNCO0VBQ3hCOztBQUVBLGlDQUFpQzs7QUFFakMsd0JBQXdCLE1BQU07SUFDNUIsbUJBQWM7WUFBZCxjQUFjO0lBQ2QsZ0JBQWdCO0VBQ2xCOztBQUVBLHdCQUF3QixTQUFTO0lBQy9CLG1CQUFZO1lBQVosWUFBWTtJQUNaLGFBQWE7SUFDYixnQkFBZ0I7RUFDbEI7O0FBRUE7SUFDRSxtQkFBYztZQUFkLGNBQWM7RUFDaEI7O0FBRUEsaUNBQWlDOztBQUVqQyxjQUFjLHFCQUFxQjtJQUNqQyxtQkFBVztZQUFYLFdBQVc7SUFDWCxjQUFjO0VBQ2hCOztBQUVBLGVBQWUseUJBQXlCO0lBQ3RDLDRCQUFzQjtJQUF0Qiw2QkFBc0I7WUFBdEIsc0JBQXNCO0lBQ3RCLG1CQUFXO1lBQVgsV0FBVztJQUNYLGdCQUFnQjtFQUNsQjs7QUFFQSxlQUFlLDJCQUEyQjtJQUN4QyxtQkFBVztZQUFYLFdBQVc7SUFDWCxnQkFBZ0I7RUFDbEI7O0FBRUEscUNBQXFDOztBQUVyQztJQUNFLHVCQUEyQjtZQUEzQiwyQkFBMkI7RUFDN0I7O0FBRUE7SUFDRSxxQkFBeUI7WUFBekIseUJBQXlCO0VBQzNCOztBQUVBO0lBQ0Usd0JBQXVCO1lBQXZCLHVCQUF1QjtFQUN6Qjs7QUFFQTtJQUNFLHlCQUE4QjtZQUE5Qiw4QkFBOEI7RUFDaEM7O0FBRUE7SUFDRSw2QkFBNkI7RUFDL0I7O0FBRUEsMkRBQTJELCtCQUErQjtJQUN4RixtQkFBVztZQUFYLFdBQVc7RUFDYjs7QUFFRSxpRUFBaUUsNkJBQTZCO01BQzVGLGtCQUFrQjtJQUNwQjs7QUFFRixpQ0FBaUM7O0FBRWpDO0lBQ0Usd0JBQXVCO1lBQXZCLHVCQUF1QjtFQUN6Qjs7QUFFQTtJQUNFLHlCQUFtQjtZQUFuQixtQkFBbUI7RUFDckI7O0FBRUE7SUFDRSwyQkFBcUI7WUFBckIscUJBQXFCO0VBQ3ZCOztBQUVBO0lBQ0Usc0JBQXFCO1lBQXJCLHFCQUFxQjtFQUN2Qjs7QUFFQSwyREFBMkQsK0JBQStCO0lBQ3hGLG1CQUFXO1lBQVgsV0FBVztFQUNiOztBQUVFLGlFQUFpRSw2QkFBNkI7TUFDNUYsa0JBQWtCO0lBQ3BCOztBQUVGLG1DQUFtQzs7QUFFbkMsMkJBQTJCOztBQUUzQixzQkFBc0IsSUFBSTtJQUN4Qix3QkFBdUI7WUFBdkIsdUJBQXVCLEVBQUUsTUFBTTtFQUNqQzs7QUFFQSxnQkFBZ0IsSUFBSTtJQUNsQix1QkFBMkI7WUFBM0IsMkJBQTJCLEVBQUUsTUFBTTtFQUNyQzs7QUFFQSxjQUFjLE1BQU07SUFDbEIsd0JBQXVCO1lBQXZCLHVCQUF1QixFQUFFLE1BQU07SUFDL0IsdUJBQTJCO1lBQTNCLDJCQUEyQixFQUFFLE9BQU87RUFDdEM7O0FBRUEsdUJBQXVCLElBQUk7SUFDekIsd0JBQXVCO1lBQXZCLHVCQUF1QixFQUFFLE1BQU07SUFDL0Isd0JBQXVCO1lBQXZCLHVCQUF1QixFQUFFLFNBQVM7RUFDcEM7O0FBRUEsaUJBQWlCLElBQUk7SUFDbkIsdUJBQTJCO1lBQTNCLDJCQUEyQixFQUFFLE1BQU07SUFDbkMseUJBQW1CO1lBQW5CLG1CQUFtQixFQUFFLFNBQVM7RUFDaEM7O0FBRUEsdUJBQXVCLElBQUk7SUFDekIsd0JBQXVCO1lBQXZCLHVCQUF1QixFQUFFLE1BQU07SUFDL0IscUJBQXlCO1lBQXpCLHlCQUF5QixFQUFFLFFBQVE7RUFDckM7O0FBRUEsaUJBQWlCLElBQUk7SUFDbkIsdUJBQTJCO1lBQTNCLDJCQUEyQixFQUFFLE1BQU07SUFDbkMsc0JBQXFCO1lBQXJCLHFCQUFxQixFQUFFLFFBQVE7RUFDakM7O0FBRUEsOEJBQThCOztBQUU5QixzQkFBc0IsSUFBSTtJQUN4Qix5QkFBbUI7WUFBbkIsbUJBQW1CLEVBQUUsU0FBUztFQUNoQzs7QUFFQSxnQkFBZ0IsSUFBSTtJQUNsQix3QkFBdUI7WUFBdkIsdUJBQXVCLEVBQUUsU0FBUztFQUNwQzs7QUFFQSx1QkFBdUIsSUFBSTtJQUN6Qix5QkFBbUI7WUFBbkIsbUJBQW1CLEVBQUUsU0FBUztJQUM5Qix1QkFBMkI7WUFBM0IsMkJBQTJCLEVBQUUsT0FBTztFQUN0Qzs7QUFFQSxpQkFBaUIsSUFBSTtJQUNuQix3QkFBdUI7WUFBdkIsdUJBQXVCLEVBQUUsU0FBUztJQUNsQyx3QkFBdUI7WUFBdkIsdUJBQXVCLEVBQUUsT0FBTztFQUNsQzs7QUFFQSxjQUFjLE1BQU07SUFDbEIseUJBQW1CO1lBQW5CLG1CQUFtQixFQUFFLFNBQVM7SUFDOUIsd0JBQXVCO1lBQXZCLHVCQUF1QixFQUFFLFNBQVM7RUFDcEM7O0FBRUEsdUJBQXVCLElBQUk7SUFDekIseUJBQW1CO1lBQW5CLG1CQUFtQixFQUFFLFNBQVM7SUFDOUIscUJBQXlCO1lBQXpCLHlCQUF5QixFQUFFLFFBQVE7RUFDckM7O0FBRUEsaUJBQWlCLElBQUk7SUFDbkIsd0JBQXVCO1lBQXZCLHVCQUF1QixFQUFFLFNBQVM7SUFDbEMsc0JBQXFCO1lBQXJCLHFCQUFxQixFQUFFLFFBQVE7RUFDakM7O0FBRUEsOEJBQThCOztBQUU5QixzQkFBc0IsSUFBSTtJQUN4QixzQkFBcUI7WUFBckIscUJBQXFCLEVBQUUsU0FBUztFQUNsQzs7QUFFQSxnQkFBZ0IsSUFBSTtJQUNsQixxQkFBeUI7WUFBekIseUJBQXlCLEVBQUUsU0FBUztFQUN0Qzs7QUFFQSx1QkFBdUIsSUFBSTtJQUN6QixzQkFBcUI7WUFBckIscUJBQXFCLEVBQUUsU0FBUztJQUNoQyx1QkFBMkI7WUFBM0IsMkJBQTJCLEVBQUUsT0FBTztFQUN0Qzs7QUFFQSxpQkFBaUIsSUFBSTtJQUNuQixxQkFBeUI7WUFBekIseUJBQXlCLEVBQUUsU0FBUztJQUNwQyx3QkFBdUI7WUFBdkIsdUJBQXVCLEVBQUUsT0FBTztFQUNsQzs7QUFFQSx1QkFBdUIsSUFBSTtJQUN6QixzQkFBcUI7WUFBckIscUJBQXFCLEVBQUUsU0FBUztJQUNoQyx3QkFBdUI7WUFBdkIsdUJBQXVCLEVBQUUsU0FBUztFQUNwQzs7QUFFQSxpQkFBaUIsSUFBSTtJQUNuQixxQkFBeUI7WUFBekIseUJBQXlCLEVBQUUsU0FBUztJQUNwQyx5QkFBbUI7WUFBbkIsbUJBQW1CLEVBQUUsU0FBUztFQUNoQzs7QUFFQSxjQUFjLE1BQU07SUFDbEIsc0JBQXFCO1lBQXJCLHFCQUFxQixFQUFFLFNBQVM7SUFDaEMscUJBQXlCO1lBQXpCLHlCQUF5QixFQUFFLFFBQVE7RUFDckM7O0FBRUEsK0JBQStCOztBQUUvQixzQkFBc0IsSUFBSTtJQUN4QiwwQkFBb0I7WUFBcEIsb0JBQW9CLEVBQUUsVUFBVTtFQUNsQzs7QUFFQSxnQkFBZ0IsSUFBSTtJQUNsQix5QkFBd0I7WUFBeEIsd0JBQXdCLEVBQUUsVUFBVTtFQUN0Qzs7QUFFQSx3Q0FBd0M7O0FBRXhDLGdDQUFnQzs7QUFFaEMsNENBQTRDLElBQUk7SUFDOUMsaUJBQWlCO0VBQ25COztBQUVBLHNDQUFzQyxJQUFJO0lBQ3hDLGtCQUFrQjtFQUNwQjs7QUFFQSxnQ0FBZ0M7O0FBRWhDLDRDQUE0QyxJQUFJO0lBQzlDLGlCQUFpQjtFQUNuQjs7QUFFQSxzQ0FBc0MsSUFBSTtJQUN4QyxrQkFBa0I7RUFDcEI7O0FBRUEsaUNBQWlDOztBQUVqQyw2Q0FBNkMsSUFBSTtJQUMvQyxpQkFBaUI7RUFDbkI7O0FBRUEsdUNBQXVDLElBQUk7SUFDekMsa0JBQWtCO0VBQ3BCOztBQUVBLGtDQUFrQzs7QUFFbEMsc0NBQXNDLElBQUk7SUFDeEMsbUJBQVk7WUFBWixZQUFZO0VBQ2Q7O0FBRUEsNkNBQTZDLElBQUk7SUFDL0MsaUJBQWlCO0VBQ25COztBQUVBLHVDQUF1QyxJQUFJO0lBQ3pDLGtCQUFrQjtFQUNwQjs7QUFFQSxtQ0FBbUM7O0FBRW5DLDhDQUE4QyxJQUFJO0lBQ2hELGlCQUFpQjtFQUNuQjs7QUFFQSx3Q0FBd0MsSUFBSTtJQUMxQyxrQkFBa0I7RUFDcEI7O0FBRUEsK0JBQStCOztBQUUvQiwrQkFBK0I7O0FBRS9CO0lBQ0UsWUFBWTtFQUNkOztBQUVBO0lBQ0UsWUFBWTtFQUNkOztBQUVBO0lBQ0UsYUFBYTtFQUNmOztBQUVBO0lBQ0UsYUFBYTtFQUNmOztBQUVBO0lBQ0UsYUFBYTtFQUNmOztBQUVBO0lBQ0UsYUFBYTtFQUNmOztBQUVBO0lBQ0UsY0FBYztFQUNoQjs7QUFFQSw4QkFBOEI7O0FBRTlCO0lBQ0UsV0FBVztFQUNiOztBQUVBO0lBQ0UsV0FBVztFQUNiOztBQUVBO0lBQ0UsWUFBWTtFQUNkOztBQUVBO0lBQ0UsWUFBWTtFQUNkOztBQUVBO0lBQ0UsWUFBWTtFQUNkOztBQUVBO0lBQ0UsWUFBWTtFQUNkOztBQUVBO0lBQ0UsYUFBYTtFQUNmOztBQUVBO0lBQ0UsZ0JBQWdCO0VBQ2xCOztBQUVBO0lBQ0UsaUJBQWlCO0VBQ25COztBQUVBO0lBQ0UsZUFBZTtFQUNqQjs7QUFFQTtJQUNFLGdCQUFnQjtFQUNsQjs7QUFFQSxnQ0FBZ0M7O0FBRWhDO0lBQ0UsZUFBZTtFQUNqQjs7QUFFRjs7NEJBRTRCOztBQUU1QixzQ0FBc0M7O0FBRXRDO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usb0JBQW9CO0FBQ3RCOztBQUVBLDRCQUE0Qjs7QUFFNUI7RUFDRSxtQkFBZTtVQUFmLGVBQWU7RUFDZixhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQWU7VUFBZixlQUFlO0VBQ2YsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFlO1VBQWYsZUFBZTtFQUNmLGFBQWE7RUFDYixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxtQkFBZTtVQUFmLGVBQWU7RUFDZixhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQWU7VUFBZixlQUFlO0VBQ2YsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFlO1VBQWYsZUFBZTtFQUNmLGFBQWE7RUFDYixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxtQkFBZTtVQUFmLGVBQWU7RUFDZixhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQWdCO1VBQWhCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQWU7VUFBZixlQUFlO0VBQ2YsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFhO1VBQWIsYUFBYTtFQUNiLGFBQWE7RUFDYixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxtQkFBZ0I7VUFBaEIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxtQkFBZ0I7VUFBaEIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxtQkFBYTtVQUFiLGFBQWE7RUFDYixhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQWdCO1VBQWhCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQWdCO1VBQWhCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQWE7VUFBYixhQUFhO0VBQ2IsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFnQjtVQUFoQixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG1CQUFjO1VBQWQsY0FBYztFQUNkLGFBQWE7RUFDYixnQkFBZ0I7QUFDbEI7O0FBRUEsaUNBQWlDOztBQUVqQztFQUNFLG1CQUFjO1VBQWQsY0FBYztFQUNkLGFBQWE7RUFDYixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxtQkFBVztVQUFYLFdBQVc7RUFDWCxhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQWM7VUFBZCxjQUFjO0FBQ2hCOztBQUVBLGlDQUFpQzs7QUFFakM7RUFDRSxtQkFBVztVQUFYLFdBQVc7RUFDWCxjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2IsbUJBQVc7VUFBWCxXQUFXO0VBQ1gsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2IsNEJBQXNCO0VBQXRCLDZCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsbUJBQVc7VUFBWCxXQUFXO0VBQ1gsZ0JBQWdCO0FBQ2xCOztBQUVBLGtDQUFrQzs7QUFFbEM7RUFDRSxtQkFBYztVQUFkLGNBQWM7RUFDZCxtQkFBbUI7RUFDbkIsa0NBQWtDO0VBQ2xDLGlDQUFpQztBQUNuQzs7QUFFRTtJQUNFLHlCQUF5QjtJQUN6Qix3QkFBd0I7RUFDMUI7O0FBRUY7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxtQkFBWTtVQUFaLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsZ0JBQWdCO0FBQ2xCOztBQUVBLGlDQUFpQzs7QUFFakM7RUFDRSwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxnQ0FBZ0M7RUFDaEMsV0FBVztBQUNiIiwiZmlsZSI6Ik9wc2kuV2ViQXBwcy5TbGVuZGVyL2ZsZXgvYXNzZXRzL2Nzcy9mbGV4LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qID09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAtLS1bQ09OVEFJTkVSXS0tLS0tLS0tLS0gXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4uZmx4LCBbZmx4XSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuICAuZmx4LnYsIFtmbHhdW3ZdIHsgLyp2ZXJ0aWNhbCovXHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIH1cclxuXHJcbiAgLyogPT09W0V4cGFuc2lvbl09PT09PT09PT09PT09PSAqL1xyXG5cclxuICBbZmx4XVtmaXhdLCBbZmx4LWZpeF0geyAvKmZpeCovXHJcbiAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICBbZmx4XVtleHBdLCBbZmx4LWV4cF0geyAvKmV4cGFuZCovXHJcbiAgICBmbGV4OiAxIDAgMCU7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gIFtmbHhdW21heF0sIFtmbHgtbWF4XSAvKmV4cGFuZCBhbmQgb3ZlcmZsb3cqLyB7XHJcbiAgICBmbGV4OiAxIDAgYXV0bztcclxuICB9XHJcblxyXG4gIC8qID09PVtTY3JvbGxpbmddPT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgW2ZseF1bc2NybF0geyAvKmV4cGFuZCBzY3JvbGwgYm90aCovXHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgW2ZseF1bc2NybHZdIHsgLypleHBhbmQgc2Nyb2xsIHZlcnRpY2FsKi9cclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICBbZmx4XVtzY3JsaF0geyAvKmV4cGFuZCBzY3JvbGwgaG9yaXpvbnRhbCovXHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICAgIG92ZXJmbG93LXg6IGF1dG87XHJcbiAgfVxyXG5cclxuICAvKiA9PT1bSnVzdGlmaWNhdGlvbl09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAuZmx4LmpzLCBbZmx4XVtqc10ge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIH1cclxuXHJcbiAgLmZseC5qZSwgW2ZseF1bamVdIHtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgfVxyXG5cclxuICAuZmx4LmpjLCBbZmx4XVtqY10ge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAuZmx4LmpzYiwgW2ZseF1banNiXSB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgfVxyXG5cclxuICAuZmx4LmpzYSwgW2ZseF1banNhXSB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICB9XHJcblxyXG4gIC5mbHguamQgPiAqLCAuZmx4LmpkcCA+ICosIFtmbHhdW2pkXSA+ICosIFtmbHhdW2pkcF0gPiAqIHsgLypqdXN0aWZ5IGRpc3RyaWJ1dGVkIChwYWRkZWQpKi9cclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuXHJcbiAgICAuZmx4LmpkcCA+ICo6bm90KDpsYXN0LWNoaWxkKSwgW2ZseF1bamRwXSA+ICo6bm90KDpsYXN0LWNoaWxkKSB7IC8qanVzdGlmeSBkaXN0cmlidXRlZCBwYWRkZWQqL1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gIC8qID09PVtBbGlnbm1lbnRdPT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLmZseC5hcywgW2ZseF1bYXNdIHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIH1cclxuXHJcbiAgLmZseC5hYywgW2ZseF1bYWNdIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAuZmx4LmFiLCBbZmx4XVthYl0ge1xyXG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xyXG4gIH1cclxuXHJcbiAgLmZseC5hZSwgW2ZseF1bYWVdIHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICB9XHJcblxyXG4gIC5mbHguYWQgPiAqLCAuZmx4LmFkcCA+ICosIFtmbHhdW2FkXSA+ICosIFtmbHhdW2FkcF0gPiAqIHsgLypqdXN0aWZ5IGRpc3RyaWJ1dGVkIChwYWRkZWQpKi9cclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuXHJcbiAgICAuZmx4LmFkcCA+ICo6bm90KDpsYXN0LWNoaWxkKSwgW2ZseF1bYWRwXSA+ICo6bm90KDpsYXN0LWNoaWxkKSB7IC8qanVzdGlmeSBkaXN0cmlidXRlZCBwYWRkZWQqL1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gIC8qID09PVtTbWFydCBBbGlnbl09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAvKiAtLS1bVG9wXS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4gIFtmbHhdOm5vdChbdl0pW3NhdF0geyAvKmgqL1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qdG9wKi9cclxuICB9XHJcblxyXG4gIFtmbHhdW3ZdW3NhdF0geyAvKnYqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyAvKnRvcCovXHJcbiAgfVxyXG5cclxuICBbZmx4XVtzYXRsXSB7IC8qaCB2Ki9cclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyAvKnRvcCovXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IC8qbGVmdCovXHJcbiAgfVxyXG5cclxuICBbZmx4XTpub3QoW3ZdKVtzYXRjXSB7IC8qaCovXHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyp0b3AqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qY2VudGVyKi9cclxuICB9XHJcblxyXG4gIFtmbHhdW3ZdW3NhdGNdIHsgLyp2Ki9cclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgLyp0b3AqL1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLypjZW50ZXIqL1xyXG4gIH1cclxuXHJcbiAgW2ZseF06bm90KFt2XSlbc2F0cl0geyAvKmgqL1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qdG9wKi9cclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IC8qcmlnaHQqL1xyXG4gIH1cclxuXHJcbiAgW2ZseF1bdl1bc2F0cl0geyAvKnYqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyAvKnRvcCovXHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IC8qcmlnaHQqL1xyXG4gIH1cclxuXHJcbiAgLyogLS0tW0NlbnRlcl0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuICBbZmx4XTpub3QoW3ZdKVtzYWNdIHsgLypoKi9cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qY2VudGVyKi9cclxuICB9XHJcblxyXG4gIFtmbHhdW3ZdW3NhY10geyAvKnYqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qY2VudGVyKi9cclxuICB9XHJcblxyXG4gIFtmbHhdOm5vdChbdl0pW3NhY2xdIHsgLypoKi9cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qY2VudGVyKi9cclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgLypsZWZ0Ki9cclxuICB9XHJcblxyXG4gIFtmbHhdW3ZdW3NhY2xdIHsgLyp2Ki9cclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKmNlbnRlciovXHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLypsZWZ0Ki9cclxuICB9XHJcblxyXG4gIFtmbHhdW3NhY2NdIHsgLypoIHYqL1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLypjZW50ZXIqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qY2VudGVyKi9cclxuICB9XHJcblxyXG4gIFtmbHhdOm5vdChbdl0pW3NhY3JdIHsgLypoKi9cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qY2VudGVyKi9cclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IC8qcmlnaHQqL1xyXG4gIH1cclxuXHJcbiAgW2ZseF1bdl1bc2Fjcl0geyAvKnYqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qY2VudGVyKi9cclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgLypyaWdodCovXHJcbiAgfVxyXG5cclxuICAvKiAtLS1bQm90dG9tXS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4gIFtmbHhdOm5vdChbdl0pW3NhYl0geyAvKmgqL1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyAvKmJvdHRvbSovXHJcbiAgfVxyXG5cclxuICBbZmx4XVt2XVtzYWJdIHsgLyp2Ki9cclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IC8qYm90dG9tKi9cclxuICB9XHJcblxyXG4gIFtmbHhdOm5vdChbdl0pW3NhYmxdIHsgLypoKi9cclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgLypib3R0b20qL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyAvKmxlZnQqL1xyXG4gIH1cclxuXHJcbiAgW2ZseF1bdl1bc2FibF0geyAvKnYqL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLypib3R0b20qL1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qbGVmdCovXHJcbiAgfVxyXG5cclxuICBbZmx4XTpub3QoW3ZdKVtzYWJjXSB7IC8qaCovXHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IC8qYm90dG9tKi9cclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKmNlbnRlciovXHJcbiAgfVxyXG5cclxuICBbZmx4XVt2XVtzYWJjXSB7IC8qdiovXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyAvKmJvdHRvbSovXHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKmNlbnRlciovXHJcbiAgfVxyXG5cclxuICBbZmx4XVtzYWJyXSB7IC8qaCB2Ki9cclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgLypib3R0b20qL1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLypyaWdodCovXHJcbiAgfVxyXG5cclxuICAvKiAtLS1bU3RyZXRjaF0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuICBbZmx4XTpub3QoW3ZdKVtzYXNdIHsgLypoKi9cclxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyAvKnN0cmV0Y2gqL1xyXG4gIH1cclxuXHJcbiAgW2ZseF1bdl1bc2FzXSB7IC8qdiovXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGluaGVyaXQ7IC8qc3RyZXRjaCovXHJcbiAgfVxyXG5cclxuICAvKiA9PT1bU21hcnQgRGlzdHJpYnV0ZV09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAvKiAtLS1bZml4ZWQgcDNdLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbiAgW2ZseF06bm90KFt2XSlbc2RtM10gPiAqOm5vdCg6bGFzdC1jaGlsZCkgeyAvKmgqL1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XHJcbiAgfVxyXG5cclxuICBbZmx4XVt2XVtzZG0zXSA+ICo6bm90KDpsYXN0LWNoaWxkKSB7IC8qdiovXHJcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XHJcbiAgfVxyXG4gIFxyXG4gIC8qIC0tLVtmaXhlZCBwNV0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuICBbZmx4XTpub3QoW3ZdKVtzZG01XSA+ICo6bm90KDpsYXN0LWNoaWxkKSB7IC8qaCovXHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICB9XHJcblxyXG4gIFtmbHhdW3ZdW3NkbTVdID4gKjpub3QoOmxhc3QtY2hpbGQpIHsgLyp2Ki9cclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICB9XHJcblxyXG4gIC8qIC0tLVtmaXhlZCBwMTBdLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbiAgW2ZseF06bm90KFt2XSlbc2RtMTBdID4gKjpub3QoOmxhc3QtY2hpbGQpIHsgLypoKi9cclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gIH1cclxuXHJcbiAgW2ZseF1bdl1bc2RtMTBdID4gKjpub3QoOmxhc3QtY2hpbGQpIHsgLyp2Ki9cclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICB9XHJcblxyXG4gIC8qIC0tLVtzdHJldGNoIHA1XS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4gIFtmbHhdW3Nkc201XSA+ICosIFtmbHhdW3Nkc20xMF0gPiAqIHsgLypoKi9cclxuICAgIGZsZXgtZ3JvdzogMTtcclxuICB9XHJcblxyXG4gIFtmbHhdOm5vdChbdl0pW3Nkc201XSA+ICo6bm90KDpsYXN0LWNoaWxkKSB7IC8qaCovXHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICB9XHJcblxyXG4gIFtmbHhdW3ZdW3Nkc201XSA+ICo6bm90KDpsYXN0LWNoaWxkKSB7IC8qdiovXHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgfVxyXG5cclxuICAvKiAtLS1bc3RyZXRjaCBwMTBdLS0tLS0tLS0tLS0tLS0gKi9cclxuXHJcbiAgW2ZseF06bm90KFt2XSlbc2RzbTEwXSA+ICo6bm90KDpsYXN0LWNoaWxkKSB7IC8qaCovXHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICB9XHJcblxyXG4gIFtmbHhdW3ZdW3Nkc20xMF0gPiAqOm5vdCg6bGFzdC1jaGlsZCkgeyAvKnYqL1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gIH1cclxuXHJcbiAgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbiAgLyogPT09W1BhZGRpbmddPT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLmZseC5wYWQtcywgW2ZseF1bcDNdIHtcclxuICAgIHBhZGRpbmc6IDNweDtcclxuICB9XHJcblxyXG4gIC5mbHgucGFkLCBbZmx4XVtwNV0ge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gIH1cclxuXHJcbiAgLmZseC5wYWQtbCwgW2ZseF1bcDEwXSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLmZseC5wYWQteGwsIFtmbHhdW3AyMF0ge1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICB9XHJcblxyXG4gIC5mbHgucGFkLXh4bCwgW2ZseF1bcDMwXSB7XHJcbiAgICBwYWRkaW5nOiAzMHB4O1xyXG4gIH1cclxuICBcclxuICAuZmx4LnBhZC14eGwsIFtmbHhdW3A1MF0ge1xyXG4gICAgcGFkZGluZzogNTBweDtcclxuICB9XHJcblxyXG4gIC5mbHgucGFkLXh4bCwgW2ZseF1bcDEwMF0ge1xyXG4gICAgcGFkZGluZzogMTAwcHg7XHJcbiAgfVxyXG5cclxuICAvKiA9PT1bTWFyZ2luXT09PT09PT09PT09PT09ICovXHJcblxyXG4gIC5mbHgucGFkLXMsIFtmbHhdW20zXSB7XHJcbiAgICBtYXJnaW46IDNweDtcclxuICB9XHJcblxyXG4gIC5mbHgucGFkLCBbZmx4XVttNV0ge1xyXG4gICAgbWFyZ2luOiA1cHg7XHJcbiAgfVxyXG5cclxuICAuZmx4LnBhZC1sLCBbZmx4XVttMTBdIHtcclxuICAgIG1hcmdpbjogMTBweDtcclxuICB9XHJcblxyXG4gIC5mbHgucGFkLXhsLCBbZmx4XVttMjBdIHtcclxuICAgIG1hcmdpbjogMjBweDtcclxuICB9XHJcblxyXG4gIC5mbHgucGFkLXh4bCwgW2ZseF1bbTMwXSB7XHJcbiAgICBtYXJnaW46IDMwcHg7XHJcbiAgfVxyXG5cclxuICAuZmx4LnBhZC14eGwsIFtmbHhdW201MF0ge1xyXG4gICAgbWFyZ2luOiA1MHB4O1xyXG4gIH1cclxuXHJcbiAgLmZseC5wYWQteHhsLCBbZmx4XVttMTAwXSB7XHJcbiAgICBtYXJnaW46IDEwMHB4O1xyXG4gIH1cclxuXHJcbiAgW2ZseF1bbWw1XSB7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gIH1cclxuXHJcbiAgW2ZseF1bbWwxMF0ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgfVxyXG5cclxuICBbZmx4XVttdDVdIHtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxuICB9XHJcblxyXG4gIFtmbHhdW210MTBdIHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgfVxyXG5cclxuICAvKiA9PT1bV3JhcHBpbmddPT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLmZseC53cmFwLCBbZmx4XVt3cmFwXSB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIC0tLVtDSElMRF0tLS0tLS0tLS0tLS0tLSBcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi8qID09PVtTZWxmIEFsaWdubWVudF09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmZseC1hcywgW2ZseC1hc10ge1xyXG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5mbHgtYWMsIFtmbHgtYWNdIHtcclxuICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5mbHgtYWUsIFtmbHgtYWVdIHtcclxuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcclxufVxyXG5cclxuLyogPT09W1NpemVdPT09PT09PT09PT09PT0gKi9cclxuXHJcbi5mbHgtMC0xLCBbZml4LTAtMV0ge1xyXG4gIGZsZXg6IDAgMCAxLjM5JTtcclxuICBtaW4taGVpZ2h0OiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5mbHgtMC0yLCBbZml4LTAtMl0ge1xyXG4gIGZsZXg6IDAgMCAyLjc4JTtcclxuICBtaW4taGVpZ2h0OiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5mbHgtMC0zLCBbZml4LTAtM10ge1xyXG4gIGZsZXg6IDAgMCA0LjE3JTtcclxuICBtaW4taGVpZ2h0OiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5mbHgtMC00LCBbZml4LTAtNF0ge1xyXG4gIGZsZXg6IDAgMCA1LjU2JTtcclxuICBtaW4taGVpZ2h0OiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5mbHgtMC01LCBbZml4LTAtNV0ge1xyXG4gIGZsZXg6IDAgMCA2Ljk0JTtcclxuICBtaW4taGVpZ2h0OiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5mbHgtMSwgW2ZpeC0xXSwgW2YxXSB7XHJcbiAgZmxleDogMCAwIDguMzMlO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC0xLTEsIFtmaXgtMS0xXSB7XHJcbiAgZmxleDogMCAwIDkuNzIlO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC0xLTIsIFtmaXgtMS0yXSB7XHJcbiAgZmxleDogMCAwIDExLjExJTtcclxuICBtaW4taGVpZ2h0OiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5mbHgtMS0zLCBbZml4LTEtM10ge1xyXG4gIGZsZXg6IDAgMCAxMi41JTtcclxuICBtaW4taGVpZ2h0OiAwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5mbHgtMS00LCBbZml4LTEtNF0ge1xyXG4gIGZsZXg6IDAgMCAxMy44OSU7XHJcbiAgbWluLWhlaWdodDogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uZmx4LTEtNSwgW2ZpeC0xLTVdIHtcclxuICBmbGV4OiAwIDAgMTUuMjclO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC0yLCBbZml4LTJdLCBbZjJdIHtcclxuICBmbGV4OiAwIDAgMTYuNjclO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC0zLCBbZml4LTNdLCBbZjNdIHtcclxuICBmbGV4OiAwIDAgMjUlO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC00LCBbZml4LTRdLCBbZjRdIHtcclxuICBmbGV4OiAwIDAgMzMuMzMlO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC01LCBbZml4LTVdLCBbZjVdIHtcclxuICBmbGV4OiAwIDAgNDEuNjclO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC02LCBbZml4LTZdLCBbZjZdIHtcclxuICBmbGV4OiAwIDAgNTAlO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC03LCBbZml4LTddLCBbZjddIHtcclxuICBmbGV4OiAwIDAgNTguMzMlO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC04LCBbZml4LThdLCBbZjhdIHtcclxuICBmbGV4OiAwIDAgNjYuNjclO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC05LCBbZml4LTldLCBbZjldIHtcclxuICBmbGV4OiAwIDAgNzUlO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC0xMCwgW2ZpeC0xMF0sIFtmMTBdIHtcclxuICBmbGV4OiAwIDAgODMuMzMlO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC0xMSwgW2ZpeC0xMV0sIFtmMTFdIHtcclxuICBmbGV4OiAwIDAgOTEuNjclO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC0xMiwgW2ZpeC0xMl0ge1xyXG4gIGZsZXg6IDAgMCAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLyogPT09W0V4cGFuc2lvbl09PT09PT09PT09PT09PSAqL1xyXG5cclxuLmZseC1maXgsIFtmbHgtZml4XSB7XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbiAgbWluLWhlaWdodDogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uZmx4LWZpbGwge1xyXG4gIGZsZXg6IDEgMSAwO1xyXG4gIG1pbi1oZWlnaHQ6IDA7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZseC1leHAge1xyXG4gIGZsZXg6IDEgMCBhdXRvO1xyXG59XHJcblxyXG4vKiA9PT1bU2Nyb2xsaW5nXT09PT09PT09PT09PT09ICovXHJcblxyXG4uZmx4LWZzeHkge1xyXG4gIGZsZXg6IDEgMSAwO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4uZmx4LWZzeCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4OiAxIDEgMDtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG59XHJcblxyXG4uZmx4LWZzeSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGZsZXg6IDEgMSAwO1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbn1cclxuXHJcbi8qID09PVtTZXBhcmF0aW9uXT09PT09PT09PT09PT09ICovXHJcblxyXG5bZmx4LXNlcF0ge1xyXG4gIGZsZXg6IDAgMCBhdXRvO1xyXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBsaWdodGdyYXk7XHJcbn1cclxuXHJcbiAgW2ZseC1zZXBdW2RhcmtdIHtcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGdyYXk7XHJcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IGdyYXk7XHJcbiAgfVxyXG5cclxuW2ZseF1bdl0gPiBbZmx4LXNlcF1bbTNdIHtcclxuICBtYXJnaW46IDNweCAwO1xyXG59XHJcblxyXG5bZmx4XTpub3QoW3ZdKSA+IFtmbHgtc2VwXVttM10ge1xyXG4gIG1hcmdpbjogMCAzcHg7XHJcbn1cclxuXHJcbltmbHhdW3ZdID4gW2ZseC1zZXBdW201XSB7XHJcbiAgbWFyZ2luOiA1cHggMDtcclxufVxyXG5cclxuW2ZseF06bm90KFt2XSkgPiBbZmx4LXNlcF1bbTVdIHtcclxuICBtYXJnaW46IDAgNXB4O1xyXG59XHJcblxyXG5bZmx4XVt2XSA+IFtmbHgtc2VwXVtwYWRdLCAuZmx4LnYgPiBbZmx4LXNlcF1bcGFkXSB7XHJcbiAgbWFyZ2luOiA1cHggMDtcclxufVxyXG5cclxuW2ZseF06bm90KFt2XSkgPiBbZmx4LXNlcF1bcGFkXSwgLmZseDpub3QoLnYpID4gW2ZseC1zZXBdW3BhZF0ge1xyXG4gIG1hcmdpbjogMCA1cHg7XHJcbn1cclxuXHJcbltmbHgtc3BhY2VyXSwgLmZseC1zcGFjZXIge1xyXG4gIGZsZXgtZ3JvdzogMDtcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBtYXJnaW4tdG9wOiBhdXRvO1xyXG59XHJcblxyXG4vKiA9PT1bRGVidWdnaW5nXT09PT09PT09PT09PT09ICovXHJcblxyXG4uZGVidWcsIFtmbHhdW2RiZ10ge1xyXG4gIGJvcmRlcjogMTBweCBzb2xpZCBob3RwaW5rO1xyXG59XHJcblxyXG4uZGVidWctMiB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRzdGVlbGJsdWU7XHJcbiAgbWFyZ2luOiA1cHg7XHJcbn1cclxuIl19 */\"","export default \"
\\r\\n \\r\\n
\\r\\n\";","export default \"\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n {{_row.physicalStatusName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\";","export default \"
\\r\\n \\r\\n 0 else noData\\\"\\r\\n (ngSubmit)=\\\"onSubmit()\\\"\\r\\n >\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\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.customerName }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n No shipment data found.\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n

Claim in progress

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

{{_claimData.claimStatus}}

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

{{_claimData.claimStatus}}

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

{{_claimData.claimStatus}}

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

Status : {{_claimData.claimStatus}}

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

Fill Claim Form

\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\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/No
Incident Date\\r\\n \\r\\n \\r\\n \\r\\n Were the seals intact?\\r\\n
\\r\\n \\r\\n
\\r\\n
Issue\\r\\n
\\r\\n
\\r\\n

Issue

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Were the pallets correctly stacked?\\r\\n
\\r\\n \\r\\n
\\r\\n
Reason\\r\\n
\\r\\n
\\r\\n

Reason

\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
Were the products stored on pallets?\\r\\n \\r\\n
ClaimsOther\\r\\n \\r\\n ChecksWere the crates in good condition?\\r\\n
\\r\\n \\r\\n
\\r\\n
Description\\r\\n \\r\\n \\r\\n
Amount\\r\\n \\r\\n Was there a pallet slip? {{_claimData.hasFile}} or {{_isSameUserGroup}} or {{_readOnlyVar}} OR {{ _enableDownload}}\\r\\n
\\r\\n \\r\\n
\\r\\n
Seal Number\\r\\n \\r\\n \\r\\n Were there load sheets?\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n

{{ message.detail }}

\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n List of Files\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ getTypeName(file.documentType) }}\\r\\n
\\r\\n
\\r\\n {{ file.fileName }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n\\r\\n
\\r\\n Document Type\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
  • \\r\\n {{ file.name }} - {{ file.size }} bytes\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n

{{ _contact.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 Email\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ _contact.email }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Cell\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ _contact.cell }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Office\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ _contact.office }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
{{_message}}
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n \\r\\n Origin\\r\\n Direction\\r\\n Destination\\r\\n Vehicle Type\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{ route.origin }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ route.origin }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{ route.direction }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ route.direction }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{ route.destination }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ route.destination }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{ route.vehicleType }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ route.vehicleType }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
{{_message}}
\\r\\n \\r\\n \\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"Clover\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

Planners

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

Expeditors

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

Other

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

Attention: All Contractors

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

Shifts

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
{{_message}}
\\r\\n \\r\\n \\r\\n \\r\\n \\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 Slot\\r\\n From\\r\\n To\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{ shift.timeSlot }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ shift.timeSlot }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{ shift.timeFrom }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ shift.timeFrom }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{ shift.timeTo }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ shift.timeTo }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n

\\r\\n {{_shifts.text}}\\r\\n

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

Date Range

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

Search

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\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 Picker

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

\\r\\n Are you sure you want to reject this trip claim?\\r\\n

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

\\r\\n Are you sure you want to reject this shipment?\\r\\n

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

Saving feedback...

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

Feedback

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

Actual

\\r\\n
\\r\\n Planned\\r\\n \\r\\n Variance\\r\\n \\r\\n Explanation\\r\\n
\\r\\n Trip\\r\\n
\\r\\n Driver\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Trip Start Kilometres\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Trip End Kilometres\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Actual Distance\\r\\n \\r\\n \\r\\n \\r\\n {{ _transportDetails.plannedDistance | number:\\\".1\\\" }}\\r\\n \\r\\n {{ _actualDistanceVariance | number: \\\".1\\\" }}\\r\\n = 15)\\\">\\r\\n \\r\\n
\\r\\n Invoice Submitted\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Chep Document Number\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Collection\\r\\n
\\r\\n Arrival\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ _transportDetails.collectionArrival | date: \\\"dd/MM/yyyy HH:mm\\\" }}\\r\\n \\r\\n {{ _colArrDiffMin }}\\r\\n 6)\\\">\\r\\n \\r\\n
\\r\\n Departure\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ _transportDetails.collectionDeparture | date: \\\"dd/MM/yyyy HH:mm\\\" }}\\r\\n \\r\\n {{ _colDepartDiffMin }}\\r\\n 6)\\\">\\r\\n \\r\\n
\\r\\n Delivery\\r\\n
\\r\\n Arrival\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ _transportDetails.deliveryArrival | date: \\\"dd/MM/yyyy HH:mm\\\" }}\\r\\n \\r\\n {{ _delArrDiffMin }}\\r\\n 6)\\\">\\r\\n \\r\\n
\\r\\n Departure\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ _transportDetails.deliveryDeparture | date: \\\"dd/MM/yyyy HH:mm\\\" }}\\r\\n \\r\\n {{ _delDepartDiffMin }}\\r\\n 6)\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n

Invalid Transport Request details

\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n 0 else noData\\\">\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n

No shipment data found1

\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n \\r\\n POD\\r\\n \\r\\n \\r\\n Dispatched (SH)\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n {{ row.physicalStatusName }}\\r\\n\\r\\n \\r\\n \\r\\n Undeliver\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Dispatched (SH)\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n 0\\\"\\r\\n [header]=\\\"getPanelHeader()\\\"\\r\\n >\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

Invalid user permissions

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

No data found

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{haulier.code}} {{haulier.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\";","export default \"
\\r\\n
\\r\\n

Constraint

\\r\\n \\r\\n \\r\\n
\\r\\n {{item.value.symbol}}\\r\\n {{item.value.description}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{option.value.symbol}}\\r\\n {{option.value.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\";","export default \"
\\r\\n
    \\r\\n \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n {{item.header}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n
    \\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n 0\\\"\\r\\n [style]=\\\"{width: '3em'}\\\"\\r\\n />\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ col.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 0\\\">\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ col.header }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n 0\\\"\\r\\n [attr.rowSpan]=\\\"getRowSpanSize(rowIndex, col, rowData)\\\"\\r\\n class=\\\"ui-resizable-column\\\"\\r\\n >\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n 0\\\"\\r\\n [attr.rowSpan]=\\\"getRowSpanSize(rowIndex, col, rowData)\\\"\\r\\n class=\\\"ui-resizable-column\\\"\\r\\n >\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{getPageReport(state)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ formatDate(rowData[col.field]) }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ formatNumber(rowData[col.field]) }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ rowData[col.field] }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ claimRow.claimDetailsStatus }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n 0 else noData\\\">\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n

No claim data found

\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n\\r\\n 0 else noData\\\">\\r\\n
\\r\\n
\\r\\n

Vehicle

\\r\\n
\\r\\n
\\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 vehicles found

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export default \"\\r\\n\\r\\n
\\r\\n
\\r\\n
Welcome, please login
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
Enter a new password and it will be changed on 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 Change Password\\r\\n
\\r\\n
\\r\\n Close\\r\\n
\\r\\n
\\r\\n
{{statusMessage}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\\"Clover\\r\\n
\\r\\n
\\r\\n\";","export default \"{{userFullName}}\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Logout\\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\";","export default \"
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n\\r\\n\";","export default \"\\r\\n {{errorDetails.title}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Type\\r\\n {{errorDetails.type}}\\r\\n
\\r\\n
\\r\\n Code\\r\\n
{{errorDetails.code}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Server Response\\r\\n
{{errorDetails.serverResponse || 'Empty response'}}
\\r\\n
\\r\\n
\\r\\n Message\\r\\n
{{errorDetails.message}}
\\r\\n
\\r\\n
\\r\\n Stack Trace\\r\\n
{{errorDetails.stack}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n Error\\r\\n No details to show\\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n {{log.timestamp | date:'yyyy-MM-dd HH:mm:ss'}}\\r\\n {{log.source}}\\r\\n [{{log.user}}]\\r\\n {{log.message}}\\r\\n {{showError ? '-' : '+'}}\\r\\n
\\r\\n {{log.message}}\\r\\n
{{log.error}}
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n Info\\r\\n Warning\\r\\n Error\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n
End of history
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n \\\"Opsi\\r\\n \\r\\n
\\r\\n \\\"Clover\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n Status:\\r\\n {{status?.text}}\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n {{taskErrorLog.length}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Task Error Log Dismiss\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{errorTask.name}} {{errorTask.error.title}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{task.name || 'task'}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{errorDetails.title}}\\r\\n {{errorDetails.message}}\\r\\n
\\r\\n Details\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Powered by OPSI Systems. All rights reserved. www.opsisystems.com\\r\\n
\\r\\n
Version: {{appVersion}}
\\r\\n
\\r\\n
\\r\\n\";","var api = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../node_modules/@angular-devkit/build-angular/node_modules/raw-loader/dist/cjs.js!../../../../node_modules/postcss-loader/src/index.js??embedded!./flex.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;"],"sourceRoot":"webpack:///"}