{"version":3,"file":"main.20d13f1944f3a7b2.js","mappings":"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B;AACD;AACJ;AACiB;AACF;AACE;AACF;AACF;AACD;AACmB;AACT;AACL;AACY;AACT;AACL;AACQ;AACe;AACT;AACL;AACH;AACT;AACA;AACY;AACd;AACP;AACF;AACI;AACO;AACT;AACO;AACG;AACC;AACX;AACA;AACF;AACQ;AACF;AACW;AACf;AACA;AACG;AACa;AACA;AAClB;AACgB;AACL;AACH;AACF;AACW;AACF;AACZ;AACU;AACV;AACA;AACA;AACA;AACF;AACA;AACY;AACK;AACR;AACM;AACR;AACM;AAClB;AACc;AACvB;AACS;AACY;AACV;AACC;AACwB;AACrB;AACF;AACc;AACnB;AACwB;AACT;AACQ;AAClB;AACQ;AACH;AACK;AACC;AACH;AACC;AACP;AACc;AACJ;AACL;AACC;AACK;AACL;AACF;AACK;AACV;AACK;AACV;AACW;AACE;AACG;AACL;AACF;AACA;AACS;AACF;AACT;AACK;AACA;AACE;AACG;AACL;AACF;AACS;AACT;AACO;AACT;AACE;AACC;AACD;AACV;AACY;AACV;AACa;AACT;AACI;AACV;AACQ;AACV;AACU;AACV;AACmB;AACV;AACQ;AACV;AACA;AACT;AACiB;AACI;AACd;AACT;;;;;;;;;;;;;;;;AC/K9B;;;;;;;;GAQG;AAEI,MAAM,QAAQ;CAMpB;;;;;;;;;;;;;;;;ACjBD;;;;;;;;GAQG;AAEI,MAAM,gBAAgB;CAQ5B;;;;;;;;;;;;;;;;AClBD;;;;;;;;GAQG;AAEI,MAAM,wBAAwB;CAKpC;;;;;;;;;;;;;;;;ACXD;;;;;;;;GAQG;AAEI,MAAM,kCAAkC;CAY9C;;;;;;;;;;;;;;;;ACxBD;;;;;;;;GAQG;AAEI,MAAM,6BAA6B;CAUzC;;;;;;;;;;;;;;;;ACtBD;;;;;;;;GAQG;AAEI,MAAM,6BAA6B;CAMzC;;;;;;;;;;;;;;;;ACfD;;;;;;;;GAQG;AAEI,MAAM,2CAA2C;CASvD;;;;;;;;;;;;;;;;ACnBD;;;;;;;;GAQG;AAEI,MAAM,mDAAmD;CAS/D;;;;;;;;;;;;;;;;ACpBD;;;;;;;;GAQG;AAEI,MA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,mBAAmB;CAK/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBD;;;;;;;;GAQG;AAEF,2BAA2B;AACgB;AACL;AACP;AACH;AACC;AACiB;AACa;AACtB;AACiC;AACtB;AACgB;AAC5B;AACE;AACA;AACR;AAC8B;AACP;AACR;AACE;AACG;AACL;AACL;AACD;AACE;AACD;AACA;AACK;AACS;AACb;AACJ;AACU;AACD;AACG;AACX;AACC;AACH;AACsB;AACT;AACiB;AACI;AACX;AACD;AACE;AACF;AACC;AAC1B;AACO;AACH;AACF;AACC;AACD;AACiB;AACf;AACL;AACK;AACT;AACkB;AACd;AACQ;AACE;AACF;AACP;AACK;AACL;AACQ;AACF;AACD;AACC;AACD;AACC;AACN;AACQ;AACT;AACM;AACD;AACA;AACG;AACR;AACO;AACI;AACP;AACG;AACO;AACJ;AACF;AACO;AACL;AACf;AACQ;AACC;AACP;AACD;AACS;AACV;AACgB;AACF;AACF;AACN;AACS;AACA;AACO;AACF;AAChB;AACkB;AACN;AACF;AACF;AACK;AACX;AACG;AACF;AACA;AACS;AACF;AACA;AACH;AACM;AACR;AACF;AACQ;AACJ;AACA;AACC;AACR;AACU;AACb;AACU;AACE;AACF;AACF;AACF;AACH;AACa;AACJ;AACZ;AACC;AACU;AACI;AACe;AACnC;AACiB;AACQ;AACA;AAC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AAC;AAIpD,mBAAO,CAAC,+CAAoC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AEf9C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/activity/activity.module.ts","./src/app/activity/components/activity-tab/activity-tab.component.ts","./src/app/activity/components/activity-tab/activity-tab.component.html","./src/app/activity/components/activity-table/activity-table.component.ts","./src/app/activity/components/activity-table/activity-table.component.html","./src/app/activity/components/download-report-button/download-report-button.component.ts","./src/app/activity/components/download-report-button/download-report-button.component.html","./src/app/activity/modals/customer-approval-file-import/customer-approval-file-import.component.ts","./src/app/activity/modals/customer-approval-file-import/customer-approval-file-import.component.html","./src/app/activity/modals/diary-view/diary-view.component.ts","./src/app/activity/modals/diary-view/diary-view.component.html","./src/app/activity/modals/dismantle-view/dismantle-view.component.ts","./src/app/activity/modals/dismantle-view/dismantle-view.component.html","./src/app/activity/modals/handover-view/handover-view.component.ts","./src/app/activity/modals/handover-view/handover-view.component.html","./src/app/activity/modals/inspection-view/inspection-view.component.ts","./src/app/activity/modals/inspection-view/inspection-view.component.html","./src/app/activity/modals/offhire-view/offhire-view.component.ts","./src/app/activity/modals/offhire-view/offhire-view.component.html","./src/app/activity/modals/unsafe-view/unsafe-view.component.ts","./src/app/activity/modals/unsafe-view/unsafe-view.component.html","./src/app/activity/modals/variation-view/variation-view.component.ts","./src/app/activity/modals/variation-view/variation-view.component.html","./src/app/admin/components/add-edit-depots-modal/add-edit-depots-modal.component.ts","./src/app/admin/components/add-edit-depots-modal/add-edit-depots-modal.component.html","./src/app/admin/components/list-preview-modal/list-preview-modal.component.ts","./src/app/admin/components/list-preview-modal/list-preview-modal.component.html","./src/app/admin/values/mobile-lists.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core/authentication/auth-service-token.ts","./src/app/core/authentication/authentication-settings-token.ts","./src/app/core/authentication/authentication-settings.ts","./src/app/core/authentication/authentication.module.ts","./src/app/core/authentication/components/permission/permission.component.ts","./src/app/core/authentication/enum/auth-response-error-type.ts","./src/app/core/authentication/enum/index.ts","./src/app/core/authentication/index.ts","./src/app/core/authentication/jwt-helper-token.ts","./src/app/core/authentication/models/access-token-data.ts","./src/app/core/authentication/models/auth-response-error.ts","./src/app/core/authentication/models/auth-response.ts","./src/app/core/authentication/models/auth-service.ts","./src/app/core/authentication/models/index.ts","./src/app/core/authentication/models/user.ts","./src/app/core/authentication/services/authentication-events.service.ts","./src/app/core/authentication/services/hello-auth.service.ts","./src/app/core/authentication/services/hellojs.service.ts","./src/app/core/authentication/services/index.ts","./src/app/core/authentication/services/online-session.service.ts","./src/app/core/authentication/services/user-identity.service.ts","./src/app/core/authentication/services/userflow.service.ts","./src/app/core/components/app-footer/app-footer.component.ts","./src/app/core/components/app-footer/app-footer.component.html","./src/app/core/components/app-header/app-header.component.ts","./src/app/core/components/app-header/app-header.component.html","./src/app/core/components/denied/denied.component.ts","./src/app/core/components/denied/denied.component.html","./src/app/core/components/error-404/error-404.component.ts","./src/app/core/components/error-404/error-404.component.html","./src/app/core/components/generic-error/generic-error.component.ts","./src/app/core/components/generic-error/generic-error.component.html","./src/app/core/components/insight/insight-base.component.ts","./src/app/core/components/main/main.component.ts","./src/app/core/components/main/main.component.html","./src/app/core/components/offline/offline.component.ts","./src/app/core/components/offline/offline.component.html","./src/app/core/core.module.ts","./src/app/core/guards/authenticated-guard.ts","./src/app/core/guards/authentication-setup-guard.ts","./src/app/core/guards/authorised-guard.ts","./src/app/core/guards/confirm-leave.guard.ts","./src/app/core/guards/eula-sla.guard.ts","./src/app/core/guards/not-authenticated-guard.ts","./src/app/core/guards/offline-guard.ts","./src/app/core/guards/online-guard.ts","./src/app/core/hub-api/generated/api/application-for-payment-check-list-endpoint.service.ts","./src/app/core/hub-api/generated/api/assets-endpoint.service.ts","./src/app/core/hub-api/generated/api/configuration-endpoint.service.ts","./src/app/core/hub-api/generated/api/contract-endpoint.service.ts","./src/app/core/hub-api/generated/api/customer-endpoint.service.ts","./src/app/core/hub-api/generated/api/export-endpoint.service.ts","./src/app/core/hub-api/generated/api/handover-endpoint.service.ts","./src/app/core/hub-api/generated/api/handover-report-endpoint.service.ts","./src/app/core/hub-api/generated/api/import-endpoint.service.ts","./src/app/core/hub-api/generated/api/index.ts","./src/app/core/hub-api/generated/api/inspection-endpoint.service.ts","./src/app/core/hub-api/generated/api/inspection-report-endpoint.service.ts","./src/app/core/hub-api/generated/api/off-hire-endpoint.service.ts","./src/app/core/hub-api/generated/api/report-endpoint.service.ts","./src/app/core/hub-api/generated/api/scaffold-endpoint.service.ts","./src/app/core/hub-api/generated/api/scaffold-report-endpoint.service.ts","./src/app/core/hub-api/generated/api/setup-endpoint.service.ts","./src/app/core/hub-api/generated/api/site-depot-endpoint.service.ts","./src/app/core/hub-api/generated/api/site-endpoint.service.ts","./src/app/core/hub-api/generated/api/staff-endpoint.service.ts","./src/app/core/hub-api/generated/api/stock-report-endpoint.service.ts","./src/app/core/hub-api/generated/api/timesheet-endpoint.service.ts","./src/app/core/hub-api/generated/api/timesheet-report-endpoint.service.ts","./src/app/core/hub-api/generated/api/variation-endpoint.service.ts","./src/app/core/hub-api/generated/api/variation-report-endpoint.service.ts","./src/app/core/hub-api/generated/api/web-command-endpoint.service.ts","./src/app/core/hub-api/generated/api/web-query-endpoint.service.ts","./src/app/core/hub-api/generated/command/configuration-command.service.ts","./src/app/core/hub-api/generated/command/contract-command.service.ts","./src/app/core/hub-api/generated/command/customer-command.service.ts","./src/app/core/hub-api/generated/command/dismantle-command.service.ts","./src/app/core/hub-api/generated/command/handover-command.service.ts","./src/app/core/hub-api/generated/command/index.ts","./src/app/core/hub-api/generated/command/off-hire-command.service.ts","./src/app/core/hub-api/generated/command/scaffold-command.service.ts","./src/app/core/hub-api/generated/command/site-command.service.ts","./src/app/core/hub-api/generated/command/site-depot-command.service.ts","./src/app/core/hub-api/generated/command/staff-command.service.ts","./src/app/core/hub-api/generated/command/timesheet-command.service.ts","./src/app/core/hub-api/generated/command/variation-command.service.ts","./src/app/core/hub-api/generated/enum/activity-status.enum.ts","./src/app/core/hub-api/generated/enum/application-payment-activity-type.enum.ts","./src/app/core/hub-api/generated/enum/defect-status.enum.ts","./src/app/core/hub-api/generated/enum/diary-data-type.enum.ts","./src/app/core/hub-api/generated/enum/diary-entry-status.enum.ts","./src/app/core/hub-api/generated/enum/diary-type.enum.ts","./src/app/core/hub-api/generated/enum/export-type.enum.ts","./src/app/core/hub-api/generated/enum/handover-history-type.enum.ts","./src/app/core/hub-api/generated/enum/handover-settings-type.enum.ts","./src/app/core/hub-api/generated/enum/handover-type.enum.ts","./src/app/core/hub-api/generated/enum/index.ts","./src/app/core/hub-api/generated/enum/inspection-follow-up-workflow-status.enum.ts","./src/app/core/hub-api/generated/enum/inspection-status-enum.enum.ts","./src/app/core/hub-api/generated/enum/inspection-workflow-status.enum.ts","./src/app/core/hub-api/generated/enum/item-status.enum.ts","./src/app/core/hub-api/generated/enum/item-type.enum.ts","./src/app/core/hub-api/generated/enum/off-hire-type.enum.ts","./src/app/core/hub-api/generated/enum/period-type.enum.ts","./src/app/core/hub-api/generated/enum/quote-status.enum.ts","./src/app/core/hub-api/generated/enum/report-subscription-types.enum.ts","./src/app/core/hub-api/generated/enum/scaffold-item-status.enum.ts","./src/app/core/hub-api/generated/enum/scaffold-item-type.enum.ts","./src/app/core/hub-api/generated/enum/schedule-type.enum.ts","./src/app/core/hub-api/generated/enum/site-document-status.enum.ts","./src/app/core/hub-api/generated/enum/task-status.enum.ts","./src/app/core/hub-api/generated/enum/timesheet-period-status.enum.ts","./src/app/core/hub-api/generated/enum/variation-type.enum.ts","./src/app/core/hub-api/generated/hub-api-generated.module.ts","./src/app/core/hub-api/generated/index.ts","./src/app/core/hub-api/generated/model/command/add-staff-to-timesheet-period-command.ts","./src/app/core/hub-api/generated/model/command/associate-scanner-code-command.ts","./src/app/core/hub-api/generated/model/command/attachment-by-customer.ts","./src/app/core/hub-api/generated/model/command/company-contacts.ts","./src/app/core/hub-api/generated/model/command/contract-inspection-status.ts","./src/app/core/hub-api/generated/model/command/contract-typedata.ts","./src/app/core/hub-api/generated/model/command/create-contract-command.ts","./src/app/core/hub-api/generated/model/command/create-contract-contact-command.ts","./src/app/core/hub-api/generated/model/command/create-contract-type-command.ts","./src/app/core/hub-api/generated/model/command/create-customer-approval-web-console-command.ts","./src/app/core/hub-api/generated/model/command/create-customer-command.ts","./src/app/core/hub-api/generated/model/command/create-defect-type-command.ts","./src/app/core/hub-api/generated/model/command/create-depot-command.ts","./src/app/core/hub-api/generated/model/command/create-design-type-command.ts","./src/app/core/hub-api/generated/model/command/create-diary-category-command.ts","./src/app/core/hub-api/generated/model/command/create-diary-command.ts","./src/app/core/hub-api/generated/model/command/create-dimension-command.ts","./src/app/core/hub-api/generated/model/command/create-dismantle-command.ts","./src/app/core/hub-api/generated/model/command/create-dismantle-web-console-command.ts","./src/app/core/hub-api/generated/model/command/create-edit-bcc-contract-contact-command.ts","./src/app/core/hub-api/generated/model/command/create-edit-company-contact-command.ts","./src/app/core/hub-api/generated/model/command/create-edit-handover-settings-command.ts","./src/app/core/hub-api/generated/model/command/create-handover-command.ts","./src/app/core/hub-api/generated/model/command/create-handover-identified-risk-command.ts","./src/app/core/hub-api/generated/model/command/create-handover-risk-reason-command.ts","./src/app/core/hub-api/generated/model/command/create-handover-risk-type-command.ts","./src/app/core/hub-api/generated/model/command/create-inspection-command.ts","./src/app/core/hub-api/generated/model/command/create-inspection-defect-command.ts","./src/app/core/hub-api/generated/model/command/create-inspection-follow-up-action-command.ts","./src/app/core/hub-api/generated/model/command/create-inspection-follow-up-remedial-action-command.ts","./src/app/core/hub-api/generated/model/command/create-item-web-console-command.ts","./src/app/core/hub-api/generated/model/command/create-loading-limit-command.ts","./src/app/core/hub-api/generated/model/command/create-method-of-cladding-command.ts","./src/app/core/hub-api/generated/model/command/create-method-of-tying-command.ts","./src/app/core/hub-api/generated/model/command/create-off-hire-command.ts","./src/app/core/hub-api/generated/model/command/create-offhire-web-console-command.ts","./src/app/core/hub-api/generated/model/command/create-quote-web-console-command.ts","./src/app/core/hub-api/generated/model/command/create-scaffold-command.ts","./src/app/core/hub-api/generated/model/command/create-scaffold-diary-media-command.ts","./src/app/core/hub-api/generated/model/command/create-scaffold-specification-command.ts","./src/app/core/hub-api/generated/model/command/create-scaffold-type-command.ts","./src/app/core/hub-api/generated/model/command/create-scaffold-web-console-command.ts","./src/app/core/hub-api/generated/model/command/create-scaffolding-system-command.ts","./src/app/core/hub-api/generated/model/command/create-site-command.ts","./src/app/core/hub-api/generated/model/command/create-site-diary-media-command.ts","./src/app/core/hub-api/generated/model/command/create-site-diary-web-console-command.ts","./src/app/core/hub-api/generated/model/command/create-staff-command.ts","./src/app/core/hub-api/generated/model/command/create-staff-no-access-command.ts","./src/app/core/hub-api/generated/model/command/create-task-type-command.ts","./src/app/core/hub-api/generated/model/command/create-unsafe-scaffold-report-command.ts","./src/app/core/hub-api/generated/model/command/create-variation-command.ts","./src/app/core/hub-api/generated/model/command/defect-typedata.ts","./src/app/core/hub-api/generated/model/command/delete-associate-scanner-code-command.ts","./src/app/core/hub-api/generated/model/command/delete-contract-types-command.ts","./src/app/core/hub-api/generated/model/command/delete-customer-status-command.ts","./src/app/core/hub-api/generated/model/command/delete-defect-types-command.ts","./src/app/core/hub-api/generated/model/command/delete-design-types-command.ts","./src/app/core/hub-api/generated/model/command/delete-diary-category-command.ts","./src/app/core/hub-api/generated/model/command/delete-dimension-command.ts","./src/app/core/hub-api/generated/model/command/delete-handover-command.ts","./src/app/core/hub-api/generated/model/command/delete-handover-identified-risk-command.ts","./src/app/core/hub-api/generated/model/command/delete-handover-risk-reasons-command.ts","./src/app/core/hub-api/generated/model/command/delete-handover-risk-types-command.ts","./src/app/core/hub-api/generated/model/command/delete-inspection-command.ts","./src/app/core/hub-api/generated/model/command/delete-inspection-defect-command.ts","./src/app/core/hub-api/generated/model/command/delete-loading-limits-command.ts","./src/app/core/hub-api/generated/model/command/delete-method-of-claddings-command.ts","./src/app/core/hub-api/generated/model/command/delete-method-of-tyings-command.ts","./src/app/core/hub-api/generated/model/command/delete-off-hire-command.ts","./src/app/core/hub-api/generated/model/command/delete-scaffold-types-command.ts","./src/app/core/hub-api/generated/model/command/delete-scaffolding-systems-command.ts","./src/app/core/hub-api/generated/model/command/delete-staff-command.ts","./src/app/core/hub-api/generated/model/command/delete-staff-from-timesheet-period-command.ts","./src/app/core/hub-api/generated/model/command/delete-task-types-command.ts","./src/app/core/hub-api/generated/model/command/delete-variation-command.ts","./src/app/core/hub-api/generated/model/command/design-typedata.ts","./src/app/core/hub-api/generated/model/command/diary-category.ts","./src/app/core/hub-api/generated/model/command/edit-company-details-command.ts","./src/app/core/hub-api/generated/model/command/edit-contract-command.ts","./src/app/core/hub-api/generated/model/command/edit-contract-contact-command.ts","./src/app/core/hub-api/generated/model/command/edit-contract-inspection-status-command.ts","./src/app/core/hub-api/generated/model/command/edit-contract-types-command.ts","./src/app/core/hub-api/generated/model/command/edit-customer-command.ts","./src/app/core/hub-api/generated/model/command/edit-defect-types-command.ts","./src/app/core/hub-api/generated/model/command/edit-depot-command.ts","./src/app/core/hub-api/generated/model/command/edit-design-types-command.ts","./src/app/core/hub-api/generated/model/command/edit-diary-category-command.ts","./src/app/core/hub-api/generated/model/command/edit-dimension-command.ts","./src/app/core/hub-api/generated/model/command/edit-handover-command.ts","./src/app/core/hub-api/generated/model/command/edit-handover-identified-risk-command.ts","./src/app/core/hub-api/generated/model/command/edit-handover-inspection-command.ts","./src/app/core/hub-api/generated/model/command/edit-handover-risk-reasons-command.ts","./src/app/core/hub-api/generated/model/command/edit-handover-risk-types-command.ts","./src/app/core/hub-api/generated/model/command/edit-handover-summary-command.ts","./src/app/core/hub-api/generated/model/command/edit-inspection-command.ts","./src/app/core/hub-api/generated/model/command/edit-inspection-defect-command.ts","./src/app/core/hub-api/generated/model/command/edit-inspection-follow-up-action-command.ts","./src/app/core/hub-api/generated/model/command/edit-inspection-follow-up-remedial-action-command.ts","./src/app/core/hub-api/generated/model/command/edit-item-web-console-command.ts","./src/app/core/hub-api/generated/model/command/edit-loading-limits-command.ts","./src/app/core/hub-api/generated/model/command/edit-method-of-claddings-command.ts","./src/app/core/hub-api/generated/model/command/edit-method-of-tyings-command.ts","./src/app/core/hub-api/generated/model/command/edit-off-hire-command.ts","./src/app/core/hub-api/generated/model/command/edit-off-hire-summary-command.ts","./src/app/core/hub-api/generated/model/command/edit-quote-web-console-command.ts","./src/app/core/hub-api/generated/model/command/edit-report-section-command.ts","./src/app/core/hub-api/generated/model/command/edit-scaffold-command.ts","./src/app/core/hub-api/generated/model/command/edit-scaffold-media-command.ts","./src/app/core/hub-api/generated/model/command/edit-scaffold-media-transcription-command.ts","./src/app/core/hub-api/generated/model/command/edit-scaffold-specification-command.ts","./src/app/core/hub-api/generated/model/command/edit-scaffold-types-command.ts","./src/app/core/hub-api/generated/model/command/edit-scaffold-web-console-command.ts","./src/app/core/hub-api/generated/model/command/edit-scaffolding-systems-command.ts","./src/app/core/hub-api/generated/model/command/edit-site-command.ts","./src/app/core/hub-api/generated/model/command/edit-site-diary-media-command.ts","./src/app/core/hub-api/generated/model/command/edit-site-web-console-command.ts","./src/app/core/hub-api/generated/model/command/edit-staff-command.ts","./src/app/core/hub-api/generated/model/command/edit-staff-no-access-command.ts","./src/app/core/hub-api/generated/model/command/edit-task-type-command.ts","./src/app/core/hub-api/generated/model/command/edit-timesheet-period-command.ts","./src/app/core/hub-api/generated/model/command/edit-unsafe-scaffold-report-command.ts","./src/app/core/hub-api/generated/model/command/edit-unsafe-scaffold-report-summary-command.ts","./src/app/core/hub-api/generated/model/command/edit-variation-command.ts","./src/app/core/hub-api/generated/model/command/edit-variation-instruction-command.ts","./src/app/core/hub-api/generated/model/command/email-variation-estimation-command.ts","./src/app/core/hub-api/generated/model/command/external-media.ts","./src/app/core/hub-api/generated/model/command/handover-handover-settings.ts","./src/app/core/hub-api/generated/model/command/handover-risk-reasondata.ts","./src/app/core/hub-api/generated/model/command/handover-risk-typedata.ts","./src/app/core/hub-api/generated/model/command/hours.ts","./src/app/core/hub-api/generated/model/command/import-data.ts","./src/app/core/hub-api/generated/model/command/import-scaffold-data.ts","./src/app/core/hub-api/generated/model/command/index.ts","./src/app/core/hub-api/generated/model/command/item-task.ts","./src/app/core/hub-api/generated/model/command/loading-limitdata.ts","./src/app/core/hub-api/generated/model/command/mark-handover-saved-command.ts","./src/app/core/hub-api/generated/model/command/mark-handover-summary-complete-command.ts","./src/app/core/hub-api/generated/model/command/mark-inspection-complete-command.ts","./src/app/core/hub-api/generated/model/command/mark-inspection-finished-command.ts","./src/app/core/hub-api/generated/model/command/mark-inspection-follow-up-action-complete-command.ts","./src/app/core/hub-api/generated/model/command/mark-inspection-follow-up-remedial-action-complete-command.ts","./src/app/core/hub-api/generated/model/command/mark-inspection-inspected-command.ts","./src/app/core/hub-api/generated/model/command/mark-off-hire-saved-command.ts","./src/app/core/hub-api/generated/model/command/mark-off-hire-summary-complete-command.ts","./src/app/core/hub-api/generated/model/command/mark-scaffold-specification-complete-command.ts","./src/app/core/hub-api/generated/model/command/mark-unsafe-scaffold-report-complete-command.ts","./src/app/core/hub-api/generated/model/command/mark-unsafe-scaffold-report-saved-command.ts","./src/app/core/hub-api/generated/model/command/mark-variation-summary-complete-command.ts","./src/app/core/hub-api/generated/model/command/method-of-tyingdata.ts","./src/app/core/hub-api/generated/model/command/methods-of-claddingdata.ts","./src/app/core/hub-api/generated/model/command/scaffold-specification-web-console-data.ts","./src/app/core/hub-api/generated/model/command/scaffold-typedata.ts","./src/app/core/hub-api/generated/model/command/scaffold.ts","./src/app/core/hub-api/generated/model/command/scaffolding-systemdata.ts","./src/app/core/hub-api/generated/model/command/set-site-staff-permissions-command.ts","./src/app/core/hub-api/generated/model/command/signature-by-customer.ts","./src/app/core/hub-api/generated/model/command/signature-by-staff.ts","./src/app/core/hub-api/generated/model/command/site-area-details.ts","./src/app/core/hub-api/generated/model/command/site-diary-transcribe-media-command.ts","./src/app/core/hub-api/generated/model/command/staff-expense.ts","./src/app/core/hub-api/generated/model/command/staff-rate.ts","./src/app/core/hub-api/generated/model/command/task-typedata.ts","./src/app/core/hub-api/generated/model/command/time-entry-staff.ts","./src/app/core/hub-api/generated/model/command/time-entry.ts","./src/app/core/hub-api/generated/model/command/tonnage.ts","./src/app/core/hub-api/generated/model/command/transcribe-media-command.ts","./src/app/core/hub-api/generated/model/command/update-areas-command.ts","./src/app/core/hub-api/generated/model/command/update-scaffold-numbers-command.ts","./src/app/core/hub-api/generated/model/index.ts","./src/app/core/hub-api/generated/model/query/activities-data.ts","./src/app/core/hub-api/generated/model/query/activities-query.ts","./src/app/core/hub-api/generated/model/query/activity-detail-data.ts","./src/app/core/hub-api/generated/model/query/activity-detail-query.ts","./src/app/core/hub-api/generated/model/query/adal-b2c-data.ts","./src/app/core/hub-api/generated/model/query/application-payment-activity-report-data.ts","./src/app/core/hub-api/generated/model/query/application-payment-check-list-input.ts","./src/app/core/hub-api/generated/model/query/application-payment-report-data.ts","./src/app/core/hub-api/generated/model/query/application-settings-data.ts","./src/app/core/hub-api/generated/model/query/application-user-data.ts","./src/app/core/hub-api/generated/model/query/company-details.ts","./src/app/core/hub-api/generated/model/query/company-statistic-data.ts","./src/app/core/hub-api/generated/model/query/configuration-data.ts","./src/app/core/hub-api/generated/model/query/configuration-query.ts","./src/app/core/hub-api/generated/model/query/contact-type-data.ts","./src/app/core/hub-api/generated/model/query/contract-activity-details.ts","./src/app/core/hub-api/generated/model/query/contract-contact-data.ts","./src/app/core/hub-api/generated/model/query/contract-data.ts","./src/app/core/hub-api/generated/model/query/contract-status-data.ts","./src/app/core/hub-api/generated/model/query/contract-system-data.ts","./src/app/core/hub-api/generated/model/query/contract-tonnage-information.ts","./src/app/core/hub-api/generated/model/query/contract-type-data.ts","./src/app/core/hub-api/generated/model/query/cumulative-report-input.ts","./src/app/core/hub-api/generated/model/query/customer-and-contract-tonnage-information.ts","./src/app/core/hub-api/generated/model/query/customer-attachment-data.ts","./src/app/core/hub-api/generated/model/query/customer-data.ts","./src/app/core/hub-api/generated/model/query/customer-detail-query.ts","./src/app/core/hub-api/generated/model/query/customer-detail-web-app-data.ts","./src/app/core/hub-api/generated/model/query/customer-query.ts","./src/app/core/hub-api/generated/model/query/customer-signature-data.ts","./src/app/core/hub-api/generated/model/query/customer-site-data.ts","./src/app/core/hub-api/generated/model/query/customer-statistics-data.ts","./src/app/core/hub-api/generated/model/query/customer-statistics-query.ts","./src/app/core/hub-api/generated/model/query/customer-status-data.ts","./src/app/core/hub-api/generated/model/query/customer-web-app-data.ts","./src/app/core/hub-api/generated/model/query/dash-board-inspection-data.ts","./src/app/core/hub-api/generated/model/query/defect-report-input.ts","./src/app/core/hub-api/generated/model/query/defect-statistic-data.ts","./src/app/core/hub-api/generated/model/query/defect-statistics-query.ts","./src/app/core/hub-api/generated/model/query/defect-type-data.ts","./src/app/core/hub-api/generated/model/query/depot-combined-data.ts","./src/app/core/hub-api/generated/model/query/depot-data.ts","./src/app/core/hub-api/generated/model/query/depot-query.ts","./src/app/core/hub-api/generated/model/query/depot-site-customer-and-contract-tonnage-information.ts","./src/app/core/hub-api/generated/model/query/design-type-data.ts","./src/app/core/hub-api/generated/model/query/diary-activity-details.ts","./src/app/core/hub-api/generated/model/query/diary-category-data.ts","./src/app/core/hub-api/generated/model/query/diary-data.ts","./src/app/core/hub-api/generated/model/query/diary-query.ts","./src/app/core/hub-api/generated/model/query/dimension-application-payment-report-data.ts","./src/app/core/hub-api/generated/model/query/dimension-data.ts","./src/app/core/hub-api/generated/model/query/dismantle-activity-details.ts","./src/app/core/hub-api/generated/model/query/dismantle-data.ts","./src/app/core/hub-api/generated/model/query/expense-type-data.ts","./src/app/core/hub-api/generated/model/query/handover-activity-details.ts","./src/app/core/hub-api/generated/model/query/handover-application-payment-report-data.ts","./src/app/core/hub-api/generated/model/query/handover-data.ts","./src/app/core/hub-api/generated/model/query/handover-handover-settings-data.ts","./src/app/core/hub-api/generated/model/query/handover-history-query.ts","./src/app/core/hub-api/generated/model/query/handover-history-report-input.ts","./src/app/core/hub-api/generated/model/query/handover-history-web-app-data.ts","./src/app/core/hub-api/generated/model/query/handover-identified-risk-activity-data.ts","./src/app/core/hub-api/generated/model/query/handover-identified-risk-data.ts","./src/app/core/hub-api/generated/model/query/handover-question-data.ts","./src/app/core/hub-api/generated/model/query/handover-report-input.ts","./src/app/core/hub-api/generated/model/query/handover-risk-reason-data.ts","./src/app/core/hub-api/generated/model/query/handover-risk-summary-data.ts","./src/app/core/hub-api/generated/model/query/handover-risk-type-data.ts","./src/app/core/hub-api/generated/model/query/handover-scaffold-data.ts","./src/app/core/hub-api/generated/model/query/handover-settings-data.ts","./src/app/core/hub-api/generated/model/query/handover-settings-query.ts","./src/app/core/hub-api/generated/model/query/handover-statistics-data.ts","./src/app/core/hub-api/generated/model/query/handover-statistics-query.ts","./src/app/core/hub-api/generated/model/query/handover-status-report-input.ts","./src/app/core/hub-api/generated/model/query/handover-summary-data.ts","./src/app/core/hub-api/generated/model/query/index.ts","./src/app/core/hub-api/generated/model/query/individual-payroll-report-input.ts","./src/app/core/hub-api/generated/model/query/inspection-activity-details.ts","./src/app/core/hub-api/generated/model/query/inspection-application-payment-report-data.ts","./src/app/core/hub-api/generated/model/query/inspection-data.ts","./src/app/core/hub-api/generated/model/query/inspection-defect-data.ts","./src/app/core/hub-api/generated/model/query/inspection-defect-status-type-data.ts","./src/app/core/hub-api/generated/model/query/inspection-defect-summary-data.ts","./src/app/core/hub-api/generated/model/query/inspection-defect-web-app-data.ts","./src/app/core/hub-api/generated/model/query/inspection-follow-up-instruction-data.ts","./src/app/core/hub-api/generated/model/query/inspection-follow-up-notify-data.ts","./src/app/core/hub-api/generated/model/query/inspection-outcome-data.ts","./src/app/core/hub-api/generated/model/query/inspection-report-input.ts","./src/app/core/hub-api/generated/model/query/inspection-status-data.ts","./src/app/core/hub-api/generated/model/query/inspection-type-data.ts","./src/app/core/hub-api/generated/model/query/inspection-type-group-data.ts","./src/app/core/hub-api/generated/model/query/item-data.ts","./src/app/core/hub-api/generated/model/query/item-details-data.ts","./src/app/core/hub-api/generated/model/query/item-details-query.ts","./src/app/core/hub-api/generated/model/query/loading-limit-data.ts","./src/app/core/hub-api/generated/model/query/lookup-data-base.ts","./src/app/core/hub-api/generated/model/query/media-base-data.ts","./src/app/core/hub-api/generated/model/query/media-data.ts","./src/app/core/hub-api/generated/model/query/media-transcription-data.ts","./src/app/core/hub-api/generated/model/query/method-of-tying-data.ts","./src/app/core/hub-api/generated/model/query/methods-of-cladding-data.ts","./src/app/core/hub-api/generated/model/query/mobile-settings-data.ts","./src/app/core/hub-api/generated/model/query/off-hire-data.ts","./src/app/core/hub-api/generated/model/query/offhire-activity-details.ts","./src/app/core/hub-api/generated/model/query/payroll-report-input.ts","./src/app/core/hub-api/generated/model/query/query.ts","./src/app/core/hub-api/generated/model/query/quote-data.ts","./src/app/core/hub-api/generated/model/query/quote-query.ts","./src/app/core/hub-api/generated/model/query/quote-scaffold-data.ts","./src/app/core/hub-api/generated/model/query/rate-type-data.ts","./src/app/core/hub-api/generated/model/query/report-input-guid-data.ts","./src/app/core/hub-api/generated/model/query/report-input-guid-list-data.ts","./src/app/core/hub-api/generated/model/query/report-section-data.ts","./src/app/core/hub-api/generated/model/query/roles-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-application-payment-report-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-combined-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-detail-query.ts","./src/app/core/hub-api/generated/model/query/scaffold-details.ts","./src/app/core/hub-api/generated/model/query/scaffold-diary-entry-application-payment-report-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-inspection-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-inspection-query.ts","./src/app/core/hub-api/generated/model/query/scaffold-inspection-summary-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-inspection-web-app-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-item-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-item-dimensions-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-report-input.ts","./src/app/core/hub-api/generated/model/query/scaffold-section-scaffold-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-statistics-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-statistics-query.ts","./src/app/core/hub-api/generated/model/query/scaffold-status-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-status-statistics-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-system-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-tag-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-timeline-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-timeline-query.ts","./src/app/core/hub-api/generated/model/query/scaffold-type-data.ts","./src/app/core/hub-api/generated/model/query/scaffold-web-app-data.ts","./src/app/core/hub-api/generated/model/query/scaffolding-system-type-data.ts","./src/app/core/hub-api/generated/model/query/site-area-data.ts","./src/app/core/hub-api/generated/model/query/site-combined-data.ts","./src/app/core/hub-api/generated/model/query/site-contract-inspection-status-query.ts","./src/app/core/hub-api/generated/model/query/site-customer-and-contract-tonnage-information.ts","./src/app/core/hub-api/generated/model/query/site-dash-board-scaffold-inspection-data.ts","./src/app/core/hub-api/generated/model/query/site-data.ts","./src/app/core/hub-api/generated/model/query/site-detail-query.ts","./src/app/core/hub-api/generated/model/query/site-details.ts","./src/app/core/hub-api/generated/model/query/site-diary-activity-details.ts","./src/app/core/hub-api/generated/model/query/site-diary-entry-application-payment-report-data.ts","./src/app/core/hub-api/generated/model/query/site-query.ts","./src/app/core/hub-api/generated/model/query/site-scaffold-diary-data.ts","./src/app/core/hub-api/generated/model/query/site-scaffold-diary-query.ts","./src/app/core/hub-api/generated/model/query/site-scaffold-query.ts","./src/app/core/hub-api/generated/model/query/site-statistics-data.ts","./src/app/core/hub-api/generated/model/query/site-statistics-query.ts","./src/app/core/hub-api/generated/model/query/site-status-data.ts","./src/app/core/hub-api/generated/model/query/site-tonnage.ts","./src/app/core/hub-api/generated/model/query/site-web-app-data.ts","./src/app/core/hub-api/generated/model/query/staff-data.ts","./src/app/core/hub-api/generated/model/query/staff-details-query.ts","./src/app/core/hub-api/generated/model/query/staff-details-web-app-data.ts","./src/app/core/hub-api/generated/model/query/staff-query.ts","./src/app/core/hub-api/generated/model/query/staff-rate-data.ts","./src/app/core/hub-api/generated/model/query/staff-rate-type-data.ts","./src/app/core/hub-api/generated/model/query/staff-signature-data.ts","./src/app/core/hub-api/generated/model/query/staff-site-data.ts","./src/app/core/hub-api/generated/model/query/staff-statistics-data.ts","./src/app/core/hub-api/generated/model/query/staff-statistics-query.ts","./src/app/core/hub-api/generated/model/query/stock-report-customer-and-contract-section.ts","./src/app/core/hub-api/generated/model/query/stock-report-depot-and-site-section.ts","./src/app/core/hub-api/generated/model/query/stock-report-filter-section.ts","./src/app/core/hub-api/generated/model/query/stock-report-input.ts","./src/app/core/hub-api/generated/model/query/stock-report-record-for-csv.ts","./src/app/core/hub-api/generated/model/query/stock-report-scaffold-section.ts","./src/app/core/hub-api/generated/model/query/stock-report-scaffold-subsection.ts","./src/app/core/hub-api/generated/model/query/stock-report.ts","./src/app/core/hub-api/generated/model/query/task-data.ts","./src/app/core/hub-api/generated/model/query/task-type-data.ts","./src/app/core/hub-api/generated/model/query/time-entry-data.ts","./src/app/core/hub-api/generated/model/query/time-entry-expense-data.ts","./src/app/core/hub-api/generated/model/query/time-entry-hours-data.ts","./src/app/core/hub-api/generated/model/query/time-entry-rate-data.ts","./src/app/core/hub-api/generated/model/query/time-entry-staff-data.ts","./src/app/core/hub-api/generated/model/query/time-entry-task-data.ts","./src/app/core/hub-api/generated/model/query/timesheet-contract-data.ts","./src/app/core/hub-api/generated/model/query/timesheet-data.ts","./src/app/core/hub-api/generated/model/query/timesheet-depot-data.ts","./src/app/core/hub-api/generated/model/query/timesheet-depots-query.ts","./src/app/core/hub-api/generated/model/query/timesheet-item-data.ts","./src/app/core/hub-api/generated/model/query/timesheet-period-data.ts","./src/app/core/hub-api/generated/model/query/timesheet-query.ts","./src/app/core/hub-api/generated/model/query/timesheet-site-data.ts","./src/app/core/hub-api/generated/model/query/timesheet-staff-data.ts","./src/app/core/hub-api/generated/model/query/timesheet-task-data.ts","./src/app/core/hub-api/generated/model/query/unassigned-scaffold-query.ts","./src/app/core/hub-api/generated/model/query/unsafe-scaffold-report-data.ts","./src/app/core/hub-api/generated/model/query/variation-activity-details.ts","./src/app/core/hub-api/generated/model/query/variation-application-payment-report-data.ts","./src/app/core/hub-api/generated/model/query/variation-data.ts","./src/app/core/hub-api/generated/model/query/variation-instruction-activity-data.ts","./src/app/core/hub-api/generated/model/query/variation-instruction-data.ts","./src/app/core/hub-api/generated/model/query/variation-report-input.ts","./src/app/core/hub-api/generated/model/query/web-command.ts","./src/app/core/hub-api/generated/model/query/web-import.ts","./src/app/core/hub-api/hub-api-settings-token.ts","./src/app/core/hub-api/hub-api-settings.service.ts","./src/app/core/hub-api/hub-api.module.ts","./src/app/core/hub-api/index.ts","./src/app/core/interceptors/http-error-response.interceptor.ts","./src/app/core/models/page.ts","./src/app/core/models/paged-data.ts","./src/app/core/resolvers/configuration.resolver.ts","./src/app/core/resolvers/customers.resolver.ts","./src/app/core/resolvers/depots.resolver.ts","./src/app/core/resolvers/handover-statistics.resolver.ts","./src/app/core/resolvers/logged-in-staff-resolver.ts","./src/app/core/resolvers/scaffold-inspection.resolver.ts","./src/app/core/resolvers/sites.resolver.ts","./src/app/core/resolvers/staffs.resolver.ts","./src/app/core/services/application-settings-query.service.ts","./src/app/core/services/array-helper.service.ts","./src/app/core/services/auto-generate-quickId.service.ts","./src/app/core/services/configuration-query.service.ts","./src/app/core/services/customer-detail-query.service.ts","./src/app/core/services/customers-query.service.ts","./src/app/core/services/dashboard-query.service.ts","./src/app/core/services/depots-query.service.ts","./src/app/core/services/export-service.ts","./src/app/core/services/file-upload-service.ts","./src/app/core/services/filter-service.ts","./src/app/core/services/generateDefaults.service.ts","./src/app/core/services/handover-history-query-service.ts","./src/app/core/services/handover-statistics-query-service.ts","./src/app/core/services/http-cancel.service.ts","./src/app/core/services/image-upload.service.ts","./src/app/core/services/insight-monitoring.service.ts","./src/app/core/services/item-details-query.service.ts","./src/app/core/services/logged-in-staff-service.ts","./src/app/core/services/query.service.ts","./src/app/core/services/quotes-query-service.ts","./src/app/core/services/report-sites-query.service.ts","./src/app/core/services/scaffold-inspection-query-service.ts","./src/app/core/services/scaffold-statistics-query-service.ts","./src/app/core/services/site-scaffold-diary-query.service.ts","./src/app/core/services/sites-query.service.ts","./src/app/core/services/staff-detail-query.service.ts","./src/app/core/services/staffs-query.service.ts","./src/app/core/services/stock-report-query-service.ts","./src/app/core/services/text-to-color.service.ts","./src/app/core/services/timeout.service.ts","./src/app/core/services/timesheet-depots-query-service.ts","./src/app/core/services/unassigned-scaffold-query-service.ts","./src/app/core/services/utility-service.ts","./src/app/core/utility/functions/index.ts","./src/app/core/utility/functions/module-import-guard.ts","./src/app/core/utility/index.ts","./src/app/core/utility/models/event.ts","./src/app/core/utility/models/index.ts","./src/app/core/utility/services/index.ts","./src/app/core/utility/services/reference-generator.service.ts","./src/app/core/utility/utility.module.ts","./src/app/customers/components/add-edit-customer-modal/add-edit-customer-modal.component.ts","./src/app/customers/components/add-edit-customer-modal/add-edit-customer-modal.component.html","./src/app/estimates/components/estimates-container/estimates-container.component.ts","./src/app/estimates/components/estimates-container/estimates-container.component.html","./src/app/estimates/estimates-routing.module.ts","./src/app/estimates/estimates-table/estimates-table.component.ts","./src/app/estimates/estimates-table/estimates-table.component.html","./src/app/estimates/estimates.module.ts","./src/app/estimates/models/estimate-filter-options.ts","./src/app/estimates/models/import-estimate-data.service.ts","./src/app/estimates/services/estimates-service.ts","./src/app/home/components/eula-sla-modal/eula-sla-modal.component.ts","./src/app/home/components/eula-sla-modal/eula-sla-modal.component.html","./src/app/home/values/home-filter-headers.ts","./src/app/reports/models/date-picker-options.ts","./src/app/shared/comparators/scaffold-number-comparator.ts","./src/app/shared/components/add-edit-list-item-modal/add-edit-list-item-modal.component.ts","./src/app/shared/components/add-edit-list-item-modal/add-edit-list-item-modal.component.html","./src/app/shared/components/add-edit-staff-modal/add-edit-staff-modal.component.ts","./src/app/shared/components/add-edit-staff-modal/add-edit-staff-modal.component.html","./src/app/shared/components/add-edit-staff-rates-modal/add-edit-staff-rates-modal.component.ts","./src/app/shared/components/add-edit-staff-rates-modal/add-edit-staff-rates-modal.component.html","./src/app/shared/components/audio-player/audio-player.component.ts","./src/app/shared/components/audio-player/audio-player.component.html","./src/app/shared/components/browser-warning/browser-warning.component.ts","./src/app/shared/components/browser-warning/browser-warning.component.html","./src/app/shared/components/colour-coded-title/colour-coded-title.component.ts","./src/app/shared/components/colour-coded-title/colour-coded-title.component.html","./src/app/shared/components/date-picker/date-picker.component.ts","./src/app/shared/components/date-picker/date-picker.component.html","./src/app/shared/components/defect-types-chart/defect-types-chart.component.ts","./src/app/shared/components/defect-types-chart/defect-types-chart.component.html","./src/app/shared/components/dismantle-required/dismantle-required.component.ts","./src/app/shared/components/dismantle-required/dismantle-required.component.html","./src/app/shared/components/donut-chart/donut-chart.component.ts","./src/app/shared/components/donut-chart/donut-chart.component.html","./src/app/shared/components/dropdown/dropdown-settings.ts","./src/app/shared/components/dropdown/dropdown-texts.ts","./src/app/shared/components/dropdown/dropdown.component.ts","./src/app/shared/components/dropdown/dropdown.component.html","./src/app/shared/components/editable-list-table/editable-list-table.component.ts","./src/app/shared/components/editable-list-table/editable-list-table.component.html","./src/app/shared/components/export-csv/export-csv.component.ts","./src/app/shared/components/feature-flags/feature-flag.directive.ts","./src/app/shared/components/feature-flags/feature-flags.module.ts","./src/app/shared/components/feature-flags/feature-flags.token.ts","./src/app/shared/components/feature-flags/index.ts","./src/app/shared/components/form-group/form-group.component.ts","./src/app/shared/components/form-group/form-group.component.html","./src/app/shared/components/form/form.component.ts","./src/app/shared/components/handovers-extra-hire-chart/handovers-extra-hire-chart.component.ts","./src/app/shared/components/handovers-extra-hire-chart/handovers-extra-hire-chart.component.html","./src/app/shared/components/handovers-scaffold-status-chart/handovers-scaffold-status-chart.component.ts","./src/app/shared/components/handovers-scaffold-status-chart/handovers-scaffold-status-chart.component.html","./src/app/shared/components/help-panel/help-panel.component.ts","./src/app/shared/components/help-panel/help-panel.component.html","./src/app/shared/components/image-carousel/image-carousel.component.ts","./src/app/shared/components/image-carousel/image-carousel.component.html","./src/app/shared/components/image-modal/image-modal.component.ts","./src/app/shared/components/image-modal/image-modal.component.html","./src/app/shared/components/image-viewer/image-viewer.component.ts","./src/app/shared/components/image-viewer/image-viewer.component.html","./src/app/shared/components/initials-icon/initials-icon.component.ts","./src/app/shared/components/initials-icon/initials-icon.component.html","./src/app/shared/components/inspection-result/inspection-result.component.ts","./src/app/shared/components/inspection-result/inspection-result.component.html","./src/app/shared/components/limit-reached-modal/limit-reached-modal.component.ts","./src/app/shared/components/limit-reached-modal/limit-reached-modal.component.html","./src/app/shared/components/list-panel/list-panel.component.ts","./src/app/shared/components/list-panel/list-panel.component.html","./src/app/shared/components/loading-spinner/loading-spinner.ts","./src/app/shared/components/loading-spinner/loading-spinner.html","./src/app/shared/components/modal-dialog/modal-dialog.component.ts","./src/app/shared/components/modal-dialog/modal-dialog.component.html","./src/app/shared/components/modal-form-footer/modal-form-footer.component.ts","./src/app/shared/components/modal-form-footer/modal-form-footer.component.html","./src/app/shared/components/modal-form-header-component/modal-form-header.component.ts","./src/app/shared/components/modal-form-header-component/modal-form-header.component.html","./src/app/shared/components/multi-step-modal-form/multi-step-modal-form.component.ts","./src/app/shared/components/multi-step/multi-step.component.ts","./src/app/shared/components/multi-step/multi-step.component.html","./src/app/shared/components/one-day-inspection-chart/one-day-inspection-chart.component.ts","./src/app/shared/components/one-day-inspection-chart/one-day-inspection-chart.component.html","./src/app/shared/components/over-under/over-under.component.ts","./src/app/shared/components/over-under/over-under.component.html","./src/app/shared/components/places-input/places-input.component.ts","./src/app/shared/components/places-input/places-input.component.html","./src/app/shared/components/principal-contract/principal-contract.component.ts","./src/app/shared/components/principal-contract/principal-contract.component.html","./src/app/shared/components/print/print.component.ts","./src/app/shared/components/select-with-info/select-with-info.component.ts","./src/app/shared/components/select-with-info/select-with-info.component.html","./src/app/shared/components/seven-day-handover-chart/seven-day-handover-chart.component.ts","./src/app/shared/components/seven-day-handover-chart/seven-day-handover-chart.component.html","./src/app/shared/components/seven-day-inspection-chart/seven-day-inspection-chart.component.ts","./src/app/shared/components/seven-day-inspection-chart/seven-day-inspection-chart.component.html","./src/app/shared/components/seven-day-inspections-due-chart/seven-day-inspections-due-chart.component.ts","./src/app/shared/components/seven-day-inspections-due-chart/seven-day-inspections-due-chart.component.html","./src/app/shared/components/signatures-required/signatures-required.component.ts","./src/app/shared/components/signatures-required/signatures-required.component.html","./src/app/shared/components/signatures-svg/signatures-svg.component.ts","./src/app/shared/components/signatures-svg/signatures-svg.component.html","./src/app/shared/components/text-editor/text-editor.component.ts","./src/app/shared/components/text-editor/text-editor.component.html","./src/app/shared/components/toggle-button-panel/toggle-button-panel.component.ts","./src/app/shared/components/toggle-button-panel/toggle-button-panel.component.html","./src/app/shared/components/twelve-month-inspection-chart/twelve-month-inspection-chart.component.ts","./src/app/shared/components/twelve-month-inspection-chart/twelve-month-inspection-chart.component.html","./src/app/shared/components/video-player/video-player.component.ts","./src/app/shared/components/video-player/video-player.component.html","./src/app/shared/components/youtube/youtube.component.ts","./src/app/shared/components/youtube/youtube.component.html","./src/app/shared/directives/download-click.directive.ts","./src/app/shared/directives/dynamic-component.directive.ts","./src/app/shared/extensions/extensions.ts","./src/app/shared/extensions/sort.extension.ts","./src/app/shared/models/ss-modal-config.ts","./src/app/shared/pipes/datetime.pipe.ts","./src/app/shared/pipes/defect-results.pipe.ts","./src/app/shared/pipes/display-value.pipe.ts","./src/app/shared/pipes/field-type.pipe.ts","./src/app/shared/pipes/id-to-activity.pipe.ts","./src/app/shared/pipes/id-to-title.pipe.ts","./src/app/shared/pipes/remove-negative-symbol-pipe.ts","./src/app/shared/pipes/site-status.pipe.ts","./src/app/shared/regex/email-address.regex.ts","./src/app/shared/regex/file-extension.regex.ts","./src/app/shared/regex/file-name.regex.ts","./src/app/shared/regex/password.regex.ts","./src/app/shared/regex/quickId.regex.ts","./src/app/shared/services/activity-modal.service.ts","./src/app/shared/services/activity-report.service.ts","./src/app/shared/services/company-setting.service.ts","./src/app/shared/services/date.service.ts","./src/app/shared/services/loading-spinner.service.ts","./src/app/shared/services/similarity.service.ts","./src/app/shared/services/string-conversion.service.ts","./src/app/shared/services/window-scrolling.service.ts","./src/app/shared/shared.module.ts","./src/app/shared/validators/custom-validators.ts","./src/app/shared/validators/match-control-validator.ts","./src/app/shared/validators/must-not-exist.validator.ts","./src/app/shared/validators/scaffold-must-not-exist-validator.ts","./src/app/shared/validators/scaffold-number-incremental.validator.ts","./src/app/shared/validators/scaffold-number-suffix.validator.ts","./src/app/shared/values/button-style-enum.ts","./src/app/shared/values/cads-admin-id.ts","./src/app/shared/values/cladding-ids.ts","./src/app/shared/values/colours.ts","./src/app/shared/values/contact-type-ids.ts","./src/app/shared/values/contract-status-ids.ts","./src/app/shared/values/customer-status-ids.ts","./src/app/shared/values/dates.ts","./src/app/shared/values/design-type-ids.ts","./src/app/shared/values/diary-category-ids.ts","./src/app/shared/values/error-messages.ts","./src/app/shared/values/field-types.ts","./src/app/shared/values/file-values.ts","./src/app/shared/values/icons.ts","./src/app/shared/values/inspection-outcome-status-ids.ts","./src/app/shared/values/loading-limit-ids.ts","./src/app/shared/values/maps.ts","./src/app/shared/values/role-ids.ts","./src/app/shared/values/scaffold-status-ids.ts","./src/app/shared/values/site-status-ids.ts","./src/app/sites/components/agreed-rates/agreed-rates.component.ts","./src/app/sites/components/agreed-rates/agreed-rates.component.html","./src/app/sites/components/diary-type/diary-type.component.ts","./src/app/sites/components/diary-type/diary-type.component.html","./src/app/sites/components/handover-type/handover-type.component.ts","./src/app/sites/components/handover-type/handover-type.component.html","./src/app/sites/components/scaffold-inspection-state/scaffold-inspection-state.component.ts","./src/app/sites/components/scaffold-inspection-state/scaffold-inspection-state.component.html","./src/app/sites/components/site-camera/site-camera.component.ts","./src/app/sites/components/site-camera/site-camera.component.html","./src/app/sites/components/site-detail/contracts/add-edit-bcc-contact-modal/add-edit-bcc-contact-modal.component.ts","./src/app/sites/components/site-detail/contracts/add-edit-bcc-contact-modal/add-edit-bcc-contact-modal.component.html","./src/app/sites/components/site-detail/contracts/add-edit-company-contact-modal/add-edit-company-contact-modal.component.ts","./src/app/sites/components/site-detail/contracts/add-edit-company-contact-modal/add-edit-company-contact-modal.component.html","./src/app/sites/components/site-detail/contracts/add-edit-contract-contact-modal/add-edit-contract-contact-modal.component.ts","./src/app/sites/components/site-detail/contracts/add-edit-contract-contact-modal/add-edit-contract-contact-modal.component.html","./src/app/sites/components/site-detail/contracts/add-edit-contract-modal/add-edit-contract-modal.component.ts","./src/app/sites/components/site-detail/contracts/add-edit-contract-modal/add-edit-contract-modal.component.html","./src/app/sites/components/site-detail/contracts/add-me-as-contact-modal/add-me-as-contact-modal.component.ts","./src/app/sites/components/site-detail/contracts/add-me-as-contact-modal/add-me-as-contact-modal.component.html","./src/app/sites/components/site-detail/contracts/contracts-info-text/contracts-info-text.component.ts","./src/app/sites/components/site-detail/contracts/contracts-info-text/contracts-info-text.component.html","./src/app/sites/components/site-detail/contracts/inspection-status-modal/inspection-status-modal.component.ts","./src/app/sites/components/site-detail/contracts/inspection-status-modal/inspection-status-modal.component.html","./src/app/sites/components/site-detail/contracts/open-close-contract-modal/open-close-contract-modal.component.ts","./src/app/sites/components/site-detail/contracts/open-close-contract-modal/open-close-contract-modal.component.html","./src/app/sites/components/site-detail/contracts/site-company-contacts/site-company-contacts.component.ts","./src/app/sites/components/site-detail/contracts/site-company-contacts/site-company-contacts.component.html","./src/app/sites/components/site-detail/contracts/site-contract-contacts/site-contract-contacts.component.ts","./src/app/sites/components/site-detail/contracts/site-contract-contacts/site-contract-contacts.component.html","./src/app/sites/components/site-detail/contracts/site-contract/site-contract.component.ts","./src/app/sites/components/site-detail/contracts/site-contract/site-contract.component.html","./src/app/sites/components/site-detail/contracts/site-contracts-welcome/site-contracts-welcome.component.ts","./src/app/sites/components/site-detail/contracts/site-contracts-welcome/site-contracts-welcome.component.html","./src/app/sites/components/site-detail/contracts/site-contracts/site-contracts.component.ts","./src/app/sites/components/site-detail/contracts/site-contracts/site-contracts.component.html","./src/app/sites/components/site-detail/dashboard/site-dashboard-contract/site-dashboard-contract.component.ts","./src/app/sites/components/site-detail/dashboard/site-dashboard-contract/site-dashboard-contract.component.html","./src/app/sites/components/site-detail/dashboard/site-dashboard/site-dashboard.component.ts","./src/app/sites/components/site-detail/dashboard/site-dashboard/site-dashboard.component.html","./src/app/sites/components/site-detail/detail/add-edit-area-modal/add-edit-area-modal.component.ts","./src/app/sites/components/site-detail/detail/add-edit-area-modal/add-edit-area-modal.component.html","./src/app/sites/components/site-detail/detail/add-edit-site-staff-modal/add-edit-site-staff-modal.component.ts","./src/app/sites/components/site-detail/detail/add-edit-site-staff-modal/add-edit-site-staff-modal.component.html","./src/app/sites/components/site-detail/detail/site-detail-areas/site-detail-areas.component.ts","./src/app/sites/components/site-detail/detail/site-detail-areas/site-detail-areas.component.html","./src/app/sites/components/site-detail/detail/site-detail-overview/site-detail-overview.component.ts","./src/app/sites/components/site-detail/detail/site-detail-overview/site-detail-overview.component.html","./src/app/sites/components/site-detail/detail/site-detail-staff/site-detail-staff.component.ts","./src/app/sites/components/site-detail/detail/site-detail-staff/site-detail-staff.component.html","./src/app/sites/components/site-detail/detail/site-detail/site-detail.component.ts","./src/app/sites/components/site-detail/detail/site-detail/site-detail.component.html","./src/app/sites/components/site-detail/diary/add-diary-media-modal/add-diary-media-modal.component.ts","./src/app/sites/components/site-detail/diary/add-diary-media-modal/add-diary-media-modal.component.html","./src/app/sites/components/site-detail/diary/add-site-diary-modal/add-site-diary-modal.component.ts","./src/app/sites/components/site-detail/diary/add-site-diary-modal/add-site-diary-modal.component.html","./src/app/sites/components/site-detail/diary/delete-diary-media-modal/delete-diary-media-modal.component.ts","./src/app/sites/components/site-detail/diary/delete-diary-media-modal/delete-diary-media-modal.component.html","./src/app/sites/components/site-detail/diary/diary-categories/diary-categories.component.ts","./src/app/sites/components/site-detail/diary/diary-categories/diary-categories.component.html","./src/app/sites/components/site-detail/diary/diary-detail/diary-detail.component.ts","./src/app/sites/components/site-detail/diary/diary-detail/diary-detail.component.html","./src/app/sites/components/site-detail/diary/diary-list/diary-list.component.ts","./src/app/sites/components/site-detail/diary/diary-list/diary-list.component.html","./src/app/sites/components/site-detail/diary/diary-media-viewer-placeholder/diary-media-viewer-placeholder.component.ts","./src/app/sites/components/site-detail/diary/diary-media-viewer/diary-media-viewer.component.ts","./src/app/sites/components/site-detail/diary/diary-media-viewer/diary-media-viewer.component.html","./src/app/sites/components/site-detail/diary/rename-diary-media-modal/rename-diary-media-modal.component.ts","./src/app/sites/components/site-detail/diary/rename-diary-media-modal/rename-diary-media-modal.component.html","./src/app/sites/components/site-detail/handovers/handovers-list/handovers-list.component.ts","./src/app/sites/components/site-detail/handovers/handovers-list/handovers-list.component.html","./src/app/sites/components/site-detail/scaffolds/add-edit-scaffold-detail/add-edit-scaffold-detail.component.ts","./src/app/sites/components/site-detail/scaffolds/add-edit-scaffold-detail/add-edit-scaffold-detail.component.html","./src/app/sites/components/site-detail/scaffolds/add-edit-scaffold-modal/add-edit-scaffold-modal.component.ts","./src/app/sites/components/site-detail/scaffolds/add-edit-scaffold-modal/add-edit-scaffold-modal.component.html","./src/app/sites/components/site-detail/scaffolds/add-edit-scaffold-specification/add-edit-scaffold-specification.component.ts","./src/app/sites/components/site-detail/scaffolds/add-edit-scaffold-specification/add-edit-scaffold-specification.component.html","./src/app/sites/components/site-detail/scaffolds/defect-result/defect-result.component.ts","./src/app/sites/components/site-detail/scaffolds/defect-result/defect-result.component.html","./src/app/sites/components/site-detail/scaffolds/dismantle-card/dismantle-card.component.ts","./src/app/sites/components/site-detail/scaffolds/dismantle-card/dismantle-card.component.html","./src/app/sites/components/site-detail/scaffolds/dismantle-scaffold-modal/dismantle-scaffold-modal.component.ts","./src/app/sites/components/site-detail/scaffolds/dismantle-scaffold-modal/dismantle-scaffold-modal.component.html","./src/app/sites/components/site-detail/scaffolds/fix-scaffold-numbers-modal/fix-scaffold-numbers-modal.component.ts","./src/app/sites/components/site-detail/scaffolds/fix-scaffold-numbers-modal/fix-scaffold-numbers-modal.component.html","./src/app/sites/components/site-detail/scaffolds/group-scaffolds-modal/group-scaffolds-modal.component.ts","./src/app/sites/components/site-detail/scaffolds/group-scaffolds-modal/group-scaffolds-modal.component.html","./src/app/sites/components/site-detail/scaffolds/last-inspection/last-inspection.component.ts","./src/app/sites/components/site-detail/scaffolds/last-inspection/last-inspection.component.html","./src/app/sites/components/site-detail/scaffolds/off-hire-scaffold-modal/off-hire-scaffold-modal.component.ts","./src/app/sites/components/site-detail/scaffolds/off-hire-scaffold-modal/off-hire-scaffold-modal.component.html","./src/app/sites/components/site-detail/scaffolds/scaffold-detail/scaffold-detail.component.ts","./src/app/sites/components/site-detail/scaffolds/scaffold-detail/scaffold-detail.component.html","./src/app/sites/components/site-detail/scaffolds/scaffold-import-modal/import-spreadsheet/import-spreadsheet.ts","./src/app/sites/components/site-detail/scaffolds/scaffold-import-modal/import-spreadsheet/import-spreadsheet.html","./src/app/sites/components/site-detail/scaffolds/scaffold-import-modal/scaffold-import-modal.component.ts","./src/app/sites/components/site-detail/scaffolds/scaffold-import-modal/scaffold-import-modal.component.html","./src/app/sites/components/site-detail/scaffolds/scaffold-import-modal/select-contract/select-contract.ts","./src/app/sites/components/site-detail/scaffolds/scaffold-import-modal/select-contract/select-contract.html","./src/app/sites/components/site-detail/scaffolds/scaffold-import-modal/values/import-column-indexes.enum.ts","./src/app/sites/components/site-detail/scaffolds/scaffold-list/scaffold-list.component.ts","./src/app/sites/components/site-detail/scaffolds/scaffold-list/scaffold-list.component.html","./src/app/sites/components/site-detail/scaffolds/undismantle-scaffold-modal/undismantle-scaffold-modal.component.ts","./src/app/sites/components/site-detail/scaffolds/undismantle-scaffold-modal/undismantle-scaffold-modal.component.html","./src/app/sites/components/site-detail/site-detail-container/site-detail-container.component.ts","./src/app/sites/components/site-detail/site-detail-container/site-detail-container.component.html","./src/app/sites/components/site-import/site-import-contacts/site-import-contacts.component.ts","./src/app/sites/components/site-import/site-import-contacts/site-import-contacts.component.html","./src/app/sites/components/site-import/site-import-contract/site-import-contract.component.ts","./src/app/sites/components/site-import/site-import-contract/site-import-contract.component.html","./src/app/sites/components/site-import/site-import-modal/site-import-modal.component.ts","./src/app/sites/components/site-import/site-import-modal/site-import-modal.component.html","./src/app/sites/components/site-import/site-import-scaffolds/site-import-scaffolds.component.ts","./src/app/sites/components/site-import/site-import-scaffolds/site-import-scaffolds.component.html","./src/app/sites/components/site-import/site-import-site/site-import-site.component.ts","./src/app/sites/components/site-import/site-import-site/site-import-site.component.html","./src/app/sites/components/site-status/site-status.component.ts","./src/app/sites/components/site-status/site-status.component.html","./src/app/sites/components/site-stock/site-stock.component.ts","./src/app/sites/components/site-stock/site-stock.component.html","./src/app/sites/components/sites-list/add-edit-site-modal/add-edit-site-modal.component.ts","./src/app/sites/components/sites-list/add-edit-site-modal/add-edit-site-modal.component.html","./src/app/sites/components/sites-list/sites-list/sites-list.component.ts","./src/app/sites/components/sites-list/sites-list/sites-list.component.html","./src/app/sites/components/sites-section-container/sites-section-container.component.ts","./src/app/sites/components/sites-section-container/sites-section-container.component.html","./src/app/sites/guards/diary-detail.guard.ts","./src/app/sites/guards/no-site-contracts.guard.ts","./src/app/sites/models/add-edit-bcc-contact-modal-context.ts","./src/app/sites/models/add-edit-company-contact-modal-context.ts","./src/app/sites/models/add-edit-contract-contact-modal-context.ts","./src/app/sites/models/inspection-status-modal-context.ts","./src/app/sites/models/open-close-contract-modal-context.ts","./src/app/sites/models/site-import-modal-data.ts","./src/app/sites/models/site-import-scaffold.ts","./src/app/sites/resolvers/scaffold-detail.resolver.ts","./src/app/sites/resolvers/scaffold-diary-resolver.ts","./src/app/sites/resolvers/scaffold-timeline.resolver.ts","./src/app/sites/resolvers/site-scaffold-diary.resolver.ts","./src/app/sites/resolvers/site.resolver.ts","./src/app/sites/services/contract-inspection-status-query.service.ts","./src/app/sites/services/diary-query-service.ts","./src/app/sites/services/handover-type-service.ts","./src/app/sites/services/scaffold-detail-query-service.ts","./src/app/sites/services/scaffold-timeline-query-service.ts","./src/app/sites/services/scheduled-reports-start-generator.service.ts","./src/app/sites/services/site-detail-query.service.ts","./src/app/sites/services/site-scaffolds-query.service.ts","./src/app/sites/sites-routing.module.ts","./src/app/sites/sites.module.ts","./src/app/sites/values/claddings.ts","./src/app/sites/values/contracts-help-panel-data.ts","./src/app/sites/values/load-classes.ts","./src/app/sites/values/media-types.ts","./src/app/sites/values/quote-and-item-validation-status.enum.ts","./src/app/sites/values/site-import-scaffold-intro-steps.ts","./src/app/sites/values/table-headers.enum.ts","./src/app/timesheet/values/taskids-enum.ts","./src/environments/environment.stage.ts","./src/main.ts","./src/rxjs-imports.ts","./node_modules/moment-mini/locale/ sync ^\\.\\/.*$","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { SharedModule } from 'app/shared/shared.module';\r\nimport { ActivityTableComponent } from './components/activity-table/activity-table.component';\r\nimport { ActivityTabComponent } from './components/activity-tab/activity-tab.component';\r\nimport { SitesModule } from 'app/sites/sites.module';\r\nimport { CustomerApprovalImportModalComponent } from './modals/customer-approval-file-import/customer-approval-file-import.component';\r\nimport { IdToActivityPipe } from 'app/shared/pipes/id-to-activity.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n ActivityTabComponent, \r\n ActivityTableComponent, \r\n CustomerApprovalImportModalComponent\r\n ],\r\n imports: [\r\n CommonModule, \r\n NgxDatatableModule, \r\n SharedModule, \r\n SitesModule\r\n ],\r\n entryComponents: [\r\n CustomerApprovalImportModalComponent\r\n ],\r\n exports: [\r\n ActivityTabComponent, \r\n ActivityTableComponent\r\n ],\r\n providers: [\r\n IdToActivityPipe\r\n ]\r\n})\r\nexport class ActivityModule { }\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { LoggedInStaffService } from 'app/core/services/logged-in-staff-service';\r\nimport { SitesQueryService } from 'app/core/services/sites-query.service';\r\nimport { StaffsQueryService } from 'app/core/services/staffs-query.service';\r\nimport { LoadingSpinnerService } from 'app/shared/services/loading-spinner.service';\r\nimport { roleIds } from 'app/shared/values/role-ids';\r\nimport { flatMap, forEach, intersectionWith, isEqual, map, orderBy as _orderBy, uniqBy } from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { combineLatest, Observable, timer as observableTimer } from 'rxjs';\r\nimport { ActivitiesQuery, DiaryTypeEnum, ScaffoldEndpointService, StaffData, StaffDetailsWebAppData } from 'app/core/hub-api';\r\nimport { Activity } from '../../models/activity.model';\r\nimport { DatePickerOptions } from '../../../reports/models/date-picker-options';\r\nimport { DateService } from 'app/shared/services/date.service';\r\nimport { DropdownComponent } from 'app/shared/components/dropdown/dropdown.component';\r\nimport { datesDayjs } from 'app/shared/values/dates';\r\nimport { DatePickerSelectData } from 'app/shared/models/date-picker-select-data';\r\nimport { LoadingBarService } from '@ngx-loading-bar/core';\r\n\r\n/**\r\n * Activity Tab Component\r\n * this page contains the filters and the container structure for the activity tab\r\n *\r\n * @export\r\n * @class ActivityTabComponent\r\n * @implements {OnInit}\r\n * @implements {OnDestroy}\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-activity',\r\n templateUrl: './activity-tab.component.html',\r\n styleUrls: ['./activity-tab.component.scss']\r\n})\r\nexport class ActivityTabComponent implements OnInit, OnDestroy {\r\n @ViewChild('siteDropdown') siteDropdown: DropdownComponent;\r\n @ViewChild('activityDropdown') activityDropdownComponent: DropdownComponent;\r\n @ViewChild('staffDropdown') staffDropdown: DropdownComponent;\r\n /** Detects if page is loading */\r\n loading = true;\r\n /** Stores the selected staff */\r\n staff: StaffData[];\r\n /** Stores all staff */\r\n allStaff: StaffData[];\r\n /** Stores all staff */\r\n sites: any;\r\n /** Stores all activity types */\r\n activityType: Number[] = [];\r\n /** Feed data to the activity table */\r\n viewApiData: Activity[] = [];\r\n /** Stores if the table is going to auto refresh */\r\n refresh: boolean;\r\n /** Stores the maximum page size */\r\n pageSize = 250;\r\n /** Stores the default page number */\r\n pageNumber = 1;\r\n /** Stores date picker configuration */\r\n datePickerOptions = new DatePickerOptions;\r\n /** Activates or Deactivates the apply filters button */\r\n enableButton = true;\r\n /** Stores the sort by property */\r\n sortBy: string = null;\r\n /** Stores if the order of the table by ASC or DESC */\r\n isOrderByDesc = false;\r\n /** Stores the data for the activity dropdown */\r\n activityDropdownItems = [\r\n {\r\n name: 'Adaption',\r\n value: 15\r\n },\r\n {\r\n name: 'Diary',\r\n value: 1\r\n },\r\n {\r\n name: 'Dismantle',\r\n value: 3\r\n },\r\n {\r\n name: 'Handover',\r\n value: 5\r\n },\r\n {\r\n name: 'Re-Handover',\r\n value: 6\r\n },\r\n {\r\n name: 'Inspection',\r\n value: 2\r\n },\r\n {\r\n name: 'Inspection Follow Up actions',\r\n value: 10\r\n },\r\n {\r\n name: 'Inspection Remedial Actions',\r\n value: 9\r\n },\r\n {\r\n name: 'Full Off-Hire',\r\n value: 7\r\n },\r\n {\r\n name: 'Partial Off-Hire',\r\n value: 8\r\n },\r\n {\r\n name: 'Unsafe Scaffold Report',\r\n value: 11\r\n },\r\n {\r\n name: 'Variation',\r\n value: 4\r\n }\r\n ];\r\n /** Stores the currently logged in user */\r\n loggedInStaff: StaffDetailsWebAppData;\r\n /** Stores if the form values have changed */\r\n hasChanges = false;\r\n\r\n constructor(\r\n private dateService: DateService,\r\n private scaffoldEndpointService: ScaffoldEndpointService,\r\n private sitesQueryService: SitesQueryService,\r\n private staffsQueryService: StaffsQueryService,\r\n private changeDetector: ChangeDetectorRef,\r\n public loggedInStaffService: LoggedInStaffService,\r\n public loadingSpinner: LoadingSpinnerService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private loader: LoadingBarService\r\n ) { }\r\n\r\n activityForm = new UntypedFormGroup({\r\n activityType: new UntypedFormControl(),\r\n sitesForm: new UntypedFormControl(),\r\n timeAndDate: new UntypedFormControl(),\r\n staffForm: new UntypedFormControl()\r\n });\r\n\r\n /**\r\n * Initialises the component\r\n *\r\n * @memberof ActivityTabComponent\r\n */\r\n public ngOnInit(): void {\r\n this.setDefaultDateRange();\r\n this.generateActivityName();\r\n this.getFormControlsData();\r\n this.activityForm.valueChanges.subscribe(changes => this.onFormChanges(changes));\r\n // TODO: Pass the autoRefresh from settings - replace 5 with the settings, this is the time in minutes.\r\n this.autoRefresh(5).subscribe(() => {\r\n const pageSize = this.pageNumber * this.pageSize;\r\n this.generateActivityQuery(this.sortBy, 1, false, true, pageSize);\r\n });\r\n }\r\n\r\n /**\r\n * Subscribes to changes in the activity form and handles changes on the activity type dropdown, sites dropdown, staff dropdown, and datepicker.\r\n * Sets the `hasChanges` property to `true` if any changes are detected, and to `false` otherwise.\r\n * @private\r\n *\r\n * @memberof ActivityTabComponent\r\n */\r\n private onFormChanges(changes): void {\r\n this.enableButton = changes.timeAndDate ? true : false;\r\n this.changeDetector.detectChanges();\r\n // Handle changes on the activity type dropdown\r\n if (changes.ActivityType) {\r\n this.hasChanges = true;\r\n return;\r\n }\r\n\r\n // Handle changes on the sites dropdown\r\n if (changes.sitesForm) {\r\n this.hasChanges = true;\r\n return;\r\n }\r\n\r\n // Handle changes on the staff dropdown\r\n if (changes.staffForm) {\r\n this.hasChanges = true;\r\n return;\r\n }\r\n\r\n // Handle changes on the datepicker\r\n // as the default date range is last 24 hours, we need to check if the user has changed the date range\r\n if (!changes.timeAndDate || changes.timeAndDate && changes.timeAndDate.startDate !== datesDayjs.yesterday && changes.timeAndDate.endDate !== datesDayjs.endOfToday) {\r\n this.hasChanges = true;\r\n return;\r\n }\r\n this.hasChanges = false;\r\n }\r\n\r\n /**\r\n * Generates the activity names for the activity types dropdown\r\n *\r\n * @private\r\n * @memberof ActivityTabComponent\r\n */\r\n private generateActivityName(): void {\r\n for (const item in DiaryTypeEnum) {\r\n if (!isNaN(+item)) {\r\n this.activityType.push(+item);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Clears all filters\r\n * This function will only run if the user has made changes to the filters\r\n * this also avoids calling the API if the user has not made any changes\r\n *\r\n * @memberof ActivityTabComponent\r\n */\r\n public resetFilters(): void {\r\n if (!this.hasChanges) return;\r\n this.activityForm.get('sitesForm').setValue(null);\r\n this.activityForm.get('activityType').setValue(null);\r\n this.activityForm.get('staffForm').setValue(null);\r\n this.activityForm.get('timeAndDate').setValue(null);\r\n this.activityDropdownComponent.clearSelectedValue();\r\n this.staffDropdown.clearSelectedValue();\r\n this.siteDropdown.clearSelectedValue();\r\n this.viewApiData = [];\r\n this.setDefaultDateRange();\r\n this.getNewFormControlsData();\r\n }\r\n\r\n /**\r\n * Creates a clean form filter\r\n *\r\n * @param {string} [orderBy=null]\r\n * @param {number} [PageNumber=1]\r\n * @memberof ActivityTabComponent\r\n */\r\n public getNewFormControlsData(orderBy: string = null, PageNumber: number = 1): void {\r\n this.viewApiData = [];\r\n this.generateActivityQuery(orderBy, PageNumber);\r\n }\r\n\r\n /**\r\n * Builds the filters to be called later on query\r\n *\r\n * @private\r\n * @param {string} [orderBy=null] order by property name\r\n * @param {number} [PageNumber=1] current page number\r\n * @param {boolean} [loading=true] shows page loading\r\n * @param {number} [pageSize=this.pageSize] length of data visible per page\r\n * @returns {ActivitiesQuery}\r\n * @memberof ActivityTabComponent\r\n */\r\n private buildFilterObject(orderBy: string = null, PageNumber: number = 1, loading: boolean = true, pageSize: number = this.pageSize): ActivitiesQuery {\r\n this.loading = loading;\r\n const filterObject = new ActivitiesQuery();\r\n filterObject.ActivityType = this.activityForm.get('activityType').value;\r\n filterObject.StaffId = this.activityForm.get('staffForm').value;\r\n filterObject.SiteId = this.activityForm.get('sitesForm').value;\r\n filterObject.OrderBy = orderBy;\r\n filterObject.IsOrderByDesc = this.isOrderByDesc;\r\n const timeAndDate = this.activityForm.get('timeAndDate').value;\r\n if (timeAndDate) {\r\n filterObject.ActivityDateToTime = timeAndDate.endDate.toISOString();\r\n filterObject.ActivityDateFromTime = timeAndDate.startDate.toISOString();\r\n }\r\n filterObject.PageNumber = PageNumber;\r\n filterObject.PageSize = pageSize;\r\n return filterObject;\r\n }\r\n\r\n /**\r\n * Gets all data to load to the filters\r\n *\r\n * @private\r\n * @memberof ActivityTabComponent\r\n */\r\n private getFormControlsData(): void {\r\n const obs$ = combineLatest([\r\n this.sitesQueryService.sitesQuery(false),\r\n this.staffsQueryService.staffsQuery(false, false),\r\n this.loggedInStaffService.loggedInStaffQuery(false),\r\n this.configurationQueryService.configurationQuery(true)\r\n ]);\r\n obs$.subscribe(\r\n latest => {\r\n this.loggedInStaff = latest[2];\r\n const assignedSiteIds = map(this.loggedInStaff.Sites, s => s.SiteId);\r\n const assignedStaff = [];\r\n forEach(latest[1], s => {\r\n const staff = intersectionWith(s.Sites, assignedSiteIds, isEqual).map(x => s);\r\n if (staff.length) {\r\n return assignedStaff.push(staff);\r\n }\r\n });\r\n const isAdmin = this.loggedInStaff.RoleId === roleIds.admin;\r\n this.sites = _orderBy(isAdmin ? latest[0] : latest[0].filter(s => assignedSiteIds.includes(s.SiteId)), 'SiteName', 'asc');\r\n this.staff = _orderBy(isAdmin ? latest[1] : uniqBy(flatMap(assignedStaff), s => s.StaffId), 'ContactName', 'asc');\r\n this.allStaff = this.staff;\r\n },\r\n error => { },\r\n () => {\r\n this.changeDetector.detectChanges();\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Creates the activity tab query depending on the params\r\n *\r\n * @private\r\n * @param {string} [orderBy=null] order by property name\r\n * @param {number} [PageNumber=1] selected page number\r\n * @param {boolean} [loading=true] set page loading\r\n * @param {boolean} [autoRefresh=false] make the page to auto refresh\r\n * @param {number} [pageSize=this.pageSize] length of data visible per page\r\n * @memberof ActivityTabComponent\r\n */\r\n private generateActivityQuery(\r\n orderBy: string = null,\r\n PageNumber: number = 1,\r\n loading: boolean = true,\r\n autoRefresh: boolean = false,\r\n pageSize: number = this.pageSize\r\n ): void {\r\n const loadingBar = this.loader.useRef('global');\r\n loadingBar.start();\r\n this.scaffoldEndpointService.ActivitiesQuery(this.buildFilterObject(orderBy, PageNumber, loading, pageSize)).subscribe(\r\n latest => {\r\n this.viewApiData = latest.Results;\r\n this.refresh = autoRefresh;\r\n },\r\n error => {\r\n console.log(error);\r\n },\r\n () => {\r\n this.loading = false;\r\n loadingBar.complete();\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Sets the default period range in the date picker\r\n *\r\n * @private\r\n * @memberof ActivityTabComponent\r\n */\r\n private setDefaultDateRange(): void {\r\n const dateRange: DatePickerSelectData = {\r\n startDate: datesDayjs.yesterday,\r\n endDate: datesDayjs.endOfToday\r\n };\r\n this.activityForm.controls.timeAndDate.setValue(dateRange);\r\n }\r\n\r\n /**\r\n * Converts minutes to milliseconds\r\n * e.g. if user sets time to be 5 then it will convert those minutes into milliseconds\r\n *\r\n * @private\r\n * @param {number} time time in minutes\r\n * @returns {number}\r\n * @memberof ActivityTabComponent\r\n */\r\n private minutesToMilliseconds(time: number): number {\r\n return Math.floor(time * 60 * 1000);\r\n }\r\n\r\n /**\r\n * Sets the auto refresh time\r\n * e.g. if user sets userTime to be 5 then it will convert those minutes into milliseconds\r\n * and then set the refresh time to that period\r\n *\r\n * @param {number} [userTime] time in minutes\r\n * @returns {Observable}\r\n * @memberof ActivityTabComponent\r\n */\r\n public autoRefresh(userTime?: number): Observable {\r\n return observableTimer(0, this.minutesToMilliseconds(userTime));\r\n }\r\n\r\n /**\r\n * Sorts the table by selected column\r\n * (Used on UI only)\r\n *\r\n * @param {*} event DOM event\r\n * @returns {void}\r\n * @memberof ActivityTabComponent\r\n */\r\n public sortApi(event): void {\r\n this.sortBy = event;\r\n this.isOrderByDesc = !this.isOrderByDesc;\r\n this.generateActivityQuery(this.sortBy, 1, true, true);\r\n }\r\n\r\n /**\r\n * Updates the data as the user scrolls\r\n * jumps to next page if required\r\n *\r\n * @param {number} bufferedRecords records to be scrolled\r\n * @returns {void}\r\n * @memberof ActivityTabComponent\r\n */\r\n public updateView(bufferedRecords: number): void {\r\n if (!bufferedRecords || bufferedRecords > 100) return;\r\n const nextPageNumber = Math.floor(this.viewApiData.length / this.pageSize) + 1;\r\n if (this.pageNumber >= nextPageNumber) return;\r\n this.pageNumber = nextPageNumber;\r\n this.generateActivityQuery(this.sortBy, nextPageNumber, false, false);\r\n }\r\n\r\n /**\r\n * Detects when the selected site has changed and sets the associated staff\r\n *\r\n * @param {string} siteId\r\n * @returns {void}\r\n * @memberof ApplicationForPaymentFiltersComponent\r\n */\r\n onSelectedSiteChanged(siteId: string): void {\r\n this.activityForm.controls.sitesForm.setValue(siteId);\r\n this.staff = !siteId ? this.allStaff : this.staff.filter(s => s.Sites.includes(siteId));\r\n }\r\n\r\n /**\r\n * Detects when the selected activity has changed\r\n *\r\n * @param {string[]} activityIds\r\n * @returns {void}\r\n * @memberof ApplicationForPaymentFiltersComponent\r\n */\r\n onSelectedActivityChanged(activityIds: string[]): void {\r\n this.activityForm.controls.activityType.setValue(activityIds);\r\n }\r\n\r\n /**\r\n * Detects when the dates are selected by the user\r\n *\r\n * @param {*} dates range of dates\r\n * @memberof ActivityTabComponent\r\n */\r\n onDateRangeSelected(dates: any): void {\r\n // detects if the date range was cleared and sets the date to null\r\n if (!dates.startDate || !dates.endDate) return this.activityForm.controls.timeAndDate.setValue(null);\r\n this.activityForm.controls.timeAndDate.setValue(dates);\r\n }\r\n\r\n /**\r\n * Detects when the selected staff has changed\r\n *\r\n * @param {string[]} staffIds\r\n * @returns {void}\r\n * @memberof ApplicationForPaymentFiltersComponent\r\n */\r\n onSelectedStaffChanged(staffIds: string[]): void {\r\n this.activityForm.controls.staffForm.setValue(staffIds);\r\n }\r\n\r\n /**\r\n * Required by the AutoUnsubscribe\r\n *\r\n * @memberof ActivityTabComponent\r\n */\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n

Activity

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n A date\r\n range is required\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { ActivityModalService } from 'app/shared/services/activity-modal.service';\r\nimport { slice as _slice } from 'lodash';\r\nimport { Activity } from '../../models/activity.model';\r\n@Component({\r\n selector: 'hub-activity-table',\r\n templateUrl: './activity-table.component.html',\r\n styleUrls: ['./activity-table.component.scss']\r\n})\r\nexport class ActivityTableComponent implements OnInit, OnChanges {\r\n @Input()\r\n viewApiData: Activity[];\r\n @Input()\r\n refresh: boolean;\r\n @Output() sortActivity = new EventEmitter();\r\n @Output() bufferedRecords: EventEmitter = new EventEmitter();\r\n displayData = [];\r\n startNum = 0;\r\n noResults = false;\r\n loading = false;\r\n\r\n columnHeaders: any[] = [\r\n {\r\n name: 'Name',\r\n value: 'StaffName'\r\n },\r\n {\r\n name: 'Time',\r\n value: 'ActivityDateTime'\r\n },\r\n {\r\n name: 'Sites',\r\n value: 'SiteName'\r\n },\r\n {\r\n name: 'Customer',\r\n value: 'CustomerName'\r\n },\r\n {\r\n name: 'Scaffold',\r\n value: 'ScaffoldNumber'\r\n },\r\n {\r\n name: 'Area',\r\n value: 'Area'\r\n },\r\n {\r\n name: 'Activity',\r\n value: 'ActivityType'\r\n },\r\n {\r\n name: 'Status',\r\n value: 'Status'\r\n }\r\n ];\r\n constructor(private activityModal: ActivityModalService) { }\r\n\r\n ngOnInit(): void {\r\n this.activityModal.loading.subscribe(result => {\r\n this.loading = result;\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const apiData = changes.viewApiData.currentValue;\r\n if (!Array.isArray(apiData) || apiData.length === 0) {\r\n this.noResults = true;\r\n return;\r\n }\r\n\r\n this.startNum = 0;\r\n this.displayData = [];\r\n if (this.refresh) {\r\n this.displayData = apiData;\r\n } else {\r\n this.displayData.push(..._slice(apiData, this.startNum, (this.startNum += 25)));\r\n }\r\n\r\n this.noResults = false;\r\n }\r\n\r\n scaffoldSubTitle(name: string, description: string): string {\r\n const retString = name + ', ' + description;\r\n return retString.trim().replace(/(^,)|(,$)/g, '');\r\n }\r\n\r\n loadMore(): void {\r\n this.bufferedRecords.emit((this.viewApiData.length - this.displayData.length));\r\n if (!Array.isArray(this.viewApiData) || this.displayData.length >= this.viewApiData.length) return;\r\n const numberToLoad = Math.min(this.viewApiData.length, 25);\r\n this.displayData.push(..._slice(this.viewApiData, this.startNum, (this.startNum += numberToLoad)));\r\n }\r\n\r\n sorting(event): any {\r\n if (event !== 'ActivityType' && event !== 'Status') {\r\n this.sortActivity.emit(event);\r\n }\r\n }\r\n\r\n openModal(activityType: number, activityTypeId: string, siteReference: string): void {\r\n this.loading = true;\r\n this.activityModal.openActivityModal(activityType, activityTypeId, siteReference);\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ headers?.name }}
\r\n {{ data?.StaffName }}\r\n {{ data?.ActivityDateTime | date: 'MMM dd, yyy - hh:mm a' }}{{ data?.SiteName }} ({{ data?.SiteReference }})\r\n {{ data?.CustomerName }} ({{ data?.CustomerReference }})\r\n \r\n \r\n {{data?.ScaffoldNumber}}\r\n {{scaffoldSubTitle(data?.ScaffoldName,data?.ScaffoldDescription)}}\r\n \r\n {{data?.Area}}\r\n {{ (data?.ActivityType |\r\n idToActivity: false).text }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

No Results Found

\r\n

Use the filters on the top of the page to make a new search.

\r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ActivityReportService } from 'app/shared/services/activity-report.service';\r\n\r\n@Component({\r\n selector: 'hub-download-report-button',\r\n templateUrl: './download-report-button.component.html',\r\n styleUrls: ['./download-report-button.component.scss']\r\n})\r\nexport class DownloadReportButtonComponent implements OnInit {\r\n @Input() ActivityType: number;\r\n @Input() ActivityDetail: {};\r\n @Input() ID: string;\r\n reportLoading: boolean;\r\n constructor(private activityReportService: ActivityReportService) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public downloadReport(): void {\r\n this.reportLoading = true;\r\n this.activityReportService.generateReport(this.ActivityType, this.ID, this.ActivityDetail).subscribe(() => (this.reportLoading = false));\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CustomerApprovalModalContext } from 'app/activity/models/customer-approval-modal-context.model';\r\nimport { CustomerCommandService } from 'app/core/hub-api';\r\nimport { forEach as _forEach } from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { FileUploadService } from 'app/core/services/file-upload-service';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { LocalStorageService } from 'angular-web-storage';\r\nimport { CompanySettingsService } from 'app/shared/services/company-setting.service';\r\n\r\n@Component({\r\n selector: 'hub-customer-approval-file-import-modal',\r\n templateUrl: './customer-approval-file-import.component.html',\r\n styleUrls: ['./customer-approval-file-import.component.scss']\r\n})\r\n\r\nexport class CustomerApprovalImportModalComponent extends FormComponent implements OnInit {\r\n form: any;\r\n validationMessages = {};\r\n context: Partial;\r\n file: File;\r\n reader: FileReader;\r\n private fileMaxSizeMB = 50;\r\n private fileMaxCharacter = 63; // maximum character for COVI file name is 63\r\n errorMessage: string;\r\n contactNames: any[];\r\n handoverId: string;\r\n customerId: string;\r\n clientId: string;\r\n contractContactId: string;\r\n data: any;\r\n saveInProgress: boolean;\r\n\r\n errors = {\r\n problemLoadingFile: 'There has been a problem loading the file',\r\n noFileSelected: 'Please select a file.',\r\n fileSizeExceeded: `The file exceeds the ${this.fileMaxSizeMB} MB size limit. Please choose a smaller file.`,\r\n customerRequired: 'Please select a customer.'\r\n };\r\n private coviPrefix = 'covi-';\r\n customerReq: boolean;\r\n firstload = true;\r\n\r\n constructor(\r\n public customerCommandService: CustomerCommandService,\r\n private fileUploadService: FileUploadService,\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService,\r\n private companySettingsService: CompanySettingsService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.context.dialogClass = 'modal-dialog modal-lg';\r\n this.contactNames = this.getContactNames(this.context.Contracts);\r\n this.handoverId = this.context.HandoverId;\r\n this.customerId = this.context.CustomerId;\r\n this.clientId = this.companySettingsService.getCompanyId();\r\n this.reader = new FileReader();\r\n this.reader.onload = e => {\r\n try {\r\n this.data = (e.target as any).result;\r\n if (this.data.length === 0) {\r\n throw new Error();\r\n }\r\n } catch (error) {\r\n this.errorMessage = this.errors.problemLoadingFile;\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Converts bytes into megabytes\r\n * (requires the values to be sent in bytes and returns in megabytes)\r\n * Defaults the decimals to 2\r\n *\r\n * @param {number} bytes\r\n * @param {number} roundTo\r\n * @returns {number}\r\n * @memberof CustomerApprovalImportModalComponent\r\n */\r\n private bytesToMB(bytes: number, roundTo?: number): number {\r\n if (!roundTo) { roundTo = 2; }\r\n const converted = Number(bytes / Math.pow(1024, 2));\r\n return Number(roundTo ? converted.toFixed(roundTo) : converted);\r\n }\r\n\r\n /**\r\n * Validates the file and returns the correct error message\r\n * Detects if there is a file\r\n * Detects if the file size matches the max limit on (fileMaxSizeMB)\r\n *\r\n * @returns {string}\r\n * @memberof CustomerApprovalImportModalComponent\r\n */\r\n fileValidation(): string {\r\n this.errorMessage = null;\r\n // No file was selected.\r\n if (!this.file) {\r\n this.errorMessage = this.errors.noFileSelected;\r\n }\r\n if (this.file && this.bytesToMB(this.file.size) > this.fileMaxSizeMB) {\r\n this.errorMessage = this.errors.fileSizeExceeded;\r\n }\r\n return this.errorMessage;\r\n }\r\n\r\n /**\r\n * Gets the selected file and checks for validation\r\n *\r\n * @param {Event} event\r\n * @memberof CustomerApprovalImportModalComponent\r\n */\r\n onFileSelected(event: Event): void {\r\n this.errorMessage = undefined;\r\n this.file = (event.target as any).files[0];\r\n if (this.file) {\r\n this.reader.readAsBinaryString(this.file);\r\n }\r\n this.fileValidation();\r\n }\r\n\r\n\r\n /**\r\n * Gets the selected customer id\r\n *\r\n * @param {Event} event\r\n * @memberof CustomerApprovalImportModalComponent\r\n */\r\n onCustomerSelected(event: Event): void {\r\n this.contractContactId = (event.target as any).value;\r\n }\r\n\r\n /**\r\n * calls onSubmit method when the attachment is filled and saved\r\n *\r\n * @returns {string}\r\n * @memberof CustomerApprovalImportModalComponent\r\n */\r\n onSubmit(): string {\r\n this.firstload = false;\r\n if (this.fileValidation() == null && this.contractContactId) {\r\n this.saveInProgress = true;\r\n const newFileName = this.getFileName();\r\n const path = `Handover/${this.handoverId}/contact/${this.contractContactId}/${newFileName}`;\r\n const command: any = {\r\n CustomerId: this.customerId,\r\n HandoverId: this.handoverId,\r\n CustomerAttachment: {\r\n BlobPath: path,\r\n When: moment().toISOString(),\r\n ContractContactId: this.contractContactId,\r\n FileName: newFileName\r\n }\r\n };\r\n this.fileUploadService.uploadFile(this.file, path);\r\n this.customerCommandService.CreateCustomerApprovalWebConsoleCommand(command).subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalRef.hide();\r\n });\r\n return newFileName;\r\n }\r\n }\r\n\r\n /**\r\n * Gets new File name after trimming the file name with 63 characters\r\n *\r\n * @private\r\n * @returns {string}\r\n * @memberof CustomerApprovalImportModalComponent\r\n */\r\n private getFileName(): string {\r\n const fileExtension = this.file.name.split('.').pop().toLowerCase();\r\n const fileName = this.file.name.split('.').slice(0, -1).join('.');\r\n const maxChars = this.fileMaxCharacter - this.coviPrefix.length - fileExtension.length - 1; // (-1 for dot)\r\n const fileNameSized = fileName.substring(0, maxChars);\r\n return `${this.coviPrefix}${fileNameSized}.${fileExtension}`;\r\n }\r\n\r\n /**\r\n * Gets ContactName from ContractContacts\r\n *\r\n * @param {*} contractContacts\r\n * @returns {string[]}\r\n * @memberof CustomerApprovalImportModalComponent\r\n */\r\n getContactNames(contractContacts): string[] {\r\n const arrayOfString = [];\r\n _forEach(contractContacts, contractContact => {\r\n arrayOfString.push({\r\n id: contractContact.ContractContactId,\r\n value: contractContact.ContactName\r\n });\r\n });\r\n return arrayOfString;\r\n }\r\n}\r\n","
\r\n
\r\n

Attach customer approval file

\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{errors.customerRequired}}\r\n
\r\n\r\n
\r\n \r\n Browse…\r\n \r\n \r\n No file selected\r\n {{file.name}}\r\n
\r\n \r\n {{errorMessage}}\r\n
\r\n * Denotes a required field\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivityModalContext } from 'app/activity/models/activity-modal-context.model';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { DiaryActivityDetails, DiaryDataTypeEnum, SiteWebAppData } from 'app/core/hub-api';\r\nimport { colors } from 'app/shared/values/colours';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { LoadingSpinnerService } from 'app/shared/services/loading-spinner.service';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { SiteDetailQueryService } from 'app/sites/services/site-detail-query.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-diary-view',\r\n templateUrl: './diary-view.component.html',\r\n styleUrls: ['./diary-view.component.scss']\r\n})\r\nexport class DiaryViewComponent implements OnInit, OnDestroy {\r\n ActivityTypeId: string;\r\n SiteReference: string;\r\n ActivityType: number;\r\n DiaryCategory: string;\r\n ActivityDetail: DiaryActivityDetails;\r\n percentageStandingData: number[];\r\n percentageStandingColors: string[];\r\n isSiteDiary: boolean;\r\n currentSite: SiteWebAppData;\r\n context: Partial;\r\n\r\n constructor(\r\n private configurationQueryService: ConfigurationQueryService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private loadingSpinner: LoadingSpinnerService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private bsModalRef: BsModalRef,\r\n public modalService: BsModalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n // this.context.dialogClass = 'modal-dialog modal-lg';\r\n this.ActivityType = this.context.ActivityType;\r\n this.SiteReference = this.context.Site.SiteReference;\r\n this.ActivityDetail = this.context.ActivityDetail[0];\r\n this.percentageStandingData = [this.ActivityDetail.PercentageStanding, 100 - this.ActivityDetail.PercentageStanding];\r\n this.percentageStandingColors = [colors.positive, colors.lightGrey];\r\n this.isSiteDiary = !this.ActivityDetail.ScaffoldId;\r\n\r\n this.siteDetailQueryService.siteDetailQuery(false, this.SiteReference)\r\n .subscribe((site) => {\r\n this.currentSite = site;\r\n });\r\n\r\n this.configurationQueryService.configurationQuery(true).subscribe(res => {\r\n this.DiaryCategory = res.DiaryCategories[this.ActivityDetail.DiaryCategoryId].Title;\r\n });\r\n }\r\n\r\n dismiss(): void {\r\n this.modalService.setDismissReason(null);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n goToDetails(): void {\r\n this.loadingSpinner.show();\r\n this.bsModalRef.hide();\r\n const scaffoldOrSiteId = this.getId();\r\n const diaryDataType = this.isSiteDiary ? DiaryDataTypeEnum.SiteDiary : DiaryDataTypeEnum.ScaffoldDiary;\r\n this.router.navigate([`/sites/${this.SiteReference}/diary/${this.ActivityDetail.ActivityId}/${diaryDataType}/${scaffoldOrSiteId}`], { relativeTo: this.route });\r\n }\r\n\r\n\r\n /**\r\n * Gets the site or scaffold id depending if it is a site diary or scaffold diary\r\n *\r\n * @returns {string}\r\n * @memberof DiaryViewComponent\r\n */\r\n getId(): string {\r\n return (this.isSiteDiary) ? this.currentSite.SiteId : this.ActivityDetail.ScaffoldId;\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n

\r\n {{ ActivityDetail?.SiteDetails.CustomerName }} - {{\r\n ActivityDetail?.SiteDetails.SiteName }}\r\n ({{ ActivityDetail?.ScaffoldDetails.ScaffoldName }})\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Site: {{ context.Site.SiteName }} ({{SiteReference}})
  • \r\n
  • Address: {{ context.Site.SiteAddress }}
  • \r\n
  • Customer: {{ ActivityDetail?.SiteDetails.CustomerName }}\r\n
  • \r\n
  • Scaffold: {{\r\n ActivityDetail?.ScaffoldDetails.ScaffoldName }}
  • \r\n
  • Standing Tonnage: \r\n {{ ActivityDetail?.ScaffoldDetails.StandingTonnage | number:'.1-2' }}
  • \r\n
  • \r\n Staff Name: {{ ActivityDetail?.OwnerName }}\r\n ({{ ActivityDetail?.StaffCompanyPosition }})\r\n
  • \r\n
  • Date: {{ ActivityDetail?.ActivityDateTime | date: 'MMM dd, yyy' }}
  • \r\n
  • Time: {{ ActivityDetail?.ActivityDateTime | date: 'hh:mm a' }}
  • \r\n
  • Category: {{ DiaryCategory }}
  • \r\n
      \r\n
    • {{ ActivityDetail?.ImagesCount }}
    • \r\n
    • {{ ActivityDetail?.AudiosCount }}
    • \r\n
    • {{ ActivityDetail?.VideosCount }}
    • \r\n
    • {{ ActivityDetail?.TranscriptionsCount }}
    • \r\n
    • {{ ActivityDetail?.PDFCount }}
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
Scaffold Standing
\r\n \r\n \r\n

{{ ActivityDetail?.PercentageStanding }}%

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Notes: {{ ActivityDetail?.Notes }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivityModalContext } from 'app/activity/models/activity-modal-context.model';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-dismantle-view',\r\n templateUrl: './dismantle-view.component.html',\r\n styleUrls: ['./dismantle-view.component.scss']\r\n})\r\nexport class DismantleViewComponent implements OnInit {\r\n ActivityType: Number;\r\n ActivityDetail: any;\r\n SiteReference: string;\r\n dismantleImages: any;\r\n context: Partial;\r\n\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.ActivityType = this.context.ActivityType;\r\n this.ActivityDetail = this.context.ActivityDetail[0];\r\n this.SiteReference = this.context.Site.SiteReference;\r\n this.dismantleImages = Object.keys(this.ActivityDetail.DismantleData.MediaUrls).length ? this.ActivityDetail.DismantleData.MediaUrls : '';\r\n }\r\n\r\n dismiss(): void {\r\n this.modalService.setDismissReason(null);\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","
\r\n
\r\n

\r\n {{ ActivityDetail?.SiteDetails.CustomerName }} - {{ ActivityDetail?.SiteDetails.SiteName }} ({{ ActivityDetail?.ScaffoldDetails.ScaffoldName }})\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Site: {{ ActivityDetail?.SiteDetails.SiteName }} ({{ SiteReference }})
  • \r\n
  • Address: {{ ActivityDetail?.SiteDetails.SiteAddress }}
  • \r\n
  • Customer: {{ ActivityDetail?.SiteDetails.CustomerName }}
  • \r\n
  • Area: {{ ActivityDetail?.ScaffoldDetails.SiteAreaName }}
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • Scaffold: {{ ActivityDetail?.ScaffoldDetails.ScaffoldName }}
  • \r\n
  • Standing Tonnage: {{ ActivityDetail?.ScaffoldDetails.StandingTonnage | number:'.1-2' }}
  • \r\n
  • \r\n Scaffold Description:\r\n {{ ActivityDetail?.ScaffoldDescription }}\r\n
  • \r\n
  • Date: {{ ActivityDetail?.ActivityDateTime | date: 'MMM dd, yyy' }}
  • \r\n
  • Time: {{ ActivityDetail?.ActivityDateTime | date: 'hh:mm a' }}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Notes: {{ ActivityDetail?.DismantleData.Notes }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Dismantled By

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Staff: \r\n {{ ActivityDetail?.DismantleData.OwnerName }}\r\n ({{ ActivityDetail?.DismantleData.StaffCompanyPosition }})\r\n
\r\n
\r\n Date: \r\n {{ ActivityDetail?.DismantleData.When | date: 'MMM dd, yyy - hh:mm a' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivityModalContext } from 'app/activity/models/activity-modal-context.model';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { StaffsQueryService } from 'app/core/services/staffs-query.service';\r\nimport { uniqBy as _uniqBy, flatMap as _flatMap, forEach as _forEach } from 'lodash';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { CustomerApprovalImportModalComponent } from '../customer-approval-file-import/customer-approval-file-import.component';\r\nimport { FileUploadService } from 'app/core/services/file-upload-service';\r\nimport { ContractData } from 'app/core/hub-api';\r\nimport { contactTypeIds } from 'app/shared/values/contact-type-ids';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\n\r\n@AutoUnsubscribe()\r\n// TODO: [SSE-440] Add AutoUnsubscribe when on 4.7\r\n@Component({\r\n selector: 'hub-handover-view',\r\n templateUrl: './handover-view.component.html',\r\n styleUrls: ['./handover-view.component.scss']\r\n})\r\nexport class HandoverViewComponent implements OnInit, OnDestroy {\r\n ActivityType: number;\r\n ActivityDetail: any;\r\n RequestedBy: string;\r\n HandoverDetails = [];\r\n SiteReference: string;\r\n staffName: {};\r\n staffCompanyPosition: string;\r\n customerContact: string;\r\n customerContactId: string;\r\n fileName: string;\r\n fileAttachmentDate: any;\r\n risks: any[];\r\n handoverRiskReasons: any;\r\n handoverRiskTypes: any;\r\n scaffoldTitle: { name: string; other: any };\r\n reportLoading: boolean;\r\n activeContract: ContractData;\r\n context: Partial;\r\n\r\n constructor(\r\n private configurationQueryService: ConfigurationQueryService,\r\n private staffsQueryService: StaffsQueryService,\r\n private fileUploadService: FileUploadService,\r\n private bsModalRef: BsModalRef,\r\n public modalService: BsModalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.context.dialogClass = 'modal-dialog modal-lg';\r\n this.ActivityType = this.context.ActivityType;\r\n this.ActivityDetail = this.context.ActivityDetail[0];\r\n this.activeContract = this.context.Site.Contracts.find(\r\n siteContract => {\r\n return (\r\n siteContract.ContractReference ===\r\n this.ActivityDetail.SiteDetails.ContractReference\r\n );\r\n }\r\n );\r\n this.SiteReference = this.context.Site.SiteReference;\r\n this.customerContact = this.getCustomerContact();\r\n this.customerContactId = this.getCustomerContactId();\r\n // sliced \"covi-\" from the filename eg. covi-file.pdf, then the filename would be file.pdf in UI\r\n this.fileName = this.ActivityDetail.CustomerAttachment.length > 0 ? this.ActivityDetail.CustomerAttachment[0].FileName.slice(5) : undefined;\r\n this.fileAttachmentDate = this.ActivityDetail.CustomerAttachment.length > 0 ? this.ActivityDetail.CustomerAttachment[0].When : undefined;\r\n this.generateHandoverDetails();\r\n this.getStaffNames();\r\n this.risks = _flatMap(this.ActivityDetail.IdentifiedRisks);\r\n }\r\n\r\n getRiskReason(riskReasonId): any {\r\n if (!this.handoverRiskReasons) return null;\r\n return this.handoverRiskReasons[riskReasonId] ? this.handoverRiskReasons[riskReasonId] : null;\r\n }\r\n\r\n getRiskType(riskTypeId): any {\r\n if (!this.handoverRiskTypes) return null;\r\n return this.handoverRiskTypes[riskTypeId] ? this.handoverRiskTypes[riskTypeId] : null;\r\n }\r\n\r\n dismiss(): void {\r\n this.modalService.setDismissReason(null);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n private getStaffNames(): any {\r\n this.staffsQueryService.staffsQuery(false).subscribe(res => {\r\n this.staffName =\r\n this.ActivityDetail && this.ActivityDetail.StaffSignature\r\n ? _flatMap(res).filter(s => s.StaffId === this.ActivityDetail.StaffSignature.StaffId)[0].ContactName\r\n : '';\r\n this.staffCompanyPosition = \r\n this.ActivityDetail && this.ActivityDetail.StaffSignature\r\n ? _flatMap(res).filter(s => s.StaffId === this.ActivityDetail.StaffSignature.StaffId)[0].CompanyPosition\r\n : '';\r\n });\r\n }\r\n\r\n getImageArray(media): string[] {\r\n if (Object.keys(media).length) {\r\n const keys = [];\r\n _forEach(media, m => {\r\n keys.push(m);\r\n });\r\n return keys;\r\n }\r\n return;\r\n }\r\n\r\n /**\r\n * Opens a modal which uploads files\r\n *\r\n * @memberof HandoverViewComponent\r\n */\r\n uploadFile(): void {\r\n const context = {\r\n Contracts: this.getContractContacts(),\r\n HandoverId: this.ActivityDetail.HandoverId,\r\n CustomerId: this.ActivityDetail.CustomerId\r\n };\r\n this.modalService.show(CustomerApprovalImportModalComponent, SSModalConfig.generate(context)).onHide.subscribe(\r\n // Here the component subscribes to when the modal is closed\r\n res => {\r\n this.fileName = res as string;\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Downloads Customer Attachment files\r\n *\r\n * @memberof HandoverViewComponent\r\n */\r\n downloadFile(): void {\r\n const path = `Handover/${this.ActivityDetail.HandoverId}/contact/${this.customerContactId}/covi-${this.fileName}`;\r\n this.fileUploadService.downloadFile(this.fileName, path);\r\n }\r\n\r\n private generateHandoverDetails(): any {\r\n this.configurationQueryService.configurationQuery(true).subscribe(res => {\r\n const scaffold = this.ActivityDetail.Scaffolds.find(s => {\r\n return s.ScaffoldNumber === this.ActivityDetail.ScaffoldDetails.ScaffoldName;\r\n });\r\n this.handoverRiskTypes = res.HandoverRiskTypes;\r\n this.handoverRiskReasons = res.HandoverRiskReasons;\r\n if (!scaffold || !scaffold.ScaffoldSpecification) {\r\n return;\r\n }\r\n const scaffoldSpec = scaffold.ScaffoldSpecification;\r\n this.HandoverDetails.push(\r\n {\r\n name: 'Design No:',\r\n value: scaffoldSpec.DesignTypeId ? res.DesignTypes[scaffoldSpec.DesignTypeId].Title : null,\r\n other: scaffoldSpec.DesignTypeFurtherInformation\r\n },\r\n {\r\n name: 'Quote No:',\r\n value: scaffoldSpec.QuoteNumber\r\n },\r\n {\r\n name: 'Item No:',\r\n value: scaffoldSpec.QuoteItemNumber\r\n },\r\n {\r\n name: 'Item Name:',\r\n value: scaffoldSpec.QuoteItemName\r\n },\r\n {\r\n name: 'Loading:',\r\n value: scaffoldSpec.LoadingLimitId ? res.LoadingLimits[scaffoldSpec.LoadingLimitId].Title : null,\r\n other: scaffoldSpec.LoadingLimitFurtherInformation\r\n },\r\n {\r\n name: 'Cladding:',\r\n value: scaffoldSpec.MethodOfCladdingId ? res.MethodOfCladdings[scaffoldSpec.MethodOfCladdingId].Title : null,\r\n other: scaffoldSpec.MethodOfCladdingFurtherInformation\r\n },\r\n {\r\n name: 'Ties:',\r\n value: scaffoldSpec.MethodOfTyingId ? res.MethodOfTyings[scaffoldSpec.MethodOfTyingId].Title : null,\r\n other: scaffoldSpec.MethodOfTyingFurtherInformation\r\n }\r\n );\r\n\r\n this.scaffoldTitle = {\r\n name: scaffoldSpec.ScaffoldTypeId ? res.ScaffoldTypes[scaffoldSpec.ScaffoldTypeId].Title : null,\r\n other: scaffoldSpec.ScaffoldTypeFurtherInformation\r\n };\r\n });\r\n }\r\n\r\n private getCustomerContact(): any {\r\n if (this.ActivityDetail && this.ActivityDetail.CustomerSignature) {\r\n return this.activeContract.ContractContacts[this.ActivityDetail.CustomerSignature.ContractContactId].ContactName;\r\n }\r\n if (this.ActivityDetail && this.ActivityDetail.CustomerAttachment.length > 0) {\r\n return this.activeContract.ContractContacts[this.ActivityDetail.CustomerAttachment[0].ContractContactId].ContactName;\r\n }\r\n }\r\n\r\n /**\r\n * Gets ContractContactId\r\n *\r\n * @returns {*}\r\n * @memberof HandoverViewComponent\r\n */\r\n private getCustomerContactId(): any {\r\n if (this.ActivityDetail && this.ActivityDetail.CustomerAttachment.length > 0) {\r\n return this.activeContract.ContractContacts[this.ActivityDetail.CustomerAttachment[0].ContractContactId].ContractContactId;\r\n }\r\n }\r\n\r\n /**\r\n * Gets ContractContacts which are active\r\n *\r\n * @returns {*}\r\n * @memberof HandoverViewComponent\r\n */\r\n private getContractContacts(): any {\r\n const contractContactList = [];\r\n\r\n _forEach(this.activeContract.ContractContacts, contact => {\r\n if (!contact.IsInactive &&\r\n contact.ContactTypeId !== contactTypeIds.companyContact &&\r\n contact.ContactTypeId !== contactTypeIds.bccContact\r\n ) {\r\n contractContactList.push(contact);\r\n }\r\n });\r\n return contractContactList;\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n

\r\n {{ ActivityDetail?.SiteDetails.CustomerName }} - {{ ActivityDetail?.SiteDetails.SiteName }}\r\n ({{ ActivityDetail?.ScaffoldDetails.ScaffoldName }})\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Site: {{ ActivityDetail?.SiteDetails.SiteName }} ({{ SiteReference }})\r\n
  • \r\n
  • Address: {{ ActivityDetail?.SiteDetails.SiteAddress }}
  • \r\n
  • Scaffold: {{ ActivityDetail?.ScaffoldDetails.ScaffoldName }}
  • \r\n
  • Standing Tonnage:\r\n {{ ActivityDetail?.ScaffoldDetails.StandingTonnage | number:'.1-2'}}
  • \r\n
  • Customer: {{ ActivityDetail?.SiteDetails.CustomerName }}
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • Area: {{ ActivityDetail?.ScaffoldDetails.SiteAreaName }}
  • \r\n
  • Date: {{ ActivityDetail?.When | date: 'MMM dd, yyy' }}
  • \r\n
  • Time: {{ ActivityDetail?.When | date: 'hh:mm a' }}
  • \r\n
  • Contract Contact: {{ customerContact }}
  • \r\n
  • \r\n Staff Name: {{ staffName }}\r\n ({{ staffCompanyPosition }})\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Handover Details

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n Scaffolds:\r\n \r\n {{ scaffold.SpecificLocationDetails }} ({{ scaffold.ScaffoldNumber }})\r\n \r\n
\r\n
\r\n
\r\n
Comments: \r\n {{ ActivityDetail?.HandoverComments }}
\r\n
\r\n
\r\n
\r\n Hire Period: {{ ActivityDetail?.HirePeriod }}\r\n 0\"> week(s)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ scaffoldTitle?.name }}\r\n - {{ scaffoldTitle?.other }}\r\n ({{ ActivityDetail?.ScaffoldDetails.ScaffoldName }})\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {{ details?.name }} {{ details?.value }} ({{ details?.other }})\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Additional Details\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {{ details?.Name }}: {{ details?.Value }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ getRiskType(risk.HandoverRiskTypeId)?.Title }}\r\n -\r\n {{ risk.HandoverRiskTypeFurtherInformation }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Reason: {{ getRiskReason(risk.HandoverRiskReasonId)?.Title\r\n }} -\r\n {{ risk.HandoverRiskReasonFurtherInformation }}\r\n
\r\n
Notes: {{ risk?.Notes }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Acceptance Of The Scaffold

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Staff: {{ staffName }}\r\n ({{ staffCompanyPosition }})\r\n
\r\n
Date:\r\n {{ ActivityDetail?.StaffSignature.When | date: 'MMM dd, yyy - hh:mm a' }}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
Attach a file sent by the customer to approve this activity,\r\n e.g. a confirmation of verbal instruction certificate
\r\n
\r\n
0\">\r\n
\r\n \r\n Download File\r\n \r\n {{ fileName }}\r\n
\r\n
Customer: {{ customerContact }}
\r\n
Date:\r\n {{ fileAttachmentDate | date: 'MMM dd, yyy - hh:mm a' }}
\r\n
\r\n
\r\n
\r\n \r\n
Customer: {{ customerContact }}
\r\n
Date:\r\n {{ ActivityDetail?.CustomerSignature.When | date: 'MMM dd, yyy - hh:mm a' }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivityModalContext } from 'app/activity/models/activity-modal-context.model';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { DefectTypeData, DiaryTypeEnum } from 'app/core/hub-api';\r\nimport { uniqBy as _uniqBy, forEach as _forEach, flatMap as _flatMap } from 'lodash';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { StaffsQueryService } from 'app/core/services/staffs-query.service';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-inspection-view',\r\n templateUrl: './inspection-view.component.html',\r\n styleUrls: ['./inspection-view.component.scss']\r\n})\r\nexport class InspectionViewComponent implements OnInit, OnDestroy {\r\n ActivityTypeId: string;\r\n ActivityType: number;\r\n ActivityDetail: any;\r\n Outcome: any = {};\r\n Defects: DefectTypeData[];\r\n InspectionFollowUpInstructions: any;\r\n InspectionFollowUpNotifys: any;\r\n SiteReference: string;\r\n notifyPeople: any = [];\r\n staffFromActionToBeCarriedOutBy: any = [];\r\n isUnsafe: boolean;\r\n activateDownloadReport: boolean;\r\n scaffoldInspectionMedia: any;\r\n context: Partial;\r\n\r\n constructor(\r\n private configurationQueryService: ConfigurationQueryService,\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService,\r\n private staffsQueryService: StaffsQueryService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.ActivityTypeId = this.context.ActivityTypeId;\r\n this.ActivityType = this.context.ActivityType;\r\n this.activateDownloadReport = DiaryTypeEnum.InspectionFollowUpInstruction === this.ActivityType || DiaryTypeEnum.Inspection === this.ActivityType ? true : false;\r\n this.ActivityDetail = this.context.ActivityDetail[0];\r\n this.SiteReference = this.context.Site.SiteReference;\r\n this.generateHandoverDetails();\r\n this.getCustomerContact();\r\n if (this.Outcome && this.Outcome.title === 'Unsafe') {\r\n this.context.dialogClass = 'modal-dialog modal-lg modal-danger';\r\n this.isUnsafe = true;\r\n } else {\r\n this.context.dialogClass = 'modal-dialog modal-lg';\r\n this.isUnsafe = false;\r\n }\r\n this.scaffoldInspectionMedia = this.ActivityDetail.ScaffoldInspections && this.ActivityDetail.ScaffoldInspections.Media\r\n ? this.ActivityDetail.ScaffoldInspections.Media : [];\r\n }\r\n\r\n private generateHandoverDetails(): any {\r\n this.configurationQueryService.configurationQuery(true).subscribe(res => {\r\n if (this.ActivityDetail.ScaffoldInspections.InspectionTypeId && this.ActivityDetail.ScaffoldInspections.InspectionOutcomeId) {\r\n this.Outcome = {\r\n title: res.InspectionOutcomes[this.ActivityDetail.ScaffoldInspections.InspectionOutcomeId].Title,\r\n comments: this.ActivityDetail.ScaffoldInspections.Comments,\r\n type: res.InspectionTypes[this.ActivityDetail.ScaffoldInspections.InspectionTypeId].Title\r\n };\r\n }\r\n this.Defects = this.ActivityDetail.ScaffoldInspections.InspectionDefects;\r\n this.InspectionFollowUpInstructions = this.ActivityDetail.InspectionFollowUpInstructions;\r\n this.getStaffFromActionToBeCarriedOutBy();\r\n this.InspectionFollowUpNotifys = this.ActivityDetail.InspectionFollowUpNotifys;\r\n });\r\n }\r\n\r\n /**\r\n * Retrieves and populates the 'staffFromActionToBeCarriedOutBy' array with staff details based on the 'ActionToBeCarriedOutBy' field from 'InspectionFollowUpInstructions' in 'ActivityDetail'.\r\n * This function checks if 'ActionToBeCarriedOutBy' is present in 'InspectionFollowUpInstructions'. If it is, it iterates over each staffId in 'ActionToBeCarriedOutBy'.\r\n * For each staffId, it executes a query using 'staffsQueryService' to fetch staff details. The query is set to not use the cache data (indicated by the 'false' parameter).\r\n * It subscribes to the result of this query and pushes the first staff object (found using the 'find' method) where 'StaffId' matches staffId into the 'staffFromActionToBeCarriedOutBy' array.\r\n */\r\n private getStaffFromActionToBeCarriedOutBy(): any {\r\n if (this.ActivityDetail.InspectionFollowUpInstructions?.ActionToBeCarriedOutBy) {\r\n _forEach(this.ActivityDetail.InspectionFollowUpInstructions.ActionToBeCarriedOutBy, staffId => {\r\n this.staffsQueryService.staffsQuery(false).subscribe(res => {\r\n this.staffFromActionToBeCarriedOutBy.push(res.find(s => s.StaffId === staffId));\r\n });\r\n });\r\n }\r\n }\r\n\r\n private getCustomerContact(): any {\r\n const contract = this.context.Site.Contracts.find(siteContract => {\r\n return siteContract.ContractReference === this.ActivityDetail.SiteDetails.ContractReference;\r\n });\r\n if (this.ActivityDetail.InspectionFollowUpNotifys && this.ActivityDetail.InspectionFollowUpNotifys.PeopleNotified) {\r\n _forEach(this.ActivityDetail.InspectionFollowUpNotifys.PeopleNotified, pn => {\r\n this.notifyPeople.push(contract.ContractContacts[pn].ContactName);\r\n });\r\n }\r\n }\r\n\r\n dismiss(): void {\r\n this.modalService.setDismissReason(null);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n

\r\n {{ ActivityDetail?.SiteDetails.CustomerName }} - {{ ActivityDetail?.SiteDetails.SiteName }} ({{ ActivityDetail?.ScaffoldDetails.ScaffoldName }})\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Site: {{ ActivityDetail?.SiteDetails.SiteName }} ({{ SiteReference }})
  • \r\n
  • Address: {{ ActivityDetail?.SiteDetails.SiteAddress }}
  • \r\n
  • Customer: {{ ActivityDetail?.SiteDetails.CustomerName }}
  • \r\n
  • Area: {{ ActivityDetail?.ScaffoldDetails.SiteAreaName }}
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • Scaffold: {{ ActivityDetail?.ScaffoldDetails.ScaffoldName }}
  • \r\n
  • \r\n Scaffold Name: {{ ActivityDetail?.ScaffoldDetails.Location }}\r\n
  • \r\n
  • \r\n Scaffold Description: {{ ActivityDetail?.ScaffoldDetails.ScaffoldDescription }}\r\n
  • \r\n
  • Date: {{ ActivityDetail?.ScaffoldInspections.DateOfInspection | date: 'MMM dd, yyy' }}
  • \r\n
  • Time: {{ ActivityDetail?.ScaffoldInspections.DateOfInspection | date: 'hh:mm a' }}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Inspection Details

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Comments: \r\n {{ Outcome?.comments }}
\r\n
Outcome: {{ Outcome?.title }}
\r\n
Inspection Type: {{ Outcome?.type }}
\r\n \r\n
\r\n Inspected By: {{ ActivityDetail?.ScaffoldInspections.Inspector }}\r\n ({{ ActivityDetail?.ScaffoldInspections.InspectorCompanyPosition }})\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

{{ defect?.DefectName }} {{ defect?.DefectTypeFurtherInformation }}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Defect Status: \r\n {{ (defect?.DefectStatus | defectResults).title }}\r\n
\r\n
Comment: \r\n {{ defect?.Comments }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Inspection Follow Up

\r\n
\r\n
\r\n
\r\n
\r\n Inspectors Recommendations: \r\n {{ InspectionFollowUpNotifys?.InspectorsRecommendations }}\r\n
\r\n
\r\n Defects Reported To: \r\n {{ notifyPeople.join(', ') }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Remedial Actions

\r\n
\r\n
\r\n
\r\n
\r\n Action to be carried out by: \r\n \r\n {{ staff.ContactName }} ({{ staff.CompanyPosition }})\r\n , \r\n \r\n
\r\n
\r\n Action Required: {{ InspectionFollowUpInstructions?.Instructions }}\r\n
\r\n
\r\n Defect To be Rectified by: \r\n {{ InspectionFollowUpInstructions?.ToBeDoneBy | date: 'MMM dd, yyy - hh:mm a' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Inspected by

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Staff: {{ ActivityDetail?.ScaffoldInspections.Inspector }}\r\n ({{ ActivityDetail?.ScaffoldInspections.InspectorCompanyPosition }})\r\n
\r\n
Date:\r\n {{ ActivityDetail?.ScaffoldInspections.DateOfInspection | date: 'MMM dd, yyy - hh:mm a' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivityModalContext } from 'app/activity/models/activity-modal-context.model';\r\nimport { find as _find, uniqBy as _uniqBy, flatMap as _flatMap, forEach as _forEach } from 'lodash';\r\nimport { StaffsQueryService } from 'app/core/services/staffs-query.service';\r\nimport { ContractData } from 'app/core/hub-api';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-offhire-view',\r\n templateUrl: './offhire-view.component.html',\r\n styleUrls: ['./offhire-view.component.scss']\r\n})\r\nexport class OffhireViewComponent implements OnInit, OnDestroy {\r\n activityType: number;\r\n siteReference: string;\r\n staffName: any;\r\n site: any;\r\n activityDetail: any;\r\n requestedBy: string;\r\n customerContact: any;\r\n activeContract: ContractData;\r\n context: Partial;\r\n\r\n constructor(\r\n public staffsQueryService: StaffsQueryService,\r\n private bsModalRef: BsModalRef,\r\n public modalService: BsModalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.context.dialogClass = 'modal-dialog modal-lg';\r\n this.activityType = this.context.ActivityType;\r\n this.activityDetail = this.context.ActivityDetail[0];\r\n this.site = this.context.Site;\r\n this.activeContract = this.context.Site.Contracts.find(siteContract => {\r\n return siteContract.ContractReference === this.activityDetail.SiteDetails.ContractReference;\r\n });\r\n this.getStaffNames();\r\n this.customerContact = this.activityDetail.OffHireData.CustomerSignature ? this.getCustomerContact() : '';\r\n this.requestedBy = this.requestedByContact();\r\n }\r\n\r\n getImageArray(media): string[] {\r\n if (Object.keys(media).length) {\r\n const keys = [];\r\n _forEach(media, m => {\r\n keys.push(m.Path);\r\n });\r\n return keys;\r\n }\r\n return;\r\n }\r\n\r\n dismiss(): void {\r\n this.modalService.setDismissReason(null);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n private requestedByContact(): any {\r\n return this.activeContract.ContractContacts[this.activityDetail.OffHireData.RequestedBy].ContactName;\r\n }\r\n\r\n private getCustomerContact(): string {\r\n return this.activeContract.ContractContacts[this.activityDetail.OffHireData.CustomerSignature.ContractContactId].ContactName;\r\n }\r\n\r\n private getStaffNames(): void {\r\n this.staffsQueryService.staffsQuery(true).subscribe(res => {\r\n this.staffName =\r\n this.activityDetail.OffHireData && this.activityDetail.OffHireData.StaffSignature\r\n ? _flatMap(res).filter(s => s.StaffId === this.activityDetail.OffHireData.StaffSignature.StaffId)[0].ContactName\r\n : '';\r\n });\r\n }\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n

\r\n {{ activityDetail?.SiteDetails.CustomerName }} - {{ activityDetail?.SiteDetails.SiteName }} ({{ activityDetail?.ScaffoldDetails.ScaffoldName }})\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Site: {{ activityDetail?.SiteDetails.SiteName }} ({{ site.SiteReference }})
  • \r\n
  • Address: {{ activityDetail?.SiteDetails.SiteAddress }}
  • \r\n
  • Customer: {{ activityDetail?.SiteDetails.CustomerName }}
  • \r\n
  • Area: {{ activityDetail?.ScaffoldDetails.SiteAreaName }}
  • \r\n
  • Scaffold: {{ activityDetail?.ScaffoldDetails.ScaffoldName }}
  • \r\n
  • Standing Tonnage: {{ activityDetail?.ScaffoldDetails.StandingTonnage | number:'.1-2' }}
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n Scaffold Name:\r\n {{ activityDetail?.ScaffoldDetails.Location }}\r\n
  • \r\n
  • \r\n Scaffold Description:\r\n {{ activityDetail?.ScaffoldDetails.ScaffoldDescription }}\r\n
  • \r\n
  • Date: {{ activityDetail?.OffHireData.When | date: 'MMM dd, yyy' }}
  • \r\n
  • Time: {{ activityDetail?.OffHireData.When | date: 'hh:mm a' }}
  • \r\n
  • Requested by: {{ requestedBy }}
  • \r\n
  • Staff: {{ staffName }}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Off-Hire Details

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Comments: \r\n {{ activityDetail?.OffHireData.OffHireComments }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Acceptance Of The Scaffold

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Staff: {{ staffName }}
\r\n
Date:\r\n {{ activityDetail?.OffHireData.StaffSignature.When | date: 'MMM dd, yyy - hh:mm a' }}
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Customer: {{ customerContact }}
\r\n
Date:\r\n {{ activityDetail?.OffHireData.CustomerSignature.When | date: 'MMM dd, yyy - hh:mm a' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivityModalContext } from 'app/activity/models/activity-modal-context.model';\r\nimport { StaffsQueryService } from 'app/core/services/staffs-query.service';\r\nimport { uniqBy as _uniqBy, flatMap as _flatMap } from 'lodash';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-unsafe-view',\r\n templateUrl: './unsafe-view.component.html',\r\n styleUrls: ['./unsafe-view.component.scss']\r\n})\r\nexport class UnsafeViewComponent implements OnInit, OnDestroy {\r\n data: any;\r\n ActivityType: number;\r\n ActivityDetail: any;\r\n SiteReference: String;\r\n scaffoldSupervisor: any;\r\n scaffoldSupervisorCompanyPosition: any;\r\n customerContact: string;\r\n context: Partial;\r\n\r\n constructor(\r\n private staffsQueryService: StaffsQueryService,\r\n private bsModalRef: BsModalRef,\r\n public modalService: BsModalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.context.dialogClass = 'modal-dialog modal-lg';\r\n this.ActivityType = this.context.ActivityType;\r\n this.ActivityDetail = this.context.ActivityDetail[0];\r\n this.SiteReference = this.context.Site.SiteReference;\r\n this.customerContact = this.getCustomerContact(this.context.Site);\r\n this.getStaffNames();\r\n }\r\n\r\n dismiss(): void {\r\n this.modalService.setDismissReason(null);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n private getStaffNames(): any {\r\n if (this.ActivityDetail.InspectionFollowUpNotifys) {\r\n this.staffsQueryService.staffsQuery(true, true).subscribe(res => {\r\n this.scaffoldSupervisor = _flatMap(res).filter(s => s.StaffId === this.ActivityDetail.UnsafeScaffoldReports.SiteManager)[0].ContactName;\r\n this.scaffoldSupervisorCompanyPosition = _flatMap(res).filter(s => s.StaffId === this.ActivityDetail.UnsafeScaffoldReports.SiteManager)[0].CompanyPosition;\r\n });\r\n }\r\n }\r\n private getCustomerContact(site): any {\r\n const contract = site.Contracts.find(siteContract => {\r\n return siteContract.ContractReference === this.ActivityDetail.SiteDetails.ContractReference;\r\n });\r\n return this.ActivityDetail.UnsafeScaffoldReports\r\n ? contract.ContractContacts[this.ActivityDetail.UnsafeScaffoldReports.CustomerSignature.ContractContactId].ContactName\r\n : null;\r\n }\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n

\r\n {{ ActivityDetail?.SiteDetails.CustomerName }} - {{ ActivityDetail?.SiteDetails.SiteName }}\r\n ({{ ActivityDetail?.ScaffoldDetails.ScaffoldName }})\r\n

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Site: {{ ActivityDetail?.SiteDetails.SiteName }} ({{ SiteReference }})\r\n
  • \r\n
  • Address: {{ ActivityDetail?.SiteDetails.SiteAddress }}
  • \r\n
  • Customer: {{ ActivityDetail?.SiteDetails.CustomerName }}
  • \r\n
  • Contract Contact: {{ customerContact }}
  • \r\n
  • Scaffold: {{ ActivityDetail?.ScaffoldDetails.ScaffoldName }}
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • Scaffold Name:\r\n {{ ActivityDetail?.ScaffoldDetails.Location }}
  • \r\n
  • Scaffold Description:\r\n {{ ActivityDetail?.ScaffoldDetails.ScaffoldDescription }}
  • \r\n
  • Date:\r\n {{ ActivityDetail?.ScaffoldInspections.DateOfInspection | date: 'MMM dd, yyy' }}
  • \r\n
  • Time:\r\n {{ ActivityDetail?.ScaffoldInspections.DateOfInspection | date: 'hh:mm a' }}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Inspector Recommendation & Comments

\r\n
\r\n
\r\n
\r\n
\r\n Inspector: {{ ActivityDetail?.ScaffoldInspections.Inspector }}\r\n ({{ ActivityDetail?.ScaffoldInspections.InspectorCompanyPosition }})\r\n
\r\n
Date: \r\n {{ ActivityDetail?.UnsafeScaffoldReports.InspectorsSignature.When | date: 'MMM dd, yyy - hh:mm a' }}\r\n
\r\n
\r\n Inspector Comments: {{ ActivityDetail?.ScaffoldInspections.Comments }}\r\n
\r\n
\r\n Inspector Recommendations: \r\n {{ ActivityDetail?.InspectionFollowUpNotifys.InspectorsRecommendations }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ defect?.DefectName }} {{ defect?.DefectTypeFurtherInformation }}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Defect Status: \r\n {{ (defect?.DefectStatus | defectResults).title }}\r\n
\r\n
Comment: \r\n {{ defect?.Comments }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Scaffold Supervisor & Recommendations

\r\n
\r\n
\r\n
\r\n
\r\n Scaffold Supervisor Recommendations: \r\n {{ ActivityDetail?.UnsafeScaffoldReports.SiteManagerRecommendations }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Scaffold Supervisor: {{ scaffoldSupervisor }}\r\n ({{ scaffoldSupervisorCompanyPosition }})\r\n
\r\n
Date: \r\n {{ ActivityDetail?.UnsafeScaffoldReports.SiteManagersSignature.When | date: 'MMM dd, yyy - hh:mm a' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Customer Acknowledgement

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Customer Representative: {{ customerContact }}
\r\n
Date: \r\n {{ ActivityDetail?.UnsafeScaffoldReports.CustomerSignature.When | date: 'MMM dd, yyy - hh:mm a' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { ActivityModalContext } from 'app/activity/models/activity-modal-context.model';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { StaffsQueryService } from 'app/core/services/staffs-query.service';\r\nimport {\r\n uniqBy as _uniqBy,\r\n flatMap as _flatMap,\r\n forEach as _forEach,\r\n} from 'lodash';\r\nimport { ContractData, DiaryTypeEnum } from 'app/core/hub-api';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { CustomerApprovalModalContext } from 'app/activity/models/customer-approval-modal-context.model';\r\nimport { CustomerApprovalImportModalComponent } from '../customer-approval-file-import/customer-approval-file-import.component';\r\nimport { FileUploadService } from 'app/core/services/file-upload-service';\r\nimport { contactTypeIds } from 'app/shared/values/contact-type-ids';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-variation-view',\r\n templateUrl: './variation-view.component.html',\r\n styleUrls: ['./variation-view.component.scss'],\r\n})\r\nexport class VariationViewComponent implements OnInit, OnDestroy {\r\n ActivityType: Number;\r\n ActivityDetail: any;\r\n RequestedBy: string;\r\n HandoverDetails = [];\r\n SiteReference: String;\r\n staffName: {};\r\n staffCompanyPosition: string;\r\n siteInstructedBy: {};\r\n customerContact: string;\r\n activeContract: ContractData;\r\n scaffoldTitle: { name: string; other: any };\r\n dimensions = [];\r\n risks: any[];\r\n handoverRiskReasons: any;\r\n handoverRiskTypes: any;\r\n activityName: string;\r\n customerContactId: string;\r\n fileName: string;\r\n fileAttachmentDate: any;\r\n context: Partial;\r\n\r\n\r\n constructor(\r\n private configurationQueryService: ConfigurationQueryService,\r\n private staffsQueryService: StaffsQueryService,\r\n private fileUploadService: FileUploadService,\r\n private bsModalRef: BsModalRef,\r\n public modalService: BsModalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.context.dialogClass = 'modal-dialog modal-lg';\r\n this.ActivityType = this.context.ActivityType;\r\n this.ActivityDetail = this.context.ActivityDetail[0];\r\n this.activeContract = this.context.Site.Contracts.find(\r\n (siteContract) => {\r\n return (\r\n siteContract.ContractReference ===\r\n this.ActivityDetail.SiteDetails.ContractReference\r\n );\r\n }\r\n );\r\n this.siteInstructedBy = this.siteInstructedContact();\r\n this.SiteReference = this.context.Site.SiteReference;\r\n this.customerContact = this.getCustomerContact();\r\n this.customerContactId = this.getCustomerContactId();\r\n // sliced 'covi-' from the filename eg. covi-file.pdf, then the filename would be file.pdf in UI\r\n this.fileName =\r\n this.ActivityDetail.CustomerAttachment.length > 0\r\n ? this.ActivityDetail.CustomerAttachment[0].FileName.slice(5)\r\n : undefined;\r\n this.fileAttachmentDate =\r\n this.ActivityDetail.CustomerAttachment.length > 0\r\n ? this.ActivityDetail.CustomerAttachment[0].When\r\n : undefined;\r\n this.generateHandoverDetails();\r\n this.getStaffNames();\r\n this.generateDimensions();\r\n this.risks = _flatMap(this.ActivityDetail.IdentifiedRisks);\r\n this.activityName =\r\n this.ActivityType === DiaryTypeEnum.Adaption ? 'Adaption' : 'Variation';\r\n }\r\n\r\n getRiskReason(riskReasonId): any {\r\n if (!this.handoverRiskReasons) return null;\r\n return this.handoverRiskReasons[riskReasonId]\r\n ? this.handoverRiskReasons[riskReasonId]\r\n : null;\r\n }\r\n\r\n getRiskType(riskTypeId): any {\r\n if (!this.handoverRiskTypes) return null;\r\n return this.handoverRiskTypes[riskTypeId]\r\n ? this.handoverRiskTypes[riskTypeId]\r\n : null;\r\n }\r\n\r\n getImageArray(media): string[] {\r\n if (Object.keys(media).length) {\r\n const keys = [];\r\n _forEach(media, (m) => {\r\n keys.push(m);\r\n });\r\n return keys;\r\n }\r\n return;\r\n }\r\n\r\n dismiss(): void {\r\n this.modalService.setDismissReason(null);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n /**\r\n * Gets Customer Contact Name\r\n *\r\n * @private\r\n * @returns {*}\r\n * @memberof VariationViewComponent\r\n */\r\n private getCustomerContact(): any {\r\n if (this.ActivityDetail.CustomerSignature) {\r\n return this.activeContract.ContractContacts[\r\n this.ActivityDetail.CustomerSignature.ContractContactId\r\n ].ContactName;\r\n }\r\n if (\r\n this.ActivityDetail &&\r\n this.ActivityDetail.CustomerAttachment.length > 0\r\n ) {\r\n return this.activeContract.ContractContacts[\r\n this.ActivityDetail.CustomerAttachment[0].ContractContactId\r\n ].ContactName;\r\n }\r\n }\r\n\r\n private getStaffNames(): void {\r\n this.staffsQueryService.staffsQuery(false).subscribe((res) => {\r\n this.staffName = _flatMap(res).filter(\r\n (s) => s.StaffId === this.ActivityDetail.StaffSignature.StaffId\r\n );\r\n this.staffCompanyPosition = _flatMap(res).filter(s => s.StaffId === this.ActivityDetail.StaffSignature.StaffId)[0].CompanyPosition\r\n });\r\n }\r\n\r\n private siteInstructedContact(): any {\r\n return this.activeContract.ContractContacts[\r\n this.ActivityDetail.VariationInstruction.SiteInstructionReceivedFromId\r\n ].ContactName;\r\n }\r\n\r\n private generateDimensions(): void {\r\n if (this.ActivityDetail == null || this.ActivityDetail.Dimensions == null) {\r\n return;\r\n }\r\n\r\n this.ActivityDetail.Dimensions.forEach((dms) => {\r\n const dimension = [];\r\n dimension.push(\r\n {\r\n name: 'Quantity',\r\n value: dms.Quantity ? dms.Quantity : '',\r\n },\r\n {\r\n name: 'Length',\r\n value: dms.Length ? dms.Length : '',\r\n },\r\n {\r\n name: 'Width',\r\n value: dms.Width ? dms.Width : '',\r\n },\r\n {\r\n name: 'Height',\r\n value: dms.Height ? dms.Height : '',\r\n },\r\n {\r\n name: 'Boarded Lifts',\r\n value: dms.TotalNumberOfBoardedLift\r\n ? dms.TotalNumberOfBoardedLift\r\n : '',\r\n },\r\n {\r\n name: 'Total Lifts',\r\n value: dms.TotalNumberOfLift ? dms.TotalNumberOfLift : '',\r\n }\r\n );\r\n\r\n this.dimensions.push(dimension);\r\n });\r\n }\r\n\r\n private generateHandoverDetails(): void {\r\n this.configurationQueryService.configurationQuery(true).subscribe((res) => {\r\n const scaffold = this.ActivityDetail.Scaffolds.find((s) => {\r\n return (\r\n s.ScaffoldNumber === this.ActivityDetail.ScaffoldDetails.ScaffoldName\r\n );\r\n });\r\n this.handoverRiskTypes = res.HandoverRiskTypes;\r\n this.handoverRiskReasons = res.HandoverRiskReasons;\r\n if (!scaffold || !scaffold.ScaffoldSpecification) {\r\n return;\r\n } else {\r\n this.HandoverDetails.push(\r\n {\r\n name: 'Design No:',\r\n value: scaffold.ScaffoldSpecification.DesignTypeId\r\n ? res.DesignTypes[scaffold.ScaffoldSpecification.DesignTypeId]\r\n .Title\r\n : null,\r\n other: scaffold.ScaffoldSpecification.DesignTypeFurtherInformation,\r\n },\r\n {\r\n name: 'Quote No:',\r\n value: scaffold.ScaffoldSpecification.QuoteNumber,\r\n },\r\n {\r\n name: 'Item No:',\r\n value: scaffold.ScaffoldSpecification.QuoteItemNumber,\r\n },\r\n {\r\n name: 'Item Name:',\r\n value: scaffold.ScaffoldSpecification.QuoteItemName,\r\n },\r\n {\r\n name: 'Loading:',\r\n value: scaffold.ScaffoldSpecification.LoadingLimitId\r\n ? res.LoadingLimits[scaffold.ScaffoldSpecification.LoadingLimitId]\r\n .Title\r\n : null,\r\n other:\r\n scaffold.ScaffoldSpecification.LoadingLimitFurtherInformation,\r\n },\r\n {\r\n name: 'Cladding:',\r\n value: scaffold.ScaffoldSpecification.MethodOfCladdingId\r\n ? res.MethodOfCladdings[\r\n scaffold.ScaffoldSpecification.MethodOfCladdingId\r\n ].Title\r\n : null,\r\n other:\r\n scaffold.ScaffoldSpecification.MethodOfCladdingFurtherInformation,\r\n },\r\n {\r\n name: 'Ties:',\r\n value: scaffold.ScaffoldSpecification.MethodOfTyingId\r\n ? res.MethodOfTyings[\r\n scaffold.ScaffoldSpecification.MethodOfTyingId\r\n ].Title\r\n : null,\r\n other:\r\n scaffold.ScaffoldSpecification.MethodOfTyingFurtherInformation,\r\n }\r\n );\r\n this.scaffoldTitle = {\r\n name: scaffold.ScaffoldSpecification.ScaffoldTypeId\r\n ? res.ScaffoldTypes[scaffold.ScaffoldSpecification.ScaffoldTypeId]\r\n .Title\r\n : null,\r\n other: scaffold.ScaffoldSpecification.ScaffoldTypeFurtherInformation,\r\n };\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Gets ContractContactId\r\n *\r\n * @private\r\n * @returns {*}\r\n * @memberof VariationViewComponent\r\n */\r\n private getCustomerContactId(): any {\r\n if (\r\n this.ActivityDetail &&\r\n this.ActivityDetail.CustomerAttachment.length > 0\r\n ) {\r\n return this.activeContract.ContractContacts[\r\n this.ActivityDetail.CustomerAttachment[0].ContractContactId\r\n ].ContractContactId;\r\n }\r\n }\r\n\r\n /**\r\n * Opens a modal and Uploads file\r\n *\r\n * @memberof VariationViewComponent\r\n */\r\n uploadFile(): void {\r\n const context: CustomerApprovalModalContext = {\r\n Contracts: this.getContractContacts(),\r\n HandoverId: this.ActivityDetail.HandoverId,\r\n CustomerId: this.ActivityDetail.CustomerId,\r\n };\r\n this.modalService.show(CustomerApprovalImportModalComponent, SSModalConfig.generate(context)).onHide.subscribe(\r\n (res) => {\r\n var value = res as any;\r\n this.fileName = value;\r\n },\r\n error => {\r\n console.error(error); // This can be left here as it gives us info if any errors\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Downloads uploaded file\r\n *\r\n * @memberof VariationViewComponent\r\n */\r\n downloadFile(): void {\r\n const path = `Handover/${this.ActivityDetail.HandoverId}/contact/${this.customerContactId}/covi-${this.fileName}`;\r\n this.fileUploadService.downloadFile(this.fileName, path);\r\n }\r\n\r\n /**\r\n * Gets ContractContacts which are active\r\n *\r\n * @private\r\n * @returns {*}\r\n * @memberof VariationViewComponent\r\n */\r\n private getContractContacts(): any {\r\n const contractContactList = [];\r\n\r\n _forEach(this.activeContract.ContractContacts, (contact) => {\r\n if (\r\n !contact.IsInactive &&\r\n contact.ContactTypeId !== contactTypeIds.companyContact &&\r\n contact.ContactTypeId !== contactTypeIds.bccContact\r\n ) {\r\n contractContactList.push(contact);\r\n }\r\n });\r\n return contractContactList;\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n

\r\n {{ ActivityDetail?.SiteDetails.CustomerName }} - {{ ActivityDetail?.SiteDetails.SiteName }}\r\n ({{ ActivityDetail?.ScaffoldDetails.ScaffoldName }})\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Site: {{ ActivityDetail?.SiteDetails.SiteName }} ({{ SiteReference }})\r\n
  • \r\n
  • Address: {{ ActivityDetail?.SiteDetails.SiteAddress }}
  • \r\n
  • Customer: {{ ActivityDetail?.SiteDetails.CustomerName }}
  • \r\n
  • Area: {{ ActivityDetail?.ScaffoldDetails.SiteAreaName }}
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • Scaffold: {{ ActivityDetail?.ScaffoldDetails.ScaffoldName }}
  • \r\n
  • Standing Tonnage: {{ ActivityDetail?.ScaffoldDetails.StandingTonnage | number:'.1-2' }}
  • \r\n
  • Scaffold Name: {{ ActivityDetail?.ScaffoldDetails.Location }}
  • \r\n
  • Scaffold Description:\r\n {{ ActivityDetail?.ScaffoldDetails.ScaffoldDescription }}
  • \r\n
  • Date: {{ ActivityDetail?.When | date: 'MMM dd, yyy' }}
  • \r\n
  • Time: {{ ActivityDetail?.When | date: 'hh:mm a' }}
  • \r\n
  • \r\n Staff Name: {{ staffName[0]?.ContactName }}\r\n ({{ staffCompanyPosition }})\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{activityName}} Details

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Scaffolds:\r\n \r\n {{ scaffold.SpecificLocationDetails }} ({{ scaffold.ScaffoldNumber }})\r\n \r\n
\r\n
\r\n
\r\n
Comments: \r\n {{ ActivityDetail?.HandoverComments }}
\r\n
\r\n
\r\n
\r\n Hire Period: {{ ActivityDetail?.HirePeriod }}\r\n 0\"> week(s)\r\n
\r\n
\r\n
\r\n
\r\n Contract Price: \r\n = 0\">\r\n {{ ActivityDetail?.VariationInstruction.ContractPrice | currency: 'GBP' }}\r\n \r\n Priced To Agreed Schedule Of Rates\r\n
\r\n
\r\n Extra Hire Rate: \r\n = 0\">\r\n {{ ActivityDetail?.VariationInstruction.ExtraHireRate | currency: 'GBP' }}\r\n 0\"> per week\r\n \r\n \r\n Priced To Agreed Schedule Of Rates\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ scaffoldTitle?.name }}\r\n - {{ scaffoldTitle?.other }}\r\n ({{ ActivityDetail?.ScaffoldDetails.ScaffoldName }})\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {{ details?.name }} {{ details?.value }}\r\n
({{ details?.other }})
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ getRiskType(risk.HandoverRiskTypeId)?.Title }}\r\n -\r\n {{ risk.HandoverRiskTypeFurtherInformation }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
Reason: \r\n {{ getRiskReason(risk.HandoverRiskReasonId)?.Title }} -\r\n {{ risk.HandoverRiskReasonFurtherInformation }}
\r\n
Notes: {{ risk?.Notes }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Site Instructions

\r\n
\r\n
\r\n
\r\n
\r\n Site Instruction Reference: \r\n {{ ActivityDetail?.VariationInstruction.SiteInstructionReference }}\r\n
\r\n
Site Instruction Instructed By: \r\n {{ siteInstructedBy }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Dimensions - {{ dimension?.Description }}

\r\n
\r\n
\r\n
\r\n
\r\n Dimensions Description: \r\n {{ dimension.Description }}\r\n
\r\n
\r\n {{ details?.name }}: {{ details?.value }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Acceptance Of The Scaffold

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Staff: {{ staffName[0].ContactName }}\r\n ({{ staffCompanyPosition }})\r\n
\r\n
Date:\r\n {{ ActivityDetail?.StaffSignature.When | date: 'MMM dd, yyy - hh:mm a' }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Customer: {{ customerContact }}
\r\n
Date:\r\n {{ ActivityDetail?.CustomerSignature.When | date: 'MMM dd, yyy - hh:mm a' }}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
Attach a file sent by the customer to approve this activity,\r\n e.g. a confirmation of verbal instruction certificate
\r\n
\r\n
0\">\r\n
\r\n \r\n Download File\r\n \r\n {{ fileName }}\r\n
\r\n
Customer: {{ customerContact }}
\r\n
Date:\r\n {{ fileAttachmentDate | date: 'MMM dd, yyy - hh:mm a' }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { DepotsQueryService } from '../../../core/services/depots-query.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { errorMessages } from '../../../shared/values/error-messages';\r\nimport { mapValues } from '../../../shared/values/maps';\r\nimport { AddEditDepotsModalContext } from '../../models/add-edit-depots-modal-context';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { LoggedInStaffService } from '../../../core/services/logged-in-staff-service';\r\nimport { StaffsQueryService } from '../../../core/services/staffs-query.service';\r\nimport { emailAddressRegex } from 'app/shared/regex/email-address.regex';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { DepotData, SiteDepotCommandService, CreateDepotCommand, EditDepotCommand } from 'app/core/hub-api';\r\n\r\n@Component({\r\n selector: 'hub-add-edit-depots-modal',\r\n templateUrl: './add-edit-depots-modal.component.html',\r\n styleUrls: ['./add-edit-depots-modal.component.scss']\r\n})\r\nexport class AddEditDepotsModalComponent extends FormComponent implements OnInit {\r\n editMode: boolean;\r\n context: Partial;\r\n depots: DepotData[];\r\n depot: DepotData;\r\n\r\n form: UntypedFormGroup;\r\n depotNameFormControl: UntypedFormControl;\r\n depotAddressFormControl: UntypedFormControl;\r\n emailAddressFormControl: UntypedFormControl;\r\n phoneNumberFormControl: UntypedFormControl;\r\n\r\n validationMessages = {\r\n depotName: {\r\n required: errorMessages.required\r\n },\r\n emailAddress: {\r\n required: errorMessages.required,\r\n pattern: errorMessages.emailInvalid\r\n }\r\n };\r\n\r\n constructor(\r\n public depotsQueryService: DepotsQueryService,\r\n public siteDepotCommandService: SiteDepotCommandService,\r\n public loggedInStaffService: LoggedInStaffService,\r\n public staffsQueryService: StaffsQueryService,\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState as Partial;\r\n this.editMode = this.context.editMode;\r\n\r\n this.depot = this.context.depot || this.getNewDepot();\r\n\r\n this.depotNameFormControl = new UntypedFormControl(this.depot.DepotName, [Validators.required]);\r\n this.depotAddressFormControl = new UntypedFormControl(this.depot.DepotAddress);\r\n this.emailAddressFormControl = new UntypedFormControl(this.depot.EmailAddress, [Validators.required, Validators.pattern(emailAddressRegex)]);\r\n this.phoneNumberFormControl = new UntypedFormControl(this.depot.PhoneNumber);\r\n this.form = new UntypedFormGroup({\r\n depotName: this.depotNameFormControl,\r\n depotAddress: this.depotAddressFormControl,\r\n emailAddress: this.emailAddressFormControl,\r\n phoneNumber: this.phoneNumberFormControl\r\n });\r\n super.ngOnInit();\r\n }\r\n\r\n getNewDepot(): DepotData {\r\n return {\r\n SiteDepotId: UUID.UUID(),\r\n Staff: [],\r\n DepotName: '',\r\n DepotAddress: '',\r\n Latitude: mapValues.defaultLatitude,\r\n Longitude: mapValues.defaultLongitude,\r\n PhoneNumber: '',\r\n EmailAddress: '',\r\n Deleted: false\r\n };\r\n }\r\n\r\n onSubmit(formValues): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n\r\n const command: CreateDepotCommand | EditDepotCommand = {\r\n SiteDepotId: this.depot.SiteDepotId,\r\n DepotName: formValues.depotName,\r\n DepotAddress: formValues.depotAddress,\r\n Latitude: this.depot.Latitude,\r\n Longitude: this.depot.Longitude,\r\n PhoneNumber: formValues.phoneNumber,\r\n EmailAddress: formValues.emailAddress,\r\n Deleted: this.depot.Deleted\r\n };\r\n\r\n const result = this.editMode\r\n ? this.siteDepotCommandService.EditDepotCommand(command)\r\n : this.siteDepotCommandService.CreateDepotCommand(command);\r\n\r\n result.subscribe(() => {\r\n const obs$ = forkJoin([\r\n this.depotsQueryService.depotsQuery(false),\r\n this.loggedInStaffService.loggedInStaffQuery(false),\r\n this.staffsQueryService.staffsQuery(false)\r\n ]);\r\n obs$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.modalService.setDismissReason(this.depot.SiteDepotId);\r\n this.bsModalRef.hide();\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { LookupDataBase } from 'app/core/hub-api';\r\nimport { ListPreviewModalContext } from '../../models/list-preview-modal-context';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-list-preview-modal',\r\n templateUrl: './list-preview-modal.component.html',\r\n styleUrls: ['./list-preview-modal.component.scss']\r\n})\r\nexport class ListPreviewModalComponent implements OnInit {\r\n context: Partial;\r\n\r\n title: string;\r\n mobileListItems: LookupDataBase[];\r\n constructor(public bsModalRef: BsModalRef, public modalService: BsModalService) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.title = this.context.listTitle;\r\n this.mobileListItems = this.context.mobileListItems;\r\n this.context.dialogClass = 'modal-dialog modal-lg';\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{ title }}

\r\n
    \r\n
  • \r\n

    {{ item.Title }}

    \r\n

    {{ item.Subtitle }}

    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","// Maps list titles for the UI to the property of the configuration containing the list data.\r\nexport const mobileLists: any = [\r\n {\r\n title: 'Contract Type',\r\n key: 'ContractType'\r\n },\r\n {\r\n title: 'Defect Type',\r\n key: 'DefectType'\r\n },\r\n {\r\n title: 'Handover Risk Type',\r\n key: 'HandoverRiskType'\r\n },\r\n {\r\n title: 'Handover Risk Reason',\r\n key: 'HandoverRiskReason'\r\n },\r\n {\r\n title: 'Design Type',\r\n key: 'DesignType'\r\n },\r\n {\r\n title: 'Loading Limit',\r\n key: 'LoadingLimit'\r\n },\r\n {\r\n title: 'Method Of Cladding',\r\n key: 'MethodOfCladding'\r\n },\r\n {\r\n title: 'Method Of Tying',\r\n key: 'MethodOfTying'\r\n },\r\n {\r\n title: 'Scaffold Type',\r\n key: 'ScaffoldType'\r\n },\r\n {\r\n title : 'Scaffolding System',\r\n key : 'ScaffoldingSystem'\r\n\r\n }\r\n];\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { DeniedComponent } from './core/components/denied/denied.component';\r\nimport { OfflineComponent } from './core/components/offline/offline.component';\r\nimport { NotAuthenticatedGuard } from './core/guards/not-authenticated-guard';\r\nimport { OfflineGuard } from './core/guards/offline-guard';\r\nimport { OnlineGuard } from './core/guards/online-guard';\r\nimport { LoggedInStaffResolver } from './core/resolvers/logged-in-staff-resolver';\r\nimport { MainComponent } from './core/components/main/main.component';\r\nimport { AuthenticationSetupGuard } from 'app/core/guards/authentication-setup-guard';\r\nimport { Error404Component } from './core/components/error-404/error-404.component';\r\nimport { ActivityTabComponent } from './activity/components/activity-tab/activity-tab.component';\r\nimport { EulaSlaGuard } from './core/guards/eula-sla.guard';\r\nimport { AuthorisedGuard } from './core/guards/authorised-guard';\r\nimport { GenericErrorComponent } from './core/components/generic-error/generic-error.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'error',\r\n component: GenericErrorComponent,\r\n },\r\n {\r\n path: '',\r\n component: MainComponent,\r\n canActivate: [AuthenticationSetupGuard],\r\n children: [\r\n {\r\n path: '',\r\n children: [\r\n { path: '', redirectTo: '/home', pathMatch: 'full' },\r\n { path: 'home', loadChildren: () => import('./home/home.module').then(m => m.HomeModule) },\r\n { path: 'sites', loadChildren: () => import('./sites/sites.module').then(m => m.SitesModule) },\r\n { path: 'estimates', loadChildren: () => import('./estimates/estimates.module').then(m => m.EstimatesModule) },\r\n { path: 'customers', loadChildren: () => import('./customers/customers.module').then(m => m.CustomersModule) },\r\n { path: 'reports', loadChildren: () => import('./reports/reports.module').then(m => m.ReportsModule) },\r\n { path: 'staff', loadChildren: () => import('./staff/staff.module').then(m => m.StaffModule) },\r\n { path: 'admin', loadChildren: () => import('./admin/admin.module').then(m => m.AdminModule) },\r\n { path: 'activity', component: ActivityTabComponent, canActivate: [EulaSlaGuard] },\r\n { path: 'setup', loadChildren: () => import('./setup/setup.module').then(m => m.SetupModule), canActivate: [EulaSlaGuard] },\r\n { path: 'timesheet', loadChildren: () => import('./timesheet/timesheet.module').then(m => m.TimesheetModule) },\r\n { path: 'helpcentre', loadChildren: () => import('./helpcentre/helpcentre.module').then(m => m.HelpcentreModule), canActivate: [AuthorisedGuard] },\r\n {\r\n path: 'denied',\r\n component: DeniedComponent,\r\n }\r\n ],\r\n resolve: {\r\n loggedInStaff: LoggedInStaffResolver\r\n },\r\n canActivate: [OnlineGuard]\r\n },\r\n /* when the session expires and you re-login sometimes it directs the user to this page /#/state , causing a 404 */\r\n /* TODO: Take a look at this later */\r\n {\r\n path: 'state',\r\n redirectTo: '/home',\r\n pathMatch: 'full'\r\n },\r\n /* when doing password reset ad is redirecting back to app with path /#/id_token which is causing a 404 */\r\n {\r\n path: 'id_token',\r\n redirectTo: '/home',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'login',\r\n loadChildren: () => import('./login/login.module').then(m => m.LoginModule),\r\n canActivate: [OnlineGuard, NotAuthenticatedGuard]\r\n },\r\n {\r\n path: 'offline',\r\n component: OfflineComponent,\r\n canActivate: [OfflineGuard]\r\n },\r\n { path: '**', component: Error404Component }\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, RouteConfigLoadEnd, RouteConfigLoadStart, Router } from '@angular/router';\r\nimport { LoadingSpinnerService } from './shared/services/loading-spinner.service';\r\nimport { setTheme } from 'ngx-bootstrap/utils';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport { AngularPlugin } from '@microsoft/applicationinsights-angularplugin-js';\r\nimport { environment } from 'environments/environment';\r\nimport { LoadingBarService } from '@ngx-loading-bar/core';\r\nimport userflow from 'userflow.js'\r\nimport { LoggedInStaffService } from './core/services/logged-in-staff-service';\r\nimport { UserflowService } from './core/authentication/services/userflow.service';\r\nimport { CompanySettingsService } from './shared/services/company-setting.service';\r\nimport { combineLatest } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'hub-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent implements OnInit {\r\n loading: Boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n private loadingSpinner: LoadingSpinnerService,\r\n // private mapsLoader: MapsAPILoader,\r\n private loader: LoadingBarService,\r\n private loggedInStaffService: LoggedInStaffService,\r\n private userflowService: UserflowService,\r\n private companySettingsService: CompanySettingsService,\r\n ) {\r\n setTheme('bs3'); // or 'bs4'\r\n }\r\n\r\n ngOnInit(): void {\r\n this.startUserflow();\r\n this.loadApplicationInsights();\r\n this.loadingSpinner.show();\r\n this.loadingSpinner.loading.subscribe(state => {\r\n this.loading = state;\r\n });\r\n\r\n // Dynamically load the Google Maps API script with the API key from the environment file.\r\n const script = document.createElement('script');\r\n script.src = `https://maps.googleapis.com/maps/api/js?key=${environment.googleMapsApiKey}&libraries=places`;\r\n document.body.appendChild(script);\r\n\r\n // In the general case we want to scroll to the top of the page on out changes as in a traditional website,\r\n // but there are some exceptions, eg. when the route change corresponds to simply changing a section of the page content.\r\n const scrollExceptions = [\r\n /\\/diary\\/.*\\/audio\\//,\r\n /\\/diary\\/.*\\/video\\//,\r\n /\\/diary\\/.*\\/image\\//,\r\n /\\/diary\\/.*\\/transcription\\//\r\n ];\r\n const ref = this.loader.useRef('global');\r\n\r\n this.router.events.subscribe(event => {\r\n // triggers the global loading bar when a route change starts\r\n if (event instanceof NavigationStart) {\r\n ref.start();\r\n }\r\n\r\n // completes the global loading bar when a route change ends\r\n if (event instanceof NavigationError || event instanceof NavigationCancel) {\r\n ref.complete();\r\n }\r\n\r\n if (event instanceof NavigationEnd) {\r\n // Hide app loading spinner in case it is not already hidden.\r\n // this.loading = false;\r\n this.loadingSpinner.hide();\r\n // Scroll to top of screen.\r\n if (!scrollExceptions.some(e => e.test(event.urlAfterRedirects))) {\r\n window.scrollTo(0, 0);\r\n }\r\n const results$ = combineLatest([\r\n this.companySettingsService.getCompanyDetailsFromServer(),\r\n this.loggedInStaffService.loggedInStaffChanges(),\r\n ]);\r\n results$.subscribe({\r\n next: async res => {\r\n const clientData = res[0];\r\n const loggedInStaff = res[1];\r\n if (loggedInStaff !== null && clientData !== null) {\r\n // Identify the user in Userflow. This needs to be started before each page is loaded\r\n this.userflowService.identifyUser(\r\n loggedInStaff.StaffId,\r\n {\r\n name: loggedInStaff.ContactName,\r\n email: loggedInStaff.EmailAddress,\r\n signed_up_at: new Date().toISOString(),\r\n company_id: clientData.clientId,\r\n company_name: clientData.clientName\r\n }\r\n );\r\n }\r\n },\r\n error: error => {\r\n console.error('ERROR: Unable to identify user on userflow:', error);\r\n throw error;\r\n }\r\n });\r\n ref.complete();\r\n }\r\n });\r\n\r\n // Set up HTTP interceptors here.\r\n // this.httpInterceptorService.response().addInterceptor(httpErrorResponseInterceptor);\r\n }\r\n\r\n /**\r\n * Initializes the userflow and identifies the logged-in staff member.\r\n */\r\n private startUserflow() {\r\n userflow.init(environment.userflowKey);\r\n }\r\n\r\n /**\r\n * This function loads the application insights plugin into the application.\r\n * This plugin enables the application to send telemetry to Azure Application Insights.\r\n *\r\n * @memberof AppComponent\r\n */\r\n public loadApplicationInsights() {\r\n // var angularPlugin = new AngularPlugin();\r\n // const appInsights = new ApplicationInsights({\r\n // config: {\r\n // instrumentationKey: environment.appInsights.ingestionEndpoint,\r\n // extensions: [angularPlugin],\r\n // extensionConfig: {\r\n // [angularPlugin.identifier]: { router: this.router }\r\n // }\r\n // }\r\n // });\r\n // appInsights.loadAppInsights();\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n","import '../rxjs-imports';\r\nimport { ErrorHandler, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AppComponent } from './app.component';\r\nimport { CoreModule } from './core/core.module';\r\nimport { InsightMonitoringService } from './core/services/insight-monitoring.service';\r\nimport { InsightBaseComponent } from './core/components/insight/insight-base.component';\r\nimport { ActivityModule } from './activity/activity.module';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { AngularWebStorageModule } from 'angular-web-storage';\r\nimport { ApplicationinsightsAngularpluginErrorService } from '@microsoft/applicationinsights-angularplugin-js';\r\nimport { EstimatesModule } from './estimates/estimates.module';\r\nimport { EstimatesService } from './estimates/services/estimates-service';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n InsightBaseComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n CoreModule,\r\n ActivityModule,\r\n SharedModule,\r\n AngularWebStorageModule,\r\n EstimatesModule,\r\n ],\r\n providers: [\r\n InsightMonitoringService,\r\n EstimatesService,\r\n {\r\n provide: ErrorHandler,\r\n useClass: ApplicationinsightsAngularpluginErrorService\r\n }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n\r\n constructor() {\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { AuthService } from './models/auth-service';\r\n\r\nexport let AUTH_SERVICE_TOKEN = new InjectionToken('authService');\r\n","import { InjectionToken } from '@angular/core';\r\nimport { AuthenticationModuleSettings } from './authentication-settings';\r\n\r\nexport let AUTHENTICATION_SETTINGS_TOKEN = new InjectionToken('authenticationSettings');\r\n","\r\nexport interface AuthenticationModuleSettings {\r\n production: boolean;\r\n apiServiceBaseUri: string;\r\n adalB2C: AdalB2CSettings;\r\n multiTenantUrl: string;\r\n appUrl: string;\r\n featureFlags: { [key: string]: boolean };\r\n customerTitle?: string;\r\n}\r\n\r\nexport interface AdalB2CSettings {\r\n tenantName: string;\r\n redirectUri: string;\r\n clientId: string;\r\n policy: string;\r\n appResourceURI: string;\r\n adb2cBaseOAuthUri: string;\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { AuthenticationEventsService } from './services/authentication-events.service';\r\nimport { OnlineSessionService } from './services/online-session.service';\r\nimport { UserIdentityService } from './services/user-identity.service';\r\nimport { AuthenticationModuleSettings } from './authentication-settings';\r\nimport { AUTHENTICATION_SETTINGS_TOKEN } from './authentication-settings-token';\r\nimport { HelloAuthService } from './services/hello-auth.service';\r\nimport { HellojsService } from './services/hellojs.service';\r\nimport { AUTH_SERVICE_TOKEN } from './auth-service-token';\r\n\r\n// THIS MODULE SHOULD ONLY BE IMPORTED ONCE PER APPLICATION AS IT CONTAINS APPLICATION WIDE SINGLETONS.\r\n@NgModule({\r\n declarations: [],\r\n exports: [],\r\n})\r\nexport class AuthenticationModule {\r\n constructor() { }\r\n static forRoot(settingsFactory: () => AuthenticationModuleSettings): ModuleWithProviders {\r\n\r\n return {\r\n ngModule: AuthenticationModule,\r\n providers: [\r\n OnlineSessionService,\r\n UserIdentityService,\r\n AuthenticationEventsService,\r\n // Later we may want to provide other implementations of the authService.\r\n { provide: AUTH_SERVICE_TOKEN, useClass: HelloAuthService },\r\n { provide: AUTHENTICATION_SETTINGS_TOKEN, useFactory: settingsFactory },\r\n /* { provide: JWT_HELPER_TOKEN, useClass: JwtHelperService }, */\r\n HellojsService,\r\n ],\r\n };\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UserIdentityService } from 'app/core/authentication';\r\nimport { intersection } from 'lodash';\r\n/** \r\n * This component checks if the current user has any of the permissions.\r\n * If he does, it will render the content passed in. If he doesn't, it will not render the content.\r\n * Usage: \r\n * ### **On HTML:** \r\n * - `...{add here your code}...`\r\n * - this will not show the content if the user's permission list doesn't contain 'AddEditCustomers'\r\n */\r\n@Component({\r\n selector: 'hub-permission',\r\n template: ``,\r\n})\r\nexport class PermissionComponent implements OnInit {\r\n /** Stores if the user can or cannot view the element */\r\n public canView = false;\r\n /** This stores the passed in permission from html `...`*/\r\n @Input() permissions: string;\r\n constructor(\r\n public userIdentityService: UserIdentityService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n try {\r\n const permissionsArray = this.permissions.split(/\\s+/);\r\n const user = this.userIdentityService.currentUser();\r\n const userHasPermission = user && user.claims && intersection(permissionsArray, user.claims).length > 0;\r\n this.canView = userHasPermission;\r\n } catch (error) {\r\n console.log('Error in PermissionComponent: ', error)\r\n }\r\n }\r\n}\r\n","export enum AuthResponseErrorType {\r\n NoResponse = 1,\r\n ErrorResponse = 2,\r\n ExpiredResponse = 3,\r\n}\r\n","export * from './auth-response-error-type';\r\n","export * from './authentication.module';\r\nexport * from './authentication-settings-token';\r\nexport * from './auth-service-token';\r\nexport * from './jwt-helper-token';\r\nexport * from './authentication-settings';\r\nexport * from './models';\r\nexport * from './services';\r\nexport * from './enum';\r\n\r\n","import { InjectionToken } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\n\r\n\r\nexport let JWT_HELPER_TOKEN = new InjectionToken('jwtHelperService');\r\n","export interface AccessTokenData {\r\n deviceId: string;\r\n extension_ClientName: string;\r\n extension_ClientId: string;\r\n oid: string;\r\n}\r\n","import { AuthResponseErrorType } from '../enum/auth-response-error-type';\r\n\r\nexport class AuthResponseError extends Error {\r\n type: AuthResponseErrorType;\r\n code?: string;\r\n}\r\n","import { Moment } from 'moment';\r\n\r\nexport class AuthResponse {\r\n expires: number;\r\n access_token: string;\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { AuthResponse } from './auth-response';\r\n\r\nexport interface AuthService {\r\n initialise(): Observable;\r\n login(requirePassword: boolean): Observable<{ network, authResponse: AuthResponse }>;\r\n logout(): Observable<{ network: string }>;\r\n}\r\n","export * from './user';\r\nexport * from './access-token-data';\r\nexport * from './auth-response-error';\r\nexport * from './auth-response';\r\nexport * from './auth-service';\r\n","import { Moment } from 'moment';\r\n\r\nexport class User {\r\n roles: string[];\r\n claims: string[];\r\n username: string;\r\n deviceId: string;\r\n accessToken: string;\r\n lastLogin: string;\r\n displayName: string;\r\n userId: string;\r\n expiryTime: string;\r\n}\r\n","import { ReplaySubject } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { User } from '../models/user';\r\nimport { Event } from '../../utility';\r\n\r\n// A service exposing events relating to authentication.\r\n@Injectable()\r\nexport class AuthenticationEventsService {\r\n\r\n loginRequiredEvent = new Event<{ expired: boolean }>();\r\n\r\n userUpdatedEvent = new Event(new ReplaySubject(1));\r\n}\r\n","\r\nimport { HellojsService } from './hellojs.service';\r\nimport { AuthenticationModuleSettings } from '../authentication-settings';\r\nimport { AUTHENTICATION_SETTINGS_TOKEN } from '../authentication-settings-token';\r\nimport { AuthResponse } from '../models/auth-response';\r\nimport { AuthResponseErrorType } from '../enum/auth-response-error-type';\r\nimport { AuthResponseError } from '../models/auth-response-error';\r\nimport { AuthService } from '../models/auth-service';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of, throwError } from 'rxjs';\r\n\r\n// Service for authenticating using hello.js\r\n@Injectable()\r\nexport class HelloAuthService implements AuthService {\r\n\r\n private readonly network = 'adB2CSignInSignUp';\r\n\r\n constructor(\r\n @Inject(AUTHENTICATION_SETTINGS_TOKEN) private settings: AuthenticationModuleSettings,\r\n private hello: HellojsService,\r\n private http: HttpClient\r\n ) { }\r\n // Initialise the service with our policies and return the authentication status. Throws an AuthResponseError\r\n // if the user is not authenticated.\r\n initialise(): Observable {\r\n this.hello.init({\r\n adB2CSignIn: this.settings.adalB2C.clientId,\r\n adB2CSignInSignUp: this.settings.adalB2C.clientId,\r\n adB2CEditProfile: this.settings.adalB2C.clientId\r\n }, {\r\n redirect_uri: this.settings.adalB2C.redirectUri,\r\n scope: 'openid ' + this.settings.adalB2C.appResourceURI,\r\n response_type: 'token'\r\n });\r\n const adB2CSignInSignUpPolicy = this.getPolicyConfiguredData();\r\n this.hello.init(adB2CSignInSignUpPolicy);\r\n // Get authentication status for adB2CSignInSignUp\r\n const authResponse = this.hello.getAuthResponse(this.network);\r\n if (authResponse && !authResponse.error) {\r\n // Resolve with the response.\r\n return of(authResponse);\r\n } else if (authResponse && authResponse.error) {\r\n const error: AuthResponseError = {\r\n name: 'AuthResponseError',\r\n type: AuthResponseErrorType.ErrorResponse,\r\n message: authResponse.error.message,\r\n code: authResponse.error.code,\r\n };\r\n return throwError(() => error);\r\n } else {\r\n const error: AuthResponseError = {\r\n name: 'AuthResponseError',\r\n type: AuthResponseErrorType.NoResponse,\r\n message: 'The current user is not authenticated.'\r\n };\r\n return throwError(() => error);\r\n }\r\n }\r\n\r\n // Log the user in, redirect to the login page if it is a password login - otherwise refresh the access_token in the background.\r\n login(requirePassword: boolean): Observable<{ network, authResponse: AuthResponse }> {\r\n if (requirePassword) {\r\n // Show authentication page.\r\n return this.hello.login(this.network, {\r\n display: 'page',\r\n force: true\r\n });\r\n } else {\r\n return this.hello.login(this.network, {\r\n display: 'none'\r\n });\r\n }\r\n }\r\n\r\n logout(): Observable<{ network: string }> {\r\n return this.hello.logout(this.network, {\r\n force: true\r\n });\r\n }\r\n\r\n // Azure active directory B2C Sign-In and Sign-Up Policy Configuration, based on:\r\n // https://github.com/Azure-Samples/active-directory-b2c-javascript-hellojs-singlepageapp/blob/master/B2C-v2jsapp/aadb2c.js\r\n private getPolicyConfiguredData() {\r\n\r\n const adB2CSignInSignUpPolicy = {};\r\n adB2CSignInSignUpPolicy[this.network] = {\r\n name: 'Azure Active Directory B2C',\r\n oauth: {\r\n version: 2,\r\n auth: `${this.settings.adalB2C.adb2cBaseOAuthUri}tfp/${this.settings.adalB2C.tenantName}` +\r\n `/${this.settings.adalB2C.policy}/oauth2/v2.0/authorize`,\r\n grant: `${this.settings.adalB2C.adb2cBaseOAuthUri}tfp/${this.settings.adalB2C.tenantName}` +\r\n `/${this.settings.adalB2C.policy}/oauth2/v2.0/token`\r\n },\r\n refresh: true,\r\n scope_delim: ' ',\r\n // Don't even try submitting via form.\r\n // This means no POST operations in <=IE9\r\n form: false\r\n };\r\n adB2CSignInSignUpPolicy[this.network].xhr = p => {\r\n if (p.method === 'post' || p.method === 'put') {\r\n // toJSON(p);\r\n if (typeof (p.data) === 'object') {\r\n // Convert the POST into a javascript object\r\n try {\r\n p.data = JSON.stringify(p.data);\r\n p.headers['content-type'] = 'application/json';\r\n } catch (e) { }\r\n }\r\n } else if (p.method === 'patch') {\r\n this.hello.utils.extend(p.query, p.data);\r\n p.data = null;\r\n }\r\n return true;\r\n };\r\n adB2CSignInSignUpPolicy[this.network].logout = () => {\r\n // get id_token from auth response\r\n const authResponse = this.hello.getAuthResponse(this.network);\r\n const id_token = authResponse.id_token;\r\n // clearing local storage session\r\n this.hello.utils.store(this.network, null);\r\n\r\n // redirecting to Azure B2C logout URI\r\n const logoutUrl = `${this.settings.adalB2C.adb2cBaseOAuthUri}/${this.settings.adalB2C.tenantName}/oauth2/v2.0/logout?p=` + \r\n `${this.settings.adalB2C.policy}&id_token_hint=${id_token}&post_logout_redirect_uri=${this.settings.adalB2C.redirectUri}`;\r\n window.open(logoutUrl, '_self');\r\n\r\n return true;\r\n };\r\n return adB2CSignInSignUpPolicy;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport * as hello from 'hellojs';\r\nimport { HelloJSLoginOptions } from 'hellojs';\r\n\r\n// Angular wrapper around hello.js library.\r\n// Based on ngx-hello https://github.com/teamcancode/ngx-hellojs\r\n@Injectable()\r\nexport class HellojsService {\r\n\r\n utils = hello.utils;\r\n\r\n init(serviceAppIds: { [id: string]: string }, options?: HelloJSLoginOptions) {\r\n return hello.init(serviceAppIds, options);\r\n }\r\n\r\n getAuthResponse(network: string): any {\r\n return hello.getAuthResponse(network);\r\n }\r\n\r\n login(network: string, options?: {}): Observable<{ network, authResponse }> {\r\n const loginPromise = hello.login(network, options, () => {});\r\n return new Observable(observer => {\r\n loginPromise.then((data: { network, authResponse }) => {\r\n observer.next(data);\r\n observer.complete();\r\n }, (error: { error: { code, message }, network }) => {\r\n observer.error(error);\r\n });\r\n });\r\n }\r\n\r\n logout(network: string, options?: {}): Observable<{ network }> {\r\n const logoutPromise = hello.logout(network, options, () => {});\r\n return new Observable(observer => {\r\n logoutPromise.then((data: { network }) => {\r\n observer.next(data);\r\n observer.complete();\r\n }, (error: { error: { code, message }, network }) => {\r\n observer.error(error);\r\n });\r\n });\r\n }\r\n\r\n // api(network: string, path: string, method?: string, configs?: Object): Observable<{ Object }> {\r\n // return new Observable(observer => {\r\n // hello(network).api(path, method, configs).then((data: any) => {\r\n // observer.next(data);\r\n // observer.complete();\r\n // }, (error: { error: { error: { code, message }, network }, network }) => {\r\n // observer.error(error);\r\n // });\r\n // });\r\n // }\r\n\r\n // on(event: string, callback: any) {\r\n // hello.on(event, callback);\r\n // }\r\n\r\n // off(event: string, callback: any) {\r\n // hello.off(event, callback);\r\n // }\r\n}\r\n","export * from './user-identity.service';\r\nexport * from './online-session.service';\r\nexport * from './authentication-events.service';\r\nexport * from './hellojs.service';\r\nexport * from './hello-auth.service';\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport * as moment from 'moment';\r\nimport { forkJoin } from 'rxjs';\r\nimport { Observable } from 'rxjs';\r\nimport { tap, map, flatMap, catchError } from 'rxjs/operators';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { User } from '../models/user';\r\nimport { UserIdentityService } from './user-identity.service';\r\nimport { AuthService } from '../models/auth-service';\r\nimport { AuthResponse } from '../models/auth-response';\r\nimport { AccessTokenData } from '../models/access-token-data';\r\nimport { StaffEndpointService } from '../../hub-api/generated/api/staff-endpoint.service';\r\nimport { AUTHENTICATION_SETTINGS_TOKEN } from '../authentication-settings-token';\r\nimport { AuthenticationModuleSettings } from '../authentication-settings';\r\nimport { StaffDetailsWebAppData } from '../../hub-api/generated/model/query/staff-details-web-app-data';\r\nimport { AUTH_SERVICE_TOKEN } from '../auth-service-token';\r\nimport { AuthResponseErrorType } from '../enum/auth-response-error-type';\r\nimport { LocalStorageService } from 'angular-web-storage';\r\nimport { CompanySettingsService } from 'app/shared/services/company-setting.service';\r\nimport { Router } from '@angular/router';\r\nimport userflow from 'userflow.js';\r\nimport { GenericErrorComponent } from 'app/core/components/generic-error/generic-error.component';\r\n\r\n// Service for handling online sessions, ie. authentication, and configuration of user and client/customer settings.\r\n@Injectable()\r\nexport class OnlineSessionService {\r\n private jwtHelper = new JwtHelperService();\r\n constructor(\r\n private userIdentityService: UserIdentityService,\r\n @Inject(AUTH_SERVICE_TOKEN) private authService: AuthService,\r\n /* @Inject(JWT_HELPER_TOKEN) private jwtHelper: JwtHelperService, */\r\n private staffEndpointService: StaffEndpointService,\r\n @Inject(AUTHENTICATION_SETTINGS_TOKEN) private settings: AuthenticationModuleSettings,\r\n private http: HttpClient,\r\n private companySettingsService: CompanySettingsService,\r\n private router: Router,\r\n ) { }\r\n\r\n // Try and authenticate the user, and configure the logged in user if successful, otherwise throw an AuthResponseError.\r\n initialise(): Observable {\r\n // Clear existng user data.\r\n this.userIdentityService.updateUser(undefined);\r\n // Attempt to authenticate the user and then configure the logged in user.\r\n const initRequest = this.authService.initialise().pipe(\r\n tap(authResponse => {\r\n const expired = moment(authResponse.expires * 1000) < moment();\r\n if (expired) {\r\n throw {\r\n name: 'AuthResponseError',\r\n type: AuthResponseErrorType.ExpiredResponse,\r\n message: 'Session expired'\r\n };\r\n }\r\n }),\r\n flatMap(authResponse => {\r\n // Wait for configureLoggedInUser, but then pass the authResponse back into to the stream.\r\n return this.configureLoggedInUser(authResponse).pipe(map(() => authResponse));\r\n })\r\n );\r\n return initRequest;\r\n }\r\n\r\n // Redirect the user to the login page if requirePassword is true, ortherwise refresh the access token in the background.\r\n login(requirePassword: boolean): Observable<{ network; authResponse: AuthResponse }> {\r\n const loginRequest = this.authService.login(requirePassword);\r\n if (requirePassword) {\r\n loginRequest.subscribe(r => this.configureLoggedInUser(r.authResponse));\r\n }\r\n return loginRequest;\r\n }\r\n\r\n logout(): Observable<{ network }> {\r\n this.userIdentityService.updateUser(undefined);\r\n return this.authService.logout();\r\n }\r\n\r\n // Configure the logged in user settings and customer/client specific settings.\r\n private configureLoggedInUser(authResponse: AuthResponse): Observable {\r\n // Decode our access token to get the client name and ID.\r\n const accessTokenData: AccessTokenData = this.jwtHelper.decodeToken(authResponse.access_token);\r\n const clientData = {\r\n clientName: accessTokenData.extension_ClientName,\r\n clientId: accessTokenData.extension_ClientId\r\n };\r\n\r\n // Set the user data that we currently have available - set the rest after querying the logged in staff.\r\n const tokenExpiryTime = moment(authResponse.expires * 1000);\r\n const userDetails = {\r\n roles: [],\r\n claims: [],\r\n accessToken: authResponse.access_token,\r\n expiryTime: tokenExpiryTime.toISOString()\r\n } as User;\r\n this.userIdentityService.updateUser(userDetails, false);\r\n\r\n const results$ = forkJoin(this.updateClientSettings(clientData), this.staffEndpointService.GetSingle(accessTokenData.oid));\r\n return results$.pipe(\r\n tap(async res => {\r\n // Update logged in user specific settings.\r\n const loggedInStaff: StaffDetailsWebAppData = res[1];\r\n const user: User = {\r\n roles: loggedInStaff.Roles,\r\n claims: loggedInStaff.Claims,\r\n username: loggedInStaff.EmailAddress,\r\n deviceId: accessTokenData.deviceId,\r\n accessToken: authResponse.access_token,\r\n lastLogin: moment().toISOString(),\r\n displayName: loggedInStaff.ContactName,\r\n userId: loggedInStaff.StaffId,\r\n expiryTime: tokenExpiryTime.toISOString()\r\n };\r\n this.userIdentityService.updateUser(user);\r\n }),\r\n catchError(error => {\r\n this.router.navigate(['/error'], { queryParams: { errorCode: error.status, errorMessage: error.message } });\r\n throw error;\r\n })\r\n );\r\n }\r\n\r\n // Update app settings specific to this client/customer, eg. feature flags, api URL.\r\n private updateClientSettings(clientData: { clientName; clientId }): Observable {\r\n return this.companySettingsService.getCompanyDetailsForceFetchFromServer(clientData.clientId).pipe(map(data => data[0]));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AuthenticationEventsService } from './authentication-events.service';\r\nimport { User } from '../models/user';\r\nimport * as moment from 'moment';\r\nimport { LocalStorageService } from 'angular-web-storage';\r\n\r\n// Class for querying and updating the logged in user data.\r\n@Injectable()\r\nexport class UserIdentityService {\r\n\r\n private user: User;\r\n\r\n constructor(\r\n private authEventsService: AuthenticationEventsService,\r\n private localStorageService: LocalStorageService,\r\n ) {\r\n // Pull current user from local storage.\r\n this.user = this.localStorageService.get('currentUser');\r\n\r\n // Flush out the user data if it is not valid or access token is expired.\r\n const validAuthenticatedUser = this.user && this.user.username && this.user.accessToken && moment() < moment(this.user.expiryTime);\r\n if (!validAuthenticatedUser) {\r\n this.user = undefined;\r\n this.localStorageService.set('currentUser', undefined);\r\n }\r\n this.authEventsService.userUpdatedEvent.trigger(this.user);\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n return !!this.user && this.user.accessToken && (moment() < moment(this.user.expiryTime));\r\n }\r\n\r\n currentUser(): User {\r\n return this.user;\r\n }\r\n\r\n // Updates user in memory and in local storage - use undefined for no user.\r\n updateUser(user: User, notifyListeners = true): User {\r\n this.user = user;\r\n this.localStorageService.set('currentUser', user);\r\n if (notifyListeners) {\r\n this.authEventsService.userUpdatedEvent.trigger(user);\r\n }\r\n return user;\r\n }\r\n\r\n // Get the access token or trigger the login required event if there is not a valid token.\r\n getAccessToken(): string {\r\n const currentTime = moment();\r\n const expired = this.user && moment().isAfter(this.user.expiryTime);\r\n if (!this.user || !this.user.accessToken || expired) {\r\n this.authEventsService.loginRequiredEvent.trigger({ expired: expired });\r\n return;\r\n } else {\r\n return this.user.accessToken;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'environments/environment';\r\nimport userflow from 'userflow.js';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n * Service for managing userflow and tracking user events.\r\n */\r\nexport class UserflowService {\r\n\r\n constructor() {\r\n this.loadUserflow();\r\n }\r\n\r\n /**\r\n * Loads the userflow by initializing the userflow with the provided key.\r\n */\r\n private loadUserflow(): void {\r\n userflow.init(environment.userflowKey);\r\n }\r\n\r\n /**\r\n * Identifies the user with the specified user ID and optional traits.\r\n * @param userId - The ID of the user to identify.\r\n * @param traits - Optional traits associated with the user.\r\n */\r\n public identifyUser(userId: string, traits?: any): void {\r\n userflow.identify(userId, traits);\r\n }\r\n\r\n /**\r\n * Tracks an event using the specified event name and properties.\r\n * @param eventName - The name of the event to track.\r\n * @param properties - Optional properties associated with the event.\r\n */\r\n public trackEvent(eventName: string, properties?: any): void {\r\n userflow.track(eventName, properties);\r\n }\r\n}","import { ApplicationSettingsQueryService } from '../../services/application-settings-query.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ConfigurationQueryService } from '../../services/configuration-query.service';\r\n\r\n@Component({\r\n selector: 'hub-app-footer',\r\n templateUrl: './app-footer.component.html',\r\n styleUrls: ['./app-footer.component.scss']\r\n})\r\nexport class AppFooterComponent implements OnInit {\r\n\r\n clientVersion: string = environment.clientVersion;\r\n serverVersion = 'unknown';\r\n\r\n constructor(private applicationSettingsQueryService: ApplicationSettingsQueryService) { }\r\n\r\n ngOnInit(): void {\r\n this.applicationSettingsQueryService.applicationSettingsQuery(true)\r\n .subscribe(settings => {\r\n if (settings) { this.serverVersion = settings.ServerVersion; }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n Client:{{clientVersion}} Server:{{serverVersion}}\r\n
\r\n","import { AddEditStaffModalComponent } from '../../../shared/components/add-edit-staff-modal/add-edit-staff-modal.component';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { combineLatest } from 'rxjs';\r\nimport {\r\n ConfigurationData,\r\n DepotData,\r\n StaffData,\r\n StaffDetailsWebAppData,\r\n} from 'app/core/hub-api';\r\nimport { LoggedInStaffService } from '../../services/logged-in-staff-service';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { AuthenticationEventsService, OnlineSessionService, User, UserIdentityService } from 'app/core/authentication';\r\nimport { CompanySettingsService } from 'app/shared/services/company-setting.service';\r\nimport { LocalStorageService } from 'angular-web-storage';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-app-header',\r\n templateUrl: './app-header.component.html',\r\n styleUrls: ['./app-header.component.scss']\r\n})\r\nexport class AppHeaderComponent implements OnInit, OnDestroy {\r\n authenticated: boolean;\r\n username: string;\r\n displayName: string;\r\n /** Stores the company name */\r\n companyName: string;\r\n\r\n loggedInStaff: StaffDetailsWebAppData;\r\n staffs: StaffData[];\r\n configuration: ConfigurationData;\r\n depots: DepotData[];\r\n\r\n setupComplete: boolean;\r\n\r\n constructor(\r\n private authenticationEventsService: AuthenticationEventsService,\r\n private userIdentityService: UserIdentityService,\r\n private onlineSessionService: OnlineSessionService,\r\n private router: Router,\r\n private loggedInStaffService: LoggedInStaffService,\r\n private bsModalService: BsModalService,\r\n private companySettingsService: CompanySettingsService,\r\n private localStorageService: LocalStorageService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n const companyId = this.localStorageService.get('companyId');\r\n\r\n const obs$ = combineLatest(\r\n [\r\n this.authenticationEventsService.userUpdatedEvent.asObservable(),\r\n this.loggedInStaffService.loggedInStaffChanges(),\r\n this.companySettingsService.getCompanyDetailsAndCache(companyId)\r\n ]\r\n );\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1], latest[2]));\r\n }\r\n\r\n refreshComponent(\r\n user: User,\r\n loggedInStaff: StaffDetailsWebAppData,\r\n clientDetails\r\n ): void {\r\n this.loggedInStaff = loggedInStaff;\r\n\r\n this.authenticated = this.userIdentityService.isAuthenticated();\r\n this.username = this.loggedInStaff ? this.loggedInStaff.EmailAddress : '';\r\n this.displayName = this.loggedInStaff ? this.loggedInStaff.ContactName : '';\r\n this.companyName = clientDetails?.CustomerName ?? '';\r\n }\r\n\r\n logout(): void {\r\n this.onlineSessionService.logout();\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n\r\n onEditProfile(): void {\r\n const context = {\r\n editMode: true,\r\n staff: this.loggedInStaff,\r\n staffs: this.staffs,\r\n configuration: this.configuration,\r\n depots: this.depots,\r\n loggedInStaff: this.loggedInStaff\r\n };\r\n this.bsModalService.show(AddEditStaffModalComponent, SSModalConfig.generate(context));\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n SMART Scaffolder\r\n
\r\n
\r\n \r\n
\r\n
","\r\nimport { Location } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { UserIdentityService } from 'app/core/authentication';\r\n\r\n@Component({\r\n selector: 'hub-denied',\r\n templateUrl: './denied.component.html',\r\n styleUrls: ['./denied.component.scss']\r\n})\r\nexport class DeniedComponent implements OnInit {\r\n decideRoute: { pageName: string; url: any; };\r\n\r\n constructor(\r\n private location: Location,\r\n private userIdentityService: UserIdentityService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.userRedirect();\r\n }\r\n\r\n private userRedirect(): void {\r\n if (this.userIdentityService.currentUser().roles[0] === 'Payroll Officer') {\r\n this.decideRoute = {\r\n pageName: 'timesheet reports',\r\n url: ['../timesheet/reports/collective'],\r\n };\r\n } else {\r\n this.decideRoute = {\r\n pageName: 'sites list',\r\n url: ['/sites'],\r\n };\r\n }\r\n }\r\n\r\n back(): void {\r\n this.location.back();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

401 Error

\r\n

Unauthorised

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

You do not have the necessary permissions to view this page!

\r\n

If you feel you should be able to view this page then please contact the administrator. For now you could go back to where you were or head to the {{decideRoute.pageName}}.

\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'hub-error-404',\r\n templateUrl: './error-404.component.html',\r\n styleUrls: ['./error-404.component.scss']\r\n})\r\nexport class Error404Component implements OnInit {\r\n\r\n constructor(private location: Location) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n back(): void {\r\n this.location.back();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

404 Error

\r\n

Page not found.

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

Something's gone wrong!

\r\n

The page you were looking for appears to have been moved, deleted or does not exist. You could go back to where you were or head to the home page.

\r\n
\r\n
\r\n","\r\nimport { Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'hub-generic-error',\r\n templateUrl: './generic-error.component.html',\r\n styleUrls: ['./generic-error.component.scss']\r\n})\r\n/**\r\n * This component is used to display the page displayed when there is an error on the website.\r\n */\r\nexport class GenericErrorComponent {\r\n /** Stores the error message that is sent via the route */\r\n errorMessage: string;\r\n /** Stores the error code that is sent via the route */\r\n errorCode: string;\r\n\r\n constructor(private route: ActivatedRoute) { }\r\n\r\n\r\n /**\r\n * Initializes the component.\r\n * Subscribes to the query parameters and retrieves the error message and error code.\r\n * Logs the error message and error code to the console.\r\n */\r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n this.errorMessage = params['errorMessage'];\r\n this.errorCode = this.getErrorMessage(params['errorCode']);\r\n console.log(this.errorMessage, this.errorCode)\r\n });\r\n }\r\n\r\n /**\r\n * Gets the error message based on the error code.\r\n * @param errorCode - The error code.\r\n * @returns The corresponding error message.\r\n */\r\n getErrorMessage(errorCode: string): string {\r\n switch (Number(errorCode)) {\r\n case 400:\r\n return '400 Bad Request';\r\n case 401:\r\n return '401 Unauthorized';\r\n case 403:\r\n return '403 Forbidden';\r\n case 404:\r\n return '404 Not Found';\r\n case 500:\r\n return '500 Internal Server Error';\r\n default:\r\n return errorCode.toString();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

{{ errorCode }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
{{ errorMessage }}
\r\n

Please contact SMART Scaffolder sales on 01202 603031 or email\r\n subscriptions@cads.co.uk for more information.\r\n

\r\n
\r\n
","import { Component, ReflectiveInjector, Injector } from '@angular/core';\r\nimport { InsightMonitoringService } from '../../services/insight-monitoring.service';\r\n\r\n@Component({\r\n template: '',\r\n providers: [InsightMonitoringService]\r\n})\r\nexport class InsightBaseComponent {\r\n\r\n private insightMonitoringService: InsightMonitoringService;\r\n\r\n constructor() {\r\n // Manually retrieve the monitoring service from the injector\r\n // so that constructor has no dependencies that must be passed in from child\r\n const injector = Injector.create({providers: [\r\n { provide: InsightMonitoringService, deps: []}]});\r\n // InsightMonitoringService\r\n // ]);\r\n this.insightMonitoringService = injector.get(InsightMonitoringService);\r\n this.logNavigation();\r\n }\r\n\r\n private logNavigation(): void {\r\n this.insightMonitoringService.logPageView();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterConfig } from 'angular2-toaster';\r\n\r\n@Component({\r\n selector: 'hub-main',\r\n templateUrl: './main.component.html',\r\n styleUrls: ['./main.component.scss']\r\n})\r\nexport class MainComponent implements OnInit {\r\n\r\n toasterConfig = new ToasterConfig({ timeout: 5000 });\r\n ngOnInit(): void {}\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-offline',\r\n templateUrl: './offline.component.html',\r\n styleUrls: ['./offline.component.scss']\r\n})\r\nexport class OfflineComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

Offline

\r\n

Sorry but the application is currently offline please try again later.

\r\n
\r\n
\r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { InjectionToken, NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FroalaEditorModule, FroalaViewModule } from 'angular-froala-wysiwyg';\r\nimport { ToasterModule, ToasterService } from 'angular2-toaster';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { SiteScaffoldDiaryQueryService } from 'app/core/services/site-scaffold-diary-query.service';\r\nimport { FilterService } from 'app/core/services/filter-service';\r\nimport { TextToColorService } from 'app/core/services/text-to-color.service';\r\nimport { MainComponent } from 'app/core/components/main/main.component';\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\r\nimport { AlertModule } from 'ngx-bootstrap/alert';\r\nimport { environment } from '../../environments/environment';\r\nimport { AppRoutingModule } from '../app-routing.module';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { AppFooterComponent } from './components/app-footer/app-footer.component';\r\nimport { AppHeaderComponent } from './components/app-header/app-header.component';\r\nimport { DeniedComponent } from './components/denied/denied.component';\r\nimport { OfflineComponent } from './components/offline/offline.component';\r\nimport { AuthenticatedGuard } from './guards/authenticated-guard';\r\nimport { AuthenticationSetupGuard } from './guards/authentication-setup-guard';\r\nimport { AuthorisedGuard } from './guards/authorised-guard';\r\nimport { NotAuthenticatedGuard } from './guards/not-authenticated-guard';\r\nimport { OfflineGuard } from './guards/offline-guard';\r\nimport { OnlineGuard } from './guards/online-guard';\r\nimport { ConfigurationResolver } from './resolvers/configuration.resolver';\r\nimport { CustomersResolver } from './resolvers/customers.resolver';\r\nimport { DepotsResolver } from './resolvers/depots.resolver';\r\nimport { HandoverStatisticsResolver } from './resolvers/handover-statistics.resolver';\r\nimport { LoggedInStaffResolver } from './resolvers/logged-in-staff-resolver';\r\nimport { ScaffoldInspectionResolver } from './resolvers/scaffold-inspection.resolver';\r\nimport { SitesResolver } from './resolvers/sites.resolver';\r\nimport { StaffsResolver } from './resolvers/staffs.resolver';\r\nimport { ApplicationSettingsQueryService } from './services/application-settings-query.service';\r\nimport { ArrayHelperService } from './services/array-helper.service';\r\nimport { ConfigurationQueryService } from './services/configuration-query.service';\r\nimport { CustomerDetailQueryService } from './services/customer-detail-query.service';\r\nimport { CustomersQueryService } from './services/customers-query.service';\r\nimport { DashboardQueryService } from './services/dashboard-query.service';\r\nimport { DepotsQueryService } from './services/depots-query.service';\r\nimport { HandoverHistoryQueryService } from './services/handover-history-query-service';\r\nimport { HandoverStatisticsQueryService } from './services/handover-statistics-query-service';\r\nimport { ImageUploadService } from './services/image-upload.service';\r\nimport { LoggedInStaffService } from './services/logged-in-staff-service';\r\nimport { ReportSitesQueryService } from './services/report-sites-query.service';\r\nimport { ScaffoldInspectionQueryService } from './services/scaffold-inspection-query-service';\r\nimport { ScaffoldStatisticsQueryService } from './services/scaffold-statistics-query-service';\r\nimport { SitesQueryService } from './services/sites-query.service';\r\nimport { StaffDetailQueryService } from './services/staff-detail-query.service';\r\nimport { StaffsQueryService } from './services/staffs-query.service';\r\nimport { AutoGenerateQuickIdService } from './services/auto-generate-quickId.service';\r\nimport { TimeoutService } from './services/timeout.service';\r\nimport { HttpErrorResponseInterceptor } from './interceptors/http-error-response.interceptor';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ConfirmLeaveGuard } from 'app/core/guards/confirm-leave.guard';\r\nimport { ExportService } from './services/export-service';\r\nimport { Error404Component } from './components/error-404/error-404.component';\r\nimport { UnassignedScaffoldQueryService } from './services/unassigned-scaffold-query-service';\r\nimport { ItemDetailsQueryService } from './services/item-details-query.service';\r\nimport { TimesheetDepotsQueryService } from './services/timesheet-depots-query-service';\r\nimport { UtilityService } from './services/utility-service';\r\nimport { HighchartsChartModule } from 'highcharts-angular';\r\nimport { HandoverViewComponent } from 'app/activity/modals/handover-view/handover-view.component';\r\nimport { DiaryViewComponent } from 'app/activity/modals/diary-view/diary-view.component';\r\nimport { DismantleViewComponent } from 'app/activity/modals/dismantle-view/dismantle-view.component';\r\nimport { OffhireViewComponent } from 'app/activity/modals/offhire-view/offhire-view.component';\r\nimport { UnsafeViewComponent } from 'app/activity/modals/unsafe-view/unsafe-view.component';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { InspectionViewComponent } from 'app/activity/modals/inspection-view/inspection-view.component';\r\nimport { ActivityModalService } from 'app/shared/services/activity-modal.service';\r\nimport { VariationViewComponent } from '../activity/modals/variation-view/variation-view.component';\r\nimport { GenerateDefaultsService } from './services/generateDefaults.service';\r\nimport { StockReportQueryService } from './services/stock-report-query-service';\r\nimport { FileUploadService } from './services/file-upload-service';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { LoadingBarModule } from '@ngx-loading-bar/core';\r\nimport { LoadingBarRouterModule } from '@ngx-loading-bar/router';\r\nimport { UtilityModule } from './utility';\r\nimport { FeatureFlagsModule } from 'app/shared/components/feature-flags';\r\nimport { HubApiModule } from './hub-api';\r\nimport { AuthenticationModule } from './authentication';\r\nimport { HttpCancelService } from './services/http-cancel.service';\r\nimport { CompanySettingsService } from 'app/shared/services/company-setting.service';\r\nimport { GenericErrorComponent } from './components/generic-error/generic-error.component';\r\n\r\ndeclare const require: any;\r\n\r\nvar Highcharts = require('highcharts');\r\nrequire('highcharts/modules/exporting')(Highcharts);\r\n\r\n\r\nexport function settingsFactory(): any {\r\n return environment;\r\n}\r\nexport function featureFlagFactory(): any {\r\n return environment.featureFlags;\r\n}\r\n\r\n// Module for application wide services, and also components used in the app template.\r\n// SHOULD ONLY BE IMPORTED ONCE, IN THE ROOT MODULE OF THE APPLICATION!\r\n@NgModule({\r\n declarations: [\r\n AppFooterComponent,\r\n AppHeaderComponent,\r\n DeniedComponent,\r\n GenericErrorComponent,\r\n Error404Component,\r\n MainComponent,\r\n OfflineComponent,\r\n DiaryViewComponent,\r\n HandoverViewComponent,\r\n DismantleViewComponent,\r\n OffhireViewComponent,\r\n InspectionViewComponent,\r\n UnsafeViewComponent,\r\n VariationViewComponent,\r\n ],\r\n imports: [\r\n LoadingBarRouterModule,\r\n LoadingBarModule,\r\n SharedModule,\r\n AlertModule.forRoot(),\r\n AppRoutingModule,\r\n BsDropdownModule.forRoot(),\r\n TooltipModule.forRoot(),\r\n ModalModule.forRoot(),\r\n HttpClientModule,\r\n ToasterModule,\r\n BrowserAnimationsModule,\r\n HighchartsChartModule,\r\n InfiniteScrollModule,\r\n CommonModule,\r\n UtilityModule.forRoot(),\r\n FeatureFlagsModule.forRoot(featureFlagFactory),\r\n HubApiModule.forRoot(settingsFactory),\r\n AuthenticationModule.forRoot(settingsFactory),\r\n FroalaEditorModule.forRoot(),\r\n FroalaViewModule.forRoot(),\r\n ],\r\n exports: [\r\n // MODULES\r\n SharedModule,\r\n BrowserModule,\r\n TooltipModule,\r\n AppRoutingModule,\r\n InfiniteScrollModule,\r\n\r\n // COMPONENTS\r\n LoadingBarRouterModule,\r\n LoadingBarModule,\r\n AppHeaderComponent,\r\n AppFooterComponent,\r\n HandoverViewComponent,\r\n DiaryViewComponent,\r\n DismantleViewComponent,\r\n OffhireViewComponent,\r\n UnsafeViewComponent,\r\n FroalaEditorModule,\r\n FroalaViewModule,\r\n ],\r\n providers: [\r\n // GUARDS\r\n AuthenticatedGuard,\r\n OnlineGuard,\r\n OfflineGuard,\r\n ConfirmLeaveGuard,\r\n NotAuthenticatedGuard,\r\n AuthenticationSetupGuard,\r\n\r\n // RESOLVERS\r\n ConfigurationResolver,\r\n StaffsResolver,\r\n LoggedInStaffResolver,\r\n ScaffoldInspectionResolver,\r\n HandoverStatisticsResolver,\r\n CustomersResolver,\r\n DepotsResolver,\r\n\r\n // SERVICES\r\n UUID,\r\n DashboardQueryService,\r\n ConfigurationQueryService,\r\n TimeoutService,\r\n SitesResolver,\r\n StaffsQueryService,\r\n AutoGenerateQuickIdService,\r\n CustomersQueryService,\r\n SitesQueryService,\r\n ApplicationSettingsQueryService,\r\n DepotsQueryService,\r\n HandoverHistoryQueryService,\r\n HandoverStatisticsQueryService,\r\n ScaffoldInspectionQueryService,\r\n ScaffoldStatisticsQueryService,\r\n CustomerDetailQueryService,\r\n StaffDetailQueryService,\r\n LoggedInStaffService,\r\n ReportSitesQueryService,\r\n StockReportQueryService,\r\n AuthorisedGuard,\r\n ImageUploadService,\r\n ArrayHelperService,\r\n FilterService,\r\n SiteScaffoldDiaryQueryService,\r\n TextToColorService,\r\n ExportService,\r\n UnassignedScaffoldQueryService,\r\n TimesheetDepotsQueryService,\r\n ItemDetailsQueryService,\r\n UtilityService,\r\n GenerateDefaultsService,\r\n ActivityModalService,\r\n ToasterService,\r\n FileUploadService,\r\n HttpCancelService,\r\n CompanySettingsService,\r\n\r\n // INTERCEPTORS\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpErrorResponseInterceptor,\r\n multi: true\r\n },\r\n ]\r\n\r\n})\r\nexport class CoreModule {\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\nimport { AuthenticationEventsService, UserIdentityService } from '../authentication';\r\n\r\n// Route guard for ensuring that the user is logged in.\r\n@Injectable()\r\nexport class AuthenticatedGuard implements CanActivate {\r\n\r\n constructor(\r\n private userIdentityService: UserIdentityService,\r\n private router: Router,\r\n private authEventsService: AuthenticationEventsService\r\n ) { }\r\n\r\n private userRedirect(): void {\r\n }\r\n\r\n canActivate(): boolean {\r\n const authenticated = this.userIdentityService.isAuthenticated();\r\n\r\n this.userRedirect();\r\n\r\n if (!authenticated) {\r\n this.authEventsService.loginRequiredEvent.trigger({ expired: false });\r\n }\r\n return authenticated;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\nimport { ApplicationSettingsQueryService } from 'app/core/services/application-settings-query.service';\r\nimport { Observable, of, pipe } from 'rxjs';\r\nimport { map, catchError, mergeMap } from 'rxjs/operators';\r\nimport { AuthResponseError, AuthResponseErrorType, AuthenticationEventsService, OnlineSessionService } from '../authentication';\r\n\r\n@Injectable()\r\nexport class AuthenticationSetupGuard implements CanActivate {\r\n constructor(\r\n private authEventsService: AuthenticationEventsService,\r\n private router: Router,\r\n private applicationSettingsQueryService: ApplicationSettingsQueryService,\r\n private onlineSessionService: OnlineSessionService\r\n ) { }\r\n\r\n canActivate(): Observable {\r\n // Handler to respond to the login required event.\r\n this.authEventsService.loginRequiredEvent.subscribe(event => {\r\n this.onlineSessionService.login(true);\r\n });\r\n\r\n // Initialise the login service.\r\n const appSettingsQuery = this.applicationSettingsQueryService.applicationSettingsQuery(true);\r\n return appSettingsQuery.pipe( \r\n pipe(\r\n mergeMap(() => this.onlineSessionService.initialise()),\r\n ),\r\n map(() => true),\r\n catchError(error => {\r\n this.apiErrorCallback(error);\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n private apiErrorCallback = (error: AuthResponseError) => {\r\n if (error.type === AuthResponseErrorType.ErrorResponse) {\r\n this.onlineSessionService.logout();\r\n this.router.navigate(['/login/error']);\r\n } else {\r\n // Otherwise the user is not logged in or the session has expired, so redirect to the AD login page.\r\n this.authEventsService.loginRequiredEvent.trigger({ expired: false });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, NavigationEnd, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { UserIdentityService } from '../authentication';\r\nimport { filter } from 'rxjs';\r\n\r\n// Route guard for ensuring that the user authorised to view a particular page.\r\n@Injectable()\r\nexport class AuthorisedGuard implements CanActivate {\r\n /** Stores the previous url the user has accessed */\r\n private previousUrl: string = undefined;\r\n\r\n constructor(\r\n private userIdentityService: UserIdentityService,\r\n private router: Router\r\n ) {\r\n // stores the previous url\r\n this.router.events.pipe(\r\n filter(event => event instanceof NavigationEnd)\r\n ).subscribe((event: NavigationEnd) => {\r\n this.previousUrl = event.url;\r\n });\r\n }\r\n\r\n // If the user is not authorised to view the page then they will be redirected to the denied page\r\n // Exception: Payroll Officer are only allowed to view the Timesheet Reports\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n var claims = route.data.claims;\r\n const user = this.userIdentityService.currentUser();\r\n // if the claims are not defined then it will use the claims from the user\r\n if (!claims) claims = user.claims;\r\n if (!user) { return false; }\r\n const authorised = claims.every(c => user.claims.includes(c));\r\n if (!authorised) {\r\n this.router.navigate(['/denied']);\r\n }\r\n // if the user is on the Collective Report page and they click on the Timesheet Items tab then it will redirect them to the denied page\r\n if (this.previousUrl === '/timesheet/reports/collective' && state.url === '/timesheet/items') {\r\n return false;\r\n }\r\n // If it detects that the user is a Payroll Officer then it will redirect them to the Collective Report page\r\n if (user.roles[0] === 'Payroll Officer') {\r\n if (state.url === '/home' || state.url.includes('helpcentre/') || state.url.includes('/timesheet/items')) {\r\n this.router.navigate(['/timesheet/reports/collective']);\r\n }\r\n switch (state.url) {\r\n case '/timesheet/reports/collective':\r\n case '/timesheet/reports/individual':\r\n case '/timesheet/reports/cumulative':\r\n break;\r\n default:\r\n return true;\r\n }\r\n return;\r\n }\r\n\r\n return authorised;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { ConfirmLeaveComponent } from 'app/shared/models/confirm-leave';\r\n\r\n// Route guard for ensuring that a user confirms that they wish to leave a route (ie. they have unsaved changes).\r\n@Injectable()\r\nexport class ConfirmLeaveGuard implements CanDeactivate {\r\n\r\n canDeactivate(component: ConfirmLeaveComponent): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (component && !component.disposing && component.shouldConfirmLeave()) {\r\n component.displayConfirmLeaveModal()\r\n .then(result => {\r\n component.disposing = result;\r\n resolve(result);\r\n // resets the disposing flag, so next time will ask the user if he really wants to leave\r\n component.disposing = undefined;\r\n },\r\n error => {\r\n console.log(error);\r\n resolve(false)\r\n });\r\n } else {\r\n resolve(true);\r\n }\r\n });\r\n }\r\n}\r\n","import { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\r\nimport { Observable, combineLatest } from 'rxjs';\r\nimport { LoggedInStaffService } from '../services/logged-in-staff-service';\r\nimport { StaffDetailsWebAppData, ApplicationSettingsData } from 'app/core/hub-api';\r\nimport { EulaSlaModalContext } from 'app/home/components/eula-sla-modal/eula-sla-modal-context';\r\nimport { EulaSlaModalComponent } from 'app/home/components/eula-sla-modal/eula-sla-modal.component';\r\nimport { ApplicationSettingsQueryService } from '../services/application-settings-query.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EulaSlaGuard implements CanActivate {\r\n path: ActivatedRouteSnapshot[];\r\n route: ActivatedRouteSnapshot;\r\n\r\n loggedInStaff: StaffDetailsWebAppData = new StaffDetailsWebAppData();\r\n applicationData: ApplicationSettingsData;\r\n result: boolean;\r\n /**\r\n *\r\n */\r\n constructor(\r\n private loggedInStaffService: LoggedInStaffService,\r\n private applicationSettingsQueryService: ApplicationSettingsQueryService,\r\n public modalService: BsModalService) {\r\n\r\n }\r\n /**\r\n * Eula Sla guard to show Eula popup when the user has not accepted on every routing\r\n */\r\n canActivate(): Observable {\r\n\r\n const ob$ = combineLatest([\r\n this.applicationSettingsQueryService.applicationSettingsQuery(false),\r\n this.loggedInStaffService.loggedInStaffChangesFromServer()\r\n ]);\r\n\r\n return ob$.pipe(\r\n map(data => {\r\n this.applicationData = data[0];\r\n this.loggedInStaff = data[1];\r\n if (this.loggedInStaff && this.loggedInStaff.EulaAgreedVersion !== this.applicationData.EulaVersion) {\r\n const context: EulaSlaModalContext = {\r\n StaffDetailsData: this.loggedInStaff,\r\n keyboard: null,\r\n };\r\n const modal = this.modalService.show(EulaSlaModalComponent, SSModalConfig.generate(context));\r\n modal.setClass('license-agreement');\r\n }\r\n return true;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\nimport { UserIdentityService } from '../authentication';\r\n\r\n// Route guard for ensuring that the user is not logged in.\r\n@Injectable()\r\nexport class NotAuthenticatedGuard implements CanActivate {\r\n\r\n constructor(\r\n private userIdentityService: UserIdentityService,\r\n private router: Router\r\n ) { }\r\n\r\n canActivate(): boolean {\r\n const authenticated = this.userIdentityService.isAuthenticated();\r\n\r\n if (authenticated) {\r\n this.router.navigate(['/']);\r\n }\r\n return !authenticated;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { ApplicationSettingsQueryService } from '../services/application-settings-query.service';\r\n\r\n\r\n\r\n// Route guard for ensuring that the user is offline.\r\n@Injectable()\r\nexport class OfflineGuard implements CanActivate {\r\n\r\n constructor(private applicationSettingsQueryService: ApplicationSettingsQueryService, private router: Router) { }\r\n\r\n canActivate(): Observable {\r\n return this.applicationSettingsQueryService.applicationSettingsQuery(false).pipe(\r\n map(() => {\r\n this.router.navigate(['/']);\r\n return false;\r\n }),\r\n catchError(() => {\r\n return of(true);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\n\r\nimport { ApplicationSettingsQueryService } from '../services/application-settings-query.service';\r\nimport { map, catchError } from 'rxjs/operators';\r\n\r\n// Route guard for ensuring that the user is online.\r\n@Injectable()\r\nexport class OnlineGuard implements CanActivate {\r\n constructor(private applicationSettingsQueryService: ApplicationSettingsQueryService, private router: Router) {}\r\n\r\n canActivate(): Observable {\r\n return this.applicationSettingsQueryService.applicationSettingsQuery(false).pipe(\r\n map(() => {\r\n return true;\r\n }),\r\n catchError(() => {\r\n this.router.navigate(['/offline']);\r\n return of(false);\r\n })\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { ApplicationPaymentCheckListInput } from '../model/query/application-payment-check-list-input';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the ApplicationForPaymentCheckList API endpoint.\r\n@Injectable()\r\nexport class ApplicationForPaymentCheckListEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n GetReportFromFilter(filter: ApplicationPaymentCheckListInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: filter,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/ApplicationForPayment/Filter/Report',\r\n options);\r\n }\r\n\r\n ApplicationPaymentCheckListAsCsv(filter: ApplicationPaymentCheckListInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: filter,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/ApplicationForPayment/ReportToCSV',\r\n options);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Assets API endpoint.\r\n@Injectable()\r\nexport class AssetsEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n GetDownloadKeys(paths: { [key: string]: string }): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: paths,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'assets/getDownloadKeys',\r\n options);\r\n }\r\n\r\n GetUploadKeys(paths: { [key: string]: string }): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: paths,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'assets/getUploadKeys',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { ConfigurationQuery } from '../model/query/configuration-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Configuration API endpoint.\r\n@Injectable()\r\nexport class ConfigurationEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n ConfigurationQuery(queryData: ConfigurationQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.ConfigurationQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n Sync(ifModifiedSince: string, isInitialLoad: boolean): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'configuration?ifModifiedSince=' + ifModifiedSince + '&isInitialLoad=' + isInitialLoad,\r\n options);\r\n }\r\n\r\n ApplicationSettings(): Observable {\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'configuration/applicationSettings',\r\n options);\r\n }\r\n\r\n GetClientDetails(clientId: string): Observable {\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'configuration/ClientDetails/' + clientId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { QuoteQuery } from '../model/query/quote-query';\r\nimport { ItemDetailsQuery } from '../model/query/item-details-query';\r\nimport { UnassignedScaffoldQuery } from '../model/query/unassigned-scaffold-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Contract API endpoint.\r\n@Injectable()\r\nexport class ContractEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n QuoteQuery(queryData: QuoteQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.QuoteQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n ItemDetailsQuery(queryData: ItemDetailsQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.ItemDetailsQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n UnassignedScaffoldQuery(queryData: UnassignedScaffoldQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.UnassignedScaffoldQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n Sync(ifModifiedSince: string, isInitialLoad: boolean): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Contract?ifModifiedSince=' + ifModifiedSince + '&isInitialLoad=' + isInitialLoad,\r\n options);\r\n }\r\n\r\n GetSingle(contractId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Contract/' + contractId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { CustomerQuery } from '../model/query/customer-query';\r\nimport { CustomerDetailQuery } from '../model/query/customer-detail-query';\r\nimport { CustomerStatisticsQuery } from '../model/query/customer-statistics-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Customer API endpoint.\r\n@Injectable()\r\nexport class CustomerEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n CustomerQuery(queryData: CustomerQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.CustomerQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n CustomerDetailQuery(queryData: CustomerDetailQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.CustomerDetailQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n CustomerStatisticsQuery(queryData: CustomerStatisticsQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.CustomerStatisticsQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n Sync(ifModifiedSince: string, isInitialLoad: boolean): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Customer?ifModifiedSince=' + ifModifiedSince + '&isInitialLoad=' + isInitialLoad,\r\n options);\r\n }\r\n\r\n GetSingle(customerId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Customer/' + customerId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { ExportTypeEnum } from '../enum/export-type.enum';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Export API endpoint.\r\n@Injectable()\r\nexport class ExportEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n Scaffolds(siteId: string, exportType: ExportTypeEnum): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'export/scaffolds?siteId=' + siteId + '&exportType=' + exportType,\r\n options);\r\n }\r\n\r\n DownloadFile(fileName: string, path: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'export/downloadFile?fileName=' + fileName + '&path=' + path,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { HandoverHistoryQuery } from '../model/query/handover-history-query';\r\nimport { HandoverStatisticsQuery } from '../model/query/handover-statistics-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Handover API endpoint.\r\n@Injectable()\r\nexport class HandoverEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n HandoverHistoryQuery(queryData: HandoverHistoryQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.HandoverHistoryQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n HandoverStatisticsQuery(queryData: HandoverStatisticsQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.HandoverStatisticsQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n Sync(ifModifiedSince: string, isInitialLoad: boolean): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Handover?ifModifiedSince=' + ifModifiedSince + '&isInitialLoad=' + isInitialLoad,\r\n options);\r\n }\r\n\r\n GetSingle(handoverId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Handover/' + handoverId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { HandoverReportInput } from '../model/query/handover-report-input';\r\nimport { HandoverHistoryReportInput } from '../model/query/handover-history-report-input';\r\nimport { HandoverStatusReportInput } from '../model/query/handover-status-report-input';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the HandoverReport API endpoint.\r\n@Injectable()\r\nexport class HandoverReportEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n GetHandoverCertificateReport(handoverCertificateInput: HandoverReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: handoverCertificateInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Handover/certificate',\r\n options);\r\n }\r\n\r\n GetHandoverCertificateReportForDownload(handoverId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Handover/download?handoverId=' + handoverId,\r\n options);\r\n }\r\n\r\n HandoverHistory(reportInput: HandoverHistoryReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: reportInput,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Handover/handover-history',\r\n options);\r\n }\r\n\r\n HandoverStatus(reportInput: HandoverStatusReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: reportInput,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Handover/handover-status',\r\n options);\r\n }\r\n\r\n GetOffhireCertificateReportForDownload(offHireId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Handover/off-hire/download?offHireId=' + offHireId,\r\n options);\r\n }\r\n\r\n GetOffHireCertificateReport(handoverCertificateInput: HandoverReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: handoverCertificateInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Handover/off-hire',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { WebImport } from '../model/query/web-import';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Import API endpoint.\r\n@Injectable()\r\nexport class ImportEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n Import(webImport: WebImport): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: webImport,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'import',\r\n options);\r\n }\r\n\r\n ImportScaffold(webImport: WebImport): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: webImport,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'import/scaffolds',\r\n options);\r\n }\r\n\r\n UploadFile(paths: { [key: string]: string }): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: paths,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'import/uploadFile',\r\n options);\r\n }\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n // Generated index.ts file.\r\nexport * from './setup-endpoint.service';\r\nexport * from './web-query-endpoint.service';\r\nexport * from './import-endpoint.service';\r\nexport * from './customer-endpoint.service';\r\nexport * from './report-endpoint.service';\r\nexport * from './off-hire-endpoint.service';\r\nexport * from './scaffold-endpoint.service';\r\nexport * from './application-for-payment-check-list-endpoint.service';\r\nexport * from './contract-endpoint.service';\r\nexport * from './timesheet-endpoint.service';\r\nexport * from './timesheet-report-endpoint.service';\r\nexport * from './stock-report-endpoint.service';\r\nexport * from './staff-endpoint.service';\r\nexport * from './site-endpoint.service';\r\nexport * from './inspection-report-endpoint.service';\r\nexport * from './variation-report-endpoint.service';\r\nexport * from './configuration-endpoint.service';\r\nexport * from './web-command-endpoint.service';\r\nexport * from './handover-endpoint.service';\r\nexport * from './handover-report-endpoint.service';\r\nexport * from './inspection-endpoint.service';\r\nexport * from './assets-endpoint.service';\r\nexport * from './export-endpoint.service';\r\nexport * from './variation-endpoint.service';\r\nexport * from './scaffold-report-endpoint.service';\r\nexport * from './site-depot-endpoint.service';\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { DefectStatisticsQuery } from '../model/query/defect-statistics-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Inspection API endpoint.\r\n@Injectable()\r\nexport class InspectionEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n DefectStatisticsQuery(queryData: DefectStatisticsQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.DefectStatisticsQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n Sync(ifModifiedSince: string, isInitialLoad: boolean): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Inspection?ifModifiedSince=' + ifModifiedSince + '&isInitialLoad=' + isInitialLoad,\r\n options);\r\n }\r\n\r\n GetSingle(inspectionId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Inspection/' + inspectionId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { InspectionReportInput } from '../model/query/inspection-report-input';\r\nimport { DefectReportInput } from '../model/query/defect-report-input';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the InspectionReport API endpoint.\r\n@Injectable()\r\nexport class InspectionReportEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n GetInspectionCompletedReport(inspectionCompletedInput: InspectionReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: inspectionCompletedInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/completed',\r\n options);\r\n }\r\n\r\n GetInspectionStatusReport(inspectionStatusInput: InspectionReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: inspectionStatusInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/status',\r\n options);\r\n }\r\n\r\n GetInspectionHistoryReport(inspectionHistoryInput: InspectionReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: inspectionHistoryInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/history',\r\n options);\r\n }\r\n\r\n GetUnsafeScaffoldReport(unsafeScaffoldInput: InspectionReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: unsafeScaffoldInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/unsafe',\r\n options);\r\n }\r\n\r\n GetUnsafeScaffoldReportForDownload(relatedInspectionId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/unsafe/download?relatedInspectionId=' + relatedInspectionId,\r\n options);\r\n }\r\n\r\n GetRemedialReport(remedialActionInput: InspectionReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: remedialActionInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/remedial',\r\n options);\r\n }\r\n\r\n GetRemedialReportForDownload(relatedInspectionId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/remedial/download?relatedInspectionId=' + relatedInspectionId,\r\n options);\r\n }\r\n\r\n SiteInspectionReport(siteInspectionInput: InspectionReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: siteInspectionInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/site-inspection',\r\n options);\r\n }\r\n\r\n GetSiteInspectionReportForDownload(relatedInspectionId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/site-inspection/download?relatedInspectionId=' + relatedInspectionId,\r\n options);\r\n }\r\n\r\n InspectionsDueReport(siteInspectionInput: InspectionReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: siteInspectionInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/inspections-due',\r\n options);\r\n }\r\n\r\n DefectTypesReport(reportInput: DefectReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: reportInput,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/defect-types',\r\n options);\r\n }\r\n\r\n DefectTypesExport(reportInput: DefectReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: reportInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Inspection/defect-types/export',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the OffHire API endpoint.\r\n@Injectable()\r\nexport class OffHireEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n Sync(ifModifiedSince: string, isInitialLoad: boolean): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'OffHire?ifModifiedSince=' + ifModifiedSince + '&isInitialLoad=' + isInitialLoad,\r\n options);\r\n }\r\n\r\n GetSingle(offHireId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'OffHire/' + offHireId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { SiteQuery } from '../model/query/site-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Report API endpoint.\r\n@Injectable()\r\nexport class ReportEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n GetSiteData(siteQuery: SiteQuery): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: siteQuery,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'ReportQuery/Sites',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { ScaffoldTimelineQuery } from '../model/query/scaffold-timeline-query';\r\nimport { DiaryQuery } from '../model/query/diary-query';\r\nimport { ScaffoldDetailQuery } from '../model/query/scaffold-detail-query';\r\nimport { ScaffoldStatisticsQuery } from '../model/query/scaffold-statistics-query';\r\nimport { ActivitiesQuery } from '../model/query/activities-query';\r\nimport { ActivityDetailQuery } from '../model/query/activity-detail-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Scaffold API endpoint.\r\n@Injectable()\r\nexport class ScaffoldEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n ScaffoldTimelineQuery(queryData: ScaffoldTimelineQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.ScaffoldTimeline.ScaffoldTimelineQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n DiaryQuery(queryData: DiaryQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.DiaryQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n ScaffoldDetailQuery(queryData: ScaffoldDetailQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.ScaffoldDetailQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n ScaffoldStatisticsQuery(queryData: ScaffoldStatisticsQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.ScaffoldStatisticsQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n ActivitiesQuery(queryData: ActivitiesQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.Activities.ActivitiesQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n ActivityDetailQuery(queryData: ActivityDetailQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.Activities.ActivityDetailQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n Sync(ifModifiedSince: string, isInitialLoad: boolean): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Scaffold?ifModifiedSince=' + ifModifiedSince + '&isInitialLoad=' + isInitialLoad,\r\n options);\r\n }\r\n\r\n GetSingle(scaffoldId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Scaffold/' + scaffoldId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { ScaffoldReportInput } from '../model/query/scaffold-report-input';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the ScaffoldReport API endpoint.\r\n@Injectable()\r\nexport class ScaffoldReportEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n ScaffoldDetailReport(scaffoldReportInput: ScaffoldReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: scaffoldReportInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Scaffold/detail',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Setup API endpoint.\r\n@Injectable()\r\nexport class SetupEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n SetupTestData(): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'setup/sample',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { DepotQuery } from '../model/query/depot-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the SiteDepot API endpoint.\r\n@Injectable()\r\nexport class SiteDepotEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n DepotQuery(queryData: DepotQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.SiteDepot.DepotQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n Sync(ifModifiedSince: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Depot?ifModifiedSince=' + ifModifiedSince,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { SiteQuery } from '../model/query/site-query';\r\nimport { SiteDetailQuery } from '../model/query/site-detail-query';\r\nimport { ScaffoldInspectionQuery } from '../model/query/scaffold-inspection-query';\r\nimport { SiteScaffoldQuery } from '../model/query/site-scaffold-query';\r\nimport { SiteStatisticsQuery } from '../model/query/site-statistics-query';\r\nimport { SiteContractInspectionStatusQuery } from '../model/query/site-contract-inspection-status-query';\r\nimport { SiteScaffoldDiaryQuery } from '../model/query/site-scaffold-diary-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Site API endpoint.\r\n@Injectable()\r\nexport class SiteEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n SiteQuery(queryData: SiteQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.SiteQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n SiteDetailQuery(queryData: SiteDetailQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.SiteDetailQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n ScaffoldInspectionQuery(queryData: ScaffoldInspectionQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.ScaffoldInspectionQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n SiteScaffoldQuery(queryData: SiteScaffoldQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.SiteScaffoldQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n SiteStatisticsQuery(queryData: SiteStatisticsQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.SiteStatisticsQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n SiteContractInspectionStatusQuery(queryData: SiteContractInspectionStatusQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.SiteContractInspectionStatusQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n SiteScaffoldDiaryQuery(queryData: SiteScaffoldDiaryQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.SiteScaffoldDiaryQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n Sync(ifModifiedSince: string, isInitialLoad: boolean): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Site?ifModifiedSince=' + ifModifiedSince + '&isInitialLoad=' + isInitialLoad,\r\n options);\r\n }\r\n\r\n GetSingle(siteId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Site/' + siteId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { StaffQuery } from '../model/query/staff-query';\r\nimport { StaffDetailsQuery } from '../model/query/staff-details-query';\r\nimport { StaffStatisticsQuery } from '../model/query/staff-statistics-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Staff API endpoint.\r\n@Injectable()\r\nexport class StaffEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n StaffQuery(queryData: StaffQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.StaffQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n StaffDetailsQuery(queryData: StaffDetailsQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.StaffDetailsQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n StaffStatisticsQuery(queryData: StaffStatisticsQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.StaffStatisticsQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n Sync(ifModifiedSince: string, isInitialLoad: boolean): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Staff?ifModifiedSince=' + ifModifiedSince + '&isInitialLoad=' + isInitialLoad,\r\n options);\r\n }\r\n\r\n GetSingle(userId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Staff/' + userId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { StockReport } from '../model/query/stock-report';\r\nimport { StockReportInput } from '../model/query/stock-report-input';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the StockReport API endpoint.\r\n@Injectable()\r\nexport class StockReportEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n StockReportAsCsv(stockReport: StockReport): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: stockReport,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Stock/ReportToCSV',\r\n options);\r\n }\r\n\r\n GetReportFromFilter(filter: StockReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: filter,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Stock/Filter/Report',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { TimesheetDepotsQuery } from '../model/query/timesheet-depots-query';\r\nimport { TimesheetQuery } from '../model/query/timesheet-query';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Timesheet API endpoint.\r\n@Injectable()\r\nexport class TimesheetEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n TimesheetDepotsQuery(queryData: TimesheetDepotsQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.TimesheetDepotsQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n TimesheetQuery(queryData: TimesheetQuery): Observable {\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.TimesheetQuery'\r\n };\r\n\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = { headers: headers };\r\n\r\n return this.http.post(`${this.settingsService.getApiServiceBaseUrl()}webQuery`, data, options);\r\n }\r\n\r\n Get(timesheetId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'Timesheet/' + timesheetId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { PayrollReportInput } from '../model/query/payroll-report-input';\r\nimport { IndividualPayrollReportInput } from '../model/query/individual-payroll-report-input';\r\nimport { CumulativeReportInput } from '../model/query/cumulative-report-input';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the TimesheetReport API endpoint.\r\n@Injectable()\r\nexport class TimesheetReportEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n CollectivePayrollExport(payrollReportInput: PayrollReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: payrollReportInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Timesheet/collective-payroll/export',\r\n options);\r\n }\r\n\r\n CollectivePayrollReport(payrollReportInput: PayrollReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: payrollReportInput,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Timesheet/collective-payroll',\r\n options);\r\n }\r\n\r\n IndividualPayrollExport(payrollReportInput: IndividualPayrollReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: payrollReportInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Timesheet/individual-payroll/export',\r\n options);\r\n }\r\n\r\n IndividualPayrollReport(payrollReportInput: IndividualPayrollReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: payrollReportInput,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Timesheet/individual-payroll',\r\n options);\r\n }\r\n\r\n CumulativeContractReport(payrollReportInput: CumulativeReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: payrollReportInput,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Timesheet/cumulative-contract',\r\n options);\r\n }\r\n\r\n CumulativeContractExport(payrollReportInput: CumulativeReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: payrollReportInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'Reports/Timesheet/cumulative-contract/export',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the Variation API endpoint.\r\n@Injectable()\r\nexport class VariationEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n Sync(ifModifiedSince: string, isInitialLoad: boolean): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'variation?ifModifiedSince=' + ifModifiedSince + '&isInitialLoad=' + isInitialLoad,\r\n options);\r\n }\r\n\r\n GetSingle(variationId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'variation/' + variationId,\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { VariationReportInput } from '../model/query/variation-report-input';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the VariationReport API endpoint.\r\n@Injectable()\r\nexport class VariationReportEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n GetVariationInstructionReport(instructionInput: VariationReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: instructionInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'reports/variation/instruction',\r\n options);\r\n }\r\n\r\n GetVariationEstimationReport(estimationInput: VariationReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: estimationInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'reports/variation/estimation',\r\n options);\r\n }\r\n\r\n GetVariationEstimationReportForDownload(variationId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'reports/variation/estimation/download?variationId=' + variationId,\r\n options);\r\n }\r\n\r\n GetAdaptionInstructionReportForDownload(variationId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'GET',\r\n this.settingsService.getApiServiceBaseUrl() + 'reports/variation/adaptioninstruction/download?variationId=' + variationId,\r\n options);\r\n }\r\n\r\n GetAdaptionInstructionReport(instructionInput: VariationReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: instructionInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'reports/variation/adaptioninstruction',\r\n options);\r\n }\r\n\r\n GetAdaptionEstimationReport(estimationInput: VariationReportInput): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: estimationInput,\r\n responseType: 'arraybuffer' as 'arraybuffer',\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'reports/variation/adaptionestimation',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { WebCommand } from '../model/query/web-command';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the WebCommand API endpoint.\r\n@Injectable()\r\nexport class WebCommandEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n ProcessWebCommand(webCommand: WebCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: webCommand,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'webCommand/processWebCommand',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\nimport { Query } from '../model/query/query';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for communicating with the WebQuery API endpoint.\r\n@Injectable()\r\nexport class WebQueryEndpointService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) {}\r\n\r\n Get(query: Query): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: query,\r\n };\r\n\r\n return this.http.request(\r\n 'POST',\r\n this.settingsService.getApiServiceBaseUrl() + 'webQuery',\r\n options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\nimport { CreateEditHandoverSettingsCommand } from '../model/command/create-edit-handover-settings-command';\r\nimport { CreateScaffoldingSystemCommand } from '../model/command/create-scaffolding-system-command';\r\nimport { CreateContractTypeCommand } from '../model/command/create-contract-type-command';\r\nimport { CreateDiaryCategoryCommand } from '../model/command/create-diary-category-command';\r\nimport { DeleteScaffoldingSystemsCommand } from '../model/command/delete-scaffolding-systems-command';\r\nimport { DeleteContractTypesCommand } from '../model/command/delete-contract-types-command';\r\nimport { EditReportSectionCommand } from '../model/command/edit-report-section-command';\r\nimport { EditScaffoldingSystemsCommand } from '../model/command/edit-scaffolding-systems-command';\r\nimport { EditContractTypesCommand } from '../model/command/edit-contract-types-command';\r\nimport { CreateScaffoldTypeCommand } from '../model/command/create-scaffold-type-command';\r\nimport { CreateMethodOfTyingCommand } from '../model/command/create-method-of-tying-command';\r\nimport { CreateMethodOfCladdingCommand } from '../model/command/create-method-of-cladding-command';\r\nimport { CreateLoadingLimitCommand } from '../model/command/create-loading-limit-command';\r\nimport { CreateDesignTypeCommand } from '../model/command/create-design-type-command';\r\nimport { CreateDefectTypeCommand } from '../model/command/create-defect-type-command';\r\nimport { CreateHandoverRiskReasonCommand } from '../model/command/create-handover-risk-reason-command';\r\nimport { CreateHandoverRiskTypeCommand } from '../model/command/create-handover-risk-type-command';\r\nimport { CreateTaskTypeCommand } from '../model/command/create-task-type-command';\r\nimport { DeleteDiaryCategoryCommand } from '../model/command/delete-diary-category-command';\r\nimport { DeleteScaffoldTypesCommand } from '../model/command/delete-scaffold-types-command';\r\nimport { DeleteMethodOfTyingsCommand } from '../model/command/delete-method-of-tyings-command';\r\nimport { DeleteMethodOfCladdingsCommand } from '../model/command/delete-method-of-claddings-command';\r\nimport { DeleteLoadingLimitsCommand } from '../model/command/delete-loading-limits-command';\r\nimport { DeleteDesignTypesCommand } from '../model/command/delete-design-types-command';\r\nimport { DeleteHandoverRiskReasonsCommand } from '../model/command/delete-handover-risk-reasons-command';\r\nimport { DeleteDefectTypesCommand } from '../model/command/delete-defect-types-command';\r\nimport { DeleteHandoverRiskTypesCommand } from '../model/command/delete-handover-risk-types-command';\r\nimport { DeleteTaskTypesCommand } from '../model/command/delete-task-types-command';\r\nimport { EditDiaryCategoryCommand } from '../model/command/edit-diary-category-command';\r\nimport { EditCompanyDetailsCommand } from '../model/command/edit-company-details-command';\r\nimport { EditScaffoldTypesCommand } from '../model/command/edit-scaffold-types-command';\r\nimport { EditMethodOfTyingsCommand } from '../model/command/edit-method-of-tyings-command';\r\nimport { EditMethodOfCladdingsCommand } from '../model/command/edit-method-of-claddings-command';\r\nimport { EditLoadingLimitsCommand } from '../model/command/edit-loading-limits-command';\r\nimport { EditDesignTypesCommand } from '../model/command/edit-design-types-command';\r\nimport { EditDefectTypesCommand } from '../model/command/edit-defect-types-command';\r\nimport { EditHandoverRiskReasonsCommand } from '../model/command/edit-handover-risk-reasons-command';\r\nimport { EditHandoverRiskTypesCommand } from '../model/command/edit-handover-risk-types-command';\r\nimport { EditTaskTypeCommand } from '../model/command/edit-task-type-command';\r\nimport { DeleteCustomerStatusCommand } from '../model/command/delete-customer-status-command';\r\nimport { CreateEditInspectionSettingsCommand } from '../model/command/create-edit-inspection-settings-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending Configuration commands to the API.\r\n@Injectable()\r\nexport class ConfigurationCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n CreateEditHandoverSettingsCommand(commandData: CreateEditHandoverSettingsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateEditHandoverSettingsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateScaffoldingSystemCommand(commandData: CreateScaffoldingSystemCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateScaffoldingSystemCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateContractTypeCommand(commandData: CreateContractTypeCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateContractTypeCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateDiaryCategoryCommand(commandData: CreateDiaryCategoryCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateDiaryCategoryCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteScaffoldingSystemsCommand(commandData: DeleteScaffoldingSystemsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteScaffoldingSystemsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteContractTypesCommand(commandData: DeleteContractTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteContractTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditReportSectionCommand(commandData: EditReportSectionCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditReportSectionCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditScaffoldingSystemsCommand(commandData: EditScaffoldingSystemsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditScaffoldingSystemsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditContractTypesCommand(commandData: EditContractTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditContractTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateScaffoldTypeCommand(commandData: CreateScaffoldTypeCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateScaffoldTypeCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateMethodOfTyingCommand(commandData: CreateMethodOfTyingCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateMethodOfTyingCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateMethodOfCladdingCommand(commandData: CreateMethodOfCladdingCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateMethodOfCladdingCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateLoadingLimitCommand(commandData: CreateLoadingLimitCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateLoadingLimitCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateDesignTypeCommand(commandData: CreateDesignTypeCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateDesignTypeCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateDefectTypeCommand(commandData: CreateDefectTypeCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateDefectTypeCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateHandoverRiskReasonCommand(commandData: CreateHandoverRiskReasonCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateHandoverRiskReasonCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateHandoverRiskTypeCommand(commandData: CreateHandoverRiskTypeCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateHandoverRiskTypeCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateTaskTypeCommand(commandData: CreateTaskTypeCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateTaskTypeCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteDiaryCategoryCommand(commandData: DeleteDiaryCategoryCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteDiaryCategoryCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteScaffoldTypesCommand(commandData: DeleteScaffoldTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteScaffoldTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteMethodOfTyingsCommand(commandData: DeleteMethodOfTyingsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteMethodOfTyingsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteMethodOfCladdingsCommand(commandData: DeleteMethodOfCladdingsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteMethodOfCladdingsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteLoadingLimitsCommand(commandData: DeleteLoadingLimitsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteLoadingLimitsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteDesignTypesCommand(commandData: DeleteDesignTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteDesignTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteHandoverRiskReasonsCommand(commandData: DeleteHandoverRiskReasonsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteHandoverRiskReasonsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteDefectTypesCommand(commandData: DeleteDefectTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteDefectTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteHandoverRiskTypesCommand(commandData: DeleteHandoverRiskTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteHandoverRiskTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteTaskTypesCommand(commandData: DeleteTaskTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteTaskTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditDiaryCategoryCommand(commandData: EditDiaryCategoryCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditDiaryCategoryCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditCompanyDetailsCommand(commandData: EditCompanyDetailsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditCompanyDetailsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditScaffoldTypesCommand(commandData: EditScaffoldTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditScaffoldTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditMethodOfTyingsCommand(commandData: EditMethodOfTyingsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditMethodOfTyingsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditMethodOfCladdingsCommand(commandData: EditMethodOfCladdingsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditMethodOfCladdingsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditLoadingLimitsCommand(commandData: EditLoadingLimitsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditLoadingLimitsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditDesignTypesCommand(commandData: EditDesignTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditDesignTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditDefectTypesCommand(commandData: EditDefectTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditDefectTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditHandoverRiskReasonsCommand(commandData: EditHandoverRiskReasonsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditHandoverRiskReasonsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditHandoverRiskTypesCommand(commandData: EditHandoverRiskTypesCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditHandoverRiskTypesCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditTaskTypeCommand(commandData: EditTaskTypeCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.EditTaskTypeCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteCustomerStatusCommand(commandData: DeleteCustomerStatusCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.DeleteCustomerStatusCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateEditInspectionSettingsCommand(commandData: CreateEditInspectionSettingsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Configuration.CreateEditInspectionSettingsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\nimport { CreateEditCompanyContactCommand } from '../model/command/create-edit-company-contact-command';\r\nimport { CreateEditBccContractContactCommand } from '../model/command/create-edit-bcc-contract-contact-command';\r\nimport { CreateContractContactCommand } from '../model/command/create-contract-contact-command';\r\nimport { EditContractInspectionStatusCommand } from '../model/command/edit-contract-inspection-status-command';\r\nimport { EditContractCommand } from '../model/command/edit-contract-command';\r\nimport { EditContractContactCommand } from '../model/command/edit-contract-contact-command';\r\nimport { CreateItemWebConsoleCommand } from '../model/command/create-item-web-console-command';\r\nimport { CreateQuoteWebConsoleCommand } from '../model/command/create-quote-web-console-command';\r\nimport { EditItemWebConsoleCommand } from '../model/command/edit-item-web-console-command';\r\nimport { EditQuoteWebConsoleCommand } from '../model/command/edit-quote-web-console-command';\r\nimport { CreateContractCommand } from '../model/command/create-contract-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending Contract commands to the API.\r\n@Injectable()\r\nexport class ContractCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n CreateEditCompanyContactCommand(commandData: CreateEditCompanyContactCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.CreateEditCompanyContactCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateEditBccContractContactCommand(commandData: CreateEditBccContractContactCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.CreateEditBccContractContactCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateContractContactCommand(commandData: CreateContractContactCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.CreateContractContactCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditContractInspectionStatusCommand(commandData: EditContractInspectionStatusCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.EditContractInspectionStatusCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditContractCommand(commandData: EditContractCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.EditContractCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditContractContactCommand(commandData: EditContractContactCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.EditContractContactCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateItemWebConsoleCommand(commandData: CreateItemWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.CreateItemWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateQuoteWebConsoleCommand(commandData: CreateQuoteWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.CreateQuoteWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditItemWebConsoleCommand(commandData: EditItemWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.EditItemWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditQuoteWebConsoleCommand(commandData: EditQuoteWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.EditQuoteWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateContractCommand(commandData: CreateContractCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Contract.CreateContractCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\nimport { CreateCustomerApprovalWebConsoleCommand } from '../model/command/create-customer-approval-web-console-command';\r\nimport { CreateCustomerCommand } from '../model/command/create-customer-command';\r\nimport { EditCustomerCommand } from '../model/command/edit-customer-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending Customer commands to the API.\r\n@Injectable()\r\nexport class CustomerCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n CreateCustomerApprovalWebConsoleCommand(commandData: CreateCustomerApprovalWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Customer.CreateCustomerApprovalWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateCustomerCommand(commandData: CreateCustomerCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Customer.CreateCustomerCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditCustomerCommand(commandData: EditCustomerCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Customer.EditCustomerCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\nimport { CreateDismantleWebConsoleCommand } from '../model/command/create-dismantle-web-console-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending Dismantle commands to the API.\r\n@Injectable()\r\nexport class DismantleCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n CreateDismantleWebConsoleCommand(commandData: CreateDismantleWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Scaffold.Dismantle.CreateDismantleWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending Handover commands to the API.\r\n@Injectable()\r\nexport class HandoverCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n // Generated index.ts file.\r\nexport * from './site-depot-command.service';\r\nexport * from './timesheet-command.service';\r\nexport * from './staff-command.service';\r\nexport * from './scaffold-command.service';\r\nexport * from './off-hire-command.service';\r\nexport * from './handover-command.service';\r\nexport * from './dismantle-command.service';\r\nexport * from './variation-command.service';\r\nexport * from './site-command.service';\r\nexport * from './customer-command.service';\r\nexport * from './contract-command.service';\r\nexport * from './configuration-command.service';\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\nimport { CreateOffhireWebConsoleCommand } from '../model/command/create-offhire-web-console-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending OffHire commands to the API.\r\n@Injectable()\r\nexport class OffHireCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n CreateOffhireWebConsoleCommand(commandData: CreateOffhireWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Scaffold.OffHire.CreateOffhireWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\nimport { CreateScaffoldDiaryMediaCommand } from '../model/command/create-scaffold-diary-media-command';\r\nimport { EditScaffoldMediaCommand } from '../model/command/edit-scaffold-media-command';\r\nimport { EditScaffoldMediaTranscriptionCommand } from '../model/command/edit-scaffold-media-transcription-command';\r\nimport { TranscribeMediaCommand } from '../model/command/transcribe-media-command';\r\nimport { CreateScaffoldWebConsoleCommand } from '../model/command/create-scaffold-web-console-command';\r\nimport { EditScaffoldWebConsoleCommand } from '../model/command/edit-scaffold-web-console-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending Scaffold commands to the API.\r\n@Injectable()\r\nexport class ScaffoldCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n CreateScaffoldDiaryMediaCommand(commandData: CreateScaffoldDiaryMediaCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Scaffold.CreateScaffoldDiaryMediaCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditScaffoldMediaCommand(commandData: EditScaffoldMediaCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Scaffold.EditScaffoldMediaCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditScaffoldMediaTranscriptionCommand(commandData: EditScaffoldMediaTranscriptionCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Scaffold.EditScaffoldMediaTranscriptionCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n TranscribeMediaCommand(commandData: TranscribeMediaCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Scaffold.TranscribeMediaCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateScaffoldWebConsoleCommand(commandData: CreateScaffoldWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Scaffold.CreateScaffoldWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditScaffoldWebConsoleCommand(commandData: EditScaffoldWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Scaffold.EditScaffoldWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\nimport { CreateSiteDiaryMediaCommand } from '../model/command/create-site-diary-media-command';\r\nimport { CreateSiteDiaryWebConsoleCommand } from '../model/command/create-site-diary-web-console-command';\r\nimport { EditSiteDiaryMediaCommand } from '../model/command/edit-site-diary-media-command';\r\nimport { SiteDiaryTranscribeMediaCommand } from '../model/command/site-diary-transcribe-media-command';\r\nimport { UpdateScaffoldNumbersCommand } from '../model/command/update-scaffold-numbers-command';\r\nimport { EditSiteWebConsoleCommand } from '../model/command/edit-site-web-console-command';\r\nimport { CreateSiteCommand } from '../model/command/create-site-command';\r\nimport { UpdateAreasCommand } from '../model/command/update-areas-command';\r\nimport { SetSiteStaffPermissionsCommand } from '../model/command/set-site-staff-permissions-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending Site commands to the API.\r\n@Injectable()\r\nexport class SiteCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n CreateSiteDiaryMediaCommand(commandData: CreateSiteDiaryMediaCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Site.CreateSiteDiaryMediaCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateSiteDiaryWebConsoleCommand(commandData: CreateSiteDiaryWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Site.CreateSiteDiaryWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditSiteDiaryMediaCommand(commandData: EditSiteDiaryMediaCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Site.EditSiteDiaryMediaCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n SiteDiaryTranscribeMediaCommand(commandData: SiteDiaryTranscribeMediaCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Site.SiteDiaryTranscribeMediaCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n UpdateScaffoldNumbersCommand(commandData: UpdateScaffoldNumbersCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Site.UpdateScaffoldNumbersCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditSiteWebConsoleCommand(commandData: EditSiteWebConsoleCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Site.EditSiteWebConsoleCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateSiteCommand(commandData: CreateSiteCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Site.CreateSiteCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n UpdateAreasCommand(commandData: UpdateAreasCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Site.UpdateAreasCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n SetSiteStaffPermissionsCommand(commandData: SetSiteStaffPermissionsCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Commands.Site.SetSiteStaffPermissionsCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\nimport { CreateDepotCommand } from '../model/command/create-depot-command';\r\nimport { EditDepotCommand } from '../model/command/edit-depot-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending SiteDepot commands to the API.\r\n@Injectable()\r\nexport class SiteDepotCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n CreateDepotCommand(commandData: CreateDepotCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.SiteDepot.CreateDepotCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditDepotCommand(commandData: EditDepotCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.SiteDepot.EditDepotCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\nimport { CreateStaffNoAccessCommand } from '../model/command/create-staff-no-access-command';\r\nimport { EditStaffNoAccessCommand } from '../model/command/edit-staff-no-access-command';\r\nimport { CreateStaffCommand } from '../model/command/create-staff-command';\r\nimport { DeleteStaffCommand } from '../model/command/delete-staff-command';\r\nimport { EditStaffCommand } from '../model/command/edit-staff-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending Staff commands to the API.\r\n@Injectable()\r\nexport class StaffCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n CreateStaffNoAccessCommand(commandData: CreateStaffNoAccessCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Staff.CreateStaffNoAccessCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditStaffNoAccessCommand(commandData: EditStaffNoAccessCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Staff.EditStaffNoAccessCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n CreateStaffCommand(commandData: CreateStaffCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Staff.CreateStaffCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteStaffCommand(commandData: DeleteStaffCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Staff.DeleteStaffCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditStaffCommand(commandData: EditStaffCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Staff.EditStaffCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\nimport { AddStaffToTimesheetPeriodCommand } from '../model/command/add-staff-to-timesheet-period-command';\r\nimport { DeleteStaffFromTimesheetPeriodCommand } from '../model/command/delete-staff-from-timesheet-period-command';\r\nimport { EditTimesheetPeriodCommand } from '../model/command/edit-timesheet-period-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending Timesheet commands to the API.\r\n@Injectable()\r\nexport class TimesheetCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n AddStaffToTimesheetPeriodCommand(commandData: AddStaffToTimesheetPeriodCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Timesheet.AddStaffToTimesheetPeriodCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n DeleteStaffFromTimesheetPeriodCommand(commandData: DeleteStaffFromTimesheetPeriodCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Timesheet.DeleteStaffFromTimesheetPeriodCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n\r\n EditTimesheetPeriodCommand(commandData: EditTimesheetPeriodCommand): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const url = `${this.settingsService.getApiServiceBaseUrl()}webCommand/processWebCommand`;\r\n const options = {\r\n headers: new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n }),\r\n body: {\r\n 'CommandData': JSON.stringify(commandData),\r\n 'CommandType': 'Cads.SmartScaffolder.Hub.Business.Commands.Timesheet.EditTimesheetPeriodCommand'\r\n },\r\n };\r\n return this.http.request('POST', url, options);\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { HUB_API_SETTINGS_TOKEN } from '../../hub-api-settings-token';\r\nimport { HubApiSettingsService } from '../../hub-api-settings.service';\r\n\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Generated service for sending Variation commands to the API.\r\n@Injectable()\r\nexport class VariationCommandService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum ActivityStatusEnum {\r\n NotApplicable = 0,\r\n Incomplete = 1,\r\n Dismantled = 2,\r\n OnHire = 3,\r\n OffHire = 4,\r\n InspectionNoDefects = 5,\r\n InspectionDefectsFixed = 6,\r\n InspectionUnSafeScaffold = 7,\r\n InspectionDefectsNotFixed = 8,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum ApplicationPaymentActivityTypeEnum {\r\n ExtraHire = 1,\r\n Handover = 2,\r\n VariationNewStructure = 3,\r\n VariationExistingStructure = 4,\r\n OffHire = 5,\r\n OngoingHire = 6,\r\n DiaryEntry = 7,\r\n Inspection = 8,\r\n ScaffoldDiaryEntry = 9,\r\n SiteDiaryEntry = 10,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum DefectStatusEnum {\r\n Fixed = 0,\r\n Unsafe = 1,\r\n Safe = 2,\r\n NotResolved = -1,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum DiaryDataTypeEnum {\r\n SiteDiary = 0,\r\n ScaffoldDiary = 1,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum DiaryEntryStatusEnum {\r\n InProgress = 0,\r\n Complete = 1,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum DiaryTypeEnum {\r\n None = 0,\r\n Diary = 1,\r\n Inspection = 2,\r\n Dismantle = 3,\r\n Variation = 4,\r\n FullHandover = 5,\r\n PartialHandover = 6,\r\n FullOffHire = 7,\r\n PartialOffHire = 8,\r\n InspectionFollowUpInstruction = 9,\r\n InspectionFollowUpNotify = 10,\r\n UnsafeScaffoldReport = 11,\r\n PauseInspections = 12,\r\n StopInspections = 13,\r\n ResumeInspections = 14,\r\n Adaption = 15,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum ExportTypeEnum {\r\n Csv = 0,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum HandoverHistoryTypeEnum {\r\n FullHandover = 1,\r\n FullOffHire = 2,\r\n PartialOffHire = 3,\r\n PartialHandover = 4,\r\n Variation = 5,\r\n Adaption = 6,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum HandoverSettingsTypeEnum {\r\n Text = 0,\r\n YesNo = 1,\r\n YesNoNA = 2,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum HandoverTypeEnum {\r\n Full = 1,\r\n Variation = 2,\r\n Partial = 3,\r\n Adaption = 4,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n // Generated index.ts file.\r\nexport * from './application-payment-activity-type.enum';\r\nexport * from './diary-data-type.enum';\r\nexport * from './activity-status.enum';\r\nexport * from './handover-settings-type.enum';\r\nexport * from './inspection-status-enum.enum';\r\nexport * from './period-type.enum';\r\nexport * from './report-subscription-types.enum';\r\nexport * from './schedule-type.enum';\r\nexport * from './item-status.enum';\r\nexport * from './item-type.enum';\r\nexport * from './quote-status.enum';\r\nexport * from './task-status.enum';\r\nexport * from './timesheet-period-status.enum';\r\nexport * from './defect-status.enum';\r\nexport * from './diary-type.enum';\r\nexport * from './handover-history-type.enum';\r\nexport * from './handover-type.enum';\r\nexport * from './scaffold-item-status.enum';\r\nexport * from './inspection-follow-up-workflow-status.enum';\r\nexport * from './inspection-workflow-status.enum';\r\nexport * from './off-hire-type.enum';\r\nexport * from './diary-entry-status.enum';\r\nexport * from './scaffold-item-type.enum';\r\nexport * from './site-document-status.enum';\r\nexport * from './variation-type.enum';\r\nexport * from './export-type.enum';\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum InspectionFollowUpWorkflowStatusEnum {\r\n InProgress = 0,\r\n Saved = 1,\r\n Complete = 2,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum InspectionStatusEnumEnum {\r\n Normal = 0,\r\n Paused = 1,\r\n Stopped = 2,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum InspectionWorkflowStatusEnum {\r\n InProgress = 0,\r\n Inspected = 1,\r\n Complete = 2,\r\n Finished = 3,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum ItemStatusEnum {\r\n Open = 0,\r\n Closed = 1,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum ItemTypeEnum {\r\n None = 0,\r\n Quoted = 1,\r\n DayWork = 2,\r\n Variation = 3,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum OffHireTypeEnum {\r\n Full = 1,\r\n Partial = 2,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum PeriodTypeEnum {\r\n None = 0,\r\n Weekly = 1,\r\n Fortnightly = 2,\r\n Monthly = 3,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum QuoteStatusEnum {\r\n Open = 0,\r\n Closed = 1,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum ReportSubscriptionTypesEnum {\r\n None = 0,\r\n HandoverCertificate = 1,\r\n VariationInstructions = 2,\r\n HandoverHistory = 4,\r\n InspectionsCompleted = 8,\r\n InspectionStatuses = 16,\r\n SubContractorInspections = 32,\r\n RemedialAction = 64,\r\n UnsafeScaffold = 128,\r\n SiteInspectionsCompleted = 256,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum ScaffoldItemStatusEnum {\r\n InProgress = 0,\r\n Complete = 1,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum ScaffoldItemTypeEnum {\r\n Measured = 0,\r\n Variation = 1,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum ScheduleTypeEnum {\r\n Daily = 0,\r\n Weekly = 1,\r\n Monthly = 2,\r\n None = 999,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum SiteDocumentStatusEnum {\r\n InProgress = 0,\r\n Saved = 1,\r\n Complete = 2,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum TaskStatusEnum {\r\n Open = 0,\r\n Closed = 1,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum TimesheetPeriodStatusEnum {\r\n InProgress = 0,\r\n Submitted = 1,\r\n Approved = 2,\r\n}\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Enum generated from HubAPI C# code.\r\nexport enum VariationTypeEnum {\r\n Variation = 1,\r\n Adaption = 2,\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { SetupEndpointService } from './api/setup-endpoint.service';\r\nimport { WebQueryEndpointService } from './api/web-query-endpoint.service';\r\nimport { ImportEndpointService } from './api/import-endpoint.service';\r\nimport { SiteDepotEndpointService } from './api/site-depot-endpoint.service';\r\nimport { CustomerEndpointService } from './api/customer-endpoint.service';\r\nimport { ReportEndpointService } from './api/report-endpoint.service';\r\nimport { OffHireEndpointService } from './api/off-hire-endpoint.service';\r\nimport { ScaffoldEndpointService } from './api/scaffold-endpoint.service';\r\nimport { ApplicationForPaymentCheckListEndpointService } from './api/application-for-payment-check-list-endpoint.service';\r\nimport { ContractEndpointService } from './api/contract-endpoint.service';\r\nimport { TimesheetEndpointService } from './api/timesheet-endpoint.service';\r\nimport { TimesheetReportEndpointService } from './api/timesheet-report-endpoint.service';\r\nimport { StockReportEndpointService } from './api/stock-report-endpoint.service';\r\nimport { StaffEndpointService } from './api/staff-endpoint.service';\r\nimport { SiteEndpointService } from './api/site-endpoint.service';\r\nimport { InspectionReportEndpointService } from './api/inspection-report-endpoint.service';\r\nimport { VariationReportEndpointService } from './api/variation-report-endpoint.service';\r\nimport { ConfigurationEndpointService } from './api/configuration-endpoint.service';\r\nimport { WebCommandEndpointService } from './api/web-command-endpoint.service';\r\nimport { HandoverEndpointService } from './api/handover-endpoint.service';\r\nimport { HandoverReportEndpointService } from './api/handover-report-endpoint.service';\r\nimport { InspectionEndpointService } from './api/inspection-endpoint.service';\r\nimport { AssetsEndpointService } from './api/assets-endpoint.service';\r\nimport { ExportEndpointService } from './api/export-endpoint.service';\r\nimport { VariationEndpointService } from './api/variation-endpoint.service';\r\nimport { ScaffoldReportEndpointService } from './api/scaffold-report-endpoint.service';\r\nimport { SiteDepotCommandService } from './command/site-depot-command.service';\r\nimport { TimesheetCommandService } from './command/timesheet-command.service';\r\nimport { StaffCommandService } from './command/staff-command.service';\r\nimport { ScaffoldCommandService } from './command/scaffold-command.service';\r\nimport { OffHireCommandService } from './command/off-hire-command.service';\r\nimport { HandoverCommandService } from './command/handover-command.service';\r\nimport { DismantleCommandService } from './command/dismantle-command.service';\r\nimport { VariationCommandService } from './command/variation-command.service';\r\nimport { SiteCommandService } from './command/site-command.service';\r\nimport { CustomerCommandService } from './command/customer-command.service';\r\nimport { ContractCommandService } from './command/contract-command.service';\r\nimport { ConfigurationCommandService } from './command/configuration-command.service';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n// Module containing code generated from Hub API.\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [],\r\n providers: [\r\n SetupEndpointService,\r\n WebQueryEndpointService,\r\n ImportEndpointService,\r\n CustomerEndpointService,\r\n ReportEndpointService,\r\n OffHireEndpointService,\r\n ScaffoldEndpointService,\r\n ApplicationForPaymentCheckListEndpointService,\r\n ContractEndpointService,\r\n TimesheetEndpointService,\r\n TimesheetReportEndpointService,\r\n StockReportEndpointService,\r\n StaffEndpointService,\r\n SiteEndpointService,\r\n SiteDepotEndpointService,\r\n InspectionReportEndpointService,\r\n VariationReportEndpointService,\r\n ConfigurationEndpointService,\r\n WebCommandEndpointService,\r\n HandoverEndpointService,\r\n HandoverReportEndpointService,\r\n InspectionEndpointService,\r\n AssetsEndpointService,\r\n ExportEndpointService,\r\n VariationEndpointService,\r\n ScaffoldReportEndpointService,\r\n SiteDepotCommandService,\r\n TimesheetCommandService,\r\n StaffCommandService,\r\n ScaffoldCommandService,\r\n OffHireCommandService,\r\n HandoverCommandService,\r\n DismantleCommandService,\r\n VariationCommandService,\r\n SiteCommandService,\r\n CustomerCommandService,\r\n ContractCommandService,\r\n ConfigurationCommandService,\r\n ]\r\n})\r\nexport class HubApiGeneratedModule { }\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n // Generated index.ts file.\r\nexport * from './enum';\r\nexport * from './api';\r\nexport * from './model';\r\nexport * from './command';\r\nexport * from './hub-api-generated.module';\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class AddStaffToTimesheetPeriodCommand {\r\n StaffIds: string[];\r\n TimesheetId: string;\r\n TimesheetPeriodId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class AssociateScannerCodeCommand {\r\n ScaffoldId: string;\r\n ScaffoldTagId: string;\r\n TagContents: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class AttachmentByCustomer {\r\n BlobPath: string;\r\n ContractContactId: string;\r\n When: string;\r\n FileName: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CompanyContacts {\r\n ContractContactId: string;\r\n EmailAddress: string;\r\n ContactName: string;\r\n IsInactive: boolean;\r\n}\r\n\r\n\r\n","import { InspectionStatusEnumEnum } from '../../enum/inspection-status-enum.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ContractInspectionStatus {\r\n State: InspectionStatusEnumEnum;\r\n Reason: string;\r\n ResumeDate: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ContractTypedata {\r\n ContractTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { InspectionStatusEnumEnum } from '../../enum/inspection-status-enum.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateContractCommand {\r\n ContractId: string;\r\n ContractReference: string;\r\n CustomerId: string;\r\n SiteId: string;\r\n ContractStatusId: string;\r\n IsPrincipalContract: boolean;\r\n IsCustomerNotPresent: boolean;\r\n CreationDate: string;\r\n IsScheduleRatesAgreed: boolean;\r\n CanSubmitDocumentsWithoutSignature: boolean;\r\n ContractInspectionStatus: InspectionStatusEnumEnum;\r\n ContractName: string;\r\n Description: string;\r\n ContractTypeId: string;\r\n IsCameraAllowed: boolean;\r\n AllowDismantleWithoutOffhire: boolean;\r\n}\r\n\r\n\r\n","import { ReportSubscriptionTypesEnum } from '../../enum/report-subscription-types.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateContractContactCommand {\r\n ContractContactId: string;\r\n ContactName: string;\r\n EmailAddress: string;\r\n PhoneNumber: string;\r\n ContractId: string;\r\n ReceiveInspectionReports: boolean;\r\n ScheduledReportStartDate: string;\r\n ReportSubscriptionTypes: ReportSubscriptionTypesEnum;\r\n ContactTypeId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateContractTypeCommand {\r\n ContractTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","import { AttachmentByCustomer } from './attachment-by-customer';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateCustomerApprovalWebConsoleCommand {\r\n CustomerId: string;\r\n HandoverId: string;\r\n CustomerAttachment: AttachmentByCustomer;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateCustomerCommand {\r\n CustomerId: string;\r\n CustomerName: string;\r\n CustomerReference: string;\r\n CustomerStatusId: string;\r\n CustomerImage: ExternalMedia;\r\n ApprovalExpires: string;\r\n Latitude: number;\r\n Longitude: number;\r\n CustomerAddress: string;\r\n EmailAddress: string;\r\n PhoneNumber: string;\r\n Website: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateDefectTypeCommand {\r\n DefectTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateDepotCommand {\r\n SiteDepotId: string;\r\n DepotName: string;\r\n DepotAddress: string;\r\n Latitude: number;\r\n Longitude: number;\r\n PhoneNumber: string;\r\n EmailAddress: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateDesignTypeCommand {\r\n DesignTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateDiaryCategoryCommand {\r\n DiaryCategoryId: string;\r\n Title: string;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\nimport { DiaryCategory } from './diary-category';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateDiaryCommand {\r\n ScaffoldDiaryId: string;\r\n ScaffoldId: string;\r\n When: string;\r\n Notes: string;\r\n Media: ExternalMedia[];\r\n PercentageStanding: number;\r\n StandingTonnage: number;\r\n OwnerId: string;\r\n OffsetFromUtc: number;\r\n Category: DiaryCategory;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateDimensionCommand {\r\n DimensionId: string;\r\n VariationId: string;\r\n ScaffoldId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateDismantleCommand {\r\n DismantleId: string;\r\n Scaffolds: string[];\r\n When: string;\r\n Media: ExternalMedia[];\r\n Notes: string;\r\n OwnerId: string;\r\n OffsetFromUtc: number;\r\n SubmittedOn: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateDismantleWebConsoleCommand {\r\n DismantleId: string;\r\n Scaffolds: string[];\r\n When: string;\r\n Notes: string;\r\n OwnerId: string;\r\n OffsetFromUtc: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateEditBccContractContactCommand {\r\n ContractContactId: string;\r\n EmailAddress: string;\r\n ContractId: string;\r\n ContactTypeId: string;\r\n IsInactive: boolean;\r\n}\r\n\r\n\r\n","import { CompanyContacts } from './company-contacts';\r\nimport { ReportSubscriptionTypesEnum } from '../../enum/report-subscription-types.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateEditCompanyContactCommand {\r\n CompanyContacts: CompanyContacts[];\r\n ContractId: string;\r\n ReceiveInspectionReports: boolean;\r\n ScheduledReportStartDate: string;\r\n ReportSubscriptionTypes: ReportSubscriptionTypesEnum;\r\n ContactTypeId: string;\r\n}\r\n\r\n\r\n","import { HandoverSettingsTypeEnum } from '../../enum/handover-settings-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateEditHandoverSettingsCommand {\r\n HandoverSettingsId: string;\r\n Name: string;\r\n Type: HandoverSettingsTypeEnum;\r\n Mandatory: boolean;\r\n Active: boolean;\r\n}\r\n\r\n\r\n","import { HandoverTypeEnum } from '../../enum/handover-type.enum';\r\nimport { HandoverHandoverSettings } from './handover-handover-settings';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateHandoverCommand {\r\n HandoverId: string;\r\n SiteId: string;\r\n CustomerId: string;\r\n HandOverType: HandoverTypeEnum;\r\n HandoverHandoverSettings: HandoverHandoverSettings[];\r\n Scaffolds: string[];\r\n OwnerId: string;\r\n HirePeriod: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateHandoverIdentifiedRiskCommand {\r\n HandoverId: string;\r\n HandoverIdentifiedRiskId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateHandoverRiskReasonCommand {\r\n HandoverRiskReasonId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateHandoverRiskTypeCommand {\r\n HandoverRiskTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateInspectionCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n OwnerId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateInspectionDefectCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n InspectionDefectId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateInspectionFollowUpActionCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n RelatedInspectionId: string;\r\n OwnerId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateInspectionFollowUpRemedialActionCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n RelatedInspectionId: string;\r\n OwnerId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ItemTypeEnum } from '../../enum/item-type.enum';\r\nimport { ItemTask } from './item-task';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateItemWebConsoleCommand {\r\n ItemId: string;\r\n Estimator: string;\r\n ItemType: ItemTypeEnum;\r\n QuoteNumber: string;\r\n ContractId: string;\r\n QuoteId: string;\r\n AllocatedHours: number;\r\n ItemName: string;\r\n ItemNumber: string;\r\n ScaffoldIds: string[];\r\n Tasks: ItemTask[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateLoadingLimitCommand {\r\n LoadingLimitId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateMethodOfCladdingCommand {\r\n MethodOfCladdingId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateMethodOfTyingCommand {\r\n MethodOfTyingId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","import { OffHireTypeEnum } from '../../enum/off-hire-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateOffHireCommand {\r\n OffHireId: string;\r\n SiteId: string;\r\n CustomerId: string;\r\n OffHireType: OffHireTypeEnum;\r\n Scaffolds: string[];\r\n OwnerId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { OffHireTypeEnum } from '../../enum/off-hire-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateOffhireWebConsoleCommand {\r\n OffHireId: string;\r\n SiteId: string;\r\n CustomerId: string;\r\n ScaffoldId: string;\r\n OffhiredOn: string;\r\n SubmittedBy: string;\r\n RequestedBy: string;\r\n Comments: string;\r\n OffHireType: OffHireTypeEnum;\r\n OffsetFromUtc: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateQuoteWebConsoleCommand {\r\n Estimator: string;\r\n ContractId: string;\r\n QuoteId: string;\r\n QuoteNumber: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateScaffoldCommand {\r\n ScaffoldId: string;\r\n SpecificLocationDetails: string;\r\n Description: string;\r\n AdverseWeatherIndicator: boolean;\r\n SiteAreaId: string;\r\n ScaffoldNumber: string;\r\n ScaffoldStatusId: string;\r\n ContractId: string;\r\n DateOfNextInspection: string;\r\n OffsetFromUtc: number;\r\n OwnerId: string;\r\n Latitude: number;\r\n Longitude: number;\r\n ScaffoldingSystemId: string;\r\n MaximumTonnage: number;\r\n StandingTonnage: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateScaffoldDiaryMediaCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n Media: ExternalMedia;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateScaffoldSpecificationCommand {\r\n ScaffoldId: string;\r\n HandoverId: string;\r\n ScaffoldItemId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateScaffoldTypeCommand {\r\n ScaffoldTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","import { ScaffoldSpecificationWebConsoleData } from './scaffold-specification-web-console-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateScaffoldWebConsoleCommand {\r\n ScaffoldId: string;\r\n ScaffoldStatusId: string;\r\n SpecificLocationDetails: string;\r\n AdverseWeatherIndicator: boolean;\r\n SiteAreaId: string;\r\n ScaffoldNumber: string;\r\n ContractId: string;\r\n DateOfNextInspection: string;\r\n ScaffoldSpecification: ScaffoldSpecificationWebConsoleData;\r\n OffsetFromUtc: number;\r\n OnHireDate: string;\r\n IsVariation?: boolean;\r\n ItemId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateScaffoldingSystemCommand {\r\n ScaffoldingSystemId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\nimport { Tonnage } from './tonnage';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateSiteCommand {\r\n SiteId: string;\r\n SiteName: string;\r\n SiteReference: string;\r\n SiteAddress: string;\r\n Latitude: number;\r\n Longitude: number;\r\n SiteStatusId: string;\r\n SiteDepotId: string;\r\n SiteImage: ExternalMedia;\r\n StaffId: string;\r\n AddStaffToSite: boolean;\r\n DefaultSiteAreaId: string;\r\n DefaultSiteAreaName: string;\r\n IsCameraAllowed: boolean;\r\n IsManageStockControl: boolean;\r\n SiteSetupFrom: number;\r\n Tonnages: Tonnage[];\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateSiteDiaryMediaCommand {\r\n DiaryId: string;\r\n Media: ExternalMedia[];\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\nimport { DiaryCategory } from './diary-category';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateSiteDiaryWebConsoleCommand {\r\n DiaryId: string;\r\n SiteId: string;\r\n When: string;\r\n Notes: string;\r\n Media: ExternalMedia[];\r\n By: string;\r\n OffsetFromUtc: number;\r\n Category: DiaryCategory;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { StaffRate } from './staff-rate';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateStaffCommand {\r\n EmailAddress: string;\r\n Password: string;\r\n StaffId: string;\r\n ContactName: string;\r\n PhoneNumber: string;\r\n RoleId: string;\r\n SiteDepotIds: string[];\r\n CanEstimate: boolean;\r\n QuickId: string;\r\n RatesToAdd: StaffRate[];\r\n CompanyPosition: string;\r\n}\r\n\r\n\r\n","import { StaffRate } from './staff-rate';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateStaffNoAccessCommand {\r\n StaffId: string;\r\n ContactName: string;\r\n PhoneNumber: string;\r\n RoleId: string;\r\n SiteDepotIds: string[];\r\n CanEstimate: boolean;\r\n QuickId: string;\r\n RatesToAdd: StaffRate[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateTaskTypeCommand {\r\n TaskTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n Subtitle: string;\r\n RequireFurtherInformation: boolean;\r\n GroupTitle: string;\r\n isDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateUnsafeScaffoldReportCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n RelatedInspectionId: string;\r\n OwnerId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { HandoverTypeEnum } from '../../enum/handover-type.enum';\r\nimport { VariationTypeEnum } from '../../enum/variation-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CreateVariationCommand {\r\n VariationId: string;\r\n HandoverId: string;\r\n HandoverType: HandoverTypeEnum;\r\n SiteId: string;\r\n CustomerId: string;\r\n VariationType: VariationTypeEnum;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DefectTypedata {\r\n DefectTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteAssociateScannerCodeCommand {\r\n ScaffoldId: string;\r\n ScaffoldTagIds: string[];\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteContractTypesCommand {\r\n ContractTypes: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteCustomerStatusCommand {\r\n CustomerStatusId: string;\r\n ReplacementCustomerStatusId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteDefectTypesCommand {\r\n DefectTypes: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteDesignTypesCommand {\r\n DesignTypes: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteDiaryCategoryCommand {\r\n DiaryCategoryId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteDimensionCommand {\r\n VariationId: string;\r\n DimensionIds: string[];\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteHandoverCommand {\r\n HandoverIds: string[];\r\n DeletedBy: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteHandoverIdentifiedRiskCommand {\r\n HandoverId: string;\r\n HandoverIdentifiedRiskIds: string[];\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteHandoverRiskReasonsCommand {\r\n HandoverRiskReasons: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteHandoverRiskTypesCommand {\r\n HandoverRiskTypes: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteInspectionCommand {\r\n ScaffoldDiaryIds: string[];\r\n DeletedBy: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteInspectionDefectCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n InspectionDefects: string[];\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteLoadingLimitsCommand {\r\n LoadingLimits: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteMethodOfCladdingsCommand {\r\n MethodOfCladdings: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteMethodOfTyingsCommand {\r\n MethodOfTyings: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteOffHireCommand {\r\n OffHireIds: string[];\r\n DeletedBy: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteScaffoldTypesCommand {\r\n ScaffoldTypes: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteScaffoldingSystemsCommand {\r\n ScaffoldingSystems: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteStaffCommand {\r\n StaffId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteStaffFromTimesheetPeriodCommand {\r\n StaffIds: string[];\r\n TimesheetId: string;\r\n TimesheetPeriodId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteTaskTypesCommand {\r\n TaskTypes: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DeleteVariationCommand {\r\n VariationIds: string[];\r\n DeletedBy: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DesignTypedata {\r\n DesignTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DiaryCategory {\r\n DiaryCategoryId: string;\r\n Title: string;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditCompanyDetailsCommand {\r\n CompanyName: string;\r\n CompanyAddress: string;\r\n Latitude: number;\r\n Longitude: number;\r\n EmailAddress: string;\r\n PhoneNumber: string;\r\n WebConsoleSetupComplete: boolean;\r\n DepotsEnabled: boolean;\r\n CompanyLogo: ExternalMedia;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditContractCommand {\r\n ContractId: string;\r\n CustomerId: string;\r\n ContractReference: string;\r\n ContractStatusId: string;\r\n IsPrincipalContract: boolean;\r\n IsCustomerNotPresent: boolean;\r\n IsScheduleRatesAgreed: boolean;\r\n CanSubmitDocumentsWithoutSignature: boolean;\r\n ContractName: string;\r\n Description: string;\r\n ContractTypeId: string;\r\n IsCameraAllowed: boolean;\r\n AllowDismantleWithoutOffhire: boolean;\r\n}\r\n\r\n\r\n","import { ScheduleTypeEnum } from '../../enum/schedule-type.enum';\r\nimport { ReportSubscriptionTypesEnum } from '../../enum/report-subscription-types.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditContractContactCommand {\r\n ContractContactId: string;\r\n ContactName: string;\r\n EmailAddress: string;\r\n PhoneNumber: string;\r\n ContractId: string;\r\n ReceiveInspectionReports: boolean;\r\n IsInactive: boolean;\r\n ScheduleType: ScheduleTypeEnum;\r\n ScheduledReportStartDate: string;\r\n ReportSubscriptionTypes: ReportSubscriptionTypesEnum;\r\n ContactTypeId: string;\r\n}\r\n\r\n\r\n","import { ContractInspectionStatus } from './contract-inspection-status';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditContractInspectionStatusCommand {\r\n ContractId: string;\r\n ContractInspectionStatus: ContractInspectionStatus;\r\n OwnerId: string;\r\n OffsetFromUtc: number;\r\n}\r\n\r\n\r\n","import { ContractTypedata } from './contract-typedata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditContractTypesCommand {\r\n ContractTypes: ContractTypedata[];\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditCustomerCommand {\r\n CustomerId: string;\r\n CustomerName: string;\r\n CustomerReference: string;\r\n CustomerStatusId: string;\r\n CustomerImage: ExternalMedia;\r\n ApprovalExpires: string;\r\n Latitude: number;\r\n Longitude: number;\r\n CustomerAddress: string;\r\n EmailAddress: string;\r\n PhoneNumber: string;\r\n Website: string;\r\n}\r\n\r\n\r\n","import { DefectTypedata } from './defect-typedata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditDefectTypesCommand {\r\n DefectTypes: DefectTypedata[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditDepotCommand {\r\n SiteDepotId: string;\r\n DepotName: string;\r\n DepotAddress: string;\r\n Latitude: number;\r\n Longitude: number;\r\n PhoneNumber: string;\r\n EmailAddress: string;\r\n Deleted: boolean;\r\n}\r\n\r\n\r\n","import { DesignTypedata } from './design-typedata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditDesignTypesCommand {\r\n DesignTypes: DesignTypedata[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditDiaryCategoryCommand {\r\n DiaryCategoryId: string;\r\n Title: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditDimensionCommand {\r\n VariationId: string;\r\n DimensionId: string;\r\n Description: string;\r\n Quantity: string;\r\n Length: string;\r\n Width: string;\r\n Height: string;\r\n HeightBand: string;\r\n TotalNumberOfLift: string;\r\n TotalNumberOfBoardedLift: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\nimport { HandoverHandoverSettings } from './handover-handover-settings';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditHandoverCommand {\r\n HandoverId: string;\r\n Scaffolds: string[];\r\n Media: ExternalMedia[];\r\n NextInspectionDate: string;\r\n HandoverHandoverSettings: HandoverHandoverSettings[];\r\n HandoverComments: string;\r\n When: string;\r\n HirePeriod: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditHandoverIdentifiedRiskCommand {\r\n HandoverId: string;\r\n HandoverIdentifiedRiskId: string;\r\n HandoverRiskTypeId: string;\r\n HandoverRiskTypeFurtherInformation: string;\r\n HandoverRiskReasonId: string;\r\n HandoverRiskReasonFurtherInformation: string;\r\n Notes: string;\r\n Media: ExternalMedia[];\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditHandoverInspectionCommand {\r\n HandoverId: string;\r\n IdentifiedRiskDetails: string;\r\n RisksIdentified: boolean;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { HandoverRiskReasondata } from './handover-risk-reasondata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditHandoverRiskReasonsCommand {\r\n HandoverRiskReasons: HandoverRiskReasondata[];\r\n}\r\n\r\n\r\n","import { HandoverRiskTypedata } from './handover-risk-typedata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditHandoverRiskTypesCommand {\r\n HandoverRiskTypes: HandoverRiskTypedata[];\r\n}\r\n\r\n\r\n","import { SignatureByStaff } from './signature-by-staff';\r\nimport { SignatureByCustomer } from './signature-by-customer';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditHandoverSummaryCommand {\r\n HandoverId: string;\r\n HandoverComments: string;\r\n StaffSignature: SignatureByStaff;\r\n CustomerSignature: SignatureByCustomer;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\nimport { SignatureByStaff } from './signature-by-staff';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditInspectionCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n InspectionTypeId: string;\r\n Comments: string;\r\n Media: ExternalMedia[];\r\n InspectionTypeFurtherInformation: string;\r\n When: string;\r\n InspectionOutcomeId: string;\r\n InspectorsSignature: SignatureByStaff;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { DefectStatusEnum } from '../../enum/defect-status.enum';\r\nimport { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditInspectionDefectCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n InspectionDefectId: string;\r\n DefectTypeId: string;\r\n DefectTypeFurtherInformation: string;\r\n Comments: string;\r\n DefectStatus: DefectStatusEnum;\r\n Media: ExternalMedia[];\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditInspectionFollowUpActionCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n PeopleNotified: string[];\r\n InspectorsRecommendations: string;\r\n GenerateUnsafeReport: boolean;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditInspectionFollowUpRemedialActionCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n ActionToBeCarriedOutBy: string[];\r\n Instructions: string;\r\n ToBeDoneBy: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ItemStatusEnum } from '../../enum/item-status.enum';\r\nimport { ItemTask } from './item-task';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditItemWebConsoleCommand {\r\n ItemId: string;\r\n ItemStatus: ItemStatusEnum;\r\n QuoteNumber: string;\r\n Estimator: string;\r\n ContractId: string;\r\n QuoteId: string;\r\n AllocatedHours: number;\r\n ItemName: string;\r\n ItemNumber: string;\r\n ScaffoldIds: string[];\r\n Tasks: ItemTask[];\r\n}\r\n\r\n\r\n","import { LoadingLimitdata } from './loading-limitdata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditLoadingLimitsCommand {\r\n LoadingLimits: LoadingLimitdata[];\r\n}\r\n\r\n\r\n","import { MethodsOfCladdingdata } from './methods-of-claddingdata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditMethodOfCladdingsCommand {\r\n MethodOfCladdings: MethodsOfCladdingdata[];\r\n}\r\n\r\n\r\n","import { MethodOfTyingdata } from './method-of-tyingdata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditMethodOfTyingsCommand {\r\n MethodOfTyings: MethodOfTyingdata[];\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditOffHireCommand {\r\n OffHireId: string;\r\n Scaffolds: string[];\r\n Media: ExternalMedia[];\r\n RequestedOn: string;\r\n OffHireComments: string;\r\n RequestedBy: string;\r\n OwnerId: string;\r\n When: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { SignatureByStaff } from './signature-by-staff';\r\nimport { SignatureByCustomer } from './signature-by-customer';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditOffHireSummaryCommand {\r\n OffHireId: string;\r\n StaffSignature: SignatureByStaff;\r\n CustomerSignature: SignatureByCustomer;\r\n}\r\n\r\n\r\n","import { QuoteStatusEnum } from '../../enum/quote-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditQuoteWebConsoleCommand {\r\n QuoteId: string;\r\n QuoteStatus: QuoteStatusEnum;\r\n Estimator: string;\r\n ContractId: string;\r\n QuoteNumber: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditReportSectionCommand {\r\n ReportSectionId: string;\r\n Report: number;\r\n Content: string;\r\n IsDisabled: boolean;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditScaffoldCommand {\r\n ScaffoldId: string;\r\n SpecificLocationDetails: string;\r\n Description: string;\r\n AdverseWeatherIndicator: boolean;\r\n ContractId: string;\r\n DateOfNextInspection: string;\r\n ScaffoldImage: ExternalMedia;\r\n SiteAreaId: string;\r\n OffsetFromUtc: number;\r\n OwnerId: string;\r\n ScaffoldingSystemId: string;\r\n MaximumTonnage: number;\r\n StandingTonnage: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditScaffoldMediaCommand {\r\n ScaffoldId: string;\r\n MediaReferenceId: string;\r\n Title: string;\r\n Deleted: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditScaffoldMediaTranscriptionCommand {\r\n ScaffoldId: string;\r\n MediaReferenceId: string;\r\n Title: string;\r\n Transcription: string;\r\n Deleted: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditScaffoldSpecificationCommand {\r\n ScaffoldId: string;\r\n HandoverId: string;\r\n ScaffoldItemId: string;\r\n ScaffoldTypeId: string;\r\n ScaffoldTypeFurtherInformation: string;\r\n Description: string;\r\n QuoteNumber: string;\r\n QuoteItemNumber: string;\r\n QuoteItemName: string;\r\n DesignTypeId: string;\r\n DesignTypeFurtherInformation: string;\r\n LoadingLimitId: string;\r\n LoadingLimitFurtherInformation: string;\r\n MethodOfTyingId: string;\r\n MethodOfTyingFurtherInformation: string;\r\n MethodOfCladdingId: string;\r\n MethodOfCladdingFurtherInformation: string;\r\n HirePeriod: number;\r\n ScaffoldingSystemId: string;\r\n MaximumTonnage: number;\r\n StandingTonnage: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ScaffoldTypedata } from './scaffold-typedata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditScaffoldTypesCommand {\r\n ScaffoldTypes: ScaffoldTypedata[];\r\n}\r\n\r\n\r\n","import { ScaffoldSpecificationWebConsoleData } from './scaffold-specification-web-console-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditScaffoldWebConsoleCommand {\r\n ScaffoldId: string;\r\n ScaffoldStatusId: string;\r\n SpecificLocationDetails: string;\r\n DateOfNextInspection: string;\r\n AdverseWeatherIndicator: boolean;\r\n SiteAreaId: string;\r\n ScaffoldNumber: string;\r\n ScaffoldSpecification: ScaffoldSpecificationWebConsoleData;\r\n OffsetFromUtc: number;\r\n OnHireDate: string;\r\n ItemId: string;\r\n IsVariation?: boolean;\r\n}\r\n\r\n\r\n","import { ScaffoldingSystemdata } from './scaffolding-systemdata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditScaffoldingSystemsCommand {\r\n ScaffoldingSystems: ScaffoldingSystemdata[];\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditSiteCommand {\r\n SiteId: string;\r\n SiteImage: ExternalMedia;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditSiteDiaryMediaCommand {\r\n SiteId: string;\r\n MediaReferenceId: string;\r\n Title: string;\r\n Deleted: boolean;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\nimport { Tonnage } from './tonnage';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditSiteWebConsoleCommand {\r\n SiteId: string;\r\n SiteName: string;\r\n SiteReference: string;\r\n SiteAddress: string;\r\n Latitude: number;\r\n Longitude: number;\r\n SiteStatusId: string;\r\n SiteDepotId: string;\r\n SiteImage: ExternalMedia;\r\n IsCameraAllowed: boolean;\r\n IsManageStockControl: boolean;\r\n Tonnages: Tonnage[];\r\n}\r\n\r\n\r\n","import { StaffRate } from './staff-rate';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditStaffCommand {\r\n StaffId: string;\r\n EmailAddress: string;\r\n Password: string;\r\n EulaAgreedVersion: string;\r\n Deleted: boolean;\r\n RatesToMakeIneffective: string[];\r\n RatesToDelete: string[];\r\n ContactName: string;\r\n PhoneNumber: string;\r\n RoleId: string;\r\n SiteDepotIds: string[];\r\n CanEstimate: boolean;\r\n QuickId: string;\r\n RatesToAdd: StaffRate[];\r\n CompanyPosition: string;\r\n}\r\n\r\n\r\n","import { StaffRate } from './staff-rate';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditStaffNoAccessCommand {\r\n Deleted: boolean;\r\n RatesToMakeIneffective: string[];\r\n RatesToDelete: string[];\r\n StaffId: string;\r\n ContactName: string;\r\n PhoneNumber: string;\r\n RoleId: string;\r\n SiteDepotIds: string[];\r\n CanEstimate: boolean;\r\n QuickId: string;\r\n RatesToAdd: StaffRate[];\r\n}\r\n\r\n\r\n","import { TaskTypedata } from './task-typedata';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditTaskTypeCommand {\r\n TaskTypes: TaskTypedata[];\r\n}\r\n\r\n\r\n","import { TimeEntryStaff } from './time-entry-staff';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditTimesheetPeriodCommand {\r\n TimesheetId: string;\r\n TimesheetPeriodId: string;\r\n PercentageComplete: number;\r\n Staffs: TimeEntryStaff[];\r\n Submit: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditUnsafeScaffoldReportCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n SiteManager: string;\r\n SiteManagerRecommendations: string;\r\n PeopleNotified: string[];\r\n OffsetFromUtc: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { SignatureByStaff } from './signature-by-staff';\r\nimport { SignatureByCustomer } from './signature-by-customer';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditUnsafeScaffoldReportSummaryCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n InspectorsSignature: SignatureByStaff;\r\n SiteManagersSignature: SignatureByStaff;\r\n CustomerSignature: SignatureByCustomer;\r\n OffsetFromUtc: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditVariationCommand {\r\n VariationId: string;\r\n Scaffolds: string[];\r\n Media: ExternalMedia[];\r\n NextInspectionDate: string;\r\n VariationComments: string;\r\n OwnerId: string;\r\n When: string;\r\n HirePeriod: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { ExternalMedia } from './external-media';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EditVariationInstructionCommand {\r\n VariationId: string;\r\n SiteInstructionReference: string;\r\n SiteInstructionReceivedFromId: string;\r\n Notes: string;\r\n Scaffolds: string[];\r\n Media: ExternalMedia[];\r\n SubmittedForPricing: boolean;\r\n EstimatorId: string;\r\n ContractPrice: number;\r\n ExtraHireRate: number;\r\n HirePeriod: number;\r\n SendEmailToEstimator: boolean;\r\n OwnerId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { EditDimensionCommand } from './edit-dimension-command';\r\nimport { EditVariationCommand } from './edit-variation-command';\r\nimport { EditVariationInstructionCommand } from './edit-variation-instruction-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class EmailVariationEstimationCommand {\r\n EditDimensionCommands: EditDimensionCommand[];\r\n EditVariationCommand: EditVariationCommand;\r\n EditVariationInstructionCommand: EditVariationInstructionCommand;\r\n VariationId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ExternalMedia {\r\n MediaReferenceId: string;\r\n MimeType: string;\r\n CheckSum: string;\r\n FileSize: number;\r\n Path: string;\r\n Title: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverHandoverSettings {\r\n HandoverHandoverSettingsId: string;\r\n HandoverSettingsId: string;\r\n Value: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverRiskReasondata {\r\n HandoverRiskReasonId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverRiskTypedata {\r\n HandoverRiskTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class Hours {\r\n Quantity: number;\r\n StaffRateId: string;\r\n}\r\n\r\n\r\n","import { CreateSiteCommand } from './create-site-command';\r\nimport { CreateCustomerCommand } from './create-customer-command';\r\nimport { CreateContractCommand } from './create-contract-command';\r\nimport { CreateQuoteWebConsoleCommand } from './create-quote-web-console-command';\r\nimport { CreateItemWebConsoleCommand } from './create-item-web-console-command';\r\nimport { CreateContractContactCommand } from './create-contract-contact-command';\r\nimport { CreateScaffoldWebConsoleCommand } from './create-scaffold-web-console-command';\r\nimport { UpdateAreasCommand } from './update-areas-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ImportData {\r\n CreateSiteCommand: CreateSiteCommand = null;\r\n UpdateAreasCommand: UpdateAreasCommand = null;\r\n CreateCustomerCommand: CreateCustomerCommand = null;\r\n CreateContractCommand: CreateContractCommand = null;\r\n CreateQuoteCommand: CreateQuoteWebConsoleCommand = null;\r\n CreateItemCommands: CreateItemWebConsoleCommand[] = [];\r\n CreateContractContactCommands: CreateContractContactCommand[] = [];\r\n CreateScaffoldCommands: CreateScaffoldWebConsoleCommand[] = [];\r\n EstimateId: string = null;\r\n}\r\n\r\n\r\n","import { UpdateAreasCommand } from './update-areas-command';\r\nimport { CreateQuoteWebConsoleCommand } from './create-quote-web-console-command';\r\nimport { CreateItemWebConsoleCommand } from './create-item-web-console-command';\r\nimport { CreateScaffoldWebConsoleCommand } from './create-scaffold-web-console-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ImportScaffoldData {\r\n CreateAreaCommand: UpdateAreasCommand;\r\n CreateQuoteCommands: CreateQuoteWebConsoleCommand[];\r\n CreateItemCommands: CreateItemWebConsoleCommand[];\r\n CreateScaffoldCommands: CreateScaffoldWebConsoleCommand[];\r\n}\r\n\r\n\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n // Generated index.ts file.\r\nexport * from './tonnage';\r\nexport * from './hours';\r\nexport * from './staff-expense';\r\nexport * from './staff-rate';\r\nexport * from './diary-category';\r\nexport * from './scaffold-specification-web-console-data';\r\nexport * from './signature-by-customer';\r\nexport * from './signature-by-staff';\r\nexport * from './item-task';\r\nexport * from './time-entry';\r\nexport * from './time-entry-staff';\r\nexport * from './external-media';\r\nexport * from './create-depot-command';\r\nexport * from './edit-depot-command';\r\nexport * from './attachment-by-customer';\r\nexport * from './add-staff-to-timesheet-period-command';\r\nexport * from './delete-staff-from-timesheet-period-command';\r\nexport * from './edit-timesheet-period-command';\r\nexport * from './create-staff-no-access-command';\r\nexport * from './edit-staff-no-access-command';\r\nexport * from './create-staff-command';\r\nexport * from './delete-staff-command';\r\nexport * from './edit-staff-command';\r\nexport * from './create-scaffold-diary-media-command';\r\nexport * from './edit-scaffold-media-command';\r\nexport * from './edit-scaffold-media-transcription-command';\r\nexport * from './delete-inspection-command';\r\nexport * from './transcribe-media-command';\r\nexport * from './create-diary-command';\r\nexport * from './create-scaffold-specification-command';\r\nexport * from './create-scaffold-web-console-command';\r\nexport * from './delete-associate-scanner-code-command';\r\nexport * from './edit-scaffold-specification-command';\r\nexport * from './edit-scaffold-web-console-command';\r\nexport * from './delete-inspection-defect-command';\r\nexport * from './create-inspection-follow-up-remedial-action-command';\r\nexport * from './create-inspection-follow-up-action-command';\r\nexport * from './create-unsafe-scaffold-report-command';\r\nexport * from './edit-inspection-follow-up-remedial-action-command';\r\nexport * from './edit-inspection-follow-up-action-command';\r\nexport * from './edit-unsafe-scaffold-report-command';\r\nexport * from './edit-unsafe-scaffold-report-summary-command';\r\nexport * from './mark-inspection-follow-up-remedial-action-complete-command';\r\nexport * from './mark-inspection-follow-up-action-complete-command';\r\nexport * from './mark-unsafe-scaffold-report-complete-command';\r\nexport * from './mark-unsafe-scaffold-report-saved-command';\r\nexport * from './mark-inspection-complete-command';\r\nexport * from './mark-inspection-finished-command';\r\nexport * from './mark-scaffold-specification-complete-command';\r\nexport * from './associate-scanner-code-command';\r\nexport * from './create-scaffold-command';\r\nexport * from './edit-scaffold-command';\r\nexport * from './create-inspection-command';\r\nexport * from './create-inspection-defect-command';\r\nexport * from './edit-inspection-command';\r\nexport * from './edit-inspection-defect-command';\r\nexport * from './mark-inspection-inspected-command';\r\nexport * from './create-offhire-web-console-command';\r\nexport * from './delete-off-hire-command';\r\nexport * from './create-off-hire-command';\r\nexport * from './edit-off-hire-command';\r\nexport * from './edit-off-hire-summary-command';\r\nexport * from './mark-off-hire-saved-command';\r\nexport * from './mark-off-hire-summary-complete-command';\r\nexport * from './delete-handover-command';\r\nexport * from './create-handover-command';\r\nexport * from './handover-handover-settings';\r\nexport * from './create-handover-identified-risk-command';\r\nexport * from './delete-handover-identified-risk-command';\r\nexport * from './edit-handover-command';\r\nexport * from './edit-handover-identified-risk-command';\r\nexport * from './edit-handover-inspection-command';\r\nexport * from './edit-handover-summary-command';\r\nexport * from './mark-handover-saved-command';\r\nexport * from './mark-handover-summary-complete-command';\r\nexport * from './create-dismantle-web-console-command';\r\nexport * from './create-dismantle-command';\r\nexport * from './email-variation-estimation-command';\r\nexport * from './delete-variation-command';\r\nexport * from './create-dimension-command';\r\nexport * from './create-variation-command';\r\nexport * from './delete-dimension-command';\r\nexport * from './edit-dimension-command';\r\nexport * from './edit-variation-command';\r\nexport * from './edit-variation-instruction-command';\r\nexport * from './mark-variation-summary-complete-command';\r\nexport * from './create-site-diary-media-command';\r\nexport * from './create-site-diary-web-console-command';\r\nexport * from './edit-site-diary-media-command';\r\nexport * from './site-diary-transcribe-media-command';\r\nexport * from './site-area-details';\r\nexport * from './update-scaffold-numbers-command';\r\nexport * from './scaffold';\r\nexport * from './edit-site-command';\r\nexport * from './edit-site-web-console-command';\r\nexport * from './create-site-command';\r\nexport * from './update-areas-command';\r\nexport * from './create-customer-approval-web-console-command';\r\nexport * from './create-customer-command';\r\nexport * from './edit-customer-command';\r\nexport * from './create-edit-company-contact-command';\r\nexport * from './company-contacts';\r\nexport * from './create-edit-bcc-contract-contact-command';\r\nexport * from './create-contract-contact-command';\r\nexport * from './edit-contract-inspection-status-command';\r\nexport * from './edit-contract-command';\r\nexport * from './edit-contract-contact-command';\r\nexport * from './contract-inspection-status';\r\nexport * from './create-item-web-console-command';\r\nexport * from './create-quote-web-console-command';\r\nexport * from './edit-item-web-console-command';\r\nexport * from './edit-quote-web-console-command';\r\nexport * from './create-contract-command';\r\nexport * from './create-edit-handover-settings-command';\r\nexport * from './create-scaffolding-system-command';\r\nexport * from './create-contract-type-command';\r\nexport * from './create-diary-category-command';\r\nexport * from './delete-scaffolding-systems-command';\r\nexport * from './delete-contract-types-command';\r\nexport * from './edit-report-section-command';\r\nexport * from './edit-scaffolding-systems-command';\r\nexport * from './scaffolding-systemdata';\r\nexport * from './edit-contract-types-command';\r\nexport * from './contract-typedata';\r\nexport * from './create-scaffold-type-command';\r\nexport * from './create-method-of-tying-command';\r\nexport * from './create-method-of-cladding-command';\r\nexport * from './create-loading-limit-command';\r\nexport * from './create-design-type-command';\r\nexport * from './create-defect-type-command';\r\nexport * from './create-handover-risk-reason-command';\r\nexport * from './create-handover-risk-type-command';\r\nexport * from './create-task-type-command';\r\nexport * from './delete-diary-category-command';\r\nexport * from './delete-scaffold-types-command';\r\nexport * from './delete-method-of-tyings-command';\r\nexport * from './delete-method-of-claddings-command';\r\nexport * from './delete-loading-limits-command';\r\nexport * from './delete-design-types-command';\r\nexport * from './delete-handover-risk-reasons-command';\r\nexport * from './delete-defect-types-command';\r\nexport * from './delete-handover-risk-types-command';\r\nexport * from './delete-task-types-command';\r\nexport * from './edit-diary-category-command';\r\nexport * from './edit-company-details-command';\r\nexport * from './edit-scaffold-types-command';\r\nexport * from './scaffold-typedata';\r\nexport * from './edit-method-of-tyings-command';\r\nexport * from './method-of-tyingdata';\r\nexport * from './edit-method-of-claddings-command';\r\nexport * from './methods-of-claddingdata';\r\nexport * from './edit-loading-limits-command';\r\nexport * from './loading-limitdata';\r\nexport * from './edit-design-types-command';\r\nexport * from './design-typedata';\r\nexport * from './edit-defect-types-command';\r\nexport * from './defect-typedata';\r\nexport * from './edit-handover-risk-reasons-command';\r\nexport * from './handover-risk-reasondata';\r\nexport * from './edit-handover-risk-types-command';\r\nexport * from './handover-risk-typedata';\r\nexport * from './edit-task-type-command';\r\nexport * from './task-typedata';\r\nexport * from './delete-customer-status-command';\r\nexport * from './set-site-staff-permissions-command';\r\nexport * from './import-scaffold-data';\r\nexport * from './import-data';\r\n","import { TaskStatusEnum } from '../../enum/task-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ItemTask {\r\n AllocatedHours: number;\r\n TaskStatus: TaskStatusEnum;\r\n PercentageComplete: number;\r\n TaskId: string;\r\n TaskTypeId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class LoadingLimitdata {\r\n LoadingLimitId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkHandoverSavedCommand {\r\n HandoverId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { EditHandoverInspectionCommand } from './edit-handover-inspection-command';\r\nimport { EditHandoverIdentifiedRiskCommand } from './edit-handover-identified-risk-command';\r\nimport { EditHandoverCommand } from './edit-handover-command';\r\nimport { EditHandoverSummaryCommand } from './edit-handover-summary-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkHandoverSummaryCompleteCommand {\r\n EditHandoverInspectionCommand: EditHandoverInspectionCommand;\r\n EditHandoverIdentifiedRiskCommands: EditHandoverIdentifiedRiskCommand[];\r\n EditHandoverCommand: EditHandoverCommand;\r\n EditHandoverSummaryCommand: EditHandoverSummaryCommand;\r\n HandoverId: string;\r\n OffsetFromUtc: number;\r\n SubmittedOn: string;\r\n OwnerId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { EditInspectionDefectCommand } from './edit-inspection-defect-command';\r\nimport { EditInspectionCommand } from './edit-inspection-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkInspectionCompleteCommand {\r\n EditInspectionDefectCommands: EditInspectionDefectCommand[];\r\n EditInspectionCommand: EditInspectionCommand;\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n InspectionOutcomeId: string;\r\n OffsetFromUtc: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkInspectionFinishedCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { EditInspectionFollowUpActionCommand } from './edit-inspection-follow-up-action-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkInspectionFollowUpActionCompleteCommand {\r\n EditInspectionFollowUpActionCommand: EditInspectionFollowUpActionCommand;\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n When: string;\r\n OffsetFromUtc: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { EditInspectionFollowUpRemedialActionCommand } from './edit-inspection-follow-up-remedial-action-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkInspectionFollowUpRemedialActionCompleteCommand {\r\n EditInspectionFollowUpRemedialActionCommand: EditInspectionFollowUpRemedialActionCommand;\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n OffsetFromUtc: number;\r\n SubmittedOn: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkInspectionInspectedCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n When: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkOffHireSavedCommand {\r\n OffHireId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { EditOffHireSummaryCommand } from './edit-off-hire-summary-command';\r\nimport { EditOffHireCommand } from './edit-off-hire-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkOffHireSummaryCompleteCommand {\r\n EditOffHireSummaryCommand: EditOffHireSummaryCommand;\r\n EditOffHireCommand: EditOffHireCommand;\r\n OffHireId: string;\r\n When: string;\r\n OffsetFromUtc: number;\r\n SubmittedOn: string;\r\n}\r\n\r\n\r\n","import { EditScaffoldSpecificationCommand } from './edit-scaffold-specification-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkScaffoldSpecificationCompleteCommand {\r\n ScaffoldId: string;\r\n EditScaffoldSpecificationCommand: EditScaffoldSpecificationCommand;\r\n HandoverId: string;\r\n ScaffoldItemId: string;\r\n OffsetFromUtc: number;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { EditUnsafeScaffoldReportSummaryCommand } from './edit-unsafe-scaffold-report-summary-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkUnsafeScaffoldReportCompleteCommand {\r\n EditUnsafeScaffoldReportSummaryCommand: EditUnsafeScaffoldReportSummaryCommand;\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n InspectorComments: { [key: string]: string };\r\n InspectionDefectComments: { [key: string]: string };\r\n InspectionFollowupInspectorsRecommendation: { [key: string]: string };\r\n UnsafeReportSiteManagerRecommendation: string;\r\n OffsetFromUtc: number;\r\n SubmittedOn: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkUnsafeScaffoldReportSavedCommand {\r\n ScaffoldId: string;\r\n ScaffoldDiaryId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","import { MarkHandoverSummaryCompleteCommand } from './mark-handover-summary-complete-command';\r\nimport { EditDimensionCommand } from './edit-dimension-command';\r\nimport { EditVariationCommand } from './edit-variation-command';\r\nimport { EditVariationInstructionCommand } from './edit-variation-instruction-command';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MarkVariationSummaryCompleteCommand {\r\n MarkHandoverSummaryCompleteCommand: MarkHandoverSummaryCompleteCommand;\r\n EditDimensionCommands: EditDimensionCommand[];\r\n EditVariationCommand: EditVariationCommand;\r\n EditVariationInstructionCommand: EditVariationInstructionCommand;\r\n VariationId: string;\r\n CommandVersion: string;\r\n SourceApp: string;\r\n SourceAppVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MethodOfTyingdata {\r\n MethodOfTyingId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MethodsOfCladdingdata {\r\n MethodOfCladdingId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldSpecificationWebConsoleData {\r\n ScaffoldTypeId: string;\r\n ScaffoldTypeFurtherInformation: string;\r\n Description: string;\r\n DesignTypeId: string;\r\n DesignTypeFurtherInformation: string;\r\n LoadingLimitId: string;\r\n LoadingLimitFurtherInformation: string;\r\n MethodOfTyingId: string;\r\n MethodOfTyingFurtherInformation: string;\r\n MethodOfCladdingId: string;\r\n MethodOfCladdingFurtherInformation: string;\r\n ScaffoldingSystemId: string;\r\n HirePeriod: number;\r\n MaximumTonnage: number;\r\n StandingTonnage: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldTypedata {\r\n ScaffoldTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class Scaffold {\r\n ScaffoldId: string;\r\n ScaffoldNumber: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldingSystemdata {\r\n ScaffoldingSystemId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SetSiteStaffPermissionsCommand {\r\n SiteId: string;\r\n StaffIds: string[];\r\n CanEdit: boolean;\r\n CanView: boolean;\r\n ReceiveInspectionReports: boolean;\r\n IsInactive: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SignatureByCustomer {\r\n Data: number[][];\r\n ContractContactId: string;\r\n When: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SignatureByStaff {\r\n Data: number[][];\r\n StaffId: string;\r\n When: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteAreaDetails {\r\n SiteAreaId: string;\r\n AreaName: string;\r\n Deleted: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteDiaryTranscribeMediaCommand {\r\n SiteId: string;\r\n MediaReferenceId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffExpense {\r\n ExpenseTypeId: string;\r\n Cost: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffRate {\r\n StaffRateId: string;\r\n HourlyRate: number;\r\n EffectiveFrom: string;\r\n RateTypeId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TaskTypedata {\r\n TaskTypeId: string;\r\n Title: string;\r\n ReportText: string;\r\n SortOrder: number;\r\n RequireFurtherInformation: boolean;\r\n Subtitle: string;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { TimeEntry } from './time-entry';\r\nimport { StaffExpense } from './staff-expense';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimeEntryStaff {\r\n StaffId: string;\r\n TimeEntries: TimeEntry[];\r\n Expenses: StaffExpense[];\r\n}\r\n\r\n\r\n","import { Hours } from './hours';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimeEntry {\r\n TimeEntryId: string;\r\n HoursByRate: Hours[];\r\n Cost: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class Tonnage {\r\n SiteTonnageId: string;\r\n SiteId: string;\r\n ScaffoldingSystemId: string;\r\n TotalTonnage: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TranscribeMediaCommand {\r\n ScaffoldId: string;\r\n MediaReferenceId: string;\r\n}\r\n\r\n\r\n","import { SiteAreaDetails } from './site-area-details';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class UpdateAreasCommand {\r\n SiteId: string;\r\n Areas: SiteAreaDetails[];\r\n}\r\n\r\n\r\n","import { Scaffold } from './scaffold';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class UpdateScaffoldNumbersCommand {\r\n SiteId: string;\r\n Scaffolds: Scaffold[];\r\n}\r\n\r\n\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n // Generated index.ts file.\r\nexport * from './query';\r\nexport * from './command';\r\n","import { DiaryTypeEnum } from '../../enum/diary-type.enum';\r\nimport { ActivityStatusEnum } from '../../enum/activity-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ActivitiesData {\r\n StaffName: string;\r\n StaffId: string;\r\n ActivityType: DiaryTypeEnum;\r\n ActivityTypeId: string;\r\n ActivityDateTime: string;\r\n SiteName: string;\r\n SiteReference: string;\r\n SiteId: string;\r\n CustomerName: string;\r\n CustomerReference: string;\r\n CustomerId: string;\r\n ScaffoldId: string;\r\n Area: string;\r\n ScaffoldNumber: string;\r\n ScaffoldName: string;\r\n ScaffoldDescription: string;\r\n Status: ActivityStatusEnum;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ActivitiesQuery {\r\n SiteId: string;\r\n ActivityDateFromTime: string;\r\n ActivityDateToTime: string;\r\n ActivityType: number;\r\n StaffId: string;\r\n OrderBy: string;\r\n IsOrderByDesc: boolean;\r\n PageNumber: number;\r\n PageSize: number;\r\n}\r\n\r\n\r\n","import { ScaffoldDetails } from './scaffold-details';\r\nimport { SiteDetails } from './site-details';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ActivityDetailData {\r\n ActivityId: string;\r\n ScaffoldDetails: ScaffoldDetails;\r\n SiteDetails: SiteDetails;\r\n ActivityDateTime: string;\r\n}\r\n\r\n\r\n","import { DiaryTypeEnum } from '../../enum/diary-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ActivityDetailQuery {\r\n ActivityId: string;\r\n ActivityType: DiaryTypeEnum;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class AdalB2CData {\r\n Adb2cBaseOAuthUri: string;\r\n TenantName: string;\r\n RedirectUri: string;\r\n B2CWebAppId: string;\r\n Policy: string;\r\n AppResourceUri: string;\r\n}\r\n\r\n\r\n","import { ApplicationPaymentActivityTypeEnum } from '../../enum/application-payment-activity-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ApplicationPaymentActivityReportData {\r\n ActivityType: ApplicationPaymentActivityTypeEnum;\r\n ActivityName: string;\r\n Data: object[];\r\n}\r\n\r\n\r\n","import { ReportInputGuidListData } from './report-input-guid-list-data';\r\nimport { ApplicationPaymentActivityTypeEnum } from '../../enum/application-payment-activity-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ApplicationPaymentCheckListInput {\r\n CustomerIds: ReportInputGuidListData;\r\n ContractIds: ReportInputGuidListData;\r\n DateRangeFrom: string;\r\n DateRangeTo: string;\r\n ActivityType: ApplicationPaymentActivityTypeEnum[];\r\n}\r\n\r\n\r\n","import { ApplicationPaymentActivityReportData } from './application-payment-activity-report-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ApplicationPaymentReportData {\r\n Date: string;\r\n Customers: string;\r\n Contracts: string;\r\n Activity: string;\r\n ActivityPaymentData: ApplicationPaymentActivityReportData[];\r\n}\r\n\r\n\r\n","import { MobileSettingsData } from './mobile-settings-data';\r\nimport { AdalB2CData } from './adal-b2c-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ApplicationSettingsData {\r\n ServerVersion: string;\r\n SmartHandover: MobileSettingsData;\r\n SmartInspector: MobileSettingsData;\r\n AppUrl: string;\r\n AppInsightKey: string;\r\n AdalB2CData: AdalB2CData;\r\n EulaVersion: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ApplicationUserData {\r\n ApplicationUserId: string;\r\n DisplayName: string;\r\n Email: string;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","import { MediaData } from './media-data';\r\nimport { PeriodTypeEnum } from '../../enum/period-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CompanyDetails {\r\n CompanyLogoUrl: string;\r\n CompanyName: string;\r\n CompanyAddress: string;\r\n Latitude: number;\r\n Longitude: number;\r\n EmailAddress: string;\r\n PhoneNumber: string;\r\n WebConsoleSetupComplete: boolean;\r\n DepotsEnabled: boolean;\r\n CompanyLogo: MediaData;\r\n PeriodType: PeriodTypeEnum;\r\n FirstPeriodStartDate: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CompanyStatisticData {\r\n NoOfOpenSite: number;\r\n NoOfNonDeletedStaff: number;\r\n NoOfScaffolders: number;\r\n}\r\n\r\n\r\n","import { ContractStatusData } from './contract-status-data';\r\nimport { CustomerStatusData } from './customer-status-data';\r\nimport { DefectTypeData } from './defect-type-data';\r\nimport { DesignTypeData } from './design-type-data';\r\nimport { InspectionDefectStatusTypeData } from './inspection-defect-status-type-data';\r\nimport { InspectionOutcomeData } from './inspection-outcome-data';\r\nimport { InspectionTypeData } from './inspection-type-data';\r\nimport { InspectionTypeGroupData } from './inspection-type-group-data';\r\nimport { LoadingLimitData } from './loading-limit-data';\r\nimport { MethodsOfCladdingData } from './methods-of-cladding-data';\r\nimport { MethodOfTyingData } from './method-of-tying-data';\r\nimport { ScaffoldStatusData } from './scaffold-status-data';\r\nimport { ScaffoldTypeData } from './scaffold-type-data';\r\nimport { SiteStatusData } from './site-status-data';\r\nimport { HandoverRiskReasonData } from './handover-risk-reason-data';\r\nimport { HandoverRiskTypeData } from './handover-risk-type-data';\r\nimport { RolesData } from './roles-data';\r\nimport { ContactTypeData } from './contact-type-data';\r\nimport { DepotData } from './depot-data';\r\nimport { DiaryCategoryData } from './diary-category-data';\r\nimport { TaskTypeData } from './task-type-data';\r\nimport { RateTypeData } from './rate-type-data';\r\nimport { ExpenseTypeData } from './expense-type-data';\r\nimport { ContractTypeData } from './contract-type-data';\r\nimport { ScaffoldingSystemTypeData } from './scaffolding-system-type-data';\r\nimport { HandoverSettingsData } from './handover-settings-data';\r\nimport { ReportSectionData } from './report-section-data';\r\nimport { CompanyDetails } from './company-details';\r\nimport { CompanyStatisticData } from './company-statistic-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ConfigurationData {\r\n ConfigurationId: boolean;\r\n SchemaVersion: string;\r\n ContractStatuses: { [key: string]: ContractStatusData };\r\n CustomerStatuses: { [key: string]: CustomerStatusData };\r\n DefectTypes: { [key: string]: DefectTypeData };\r\n DesignTypes: { [key: string]: DesignTypeData };\r\n InspectionDefectStatuses: { [key: string]: InspectionDefectStatusTypeData };\r\n InspectionOutcomes: { [key: string]: InspectionOutcomeData };\r\n InspectionTypes: { [key: string]: InspectionTypeData };\r\n InspectionTypeGroup: { [key: string]: InspectionTypeGroupData };\r\n LoadingLimits: { [key: string]: LoadingLimitData };\r\n MethodOfCladdings: { [key: string]: MethodsOfCladdingData };\r\n MethodOfTyings: { [key: string]: MethodOfTyingData };\r\n ScaffoldStatuses: { [key: string]: ScaffoldStatusData };\r\n ScaffoldTypes: { [key: string]: ScaffoldTypeData };\r\n SiteStatuses: { [key: string]: SiteStatusData };\r\n HandoverRiskReasons: { [key: string]: HandoverRiskReasonData };\r\n HandoverRiskTypes: { [key: string]: HandoverRiskTypeData };\r\n Roles: { [key: string]: RolesData };\r\n ContactTypes: { [key: string]: ContactTypeData };\r\n SiteDepots: { [key: string]: DepotData };\r\n DiaryCategories: { [key: string]: DiaryCategoryData };\r\n TaskTypes: { [key: string]: TaskTypeData };\r\n RateTypes: { [key: string]: RateTypeData };\r\n ExpenseTypes: { [key: string]: ExpenseTypeData };\r\n ContractTypes: { [key: string]: ContractTypeData };\r\n ScaffoldingSystems: { [key: string]: ScaffoldingSystemTypeData };\r\n HandoverSettings: { [key: string]: HandoverSettingsData };\r\n ReportSections: { [key: string]: ReportSectionData };\r\n CompanyDetails: CompanyDetails;\r\n CurrencySymbol: string;\r\n CustomerReferencePrefix: string;\r\n CustomerReferenceSuffix: string;\r\n CustomerReferenceLength: number;\r\n SiteReferencePrefix: string;\r\n SiteReferenceSuffix: string;\r\n SiteReferenceLength: number;\r\n ScaffoldReferencePrefix: string;\r\n ScaffoldReferenceSuffix: string;\r\n ScaffoldReferenceLength: number;\r\n ContractReferencePrefix: string;\r\n ContractReferenceSuffix: string;\r\n ContractReferenceLength: number;\r\n NewSiteStatusId: string;\r\n NewContractStatusId: string;\r\n NewContractContactStatusId: string;\r\n NewCustomerStatusId: string;\r\n CompanyStatisticData: CompanyStatisticData;\r\n Deleted: boolean;\r\n LastModified: string;\r\n InspectionReportPrefix: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ConfigurationQuery {\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ContactTypeData {\r\n ContactTypeId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { DiaryTypeEnum } from '../../enum/diary-type.enum';\r\nimport { ScaffoldDetails } from './scaffold-details';\r\nimport { SiteDetails } from './site-details';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ContractActivityDetails {\r\n State: DiaryTypeEnum;\r\n Reason: string;\r\n ResumeDate: string;\r\n ActivityId: string;\r\n ScaffoldDetails: ScaffoldDetails;\r\n SiteDetails: SiteDetails;\r\n ActivityDateTime: string;\r\n}\r\n\r\n\r\n","import { ReportSubscriptionTypesEnum } from '../../enum/report-subscription-types.enum';\r\nimport { ScheduleTypeEnum } from '../../enum/schedule-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ContractContactData {\r\n ContractContactId: string;\r\n ContactName: string;\r\n EmailAddress: string;\r\n PhoneNumber: string;\r\n IsInactive: boolean;\r\n ReportSubscriptionTypes: ReportSubscriptionTypesEnum;\r\n ScheduledReportStartDate: string;\r\n CreatedOn: string;\r\n ModifiedOn: string;\r\n ScheduleType: ScheduleTypeEnum;\r\n ContactTypeId: string;\r\n}\r\n\r\n\r\n","import { InspectionStatusData } from './inspection-status-data';\r\nimport { ContractContactData } from './contract-contact-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ContractData {\r\n ContractId: string;\r\n ContractTypeId: string;\r\n ContractType: string;\r\n ContractName: string;\r\n Description: string;\r\n CustomerId: string;\r\n ContractReference: string;\r\n ContractStatusId: string;\r\n SiteId: string;\r\n IsPrincipalContract: boolean;\r\n IsCustomerNotPresent: boolean;\r\n IsScheduleRatesAgreed: boolean;\r\n CanSubmitDocumentsWithoutSignature: boolean;\r\n CreationDate: string;\r\n InspectionStatus: InspectionStatusData;\r\n ContractContacts: { [key: string]: ContractContactData };\r\n HasScaffolds: boolean;\r\n IsCameraAllowed: boolean;\r\n AllowDismantleWithoutOffhire: boolean;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ContractStatusData {\r\n ContractStatusId: string;\r\n IsClosed: boolean;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ContractSystemData {\r\n ScaffoldingSystemName: string;\r\n ScaffoldingSystemId: string;\r\n MaximumTonnage: number;\r\n StandingTonnage: number;\r\n}\r\n\r\n\r\n","import { ContractSystemData } from './contract-system-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ContractTonnageInformation {\r\n ContractId: string;\r\n ContractName: string;\r\n ContractNumber: string;\r\n ScaffoldSystems: ContractSystemData[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ContractTypeData {\r\n ContractTypeId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CumulativeReportInput {\r\n ContractIds: string[];\r\n DepotId: string;\r\n FromDate: string;\r\n SiteIds: string[];\r\n ToDate: string;\r\n}\r\n\r\n\r\n","import { ContractTonnageInformation } from './contract-tonnage-information';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerAndContractTonnageInformation {\r\n CustomerId: string;\r\n CustomerName: string;\r\n Contracts: ContractTonnageInformation[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerAttachmentData {\r\n ContractContactId: string;\r\n BlobPath: string;\r\n When: string;\r\n FileName: string;\r\n}\r\n\r\n\r\n","import { MediaData } from './media-data';\r\nimport { CustomerSiteData } from './customer-site-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerData {\r\n CustomerId: string;\r\n CustomerName: string;\r\n CustomerReference: string;\r\n CustomerImage: MediaData;\r\n CustomerStatusId: string;\r\n ApprovalExpires: string;\r\n Latitude: number;\r\n Longitude: number;\r\n CustomerAddress: string;\r\n EmailAddress: string;\r\n PhoneNumber: string;\r\n Website: string;\r\n Sites: CustomerSiteData[];\r\n HasOpenContracts: boolean;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerDetailQuery {\r\n CustomerId: string;\r\n CustomerName: string;\r\n CustomerReference: string;\r\n}\r\n\r\n\r\n","import { CustomerSiteData } from './customer-site-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerDetailWebAppData {\r\n Latitude: number;\r\n Longitude: number;\r\n CustomerAddress: string;\r\n EmailAddress: string;\r\n PhoneNumber: string;\r\n Website: string;\r\n Sites: CustomerSiteData[];\r\n HasOpenContracts: boolean;\r\n CustomerId: string;\r\n CustomerName: string;\r\n CustomerReference: string;\r\n CustomerStatusId: string;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerQuery {\r\n CustomerId: string;\r\n CustomerName: string;\r\n CustomerReference: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerSignatureData {\r\n ContractContactId: string;\r\n Data: number[][];\r\n When: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerSiteData {\r\n SiteId: string;\r\n SiteReference: string;\r\n SiteName: string;\r\n SiteImageUrl: string;\r\n Latitude: number;\r\n Longitude: number;\r\n SiteStatusId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerStatisticsData {\r\n TotalActiveCustomers: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerStatisticsQuery {\r\n CustomerId: string;\r\n DepotId: string;\r\n SiteId: string;\r\n AdminAssignedSitesOnly: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerStatusData {\r\n CustomerStatusId: string;\r\n IsInactive: boolean;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class CustomerWebAppData {\r\n CustomerId: string;\r\n CustomerName: string;\r\n CustomerReference: string;\r\n CustomerStatusId: string;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","import { InspectionWorkflowStatusEnum } from '../../enum/inspection-workflow-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DashBoardInspectionData {\r\n ScaffoldDiaryId: string;\r\n InspectionOutcomeId: string;\r\n InspectionTypeId: string;\r\n InspectionWorkflowStatus: InspectionWorkflowStatusEnum;\r\n When: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DefectReportInput {\r\n CustomerIds: string[];\r\n ContractIds: string[];\r\n DefectTypeIds: string[];\r\n DepotId: string;\r\n FromDate: string;\r\n SiteIds: string[];\r\n ToDate: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DefectStatisticData {\r\n Group: string;\r\n Name: string;\r\n Count: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DefectStatisticsQuery {\r\n ContractId: string;\r\n CustomerId: string;\r\n DepotId: string;\r\n SiteId: string;\r\n AdminAssignedSitesOnly: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DefectTypeData {\r\n DefectTypeId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { SiteCombinedData } from './site-combined-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DepotCombinedData {\r\n DepotId: string;\r\n DepotName: string;\r\n Sites: SiteCombinedData[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DepotData {\r\n SiteDepotId: string;\r\n Staff: string[];\r\n DepotName: string;\r\n DepotAddress: string;\r\n Latitude: number;\r\n Longitude: number;\r\n PhoneNumber: string;\r\n EmailAddress: string;\r\n Deleted: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DepotQuery {\r\n DepotId: string;\r\n}\r\n\r\n\r\n","import { SiteCustomerAndContractTonnageInformation } from './site-customer-and-contract-tonnage-information';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DepotSiteCustomerAndContractTonnageInformation {\r\n DepotId: string;\r\n DepotName: string;\r\n Sites: SiteCustomerAndContractTonnageInformation[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DesignTypeData {\r\n DesignTypeId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { ScaffoldDetails } from './scaffold-details';\r\nimport { SiteDetails } from './site-details';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DiaryActivityDetails {\r\n ActivityId: string;\r\n ScaffoldDetails: ScaffoldDetails;\r\n SiteDetails: SiteDetails;\r\n ActivityDateTime: string;\r\n ScaffoldId: string;\r\n OwnerId: string;\r\n OwnerName: string;\r\n StaffCompanyPosition: string;\r\n Notes: string;\r\n TranscriptionsCount: number;\r\n AudiosCount: number;\r\n ImagesCount: number;\r\n VideosCount: number;\r\n PDFCount: number;\r\n PercentageStanding: number;\r\n DiaryCategoryId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DiaryCategoryData {\r\n DiaryCategoryId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { DiaryDataTypeEnum } from '../../enum/diary-data-type.enum';\r\nimport { MediaTranscriptionData } from './media-transcription-data';\r\nimport { MediaData } from './media-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DiaryData {\r\n DiaryType: DiaryDataTypeEnum;\r\n DiaryId: string;\r\n When: string;\r\n OwnerId: string;\r\n OwnerName: string;\r\n Notes: string;\r\n Transcriptions: MediaTranscriptionData[];\r\n Audios: MediaData[];\r\n Images: MediaData[];\r\n Videos: MediaData[];\r\n PDFs: MediaData[];\r\n DiaryCategoryId: string;\r\n PercentageStanding: number;\r\n StandingTonnage: number;\r\n ScaffoldName: string;\r\n ScaffoldNumber: string;\r\n SiteAreaName: string;\r\n}\r\n\r\n\r\n","import { DiaryDataTypeEnum } from '../../enum/diary-data-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DiaryQuery {\r\n DiaryId: string;\r\n SiteId: string;\r\n DiaryType: DiaryDataTypeEnum;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DimensionApplicationPaymentReportData {\r\n Description: string;\r\n Quantity: string;\r\n Length: string;\r\n Width: string;\r\n Height: string;\r\n BoardedLifts: string;\r\n TotalLifts: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DimensionData {\r\n DimensionId: string;\r\n VariationId: string;\r\n ScaffoldId: string;\r\n Description: string;\r\n Quantity: string;\r\n Length: string;\r\n Width: string;\r\n Height: string;\r\n HeightBand: string;\r\n TotalNumberOfLift: string;\r\n TotalNumberOfBoardedLift: string;\r\n}\r\n\r\n\r\n","import { DismantleData } from './dismantle-data';\r\nimport { ScaffoldDetails } from './scaffold-details';\r\nimport { SiteDetails } from './site-details';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DismantleActivityDetails {\r\n DismantleData: DismantleData;\r\n ActivityId: string;\r\n ScaffoldDetails: ScaffoldDetails;\r\n SiteDetails: SiteDetails;\r\n ActivityDateTime: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class DismantleData {\r\n MediaUrls: string[];\r\n When: string;\r\n OwnerName: string;\r\n OwnerId: string;\r\n Notes: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ExpenseTypeData {\r\n ExpenseTypeId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { HandoverHandoverSettingsData } from './handover-handover-settings-data';\r\nimport { ScaffoldDetails } from './scaffold-details';\r\nimport { SiteDetails } from './site-details';\r\nimport { HandoverScaffoldData } from './handover-scaffold-data';\r\nimport { HandoverIdentifiedRiskActivityData } from './handover-identified-risk-activity-data';\r\nimport { StaffSignatureData } from './staff-signature-data';\r\nimport { CustomerSignatureData } from './customer-signature-data';\r\nimport { SiteDocumentStatusEnum } from '../../enum/site-document-status.enum';\r\nimport { CustomerAttachmentData } from './customer-attachment-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverActivityDetails {\r\n HandoverHandoverSettingsData: HandoverHandoverSettingsData[];\r\n ActivityId: string;\r\n ScaffoldDetails: ScaffoldDetails;\r\n SiteDetails: SiteDetails;\r\n ActivityDateTime: string;\r\n HandoverId: string;\r\n NextInspectionDate: string;\r\n RisksIdentified: boolean;\r\n Scaffolds: HandoverScaffoldData[];\r\n HandoverComments: string;\r\n HirePeriod: number;\r\n IdentifiedRiskDetails: string;\r\n Media: string[];\r\n IdentifiedRisks: HandoverIdentifiedRiskActivityData[];\r\n HandoverQuestionsAsked: string[];\r\n HandoverReference: string;\r\n StaffSignature: StaffSignatureData;\r\n CustomerSignature: CustomerSignatureData;\r\n When: string;\r\n Status: SiteDocumentStatusEnum;\r\n SiteId: string;\r\n CustomerId: string;\r\n CustomerAttachment: CustomerAttachmentData[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverApplicationPaymentReportData {\r\n StaffName: string;\r\n Comments: string;\r\n ScaffoldNumber: string;\r\n ScaffoldName: string;\r\n ScaffoldDescription: string;\r\n QuoteNo: string;\r\n ItemNo: string;\r\n HandoverStatus: string;\r\n OnHireDate: string;\r\n HirePeriod: string;\r\n HirePeriodEndDate: string;\r\n OnHire: string;\r\n ExtraHire: string;\r\n OffHiredDate: string;\r\n}\r\n\r\n\r\n","import { HandoverScaffoldData } from './handover-scaffold-data';\r\nimport { MediaData } from './media-data';\r\nimport { HandoverIdentifiedRiskData } from './handover-identified-risk-data';\r\nimport { SiteDocumentStatusEnum } from '../../enum/site-document-status.enum';\r\nimport { StaffSignatureData } from './staff-signature-data';\r\nimport { CustomerSignatureData } from './customer-signature-data';\r\nimport { HandoverHandoverSettingsData } from './handover-handover-settings-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverData {\r\n HandoverId: string;\r\n NextInspectionDate: string;\r\n RisksIdentified: boolean;\r\n HandOverType: number;\r\n Scaffolds: HandoverScaffoldData[];\r\n HandoverComments: string;\r\n HirePeriod: number;\r\n IdentifiedRiskDetails: string;\r\n Media: { [key: string]: MediaData };\r\n IdentifiedRisks: { [key: string]: HandoverIdentifiedRiskData };\r\n HandoverQuestionsAsked: string[];\r\n When: string;\r\n HandoverReference: string;\r\n Status: SiteDocumentStatusEnum;\r\n SiteId: string;\r\n CustomerId: string;\r\n StaffSignature: StaffSignatureData;\r\n CustomerSignature: CustomerSignatureData;\r\n HandoverHandoverSettingsData: HandoverHandoverSettingsData[];\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverHandoverSettingsData {\r\n HandoverHandoverSettingsId: string;\r\n HandoverId: string;\r\n Name: string;\r\n HandoverSettingsId: string;\r\n Value: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverHistoryQuery {\r\n SiteIds: string[];\r\n}\r\n\r\n\r\n","import { HandoverHistoryTypeEnum } from '../../enum/handover-history-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverHistoryReportInput {\r\n CustomerIds: string[];\r\n ContractIds: string[];\r\n DepotId: string;\r\n HandoverTypes: HandoverHistoryTypeEnum[];\r\n SiteIds: string[];\r\n DateRangeFrom: string;\r\n DateRangeTo: string;\r\n}\r\n\r\n\r\n","import { HandoverHistoryTypeEnum } from '../../enum/handover-history-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverHistoryWebAppData {\r\n ContractId: string;\r\n Id: string;\r\n SiteId: string;\r\n Reference: string;\r\n Scaffolds: string[];\r\n Comments: string;\r\n When: string;\r\n CustomerId: string;\r\n Staff: string;\r\n Type: HandoverHistoryTypeEnum;\r\n ScaffoldDiaryId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverIdentifiedRiskActivityData {\r\n HandoverRiskTypeId: string;\r\n HandoverRiskTypeFurtherInformation: string;\r\n HandoverRiskReasonId: string;\r\n HandoverRiskReasonFurtherInformation: string;\r\n Notes: string;\r\n Media: string[];\r\n}\r\n\r\n\r\n","import { MediaData } from './media-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverIdentifiedRiskData {\r\n HandoverIdentifiedRiskId: string;\r\n HandoverId: string;\r\n HandoverRiskTypeId: string;\r\n HandoverRiskTypeFurtherInformation: string;\r\n HandoverRiskReasonId: string;\r\n HandoverRiskReasonFurtherInformation: string;\r\n Notes: string;\r\n Media: { [key: string]: MediaData };\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverQuestionData {\r\n HandoverQuestionId: string;\r\n}\r\n\r\n\r\n","import { HandoverTypeEnum } from '../../enum/handover-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverReportInput {\r\n SiteId: string;\r\n ScaffoldIds: string[];\r\n HandoverTypes: HandoverTypeEnum[];\r\n DateRangeFrom: string;\r\n DateRangeTo: string;\r\n HandoverIds: string[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverRiskReasonData {\r\n HandoverRiskReasonId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverRiskSummaryData {\r\n Comments: string;\r\n HandoverRiskReason: string;\r\n HandoverRiskType: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverRiskTypeData {\r\n HandoverRiskTypeId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { ScaffoldItemData } from './scaffold-item-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverScaffoldData {\r\n ScaffoldId: string;\r\n ScaffoldNumber: string;\r\n SpecificLocationDetails: string;\r\n ScaffoldSpecification: ScaffoldItemData;\r\n}\r\n\r\n\r\n","import { HandoverSettingsTypeEnum } from '../../enum/handover-settings-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverSettingsData {\r\n HandoverSettingsId: string;\r\n Name: string;\r\n Type: HandoverSettingsTypeEnum;\r\n Mandatory: boolean;\r\n Active: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverSettingsQuery {\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverStatisticsData {\r\n TotalInitialHandoverForLastSevenDays: number;\r\n TotalReHandoverForLastSevenDays: number;\r\n TotalFullOffHiresForLastSevenDays: number;\r\n TotalPartialOffhiresForLastSevenDays: number;\r\n TotalAdaptionsForLastSevenDays: number;\r\n TotalVariationsForLastSevenDays: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverStatisticsQuery {\r\n ContractId: string;\r\n CustomerId: string;\r\n DepotId: string;\r\n SiteId: string;\r\n AdminAssignedSitesOnly: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverStatusReportInput {\r\n HandoverStatuses: string[];\r\n DepotId: string;\r\n SiteIds: string[];\r\n CustomerIds: string[];\r\n ScaffoldDismantleSince: string;\r\n ContractIds: string[];\r\n AdminAssignedSitesOnly: boolean;\r\n}\r\n\r\n\r\n","import { HandoverRiskSummaryData } from './handover-risk-summary-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class HandoverSummaryData {\r\n Comments: string;\r\n Inspector: string;\r\n Risks: HandoverRiskSummaryData[];\r\n When: string;\r\n}\r\n\r\n\r\n","/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\n // Generated index.ts file.\r\nexport * from './application-settings-data';\r\nexport * from './mobile-settings-data';\r\nexport * from './adal-b2c-data';\r\nexport * from './web-import';\r\nexport * from './web-command';\r\nexport * from './contract-tonnage-information';\r\nexport * from './customer-and-contract-tonnage-information';\r\nexport * from './depot-combined-data';\r\nexport * from './depot-site-customer-and-contract-tonnage-information';\r\nexport * from './scaffold-section-scaffold-data';\r\nexport * from './site-customer-and-contract-tonnage-information';\r\nexport * from './site-combined-data';\r\nexport * from './scaffold-system-data';\r\nexport * from './contract-system-data';\r\nexport * from './stock-report';\r\nexport * from './stock-report-customer-and-contract-section';\r\nexport * from './stock-report-depot-and-site-section';\r\nexport * from './stock-report-filter-section';\r\nexport * from './stock-report-scaffold-section';\r\nexport * from './stock-report-scaffold-subsection';\r\nexport * from './stock-report-record-for-csv';\r\nexport * from './scaffold-combined-data';\r\nexport * from './handover-report-input';\r\nexport * from './inspection-report-input';\r\nexport * from './variation-report-input';\r\nexport * from './report-input-guid-data';\r\nexport * from './report-input-guid-list-data';\r\nexport * from './application-payment-check-list-input';\r\nexport * from './cumulative-report-input';\r\nexport * from './defect-report-input';\r\nexport * from './handover-history-report-input';\r\nexport * from './handover-status-report-input';\r\nexport * from './individual-payroll-report-input';\r\nexport * from './payroll-report-input';\r\nexport * from './scaffold-report-input';\r\nexport * from './stock-report-input';\r\nexport * from './application-payment-activity-report-data';\r\nexport * from './application-payment-report-data';\r\nexport * from './site-diary-entry-application-payment-report-data';\r\nexport * from './scaffold-diary-entry-application-payment-report-data';\r\nexport * from './dimension-application-payment-report-data';\r\nexport * from './handover-application-payment-report-data';\r\nexport * from './inspection-application-payment-report-data';\r\nexport * from './scaffold-application-payment-report-data';\r\nexport * from './variation-application-payment-report-data';\r\nexport * from './company-details';\r\nexport * from './company-statistic-data';\r\nexport * from './configuration-query';\r\nexport * from './contact-type-data';\r\nexport * from './contract-type-data';\r\nexport * from './expense-type-data';\r\nexport * from './inspection-defect-status-type-data';\r\nexport * from './diary-category-data';\r\nexport * from './rate-type-data';\r\nexport * from './report-section-data';\r\nexport * from './roles-data';\r\nexport * from './scaffolding-system-type-data';\r\nexport * from './task-type-data';\r\nexport * from './inspection-status-data';\r\nexport * from './customer-attachment-data';\r\nexport * from './handover-settings-data';\r\nexport * from './staff-rate-data';\r\nexport * from './staff-rate-type-data';\r\nexport * from './time-entry-data';\r\nexport * from './time-entry-expense-data';\r\nexport * from './time-entry-hours-data';\r\nexport * from './time-entry-rate-data';\r\nexport * from './time-entry-staff-data';\r\nexport * from './time-entry-task-data';\r\nexport * from './timesheet-period-data';\r\nexport * from './timesheet-query';\r\nexport * from './timesheet-contract-data';\r\nexport * from './timesheet-data';\r\nexport * from './timesheet-depot-data';\r\nexport * from './timesheet-item-data';\r\nexport * from './timesheet-site-data';\r\nexport * from './timesheet-depots-query';\r\nexport * from './customer-query';\r\nexport * from './customer-detail-query';\r\nexport * from './customer-statistics-query';\r\nexport * from './customer-site-data';\r\nexport * from './customer-web-app-data';\r\nexport * from './customer-detail-web-app-data';\r\nexport * from './customer-statistics-data';\r\nexport * from './handover-history-query';\r\nexport * from './handover-history-web-app-data';\r\nexport * from './handover-statistics-data';\r\nexport * from './item-data';\r\nexport * from './item-details-data';\r\nexport * from './item-details-query';\r\nexport * from './quote-query';\r\nexport * from './quote-data';\r\nexport * from './quote-scaffold-data';\r\nexport * from './task-data';\r\nexport * from './unassigned-scaffold-query';\r\nexport * from './defect-statistics-query';\r\nexport * from './defect-statistic-data';\r\nexport * from './media-base-data';\r\nexport * from './media-transcription-data';\r\nexport * from './scaffold-statistics-data';\r\nexport * from './scaffold-status-statistics-data';\r\nexport * from './handover-identified-risk-data';\r\nexport * from './handover-data';\r\nexport * from './handover-handover-settings-data';\r\nexport * from './handover-statistics-query';\r\nexport * from './handover-settings-query';\r\nexport * from './handover-summary-data';\r\nexport * from './handover-risk-summary-data';\r\nexport * from './inspection-data';\r\nexport * from './configuration-data';\r\nexport * from './defect-type-data';\r\nexport * from './design-type-data';\r\nexport * from './handover-risk-reason-data';\r\nexport * from './handover-risk-type-data';\r\nexport * from './inspection-outcome-data';\r\nexport * from './inspection-type-data';\r\nexport * from './inspection-type-group-data';\r\nexport * from './loading-limit-data';\r\nexport * from './lookup-data-base';\r\nexport * from './methods-of-cladding-data';\r\nexport * from './method-of-tying-data';\r\nexport * from './scaffold-status-data';\r\nexport * from './contract-contact-data';\r\nexport * from './contract-data';\r\nexport * from './customer-signature-data';\r\nexport * from './media-data';\r\nexport * from './customer-status-data';\r\nexport * from './handover-question-data';\r\nexport * from './contract-status-data';\r\nexport * from './scaffold-type-data';\r\nexport * from './site-status-data';\r\nexport * from './off-hire-data';\r\nexport * from './dash-board-inspection-data';\r\nexport * from './handover-scaffold-data';\r\nexport * from './diary-data';\r\nexport * from './diary-query';\r\nexport * from './scaffold-detail-query';\r\nexport * from './scaffold-statistics-query';\r\nexport * from './site-dash-board-scaffold-inspection-data';\r\nexport * from './query';\r\nexport * from './inspection-defect-data';\r\nexport * from './inspection-defect-summary-data';\r\nexport * from './inspection-defect-web-app-data';\r\nexport * from './inspection-follow-up-instruction-data';\r\nexport * from './inspection-follow-up-notify-data';\r\nexport * from './scaffold-data';\r\nexport * from './scaffold-web-app-data';\r\nexport * from './dismantle-data';\r\nexport * from './scaffold-inspection-data';\r\nexport * from './scaffold-inspection-summary-data';\r\nexport * from './scaffold-inspection-web-app-data';\r\nexport * from './scaffold-item-data';\r\nexport * from './scaffold-item-dimensions-data';\r\nexport * from './scaffold-tag-data';\r\nexport * from './unsafe-scaffold-report-data';\r\nexport * from './site-area-data';\r\nexport * from './site-data';\r\nexport * from './application-user-data';\r\nexport * from './customer-data';\r\nexport * from './site-query';\r\nexport * from './site-detail-query';\r\nexport * from './site-scaffold-query';\r\nexport * from './site-contract-inspection-status-query';\r\nexport * from './scaffold-inspection-query';\r\nexport * from './site-statistics-query';\r\nexport * from './site-scaffold-diary-query';\r\nexport * from './site-scaffold-diary-data';\r\nexport * from './site-web-app-data';\r\nexport * from './site-statistics-data';\r\nexport * from './site-tonnage';\r\nexport * from './staff-signature-data';\r\nexport * from './staff-data';\r\nexport * from './staff-details-query';\r\nexport * from './staff-query';\r\nexport * from './staff-statistics-query';\r\nexport * from './staff-site-data';\r\nexport * from './staff-statistics-data';\r\nexport * from './staff-details-web-app-data';\r\nexport * from './timesheet-staff-data';\r\nexport * from './timesheet-task-data';\r\nexport * from './dimension-data';\r\nexport * from './variation-data';\r\nexport * from './variation-instruction-data';\r\nexport * from './scaffold-timeline-data';\r\nexport * from './scaffold-timeline-query';\r\nexport * from './depot-data';\r\nexport * from './depot-query';\r\nexport * from './activities-data';\r\nexport * from './activities-query';\r\nexport * from './activity-detail-data';\r\nexport * from './activity-detail-query';\r\nexport * from './contract-activity-details';\r\nexport * from './diary-activity-details';\r\nexport * from './dismantle-activity-details';\r\nexport * from './handover-activity-details';\r\nexport * from './handover-identified-risk-activity-data';\r\nexport * from './inspection-activity-details';\r\nexport * from './offhire-activity-details';\r\nexport * from './scaffold-details';\r\nexport * from './site-details';\r\nexport * from './variation-activity-details';\r\nexport * from './variation-instruction-activity-data';\r\nexport * from './site-diary-activity-details';\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class IndividualPayrollReportInput {\r\n DepotId: string;\r\n FromDate: string;\r\n SiteIds: string[];\r\n StaffId: string;\r\n ToDate: string;\r\n}\r\n\r\n\r\n","import { ScaffoldDetails } from './scaffold-details';\r\nimport { SiteDetails } from './site-details';\r\nimport { ScaffoldInspectionWebAppData } from './scaffold-inspection-web-app-data';\r\nimport { InspectionFollowUpInstructionData } from './inspection-follow-up-instruction-data';\r\nimport { InspectionFollowUpNotifyData } from './inspection-follow-up-notify-data';\r\nimport { UnsafeScaffoldReportData } from './unsafe-scaffold-report-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionActivityDetails {\r\n ActivityId: string;\r\n ScaffoldDetails: ScaffoldDetails;\r\n SiteDetails: SiteDetails;\r\n ActivityDateTime: string;\r\n RelativeInspectionId: string;\r\n ScaffoldInspections: ScaffoldInspectionWebAppData;\r\n InspectionFollowUpInstructions: InspectionFollowUpInstructionData;\r\n InspectionFollowUpNotifys: InspectionFollowUpNotifyData;\r\n UnsafeScaffoldReports: UnsafeScaffoldReportData;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionApplicationPaymentReportData {\r\n ScaffoldNumber: string;\r\n ScaffoldDescription: string;\r\n QuoteNo: string;\r\n ItemNo: string;\r\n Area: string;\r\n OffHiredDate: string;\r\n StaffName: string;\r\n Comments: string;\r\n InspectionDate: string;\r\n InspectionResult: string;\r\n}\r\n\r\n\r\n","import { ScaffoldInspectionData } from './scaffold-inspection-data';\r\nimport { InspectionFollowUpInstructionData } from './inspection-follow-up-instruction-data';\r\nimport { InspectionFollowUpNotifyData } from './inspection-follow-up-notify-data';\r\nimport { UnsafeScaffoldReportData } from './unsafe-scaffold-report-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionData {\r\n ScaffoldDiaryId: string;\r\n ScaffoldId: string;\r\n ScaffoldInspections: ScaffoldInspectionData;\r\n InspectionFollowUpInstructions: InspectionFollowUpInstructionData;\r\n InspectionFollowUpNotifys: InspectionFollowUpNotifyData;\r\n UnsafeScaffoldReports: UnsafeScaffoldReportData;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","import { DefectStatusEnum } from '../../enum/defect-status.enum';\r\nimport { MediaData } from './media-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionDefectData {\r\n InspectionDefectId: string;\r\n Comments: string;\r\n DefectStatus: DefectStatusEnum;\r\n DefectTypeId: string;\r\n DefectTypeFurtherInformation: string;\r\n Media: { [key: string]: MediaData };\r\n}\r\n\r\n\r\n","import { DefectStatusEnum } from '../../enum/defect-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionDefectStatusTypeData {\r\n DefectStatusId: string;\r\n DefectStatus: DefectStatusEnum;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { DefectStatusEnum } from '../../enum/defect-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionDefectSummaryData {\r\n Comments: string;\r\n DefectStatus: DefectStatusEnum;\r\n DefectName: string;\r\n FurtherInformation: string;\r\n}\r\n\r\n\r\n","import { DefectStatusEnum } from '../../enum/defect-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionDefectWebAppData {\r\n InspectionDefectId: string;\r\n Comments: string;\r\n DefectStatus: DefectStatusEnum;\r\n DefectTypeId: string;\r\n DefectName: string;\r\n DefectTypeFurtherInformation: string;\r\n Media: string[];\r\n}\r\n\r\n\r\n","import { InspectionFollowUpWorkflowStatusEnum } from '../../enum/inspection-follow-up-workflow-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionFollowUpInstructionData {\r\n ScaffoldDiaryId: string;\r\n OwnerId: string;\r\n InspectionFollowUpWorkflowStatus: InspectionFollowUpWorkflowStatusEnum;\r\n RelatedInspectionId: string;\r\n Instructions: string;\r\n ToBeDoneBy: string;\r\n ActionToBeCarriedOutBy: string[];\r\n}\r\n\r\n\r\n","import { InspectionFollowUpWorkflowStatusEnum } from '../../enum/inspection-follow-up-workflow-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionFollowUpNotifyData {\r\n ScaffoldDiaryId: string;\r\n OwnerId: string;\r\n InspectionFollowUpWorkflowStatus: InspectionFollowUpWorkflowStatusEnum;\r\n RelatedInspectionId: string;\r\n InspectorsRecommendations: string;\r\n PeopleNotified: string[];\r\n GenerateUnsafeReport: boolean;\r\n}\r\n\r\n\r\n","import { DefectStatusEnum } from '../../enum/defect-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionOutcomeData {\r\n InspectionOutcomeId: string;\r\n AppliesToDefectStatus: DefectStatusEnum;\r\n IsSafe: boolean;\r\n RequireNotify: boolean;\r\n RequireInstruct: boolean;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionReportInput {\r\n DepotId: string;\r\n SiteId: string;\r\n ScaffoldIds: string[];\r\n InspectionTypes: string[];\r\n InspectionStatus: string[];\r\n SiteIds: string[];\r\n DateRangeFrom: string;\r\n DateRangeTo: string;\r\n CustomerId: string;\r\n}\r\n\r\n\r\n","import { InspectionStatusEnumEnum } from '../../enum/inspection-status-enum.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionStatusData {\r\n State: InspectionStatusEnumEnum;\r\n Reason: string;\r\n ResumeDate: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionTypeData {\r\n InspectionTypeId: string;\r\n AdvanceTheClockBy: string;\r\n ParentId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class InspectionTypeGroupData {\r\n InspectionTypeId: string;\r\n GroupName: string;\r\n}\r\n\r\n\r\n","import { ItemStatusEnum } from '../../enum/item-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ItemData {\r\n ContractId: string;\r\n QuoteId: string;\r\n QuoteNumber: string;\r\n ItemId: string;\r\n ActualHours: number;\r\n AllocatedHours: number;\r\n ItemName: string;\r\n ItemNumber: string;\r\n ItemStatus: ItemStatusEnum;\r\n Estimator: string;\r\n}\r\n\r\n\r\n","import { QuoteScaffoldData } from './quote-scaffold-data';\r\nimport { TaskData } from './task-data';\r\nimport { ItemStatusEnum } from '../../enum/item-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ItemDetailsData {\r\n Scaffolds: QuoteScaffoldData[];\r\n Tasks: TaskData[];\r\n ContractId: string;\r\n QuoteId: string;\r\n QuoteNumber: string;\r\n ItemId: string;\r\n ActualHours: number;\r\n AllocatedHours: number;\r\n ItemName: string;\r\n ItemNumber: string;\r\n ItemStatus: ItemStatusEnum;\r\n Estimator: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ItemDetailsQuery {\r\n ItemId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class LoadingLimitData {\r\n LoadingLimitId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class LookupDataBase {\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MediaBaseData {\r\n Title: string;\r\n Type: string;\r\n MediaReferenceId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MediaData {\r\n Path: string;\r\n MimeType: string;\r\n CheckSum: string;\r\n FileSize: number;\r\n Title: string;\r\n Type: string;\r\n MediaReferenceId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MediaTranscriptionData {\r\n Transcription: string;\r\n Title: string;\r\n Type: string;\r\n MediaReferenceId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MethodOfTyingData {\r\n MethodOfTyingId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MethodsOfCladdingData {\r\n MethodOfCladdingId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class MobileSettingsData {\r\n MobileVersion: string;\r\n ForceMobileUpdate: string;\r\n}\r\n\r\n\r\n","import { MediaData } from './media-data';\r\nimport { SiteDocumentStatusEnum } from '../../enum/site-document-status.enum';\r\nimport { StaffSignatureData } from './staff-signature-data';\r\nimport { CustomerSignatureData } from './customer-signature-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class OffHireData {\r\n OffHireId: string;\r\n OffHireType: number;\r\n Scaffolds: string[];\r\n SiteId: string;\r\n CustomerId: string;\r\n RequestedBy: string;\r\n RequestedOn: string;\r\n OffHireReference: string;\r\n OffHireComments: string;\r\n Media: { [key: string]: MediaData };\r\n When: string;\r\n Status: SiteDocumentStatusEnum;\r\n StaffSignature: StaffSignatureData;\r\n CustomerSignature: CustomerSignatureData;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","import { OffHireData } from './off-hire-data';\r\nimport { ScaffoldDetails } from './scaffold-details';\r\nimport { SiteDetails } from './site-details';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class OffhireActivityDetails {\r\n OffHireData: OffHireData;\r\n ActivityId: string;\r\n ScaffoldDetails: ScaffoldDetails;\r\n SiteDetails: SiteDetails;\r\n ActivityDateTime: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class PayrollReportInput {\r\n DepotId: string;\r\n FromDate: string;\r\n SiteIds: string[];\r\n StaffIds: string[];\r\n ToDate: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class Query {\r\n QueryData: string;\r\n QueryType: string;\r\n}\r\n\r\n\r\n","import { ItemData } from './item-data';\r\nimport { QuoteStatusEnum } from '../../enum/quote-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class QuoteData {\r\n QuoteId: string;\r\n ContractId: string;\r\n QuoteNumber: string;\r\n Items: ItemData[];\r\n QuoteStatus: QuoteStatusEnum;\r\n Estimator: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class QuoteQuery {\r\n ContractId: string;\r\n SiteId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class QuoteScaffoldData {\r\n ScaffoldId: string;\r\n Location: string;\r\n Description: string;\r\n ScaffoldNumber: string;\r\n AreaName: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class RateTypeData {\r\n RateTypeId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ReportInputGuidData {\r\n Id: string;\r\n Value: string;\r\n}\r\n\r\n\r\n","import { ReportInputGuidData } from './report-input-guid-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ReportInputGuidListData {\r\n Data: ReportInputGuidData[];\r\n IsAllSelected: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ReportSectionData {\r\n Description: string;\r\n ReportSectionId: string;\r\n Content: string;\r\n IsDisabled: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class RolesData {\r\n RoleName: string;\r\n RoleId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldApplicationPaymentReportData {\r\n ScaffoldNumber: string;\r\n ScaffoldName: string;\r\n ScaffoldDescription: string;\r\n QuoteNo: string;\r\n ItemNo: string;\r\n HandoverStatus: string;\r\n OnHireDate: string;\r\n HirePeriod: string;\r\n HirePeriodEndDate: string;\r\n OnHire: string;\r\n ExtraHire: string;\r\n OffHiredDate: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldCombinedData {\r\n SiteDepotId: string;\r\n SiteDepotName: string;\r\n CustomerId: string;\r\n CustomerName: string;\r\n ContractId: string;\r\n ContractName: string;\r\n ContractNumber: string;\r\n SiteId: string;\r\n SiteName: string;\r\n SiteNumber: string;\r\n ScaffoldId: string;\r\n ScaffoldName: string;\r\n ScaffoldStatus: string;\r\n ScaffoldingSystemName: string;\r\n ScaffoldingSystemId: string;\r\n SiteAddress: string;\r\n ScaffoldNumber: string;\r\n QuoteNumber: string;\r\n ItemNumber: string;\r\n ScaffoldingSystemNotSet: boolean;\r\n IsScaffoldSystemDeleted: boolean;\r\n HandedOverTonnage: number;\r\n AllocatedTonnage: number;\r\n MaximumTonnage: number;\r\n StandingTonnage: number;\r\n}\r\n\r\n\r\n","import { ScaffoldInspectionSummaryData } from './scaffold-inspection-summary-data';\r\nimport { ScaffoldTagData } from './scaffold-tag-data';\r\nimport { ScaffoldItemData } from './scaffold-item-data';\r\nimport { MediaData } from './media-data';\r\nimport { HandoverSummaryData } from './handover-summary-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldData {\r\n LastInspection: ScaffoldInspectionSummaryData;\r\n SiteId: string;\r\n ScaffoldId: string;\r\n ScaffoldNumber: string;\r\n SpecificLocationDetails: string;\r\n AdverseWeatherIndicator: boolean;\r\n ContractId: string;\r\n DateOfNextInspection: string;\r\n MostRecentInspectionIsHandover: boolean;\r\n ScaffoldStatusId: string;\r\n SiteAreaId: string;\r\n ScaffoldTags: { [key: string]: ScaffoldTagData };\r\n ScaffoldSpecification: ScaffoldItemData;\r\n ScaffoldImage: MediaData;\r\n OnHireDate: string;\r\n OffHireDate: string;\r\n HirePeriod: number;\r\n OpenInspectionId: string;\r\n LastHandover: HandoverSummaryData;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldDetailQuery {\r\n ScaffoldId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldDetails {\r\n ScaffoldName: string;\r\n SiteAreaName: string;\r\n Location: string;\r\n ScaffoldDescription: string;\r\n MaximumTonnage: number;\r\n StandingTonnage: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldDiaryEntryApplicationPaymentReportData {\r\n ScaffoldNumber: string;\r\n ScaffoldDescription: string;\r\n QuoteNo: string;\r\n ItemNo: string;\r\n Area: string;\r\n OffHiredDate: string;\r\n StaffName: string;\r\n Comments: string;\r\n DiaryEntryDate: string;\r\n DiaryCategory: string;\r\n AmountStanding: string;\r\n}\r\n\r\n\r\n","import { MediaData } from './media-data';\r\nimport { InspectionDefectData } from './inspection-defect-data';\r\nimport { InspectionWorkflowStatusEnum } from '../../enum/inspection-workflow-status.enum';\r\nimport { StaffSignatureData } from './staff-signature-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldInspectionData {\r\n ScaffoldDiaryId: string;\r\n OwnerId: string;\r\n Comments: string;\r\n Media: { [key: string]: MediaData };\r\n InspectionOutcomeId: string;\r\n InspectionTypeId: string;\r\n InspectionDefects: { [key: string]: InspectionDefectData };\r\n InspectionWorkflowStatus: InspectionWorkflowStatusEnum;\r\n When: string;\r\n InspectorsSignature: StaffSignatureData;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldInspectionQuery {\r\n CustomerId: string;\r\n DepotId: string;\r\n SiteId: string;\r\n AdminAssignedSitesOnly: boolean;\r\n}\r\n\r\n\r\n","import { InspectionDefectSummaryData } from './inspection-defect-summary-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldInspectionSummaryData {\r\n Comments: string;\r\n InspectionOutcomeId: string;\r\n InspectionTypeId: string;\r\n Defects: InspectionDefectSummaryData[];\r\n Inspector: string;\r\n When: string;\r\n}\r\n\r\n\r\n","import { InspectionDefectWebAppData } from './inspection-defect-web-app-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldInspectionWebAppData {\r\n Comments: string;\r\n DateOfInspection: string;\r\n Inspector: string;\r\n Media: string[];\r\n InspectionOutcomeId: string;\r\n InspectionTypeId: string;\r\n InspectionTypeFurtherInformation: string;\r\n InspectionDefects: InspectionDefectWebAppData[];\r\n}\r\n\r\n\r\n","import { ContractContactData } from './contract-contact-data';\r\nimport { ScaffoldItemDimensionsData } from './scaffold-item-dimensions-data';\r\nimport { ScaffoldItemStatusEnum } from '../../enum/scaffold-item-status.enum';\r\nimport { ScaffoldingSystemTypeData } from './scaffolding-system-type-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldItemData {\r\n MaximumTonnage: number;\r\n StandingTonnage: number;\r\n ScaffoldItemId: string;\r\n ScaffoldTypeId: string;\r\n ScaffoldTypeFurtherInformation: string;\r\n QuoteNumber: string;\r\n QuoteItemNumber: string;\r\n QuoteItemName: string;\r\n Description: string;\r\n SiteInstructionReference: string;\r\n SiteInstructionRecivedFrom: ContractContactData;\r\n ContractPrice: number;\r\n ExtraHireRate: number;\r\n HirePeriod: number;\r\n DesignTypeId: string;\r\n DesignTypeFurtherInformation: string;\r\n LoadingLimitId: string;\r\n LoadingLimitFurtherInformation: string;\r\n MethodOfTyingId: string;\r\n MethodOfTyingFurtherInformation: string;\r\n MethodOfCladdingId: string;\r\n MethodOfCladdingFurtherInformation: string;\r\n ScaffoldItemDimensions: ScaffoldItemDimensionsData;\r\n ScaffoldItemStatus: ScaffoldItemStatusEnum;\r\n ScaffoldingSystemId: string;\r\n ScaffoldingSystemData: ScaffoldingSystemTypeData;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldItemDimensionsData {\r\n Quantity: string;\r\n Length: string;\r\n Width: string;\r\n Height: string;\r\n HeightBand: string;\r\n TotalNumberOfLifts: string;\r\n NumberOfBoardedLifts: string;\r\n BaySize: string;\r\n NumberOfTies: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldReportInput {\r\n ScaffoldId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldSectionScaffoldData {\r\n ScaffoldId: string;\r\n ScaffoldName: string;\r\n ScaffoldStatus: string;\r\n ScaffoldingSystemId: string;\r\n ScaffoldingSystemName: string;\r\n ScaffoldNumber: string;\r\n QuoteNumber: string;\r\n ItemNumber: string;\r\n ScaffoldingSystemNotSet: boolean;\r\n MaximumTonnage: number;\r\n StandingTonnage: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldStatisticsData {\r\n TotalScaffolds: number;\r\n TotalScaffoldsOnHire: number;\r\n TotalScaffoldsInExtraHire: number;\r\n TotalScaffoldsOffHire: number;\r\n TotalScaffoldsIncomplete: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldStatisticsQuery {\r\n ContractId: string;\r\n CustomerId: string;\r\n DepotId: string;\r\n SiteId: string;\r\n AdminAssignedSitesOnly: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldStatusData {\r\n ScaffoldStatusId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldStatusStatisticsData {\r\n TotalSacffoldsOnHire: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldSystemData {\r\n ScaffoldingSystemId: string;\r\n ScaffoldingSystemName: string;\r\n TotalTonnage: number;\r\n HandedOverTonnage: number;\r\n AllocatedTonnage: number;\r\n IdleTonnage: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldTagData {\r\n ScaffoldTagId: string;\r\n TagContents: string;\r\n}\r\n\r\n\r\n","import { DiaryTypeEnum } from '../../enum/diary-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldTimelineData {\r\n ScaffoldDiaryId: string;\r\n OwnerName: string;\r\n When: string;\r\n Notes: string;\r\n DiaryType: DiaryTypeEnum;\r\n InspectionOutcomeId: string;\r\n InspectionTypeId: string;\r\n InspectionTypeFurtherInformation: string;\r\n AppliedWhen: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldTimelineQuery {\r\n ScaffoldId: string;\r\n}\r\n\r\n\r\n","import { HandoverQuestionData } from './handover-question-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldTypeData {\r\n ScaffoldTypeId: string;\r\n HandoverQuestions: { [key: string]: HandoverQuestionData };\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { ScaffoldInspectionWebAppData } from './scaffold-inspection-web-app-data';\r\nimport { DismantleData } from './dismantle-data';\r\nimport { ScaffoldTagData } from './scaffold-tag-data';\r\nimport { ScaffoldItemData } from './scaffold-item-data';\r\nimport { MediaData } from './media-data';\r\nimport { HandoverSummaryData } from './handover-summary-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldWebAppData {\r\n ScaffoldImageUrl: string;\r\n RecentInspectionStatus: string;\r\n IsDuplicate: boolean;\r\n AreaName: string;\r\n ScaffoldStatusName: string;\r\n CustomerName: string;\r\n QuoteNumber: string;\r\n ItemNumber: string;\r\n ScaffoldDescription: string;\r\n EndOfContractDate: string;\r\n CurrentExtraHire: number;\r\n LastInspection: ScaffoldInspectionWebAppData;\r\n WeeksOnHire: number;\r\n Dismantle: DismantleData;\r\n ItemId: string;\r\n QuoteId: string;\r\n ItemName: string;\r\n ScaffoldNumberWithDescription: string;\r\n SiteId: string;\r\n ScaffoldId: string;\r\n ScaffoldNumber: string;\r\n SpecificLocationDetails: string;\r\n AdverseWeatherIndicator: boolean;\r\n IsVariation?: boolean;\r\n ContractId: string;\r\n DateOfNextInspection: string;\r\n MostRecentInspectionIsHandover: boolean;\r\n ScaffoldStatusId: string;\r\n SiteAreaId: string;\r\n ScaffoldTags: { [key: string]: ScaffoldTagData };\r\n ScaffoldSpecification: ScaffoldItemData;\r\n ScaffoldImage: MediaData;\r\n OnHireDate: string;\r\n OffHireDate: string;\r\n HirePeriod: number;\r\n OpenInspectionId: string;\r\n LastHandover: HandoverSummaryData;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class ScaffoldingSystemTypeData {\r\n ScaffoldingSystemId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteAreaData {\r\n SiteId: string;\r\n SiteAreaId: string;\r\n AreaName: string;\r\n IsDefaultArea: boolean;\r\n NumberOfScaffolds: number;\r\n InspectionDueCount: number;\r\n Deleted: boolean;\r\n}\r\n\r\n\r\n","import { ScaffoldSystemData } from './scaffold-system-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteCombinedData {\r\n DepotId: string;\r\n DepotName: string;\r\n SiteId: string;\r\n SiteName: string;\r\n SiteAddress: string;\r\n SiteNumber: string;\r\n ScaffoldingSystems: ScaffoldSystemData[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteContractInspectionStatusQuery {\r\n SiteId: string;\r\n}\r\n\r\n\r\n","import { CustomerAndContractTonnageInformation } from './customer-and-contract-tonnage-information';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteCustomerAndContractTonnageInformation {\r\n SiteId: string;\r\n SiteName: string;\r\n SiteNumber: string;\r\n SiteAddress: string;\r\n Customers: CustomerAndContractTonnageInformation[];\r\n}\r\n\r\n\r\n","import { DashBoardInspectionData } from './dash-board-inspection-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteDashBoardScaffoldInspectionData {\r\n SiteId: string;\r\n SiteName: string;\r\n SiteReference: string;\r\n SiteStatusId: string;\r\n ScaffoldId: string;\r\n NextInspectionDate: string;\r\n CustomerId: string;\r\n CustomerName: string;\r\n ContractId: string;\r\n ContractStatusId: string;\r\n InspectionData: DashBoardInspectionData[];\r\n}\r\n\r\n\r\n","import { SiteAreaData } from './site-area-data';\r\nimport { MediaData } from './media-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteData {\r\n SiteId: string;\r\n Latitude: number;\r\n Longitude: number;\r\n SiteAddress: string;\r\n SiteAreas: { [key: string]: SiteAreaData };\r\n SiteName: string;\r\n SiteReference: string;\r\n SiteStatusId: string;\r\n Staff: string[];\r\n Contracts: string[];\r\n PrincipleContractId: string;\r\n SiteDepotId: string;\r\n SiteImage: MediaData;\r\n IsCameraAllowed: boolean;\r\n IsManageStockControl: boolean;\r\n TotalTonnage: number;\r\n InspectionDue: number;\r\n ScaffoldCount: number;\r\n AreaCount: number;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteDetailQuery {\r\n SiteId: string;\r\n SiteReference: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteDetails {\r\n CustomerName: string;\r\n SiteName: string;\r\n SiteAddress: string;\r\n ContractReference: string;\r\n IsManageStockControl: boolean;\r\n}\r\n\r\n\r\n","import { ScaffoldDetails } from './scaffold-details';\r\nimport { SiteDetails } from './site-details';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteDiaryActivityDetails {\r\n ActivityId: string;\r\n ScaffoldDetails: ScaffoldDetails;\r\n SiteDetails: SiteDetails;\r\n ActivityDateTime: string;\r\n SiteId: string;\r\n OwnerId: string;\r\n OwnerName: string;\r\n Notes: string;\r\n TranscriptionsCount: number;\r\n AudiosCount: number;\r\n ImagesCount: number;\r\n VideosCount: number;\r\n PDFCount: number;\r\n DiaryCategoryId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteDiaryEntryApplicationPaymentReportData {\r\n SiteNumber: string;\r\n SiteName: string;\r\n StaffName: string;\r\n Comments: string;\r\n DiaryEntryDate: string;\r\n DiaryCategory: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteQuery {\r\n SiteId: string;\r\n Latitude: number;\r\n Longitude: number;\r\n SiteAddress: string;\r\n SiteName: string;\r\n SiteReference: string;\r\n Status: string;\r\n}\r\n\r\n\r\n","import { DiaryDataTypeEnum } from '../../enum/diary-data-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteScaffoldDiaryData {\r\n DiaryId: string;\r\n Type: DiaryDataTypeEnum;\r\n Label: string;\r\n DiaryCategoryId: string;\r\n DiaryCategoryName: string;\r\n Notes: string;\r\n ImageCount: number;\r\n AudioCount: number;\r\n VideoCount: number;\r\n TranscriptionCount: number;\r\n PDFCount: number;\r\n OwnerId: string;\r\n OwnerName: string;\r\n When: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteScaffoldDiaryQuery {\r\n SiteId: string;\r\n SiteReference: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteScaffoldQuery {\r\n SiteId: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteStatisticsData {\r\n TotalSites: number;\r\n TotalDepots: number;\r\n AssignedSites: number;\r\n AssignedDepots: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteStatisticsQuery {\r\n CustomerId: string;\r\n DepotId: string;\r\n SiteId: string;\r\n AdminAssignedSitesOnly: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteStatusData {\r\n SiteStatusId: string;\r\n IsClosed: boolean;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { ScaffoldingSystemTypeData } from './scaffolding-system-type-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteTonnage {\r\n SiteTonnageId: string;\r\n SiteId: string;\r\n ScaffoldingSystemId: string;\r\n TotalTonnage: string;\r\n OnHireErectedTonnage: number;\r\n AllocatedTonnage: number;\r\n ScaffoldingSystemData: ScaffoldingSystemTypeData;\r\n}\r\n\r\n\r\n","import { SiteTonnage } from './site-tonnage';\r\nimport { SiteAreaData } from './site-area-data';\r\nimport { StaffData } from './staff-data';\r\nimport { ContractData } from './contract-data';\r\nimport { ScaffoldWebAppData } from './scaffold-web-app-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class SiteWebAppData {\r\n Tonnages: SiteTonnage[];\r\n SiteId: string;\r\n Latitude: number;\r\n Longitude: number;\r\n SiteAddress: string;\r\n SiteName: string;\r\n SiteReference: string;\r\n SiteStatusId: string;\r\n NumberOfOpenContracts: number;\r\n NumberOfActiveCustomerContacts: number;\r\n HasScaffolds: boolean;\r\n NumberOfNonDismantledScaffolds: number;\r\n FirstContractReference: string;\r\n SiteAreas: { [key: string]: SiteAreaData };\r\n Staff: StaffData[];\r\n Customers: string[];\r\n Contracts: ContractData[];\r\n Scaffolds: ScaffoldWebAppData[];\r\n SiteDepotId: string;\r\n SiteImageUrl: string;\r\n SiteDepotName: string;\r\n IsCameraAllowed: boolean;\r\n IsManageStockControl: boolean;\r\n}\r\n\r\n\r\n","import { ApplicationUserData } from './application-user-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffData {\r\n StaffId: string;\r\n ContactName: string;\r\n EmailAddress: string;\r\n Sites: string[];\r\n SiteDepotIds: string[];\r\n PhoneNumber: string;\r\n UserAccount: ApplicationUserData;\r\n UserCode: string;\r\n RoleId: string[];\r\n Roles: string[];\r\n Claims: string[];\r\n CanEstimate: boolean;\r\n QuickId: string;\r\n EulaAgreedVersion: string;\r\n Deleted: boolean;\r\n LastModified: string;\r\n CompanyPosition: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffDetailsQuery {\r\n StaffId: string;\r\n}\r\n\r\n\r\n","import { StaffSiteData } from './staff-site-data';\r\nimport { ApplicationUserData } from './application-user-data';\r\nimport { StaffRateTypeData } from './staff-rate-type-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffDetailsWebAppData {\r\n StaffId: string;\r\n ContactName: string;\r\n EmailAddress: string;\r\n Sites: StaffSiteData[];\r\n SiteDepotIds: string[];\r\n RoleId: string;\r\n PhoneNumber: string;\r\n UserAccount: ApplicationUserData;\r\n UserCode: string;\r\n Claims: string[];\r\n Roles: string[];\r\n EulaAgreedVersion: string;\r\n CanEstimate: boolean;\r\n QuickId: string;\r\n RateTypes: StaffRateTypeData[];\r\n Deleted: boolean;\r\n LastModified: string;\r\n CompanyPosition: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffQuery {\r\n StaffId: string;\r\n ContactName: string;\r\n EmailAddress: string;\r\n PhoneNumber: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffRateData {\r\n StaffRateId: string;\r\n HourlyRate: number;\r\n EffectiveFrom: string;\r\n EffectiveUntil: string;\r\n RateTypeId: string;\r\n}\r\n\r\n\r\n","import { StaffRateData } from './staff-rate-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffRateTypeData {\r\n RateTypeId: string;\r\n RateTypeTitle: string;\r\n RateTypeOrder: number;\r\n CurrentRate: StaffRateData;\r\n NextRate: StaffRateData;\r\n RateHistory: StaffRateData[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffSignatureData {\r\n StaffId: string;\r\n Data: number[][];\r\n When: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffSiteData {\r\n SiteId: string;\r\n SiteReference: string;\r\n SiteName: string;\r\n SiteImageUrl: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffStatisticsData {\r\n TotalStaff: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StaffStatisticsQuery {\r\n CustomerId: string;\r\n DepotId: string;\r\n SiteId: string;\r\n AdminAssignedSitesOnly: boolean;\r\n}\r\n\r\n\r\n","import { DepotSiteCustomerAndContractTonnageInformation } from './depot-site-customer-and-contract-tonnage-information';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StockReportCustomerAndContractSection {\r\n IsEmpty: boolean;\r\n Heading: string;\r\n Depots: DepotSiteCustomerAndContractTonnageInformation[];\r\n}\r\n\r\n\r\n","import { DepotCombinedData } from './depot-combined-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StockReportDepotAndSiteSection {\r\n IsEmpty: boolean;\r\n Heading: string;\r\n Depots: DepotCombinedData[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StockReportFilterSection {\r\n ScaffoldStatusFilter: string;\r\n DepotFilter: string;\r\n SiteFilter: string;\r\n CustomerFilter: string;\r\n ContractFilter: string;\r\n ScaffoldFilter: string;\r\n ShowDepotAndSiteStats: boolean;\r\n ShowCustomerAndContractStats: boolean;\r\n ShowScaffoldStats: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StockReportInput {\r\n ScaffoldStatuses: string[];\r\n DepotIds: string[];\r\n SiteIds: string[];\r\n CustomerIds: string[];\r\n ContractIds: string[];\r\n ScaffoldIds: string[];\r\n ShowDepotAndSiteStats: boolean;\r\n ShowCustomerAndContractStats: boolean;\r\n ShowScaffoldStats: boolean;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StockReportRecordForCSV {\r\n Depot: string;\r\n Site: string;\r\n Customer: string;\r\n Contract: string;\r\n Scaffold: string;\r\n ScaffoldingSystem: string;\r\n QuoteNumber: string;\r\n ItemNumber: string;\r\n SiteTotalTonnage: string;\r\n SiteHandedOverTonnage: string;\r\n SiteAllocatedTonnage: string;\r\n SiteIdleTonnage: string;\r\n ContractMaximumTonnage: string;\r\n ContractStandingTonnage: string;\r\n ScaffoldHandoverStatus: string;\r\n ScaffoldMaximumTonnage: string;\r\n ScaffoldStandingTonnage: string;\r\n}\r\n\r\n\r\n","import { StockReportScaffoldSubsection } from './stock-report-scaffold-subsection';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StockReportScaffoldSection {\r\n IsEmpty: boolean;\r\n Heading: string;\r\n Subsections: StockReportScaffoldSubsection[];\r\n}\r\n\r\n\r\n","import { ScaffoldSectionScaffoldData } from './scaffold-section-scaffold-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StockReportScaffoldSubsection {\r\n IsEmpty: boolean;\r\n DepotId: string;\r\n DepotName: string;\r\n SiteId: string;\r\n SiteName: string;\r\n SiteNumber: string;\r\n SiteAddress: string;\r\n CustomerId: string;\r\n CustomerName: string;\r\n ContractId: string;\r\n ContractName: string;\r\n ContractNumber: string;\r\n Scaffolds: ScaffoldSectionScaffoldData[];\r\n}\r\n\r\n\r\n","import { StockReportFilterSection } from './stock-report-filter-section';\r\nimport { StockReportDepotAndSiteSection } from './stock-report-depot-and-site-section';\r\nimport { StockReportCustomerAndContractSection } from './stock-report-customer-and-contract-section';\r\nimport { StockReportScaffoldSection } from './stock-report-scaffold-section';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class StockReport {\r\n DateAndTimeOfReport: string;\r\n ProgramName: string;\r\n ProgramVersion: string;\r\n FilterSection: StockReportFilterSection;\r\n DepotAndSiteSection: StockReportDepotAndSiteSection;\r\n CustomerAndContractSection: StockReportCustomerAndContractSection;\r\n ScaffoldSection: StockReportScaffoldSection;\r\n}\r\n\r\n\r\n","import { TaskStatusEnum } from '../../enum/task-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TaskData {\r\n AllocatedHours: number;\r\n ActualHours: number;\r\n PercentageComplete: number;\r\n TaskId: string;\r\n TaskTypeId: string;\r\n TaskStatus: TaskStatusEnum;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TaskTypeData {\r\n TaskTypeId: string;\r\n GroupTitle: string;\r\n Code: string;\r\n Title: string;\r\n Subtitle: string;\r\n ReportText: string;\r\n RequireFurtherInformation: boolean;\r\n SortOrder: number;\r\n IconName: string;\r\n ReplacedWithId: string;\r\n Deleted: boolean;\r\n IsDefault: boolean;\r\n}\r\n\r\n\r\n","import { TimeEntryHoursData } from './time-entry-hours-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimeEntryData {\r\n TimeEntryId: string;\r\n Date: string;\r\n HoursByRate: TimeEntryHoursData[];\r\n Cost: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimeEntryExpenseData {\r\n ExpenseTypeId: string;\r\n Cost: number;\r\n Title: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimeEntryHoursData {\r\n HoursId: string;\r\n RateTypeId: string;\r\n RateTypeTitle: string;\r\n StaffRateId: string;\r\n HourlyRate: number;\r\n Quantity: number;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimeEntryRateData {\r\n RateTypeId: string;\r\n StaffRateId: string;\r\n Title: string;\r\n HourlyRate: number;\r\n}\r\n\r\n\r\n","import { TimeEntryExpenseData } from './time-entry-expense-data';\r\nimport { TimeEntryRateData } from './time-entry-rate-data';\r\nimport { TimeEntryData } from './time-entry-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimeEntryStaffData {\r\n StaffId: string;\r\n ContactName: string;\r\n Deleted: boolean;\r\n Expenses: TimeEntryExpenseData[];\r\n Rates: TimeEntryRateData[];\r\n TimeEntries: TimeEntryData[];\r\n}\r\n\r\n\r\n","import { TaskStatusEnum } from '../../enum/task-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimeEntryTaskData {\r\n TaskId: string;\r\n PercentageComplete: number;\r\n AllocatedHours: number;\r\n AllocatedCost: number;\r\n SubmittedHours: number;\r\n SubmittedCost: number;\r\n TaskStatus: TaskStatusEnum;\r\n}\r\n\r\n\r\n","import { TimesheetItemData } from './timesheet-item-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimesheetContractData {\r\n ContractId: string;\r\n ContractName: string;\r\n ContractNumber: string;\r\n CustomerName: string;\r\n ContractStatusId: string;\r\n Items: TimesheetItemData[];\r\n}\r\n\r\n\r\n","import { TimeEntryTaskData } from './time-entry-task-data';\r\nimport { TimesheetPeriodData } from './timesheet-period-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimesheetData {\r\n TimesheetId: string;\r\n ContractId: string;\r\n ItemId: string;\r\n Task: TimeEntryTaskData;\r\n TimesheetPeriods: TimesheetPeriodData[];\r\n}\r\n\r\n\r\n","import { TimesheetSiteData } from './timesheet-site-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimesheetDepotData {\r\n SiteDepotId: string;\r\n DepotName: string;\r\n Deleted: boolean;\r\n Sites: TimesheetSiteData[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimesheetDepotsQuery {\r\n}\r\n\r\n\r\n","import { ItemStatusEnum } from '../../enum/item-status.enum';\r\nimport { TimesheetTaskData } from './timesheet-task-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimesheetItemData {\r\n ItemId: string;\r\n ItemName: string;\r\n ItemNumber: string;\r\n QuoteNumber: string;\r\n ItemStatus: ItemStatusEnum;\r\n Tasks: TimesheetTaskData[];\r\n}\r\n\r\n\r\n","import { TimesheetPeriodStatusEnum } from '../../enum/timesheet-period-status.enum';\r\nimport { TimeEntryStaffData } from './time-entry-staff-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimesheetPeriodData {\r\n TimesheetPeriodId: string;\r\n PercentageComplete: number;\r\n StartDate: string;\r\n Status: TimesheetPeriodStatusEnum;\r\n PreviousPercentageComplete: number;\r\n PreviousHoursSubmitted: number;\r\n PreviousCostSubmitted: number;\r\n Staffs: TimeEntryStaffData[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimesheetQuery {\r\n TaskId: string;\r\n FromDate: string;\r\n ToDate: string;\r\n}\r\n\r\n\r\n","import { TimesheetContractData } from './timesheet-contract-data';\r\nimport { TimesheetStaffData } from './timesheet-staff-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimesheetSiteData {\r\n SiteId: string;\r\n SiteName: string;\r\n SiteStatusId: string;\r\n Contracts: TimesheetContractData[];\r\n Staffs: TimesheetStaffData[];\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimesheetStaffData {\r\n UserCode: string;\r\n RoleId: string[];\r\n Roles: string[];\r\n StaffId: string;\r\n ContactName: string;\r\n IsInactive: boolean;\r\n Deleted: boolean;\r\n}\r\n\r\n\r\n","import { TaskStatusEnum } from '../../enum/task-status.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class TimesheetTaskData {\r\n TaskId: string;\r\n TaskName: string;\r\n TaskTypeId: string;\r\n TaskStatus: TaskStatusEnum;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class UnassignedScaffoldQuery {\r\n ContractId: string;\r\n}\r\n\r\n\r\n","import { InspectionFollowUpWorkflowStatusEnum } from '../../enum/inspection-follow-up-workflow-status.enum';\r\nimport { StaffSignatureData } from './staff-signature-data';\r\nimport { CustomerSignatureData } from './customer-signature-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class UnsafeScaffoldReportData {\r\n ScaffoldDiaryId: string;\r\n OwnerId: string;\r\n InspectionFollowUpWorkflowStatus: InspectionFollowUpWorkflowStatusEnum;\r\n RelatedInspectionId: string;\r\n SiteManager: string;\r\n SiteManagerRecommendations: string;\r\n PeopleNotified: string[];\r\n StaffNotified: string[];\r\n InspectorsSignature: StaffSignatureData;\r\n SiteManagersSignature: StaffSignatureData;\r\n CustomerSignature: CustomerSignatureData;\r\n}\r\n\r\n\r\n","import { HandoverHandoverSettingsData } from './handover-handover-settings-data';\r\nimport { ScaffoldDetails } from './scaffold-details';\r\nimport { SiteDetails } from './site-details';\r\nimport { DimensionData } from './dimension-data';\r\nimport { VariationInstructionActivityData } from './variation-instruction-activity-data';\r\nimport { HandoverScaffoldData } from './handover-scaffold-data';\r\nimport { HandoverIdentifiedRiskActivityData } from './handover-identified-risk-activity-data';\r\nimport { StaffSignatureData } from './staff-signature-data';\r\nimport { CustomerSignatureData } from './customer-signature-data';\r\nimport { SiteDocumentStatusEnum } from '../../enum/site-document-status.enum';\r\nimport { CustomerAttachmentData } from './customer-attachment-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class VariationActivityDetails {\r\n HandoverHandoverSettingsData: HandoverHandoverSettingsData[];\r\n ActivityId: string;\r\n ScaffoldDetails: ScaffoldDetails;\r\n SiteDetails: SiteDetails;\r\n ActivityDateTime: string;\r\n VariationId: string;\r\n VariationType: number;\r\n IsScheduleRatesAgreed: boolean;\r\n Dimensions: DimensionData[];\r\n VariationInstruction: VariationInstructionActivityData;\r\n HandoverId: string;\r\n NextInspectionDate: string;\r\n RisksIdentified: boolean;\r\n Scaffolds: HandoverScaffoldData[];\r\n HandoverComments: string;\r\n HirePeriod: number;\r\n IdentifiedRiskDetails: string;\r\n Media: string[];\r\n IdentifiedRisks: HandoverIdentifiedRiskActivityData[];\r\n HandoverQuestionsAsked: string[];\r\n HandoverReference: string;\r\n StaffSignature: StaffSignatureData;\r\n CustomerSignature: CustomerSignatureData;\r\n When: string;\r\n Status: SiteDocumentStatusEnum;\r\n SiteId: string;\r\n CustomerId: string;\r\n CustomerAttachment: CustomerAttachmentData[];\r\n}\r\n\r\n\r\n","import { DimensionApplicationPaymentReportData } from './dimension-application-payment-report-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class VariationApplicationPaymentReportData {\r\n ScaffoldNumber: string;\r\n ScaffoldDescription: string;\r\n QuoteNo: string;\r\n ItemNo: string;\r\n OffHiredDate: string;\r\n StaffName: string;\r\n Comments: string;\r\n ContractPrice: string;\r\n ExtraHireRate: string;\r\n SiteInstructionReference: string;\r\n SiteInstructionBy: string;\r\n Dimensions: DimensionApplicationPaymentReportData[];\r\n}\r\n\r\n\r\n","import { HandoverScaffoldData } from './handover-scaffold-data';\r\nimport { MediaData } from './media-data';\r\nimport { HandoverIdentifiedRiskData } from './handover-identified-risk-data';\r\nimport { SiteDocumentStatusEnum } from '../../enum/site-document-status.enum';\r\nimport { StaffSignatureData } from './staff-signature-data';\r\nimport { CustomerSignatureData } from './customer-signature-data';\r\nimport { DimensionData } from './dimension-data';\r\nimport { VariationInstructionData } from './variation-instruction-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class VariationData {\r\n VariationId: string;\r\n NextInspectionDate: string;\r\n HandoverId: string;\r\n VariationType: number;\r\n RisksIdentified: boolean;\r\n HandOverType: number;\r\n Scaffolds: HandoverScaffoldData[];\r\n VariationComments: string;\r\n IdentifiedRiskDetails: string;\r\n Media: { [key: string]: MediaData };\r\n IdentifiedRisks: { [key: string]: HandoverIdentifiedRiskData };\r\n HandoverQuestionsAsked: string[];\r\n When: string;\r\n DocumentReference: string;\r\n Status: SiteDocumentStatusEnum;\r\n SiteId: string;\r\n CustomerId: string;\r\n StaffSignature: StaffSignatureData;\r\n CustomerSignature: CustomerSignatureData;\r\n Dimensions: { [key: string]: DimensionData };\r\n VariationInstruction: VariationInstructionData;\r\n Deleted: boolean;\r\n LastModified: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class VariationInstructionActivityData {\r\n EstimatorId: string;\r\n SubmittedForPricing: boolean;\r\n ContractPrice: number;\r\n ExtraHireRate: number;\r\n HirePeriod: number;\r\n VariationInstructionId: string;\r\n SiteInstructionReference: string;\r\n SiteInstructionReceivedFromId: string;\r\n Notes: string;\r\n Media: string[];\r\n}\r\n\r\n\r\n","import { MediaData } from './media-data';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class VariationInstructionData {\r\n EstimatorId: string;\r\n SubmittedForPricing: boolean;\r\n ContractPrice: number;\r\n ExtraHireRate: number;\r\n HirePeriod: number;\r\n VariationInstructionId: string;\r\n SiteInstructionReference: string;\r\n SiteInstructionReceivedFromId: string;\r\n Notes: string;\r\n Media: { [key: string]: MediaData };\r\n}\r\n\r\n\r\n","import { VariationTypeEnum } from '../../enum/variation-type.enum';\r\n\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class VariationReportInput {\r\n SiteId: string;\r\n ScaffoldIds: string[];\r\n VariationType: VariationTypeEnum;\r\n IsEstimation: boolean;\r\n DateRangeFrom: string;\r\n DateRangeTo: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class WebCommand {\r\n CommandData: string;\r\n CommandType: string;\r\n}\r\n\r\n\r\n","\r\n/* Copyright CADS\r\n *\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in\r\n * any form or by any means, electronic, mechanical or otherwise, is prohibited\r\n * without the prior written consent of the copyright owner.\r\n *\r\n * THIS FILE IS AUTO GENERATED DO NOT EDIT IT MANULLY\r\n *\r\n */\r\n\r\nexport class WebImport {\r\n ImportData: string;\r\n}\r\n\r\n\r\n","import { InjectionToken } from '@angular/core';\r\nimport { HubApiModuleSettings } from './hub-api-module-settings';\r\n\r\nexport let HUB_API_SETTINGS_TOKEN = new InjectionToken('hubApiSettings');\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { UserIdentityService } from '../authentication/services/user-identity.service';\r\nimport { HUB_API_SETTINGS_TOKEN } from './hub-api-settings-token';\r\nimport { HubApiModuleSettings } from './hub-api-module-settings';\r\n\r\n// Service exposing functions to retrieve the current Hub API settings.\r\n@Injectable()\r\nexport class HubApiSettingsService {\r\n\r\n constructor(private userIdentityService: UserIdentityService,\r\n @Inject(HUB_API_SETTINGS_TOKEN) private settings: HubApiModuleSettings) { }\r\n\r\n getApiServiceBaseUrl = () => this.settings.apiServiceBaseUri;\r\n\r\n getAccessToken = () => this.userIdentityService.getAccessToken();\r\n}\r\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { HubApiGeneratedModule } from './generated/hub-api-generated.module';\r\nimport { HUB_API_SETTINGS_TOKEN } from './hub-api-settings-token';\r\nimport { throwIfAlreadyLoaded } from '../utility/functions/module-import-guard';\r\nimport { HubApiSettingsService } from './hub-api-settings.service';\r\nimport { HubApiModuleSettings } from './hub-api-module-settings';\r\n\r\n// Module for communicating with Hub API endpoints.\r\n// THIS MODULE SHOULD ONLY BE IMPORTED ONCE PER APPLICATION AS IT CONTAINS APPLICATION WIDE SINGLETONS.\r\n@NgModule({\r\n exports: [HubApiGeneratedModule]\r\n})\r\nexport class HubApiModule {\r\n constructor(@Optional() @SkipSelf() parentModule: HubApiModule) {\r\n throwIfAlreadyLoaded(parentModule, 'HubApiModule');\r\n }\r\n\r\n static forRoot(settingsFactory: () => HubApiModuleSettings): ModuleWithProviders {\r\n return {\r\n ngModule: HubApiModule,\r\n providers: [\r\n HubApiSettingsService,\r\n { provide: HUB_API_SETTINGS_TOKEN, useFactory: settingsFactory },\r\n ],\r\n };\r\n }\r\n\r\n}\r\n","export * from './generated';\r\nexport * from './hub-api.module';\r\nexport * from './hub-api-settings.service';\r\nexport * from './hub-api-settings-token';\r\n","import { errorMessages } from \"../../shared/values/error-messages\";\r\nimport {\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpErrorResponse,\r\n} from \"@angular/common/http\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { catchError, tap } from \"rxjs/operators\";\r\nimport { HubApiError } from \"../hub-api/hub-api-error\";\r\n\r\n// Catches errors from the server and replaces them with error messages to be shown in the UI.\r\nexport class HttpErrorResponseInterceptor implements HttpInterceptor {\r\n intercept(\r\n request: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n return next.handle(request).pipe(\r\n catchError((response: any) => {\r\n if (response instanceof HttpErrorResponse) {\r\n if (response.status === 400) {\r\n const leadingTrailingWhiteSpaceRegex = /^\\s+|\\s+$/g;\r\n\r\n if (response.error && typeof response.error === 'string') {\r\n try {\r\n const jsonResult = JSON.parse(response.error);\r\n if (jsonResult.Message) {\r\n let possibleApiError = JSON.parse(jsonResult.Message);\r\n if (this.isHubApiError(possibleApiError)) {\r\n const errorMessage = possibleApiError.Message.replace(leadingTrailingWhiteSpaceRegex, \"\");\r\n response = new HttpErrorResponse({\r\n error: errorMessage,\r\n status: response.status,\r\n statusText: response.statusText,\r\n url: response.url || undefined,\r\n });\r\n } \r\n }\r\n } catch (e) {\r\n console.error('Error parsing response:', e);\r\n }\r\n } else if (response.error.Message && response.error.Message.split(\":\")[1]) {\r\n // show a customer friendly error message if we can\r\n const validationCode = response.error.Message.split(\":\")[1].replace(leadingTrailingWhiteSpaceRegex, \"\");\r\n if (errorMessages[validationCode]) {\r\n response.error.Message = errorMessages[validationCode];\r\n } else if (validationCode.includes(\", position\")) { //check for stack trace\r\n console.error(validationCode);\r\n response.error.Message = \"\";\r\n }\r\n }\r\n // Handle other cases as before\r\n }\r\n }\r\n // Return the modified error response\r\n return throwError(() => response);\r\n })\r\n );\r\n }\r\n \r\n // checks if the object is looks like a HubApiError\r\n // we cannot use instanceof because the object was parsed from json\r\n isHubApiError(obj: any): obj is HubApiError {\r\n return (\r\n typeof obj === 'object' &&\r\n obj !== null &&\r\n 'ErrorCode' in obj &&\r\n 'Message' in obj\r\n );\r\n }\r\n}\r\n","/**\r\n * An object used to get page information from the server\r\n */\r\nexport class Page {\r\n // The number of elements in the page\r\n size: number = 0;\r\n // The total number of elements\r\n totalElements: number = 0;\r\n // The total number of pages\r\n totalPages: number = 0;\r\n // The current page number\r\n pageNumber: number = 0;\r\n }","import { Page } from './page';\r\n\r\n/**\r\n * An array of data with an associated page object used for paging\r\n */\r\nexport class PagedData {\r\n data = new Array();\r\n page = new Page();\r\n}","import { ConfigurationQueryService } from '../services/configuration-query.service';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { ConfigurationData, ConfigurationEndpointService, ConfigurationQuery } from 'app/core/hub-api';\r\n\r\n@Injectable()\r\nexport class ConfigurationResolver implements Resolve {\r\n\r\n constructor(private configurationQueryService: ConfigurationQueryService) { }\r\n\r\n resolve(): Observable {\r\n return this.configurationQueryService.configurationQuery(true);\r\n }\r\n\r\n}\r\n","import { CustomersQueryService } from '../services/customers-query.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { CustomerEndpointService, CustomerQuery, CustomerWebAppData } from 'app/core/hub-api';\r\n\r\n@Injectable()\r\nexport class CustomersResolver implements Resolve {\r\n\r\n constructor(private customersQueryService: CustomersQueryService) { }\r\n\r\n resolve(): Observable {\r\n return this.customersQueryService.customersQuery(true);\r\n }\r\n}\r\n","import { DepotsQueryService } from '../services/depots-query.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { DepotData, DepotQuery } from 'app/core/hub-api';\r\n\r\n@Injectable()\r\nexport class DepotsResolver implements Resolve {\r\n\r\n constructor(private depotsQueryService: DepotsQueryService) { }\r\n\r\n resolve(): Observable {\r\n return this.depotsQueryService.depotsQuery(false);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { HandoverStatisticsData } from 'app/core/hub-api';\r\n\r\nimport { DashboardQueryService } from '../services/dashboard-query.service';\r\n\r\n@Injectable()\r\nexport class HandoverStatisticsResolver implements Resolve {\r\n\r\n constructor(private dashboardQueryService: DashboardQueryService) { }\r\n\r\n resolve(): Observable {\r\n return this.dashboardQueryService.getHandoverData();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { StaffDetailsWebAppData } from 'app/core/hub-api';\r\n\r\nimport { LoggedInStaffService } from '../services/logged-in-staff-service';\r\n\r\n// Resolve the data for the currently logged in staff member.\r\n@Injectable()\r\nexport class LoggedInStaffResolver implements Resolve {\r\n\r\n constructor(private loggedInStaffService: LoggedInStaffService) { }\r\n\r\n resolve(): Observable {\r\n return this.loggedInStaffService.loggedInStaffQuery(true);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { ConfigurationData, SiteDashBoardScaffoldInspectionData } from 'app/core/hub-api';\r\n\r\nimport { DashboardQueryService } from '../services/dashboard-query.service';\r\n\r\n@Injectable()\r\nexport class ScaffoldInspectionResolver implements Resolve {\r\n\r\n constructor(private dashboardQueryService: DashboardQueryService) { }\r\n\r\n resolve(): Observable {\r\n return this.dashboardQueryService.getInspectionData();\r\n }\r\n}\r\n","import { SitesQueryService } from '../services/sites-query.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { SiteEndpointService, SiteQuery, SiteWebAppData } from 'app/core/hub-api';\r\n\r\n@Injectable()\r\nexport class SitesResolver implements Resolve {\r\n\r\n constructor(private sitesQueryService: SitesQueryService) { }\r\n\r\n resolve(): Observable {\r\n return this.sitesQueryService.sitesQuery(false);\r\n }\r\n}\r\n","import { StaffsQueryService } from '../services/staffs-query.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { StaffData } from 'app/core/hub-api';\r\n\r\n// Resolves all staffs, exluding the CADS admin staff.\r\n@Injectable()\r\nexport class StaffsResolver implements Resolve {\r\n\r\n constructor(private staffsQueryService: StaffsQueryService) { }\r\n\r\n resolve(): Observable {\r\n return this.staffsQueryService.staffsQuery(false);\r\n }\r\n}\r\n","\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ApplicationSettingsData, ConfigurationEndpointService } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class ApplicationSettingsQueryService extends QueryService {\r\n\r\n // This is just the key we will use to look up our single value, we could use anything.\r\n private key = 'appSettings';\r\n\r\n constructor(private configurationEndpointService: ConfigurationEndpointService) { super(); }\r\n\r\n applicationSettingsQuery(useCached: boolean): Observable {\r\n return super.query(useCached, this.key);\r\n }\r\n\r\n applicationSettingsDataChanges(): Observable {\r\n return super.cachedDataChanges(this.key);\r\n }\r\n\r\n protected getDataFromServer(key: string): Observable {\r\n return this.configurationEndpointService.ApplicationSettings();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ArrayHelperService {\r\n\r\n constructor() { }\r\n\r\n // Move an item in an array from one index to another, returning a new array.\r\n move(array: T[], oldIndex, newIndex): T[] {\r\n if (oldIndex >= 0 && oldIndex < array.length && newIndex >= 0 && newIndex < array.length) {\r\n const newDefectTypes = array.slice();\r\n newDefectTypes.splice(oldIndex, 1);\r\n newDefectTypes.splice(newIndex, 0, array[oldIndex]);\r\n return newDefectTypes;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n@Injectable()\r\nexport class AutoGenerateQuickIdService {\r\n\r\n private allStaff: any;\r\n\r\n /**\r\n * Return the quickId with respect to different pattern\r\n * e.g. - staff name is John Samuel\r\n * pattern 01 : return staffinitial(JS)\r\n * pattern 02 : return single digit numer with staffInitial (JS1-JS9)\r\n * pattern 03 : return single letter with staffInitial (JSA-JSZ)\r\n * pattern 04 : return three digit numer(111-999)\r\n * pattern 05 : return three letter alphabet(AAA-ZZZ)\r\n * pattern 06 : return empty string\r\n */\r\n getQuickId(staffInitial, allStaff): string {\r\n\r\n this.allStaff = allStaff;\r\n let _quickId = this.tryDefaultStaffInitial(staffInitial);\r\n\r\n if (_quickId) { return _quickId; }\r\n _quickId = this.tryAddSingleDigitNumber(staffInitial);\r\n\r\n if (_quickId) { return _quickId; }\r\n _quickId = this.tryAddSingleLetterAlphabet(staffInitial);\r\n\r\n if (_quickId) { return _quickId; }\r\n _quickId = this.tryAddThreeDigitNumber();\r\n\r\n if (_quickId) { return _quickId; }\r\n _quickId = this.tryAddThreeLetterAlphabet();\r\n return _quickId ? _quickId : '';\r\n\r\n }\r\n\r\n /**\r\n * Return staffQuickId if not eixst in staff table\r\n * e.g.- staffname is John Samuel and check 'JS' is exist in staff table\r\n */\r\n private isStaffQuickIdExist(quickId: string): boolean {\r\n return this.allStaff.find(i => i.QuickId === quickId) ? true : false;\r\n }\r\n\r\n /**\r\n * pattern 01 : Return staff default initial if not exist in staff table\r\n * e.g.- if staffname is John Samuel then default initial should be JS\r\n */\r\n private tryDefaultStaffInitial(staffInitials: string): string {\r\n return !this.isStaffQuickIdExist(staffInitials) ? staffInitials : null;\r\n }\r\n\r\n /**\r\n * pattern 02 : Return staffinitial with number\r\n * e.g.- JS1-JS9\r\n */\r\n private tryAddSingleDigitNumber(staffInitials: string, suffix: number = 1): string {\r\n if (suffix > 9) return null;\r\n const _quickId = staffInitials + suffix;\r\n return this.isStaffQuickIdExist(_quickId) ? this.tryAddSingleDigitNumber(staffInitials, suffix + 1) : _quickId;\r\n }\r\n\r\n\r\n /**\r\n * pattern 03 : Return staffinitial with alphabet\r\n * e.g.- JSA-JSZ\r\n */\r\n private tryAddSingleLetterAlphabet(staffInitials: string, suffix: number = 65): string {\r\n if (suffix > 90) return null;\r\n const _suffixLetter = String.fromCharCode(suffix);\r\n const _quickId = staffInitials + _suffixLetter;\r\n return this.isStaffQuickIdExist(_quickId) ? this.tryAddSingleLetterAlphabet(staffInitials, suffix + 1) : _quickId;\r\n }\r\n\r\n\r\n /**\r\n * pattern 04 : Return three digit number\r\n * e.g.- 111-999\r\n */\r\n private tryAddThreeDigitNumber(quickId: number = 111): string {\r\n if (quickId > 999) return null;\r\n return this.isStaffQuickIdExist(quickId.toString()) ? this.tryAddThreeDigitNumber(quickId + 1) : quickId.toString();\r\n }\r\n\r\n\r\n /**\r\n * pattern 05 : Return three letter alphabet\r\n * e.g.- AAA-ZZZ\r\n */\r\n private tryAddThreeLetterAlphabet(quickId: string = 'AAA'): string {\r\n if (!quickId) return null;\r\n return this.isStaffQuickIdExist(quickId) ? this.tryAddThreeLetterAlphabet(this.tryGetNextThreeLetterQuickId(quickId)) : quickId;\r\n }\r\n\r\n\r\n /**\r\n * Remove the last character of input string and add the next letter of alphabet\r\n * e.g.- AAA is input and output should be AAB\r\n */\r\n private replaceAt(index: number, character: string, replactStr: string): string {\r\n return replactStr.substr(0, index) + character + replactStr.substr(index + character.length);\r\n }\r\n\r\n private tryGetNextThreeLetterQuickId(previousQuickId: string): string {\r\n if (previousQuickId === 'ZZZ') return null;\r\n const _stop = 'Z';\r\n const _start = 'A';\r\n const _currentIndex = previousQuickId.length - 1;\r\n let _quickId = this.replaceAt(_currentIndex, String.fromCharCode(previousQuickId.charCodeAt(_currentIndex) + 1), previousQuickId);\r\n\r\n for (let i = _quickId.length - 1; i > 0; i--) {\r\n if (_quickId[i] === String.fromCharCode(_stop.charCodeAt(0) + 1)) {\r\n _quickId = this.replaceAt(i - 1, String.fromCharCode(_quickId.charCodeAt(i - 1) + 1), _quickId);\r\n _quickId = this.replaceAt(i, String.fromCharCode(_start.charCodeAt(0)), _quickId);\r\n }\r\n }\r\n return _quickId;\r\n }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\n\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ConfigurationData, ConfigurationEndpointService, ConfigurationQuery } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class ConfigurationQueryService extends QueryService {\r\n\r\n // This is just the key we will use to look up our single value, we could use anything.\r\n private key = 'configuration';\r\n\r\n constructor(private configurationEndpointService: ConfigurationEndpointService) { super(); }\r\n\r\n configurationQuery(useCached: boolean): Observable {\r\n return super.query(useCached, this.key);\r\n }\r\n\r\n configurationDataChanges(): Observable {\r\n return super.cachedDataChanges(this.key);\r\n }\r\n\r\n protected getDataFromServer(key: string): Observable {\r\n return this.configurationEndpointService.ConfigurationQuery(new ConfigurationQuery()).pipe(map(data => data[0]));\r\n }\r\n\r\n configurationQueryFromServer(): Observable {\r\n return this.configurationEndpointService.ConfigurationQuery(new ConfigurationQuery()).pipe(map(data => data[0]));\r\n }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CustomerDetailQuery, CustomerEndpointService, CustomerDetailWebAppData, } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class CustomerDetailQueryService extends QueryService {\r\n\r\n constructor(private customerEndpointService: CustomerEndpointService) { super(); }\r\n\r\n customerDetailQuery(useCached: boolean, customerReference: string): Observable {\r\n return super.query(useCached, customerReference);\r\n }\r\n\r\n customerDetailDataChanges(customerReference: string): Observable {\r\n return super.cachedDataChanges(customerReference);\r\n }\r\n\r\n protected getDataFromServer(customerReference: string): Observable {\r\n return this.customerEndpointService.CustomerDetailQuery\r\n (Object.assign(new CustomerDetailQuery(), { CustomerReference: customerReference })).pipe(map(data => data[0]));\r\n }\r\n}\r\n","\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CustomerEndpointService, CustomerQuery, CustomerWebAppData } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class CustomersQueryService extends QueryService {\r\n\r\n // This is just the key we will use to look up our single value, we could use anything.\r\n private key = 'customers';\r\n\r\n constructor(private customerEndpointService: CustomerEndpointService) { super(); }\r\n\r\n customersQuery(useCached: boolean): Observable {\r\n return super.query(useCached, this.key);\r\n }\r\n\r\n customersDataChanges(): Observable {\r\n return super.cachedDataChanges(this.key);\r\n }\r\n\r\n protected getDataFromServer(key: string): Observable {\r\n return this.customerEndpointService.CustomerQuery(new CustomerQuery());\r\n }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n HandoverEndpointService,\r\n HandoverStatisticsData,\r\n SiteDashBoardScaffoldInspectionData,\r\n SiteEndpointService,\r\n ScaffoldEndpointService,\r\n ScaffoldStatisticsData,\r\n StaffEndpointService,\r\n CustomerEndpointService,\r\n StaffStatisticsData,\r\n SiteStatisticsData,\r\n CustomerStatisticsData,\r\n InspectionEndpointService,\r\n DefectStatisticsQuery,\r\n} from 'app/core/hub-api';\r\nimport { homeFilterHeaders } from '../../home/values/home-filter-headers';\r\n\r\n// Service for fetching data for dashboard charts and statistics from the server, don't cache each query as it is\r\n// not that helpful and could end up being quite a large amount of data in the case of thousands of inspections per site.\r\n@Injectable()\r\nexport class DashboardQueryService {\r\n\r\n constructor(\r\n private siteEndpointService: SiteEndpointService,\r\n private handoverEndpointService: HandoverEndpointService,\r\n private scaffoldEndpointService: ScaffoldEndpointService,\r\n private staffEndpointService: StaffEndpointService,\r\n private customerEndpointService: CustomerEndpointService,\r\n private inspectionEndpointService: InspectionEndpointService\r\n ) { }\r\n\r\n getInspectionData(filter?: string, id?: string): Observable {\r\n return this.siteEndpointService.ScaffoldInspectionQuery(this.buildQuery(filter, id));\r\n }\r\n\r\n getHandoverData(filter?: string, id?: string): Observable {\r\n return this.handoverEndpointService.HandoverStatisticsQuery(this.buildQuery(filter, id)).pipe(map(data => data[0]));\r\n }\r\n\r\n getScaffoldData(filter?: string, id?: string): Observable {\r\n return this.scaffoldEndpointService.ScaffoldStatisticsQuery(this.buildQuery(filter, id)).pipe(map(data => data[0]));\r\n }\r\n\r\n getStaffStatistics(filter?: string, id?: string): Observable {\r\n return this.staffEndpointService.StaffStatisticsQuery(this.buildQuery(filter, id)).pipe(map(data => data[0]));\r\n }\r\n\r\n getSiteStatistics(filter?: string, id?: string): Observable {\r\n return this.siteEndpointService.SiteStatisticsQuery(this.buildQuery(filter, id)).pipe(map(data => data[0]));\r\n }\r\n\r\n getCustomerStatistics(filter?: string, id?: string): Observable {\r\n return this.customerEndpointService.CustomerStatisticsQuery(this.buildQuery(filter, id)).pipe(map(data => data[0]));\r\n }\r\n getDefectTypesStatistics(filter?: string, id?: string): Observable {\r\n return this.inspectionEndpointService.DefectStatisticsQuery(this.buildQuery(filter, id)).pipe(map(data => data));\r\n }\r\n\r\n private buildQuery(filter, id): any {\r\n const query = {};\r\n if (filter && id) {\r\n query[filter] = id;\r\n }\r\n query['AdminAssignedSitesOnly'] = filter === homeFilterHeaders.mySites;\r\n return query;\r\n }\r\n}\r\n\r\n","\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DepotData, DepotQuery, SiteDepotEndpointService } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class DepotsQueryService extends QueryService {\r\n\r\n // This is just the key we will use to look up our single value, we could use anything.\r\n private key = 'depots';\r\n\r\n constructor(private siteDepotEndpointService: SiteDepotEndpointService) { super(); }\r\n\r\n depotsQuery(useCached: boolean): Observable {\r\n return super.query(useCached, this.key);\r\n }\r\n\r\n depotsDataChanges(): Observable {\r\n return super.cachedDataChanges(this.key);\r\n }\r\n\r\n protected getDataFromServer(key: string): Observable {\r\n return this.siteDepotEndpointService.DepotQuery(new DepotQuery());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ExportTypeEnum, ExportEndpointService } from 'app/core/hub-api';\r\n\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class ExportService {\r\n\r\n constructor(\r\n private exportEndpointService: ExportEndpointService\r\n ) { }\r\n\r\n exportScaffolds(siteId: string, siteName: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.exportEndpointService.Scaffolds(siteId, ExportTypeEnum.Csv).subscribe(\r\n result => {\r\n const name = siteName.replace(/\\s+/g, '-').toLowerCase();\r\n const fileName = `${name}-scaffold-export`;\r\n resolve(this.createBlobContainer(result, fileName));\r\n },\r\n error => reject(error)\r\n );\r\n });\r\n }\r\n\r\n createBlobContainer(result: any, fileSuffix: string): any {\r\n const dateTime = moment().format('D-MM-YY-hh-mm-ss');\r\n const name = fileSuffix.replace(/\\s+/g, '-').toLowerCase();\r\n\r\n const file = new Blob([result], { type: 'application/octet-stream' });\r\n const fileName = `${dateTime}-${name}.csv`;\r\n const fileURL = URL.createObjectURL(file);\r\n\r\n return {\r\n file: file,\r\n fileName: fileName,\r\n fileURL: fileURL\r\n };\r\n }\r\n\r\n}\r\n","\r\nimport { mergeMap, map } from 'rxjs/operators';\r\nimport { ImportEndpointService, ExportEndpointService } from 'app/core/hub-api';\r\n\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { Observable, AsyncSubject } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\n\r\n@Injectable()\r\nexport class FileUploadService {\r\n\r\n constructor(private importEndpointService: ImportEndpointService,\r\n private exportEndpointService: ExportEndpointService, private http: HttpClient) { }\r\n\r\n /**\r\n * Uploads the file to Blob and calls the API to update database\r\n *\r\n * @param {File} file\r\n * @param {string} path\r\n * @returns {Observable}\r\n * @memberof FileUploadService\r\n */\r\n uploadFile(file: File, path: string): Observable {\r\n const fileReader = new FileReader();\r\n const subject = new AsyncSubject();\r\n\r\n fileReader.onload = (e: any) => {\r\n const paths = {\r\n [path]: path\r\n };\r\n this.importEndpointService.UploadFile(paths).pipe(mergeMap((results) => {\r\n const uploadKeys = results as any;\r\n return this.http.put(uploadKeys.UploadPaths[path], e.target.result, {\r\n headers: new HttpHeaders({\r\n 'x-ms-blob-type': 'BlockBlob',\r\n 'Content-Type': file.type,\r\n 'x-ms-blob-content-type': file.type\r\n }),\r\n });\r\n })).subscribe(() => {\r\n subject.next(true);\r\n subject.complete();\r\n });\r\n };\r\n fileReader.readAsArrayBuffer(file);\r\n\r\n return subject.asObservable();\r\n }\r\n\r\n /**\r\n * Downloads the file by calling the API\r\n *\r\n * @param {string} fileName\r\n * @param {string} path\r\n * @returns {*}\r\n * @memberof FileUploadService\r\n */\r\n downloadFile(fileName: string, path: string): any {\r\n this.exportEndpointService.DownloadFile(fileName, path).subscribe(\r\n val => {\r\n const blob = new Blob([val]);\r\n this.generateDownload(blob, fileName);\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Download the file\r\n *\r\n * @private\r\n * @param {Blob} blob\r\n * @param {string} fileName\r\n * @returns {*}\r\n * @memberof FileUploadService\r\n */\r\n private generateDownload(blob: Blob, fileName: string): any {\r\n\r\n const name = fileName;\r\n if ((navigator as any).msSaveOrOpenBlob) {\r\n (navigator as any).msSaveOrOpenBlob(blob, name);\r\n } else {\r\n saveAs(blob, name);\r\n }\r\n }\r\n}\r\n\r\n","import { roleIds } from 'app/shared/values/role-ids';\r\nimport { DepotData, StaffDetailsWebAppData, SiteWebAppData } from 'app/core/hub-api';\r\nimport { map, find, sortBy, chain } from 'lodash';\r\nimport { siteStatusIds } from '../../shared/values/site-status-ids';\r\n\r\nexport class FilterService {\r\n\r\n // Only display the sites that belong to the depots that the user has access to\r\n // this.filterSites = function(Sites, loggedInStaff) {\r\n // var sites = angular.copy(Sites);\r\n // if (loggedInStaff.RoleId !== RoleIds.admin) {\r\n // sites = _.filter(sites, function(site) {\r\n // return _.find(loggedInStaff.SiteDepotIds, function(id) {\r\n // return site.SiteDepotId === id;\r\n // });\r\n // });\r\n // }\r\n // return _.sortBy(sites, function(site) {\r\n // return site.SiteName.toLowerCase();\r\n // });\r\n // };\r\n\r\n // Only display the depots that the logged in user has access to\r\n filterDepots(siteDepots: DepotData[], loggedInStaff: StaffDetailsWebAppData): DepotData[] {\r\n if (loggedInStaff.RoleId !== roleIds.admin) {\r\n siteDepots = siteDepots.filter(depot => find(loggedInStaff.SiteDepotIds, id => depot.SiteDepotId === id));\r\n }\r\n return sortBy(siteDepots, function (depot: DepotData): string {\r\n return depot.DepotName ? depot.DepotName.toLowerCase() : '';\r\n });\r\n }\r\n\r\n // Only display the staff that belong to the site depot\r\n // this.filterStaff = function(Staff, siteDepotId) {\r\n // var staffList = _.filter(Staff, function(staff) {\r\n // return _.contains(staff.SiteDepotIds, siteDepotId);\r\n // });\r\n // return _.sortBy(staffList, function(staff){\r\n // return staff.ContactName.toLowerCase();\r\n // });\r\n // };\r\n\r\n // this.filterCustomer = function (Sites, Customers, loggedInStaff) {\r\n // if (loggedInStaff.RoleId === RoleIds.admin) {\r\n // return Customers;\r\n // }\r\n // var customers = angular.copy(Customers);\r\n // customers = _.filter(customers, function(customer) {\r\n // return _.find(Sites, function(site){\r\n // return _.contains(site.Customers, customer.CustomerId);\r\n // });\r\n // });\r\n // return customers;\r\n // };\r\n\r\n filterClosedSites(sites: SiteWebAppData[]): SiteWebAppData[] {\r\n return chain(sites)\r\n .filter(function (site: SiteWebAppData): boolean {\r\n return site.SiteStatusId !== siteStatusIds.closed;\r\n })\r\n .sortBy(function (site: SiteWebAppData): string {\r\n return site.SiteName.toLowerCase();\r\n })\r\n .value();\r\n }\r\n sortByIgnoreCase(dataSource: any, sortByName: string): any {\r\n if (dataSource && sortByName && dataSource[0][sortByName]) {// Exist sortBy \"value\" in dataSource\r\n return dataSource.sort((a, b) => (a[sortByName].toLowerCase() > b[sortByName].toLowerCase()) ? 1 : ((b[sortByName].toLowerCase() > a[sortByName].toLowerCase()) ? -1 : 0));\r\n } else {\r\n return dataSource;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { taskIdsEnums } from 'app/timesheet/values/taskids-enum';\r\nimport { TaskStatusEnum } from 'app/core/hub-api';\r\nimport { UUID } from 'angular2-uuid';\r\n\r\n@Injectable()\r\nexport class GenerateDefaultsService {\r\n\r\n constructor() { }\r\n\r\n generateDefaultTasks(tasks?: any): any {\r\n // Generates the default tasks when adding an item from the web console\r\n return [\r\n {\r\n AllocatedHours: tasks && tasks.Erect && tasks.Erect.TenderedHours ? tasks.Erect.TenderedHours : 0,\r\n ActualHours: null,\r\n PercentageComplete: 0,\r\n TaskId: UUID.UUID(),\r\n TaskTypeId: taskIdsEnums.erect,\r\n TaskStatus: TaskStatusEnum.Open\r\n },\r\n {\r\n AllocatedHours: tasks && tasks.Adaptions && tasks.Adaptions.TenderedHours ? tasks.Adaptions.TenderedHours : 0,\r\n ActualHours: null,\r\n PercentageComplete: 0,\r\n TaskId: UUID.UUID(),\r\n TaskTypeId: taskIdsEnums.modify,\r\n TaskStatus: 0\r\n },\r\n {\r\n AllocatedHours: tasks && tasks.GeneralLabour && tasks.GeneralLabour.TenderedHours ? tasks.GeneralLabour.TenderedHours : 0,\r\n ActualHours: null,\r\n PercentageComplete: 0,\r\n TaskId: UUID.UUID(),\r\n TaskTypeId: taskIdsEnums.other,\r\n TaskStatus: TaskStatusEnum.Open\r\n },\r\n {\r\n AllocatedHours: tasks && tasks.Dismantle && tasks.Dismantle.TenderedHours ? tasks.Dismantle.TenderedHours : 0,\r\n ActualHours: null,\r\n PercentageComplete: 0,\r\n TaskId: UUID.UUID(),\r\n TaskTypeId: taskIdsEnums.dismantle,\r\n TaskStatus: TaskStatusEnum.Open\r\n }\r\n ];\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { HandoverEndpointService, HandoverHistoryWebAppData, HandoverHistoryQuery } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class HandoverHistoryQueryService extends QueryService {\r\n\r\n constructor(private handoverEndpointService: HandoverEndpointService) { super(); }\r\n\r\n handoverHistoryQuery(useCached: boolean, siteIds: string[]): Observable {\r\n // Note that this implementation means that each query (for a particular combination of sites) is cached individually.\r\n return super.query(useCached, siteIds.sort().toString());\r\n }\r\n\r\n handoverHistoryDataChanges(siteIds: string[]): Observable {\r\n return super.cachedDataChanges(siteIds.sort().toString());\r\n }\r\n\r\n protected getDataFromServer(siteIds: string): Observable {\r\n const query = Object.assign(new HandoverHistoryQuery(), { SiteIds: siteIds.split(',') });\r\n return this.handoverEndpointService.HandoverHistoryQuery(query);\r\n }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HandoverEndpointService, HandoverStatisticsData, HandoverStatisticsQuery } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class HandoverStatisticsQueryService extends QueryService {\r\n\r\n constructor(private handoverEndpointService: HandoverEndpointService) { super(); }\r\n\r\n handoverStatisticsQuery(useCached: boolean, query: HandoverStatisticsQuery): Observable {\r\n return super.query(useCached, JSON.stringify(query));\r\n }\r\n\r\n handoverStatisticsDataChanges(query: HandoverStatisticsQuery): Observable {\r\n return super.cachedDataChanges(JSON.stringify(query));\r\n }\r\n\r\n protected getDataFromServer(queryJson: string): Observable {\r\n const query = JSON.parse(queryJson);\r\n return this.handoverEndpointService.HandoverStatisticsQuery(query).pipe(map(data => data[0]));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n/**\r\n * This service is used to cancel the pending HTTP requests.\r\n * It provides an observable of canceled HTTP requests.\r\n */\r\n@Injectable()\r\nexport class HttpCancelService {\r\n /** Observable of canceled HTTP requests */\r\n private pendingHTTPRequests$ = new Subject();\r\n\r\n constructor() { }\r\n\r\n /** Cancels Pending HTTP calls */\r\n public cancelPendingRequests() {\r\n this.pendingHTTPRequests$.next();\r\n }\r\n\r\n /** Returns the observable of Canceled Pending HTTP calls */\r\n public onCancelPendingRequests() {\r\n return this.pendingHTTPRequests$.asObservable();\r\n }\r\n}\r\n","\r\nimport {mergeMap} from 'rxjs/operators';\r\nimport { AssetsEndpointService } from 'app/core/hub-api';\r\n\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { Observable , AsyncSubject } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ImageUploadService {\r\n\r\n constructor(private assetsEndpointService: AssetsEndpointService, private http: HttpClient) { }\r\n\r\n uploadImage(imageFile: File, path: string): Observable {\r\n const fileReader = new FileReader();\r\n const subject = new AsyncSubject();\r\n\r\n fileReader.onload = (e: any) => {\r\n const paths = {\r\n [path]: path\r\n };\r\n this.assetsEndpointService.GetUploadKeys(paths).pipe(mergeMap((results) => {\r\n const uploadKeys = results as any;\r\n return this.http.put(uploadKeys.UploadPaths[path], e.target.result, {\r\n headers: new HttpHeaders({\r\n 'x-ms-blob-type': 'BlockBlob',\r\n 'Content-Type': imageFile.type,\r\n 'x-ms-blob-content-type': imageFile.type\r\n }),\r\n });\r\n })).subscribe(() => {\r\n subject.next(true);\r\n subject.complete();\r\n });\r\n };\r\n fileReader.readAsArrayBuffer(imageFile);\r\n\r\n return subject.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppInsights } from 'applicationinsights-js';\r\nimport { environment } from './../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class InsightMonitoringService {\r\n\r\n private config: Microsoft.ApplicationInsights.IConfig = {\r\n instrumentationKey: (environment as any).insightsKey\r\n };\r\n\r\n constructor() {\r\n if (!AppInsights.config) {\r\n AppInsights.downloadAndSetup(this.config);\r\n }\r\n }\r\n\r\n logPageView(name?: string, url?: string, properties?: any,\r\n measurements?: any, duration?: number): void {\r\n AppInsights.trackPageView(name, url, properties, measurements, duration);\r\n }\r\n\r\n logEvent(name: string, properties?: any, measurements?: any): void {\r\n AppInsights.trackEvent(name, properties, measurements);\r\n }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { ItemDetailsData, ContractEndpointService } from 'app/core/hub-api';\r\nimport { Injectable } from '@angular/core';\r\nimport { QueryService } from './query.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ItemDetailsQueryService extends QueryService {\r\n\r\n constructor(private contractEndpointService: ContractEndpointService) {\r\n super();\r\n }\r\n\r\n itemDetailsQuery(useCached: boolean, itemId): Observable {\r\n return super.query(useCached, itemId);\r\n }\r\n\r\n itemDetailDataChanges(itemId: string): Observable {\r\n return super.cachedDataChanges(itemId);\r\n }\r\n\r\n protected getDataFromServer(itemId: string): Observable {\r\n return this.contractEndpointService.ItemDetailsQuery({ ItemId: itemId }).pipe(map(response => response[0]));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of} from 'rxjs';\r\nimport { StaffDetailQueryService } from './staff-detail-query.service';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { StaffDetailsWebAppData } from '../hub-api';\r\nimport { AuthenticationEventsService, UserIdentityService } from '../authentication';\r\n\r\n// Service for listening to changes to the logged in staff - including both changes to which staff is logged in,\r\n// and changes to the staff's data (ie name, email etc..).\r\n@Injectable()\r\nexport class LoggedInStaffService {\r\n constructor(\r\n private staffDetailQueryService: StaffDetailQueryService,\r\n private authenticationEventsService: AuthenticationEventsService,\r\n private userIdentityService: UserIdentityService,\r\n ) { }\r\n\r\n\r\n loggedInStaffChanges(): Observable {\r\n return this.authenticationEventsService.userUpdatedEvent.asObservable().pipe(\r\n mergeMap(user => {\r\n if (!user) {\r\n return of(undefined);\r\n }\r\n return this.staffDetailQueryService.staffDetailDataChanges(user.userId);\r\n })\r\n );\r\n }\r\n\r\n loggedInStaffChangesFromServer(): Observable {\r\n return this.authenticationEventsService.userUpdatedEvent.asObservable().pipe(\r\n mergeMap(user => {\r\n if (!user) {\r\n return of(undefined);\r\n }\r\n return this.staffDetailQueryService.getDataFromServer(user.userId);\r\n })\r\n );\r\n }\r\n\r\n loggedInStaffQuery(useCached: boolean): Observable {\r\n return this.staffDetailQueryService.staffDetailQuery(useCached, this.userIdentityService.currentUser().userId);\r\n }\r\n}\r\n\r\n","\r\nimport { filter, take, publishReplay } from 'rxjs/operators';\r\nimport { BehaviorSubject, Observable, from, ConnectableObservable } from 'rxjs';\r\n\r\n// Queries data from the server (or in memory cache when specified) and allows consumer to subscribe to data changes.\r\nexport abstract class QueryService {\r\n // Dictionary mapping each key to its associated observable data stream. Behavior subject allows us to access the current value.\r\n // By convention we will initialise the stream with the value undefined.\r\n private changes: { [key: string]: BehaviorSubject } = {};\r\n\r\n // Queries the data from the server or in memory cache.\r\n protected query(useCached: boolean, key: string): Observable {\r\n // Return cached data if requested and the cached data exists or a request is in progress.\r\n if (this.changes[key] && useCached) {\r\n // we are excluding the undefined and null values from the stream of changes to avoid unnecessary processing.\r\n return this.changes[key].pipe(filter(data => data !== undefined && data != null)).pipe(take(1));\r\n }\r\n\r\n // Create an Observable stream of data for the given key.\r\n if (!this.changes[key]) {\r\n this.changes[key] = new BehaviorSubject(undefined);\r\n }\r\n\r\n // Fetch the data from the server and convert to hot (multicast) observable so that each subscriber does not cause another HTTP request.\r\n // TODO - why do we have to create a new Observable for the publishReplay operator to work?\r\n const queryResult = from(this.getDataFromServer(key)).pipe(publishReplay(1)) as ConnectableObservable;\r\n queryResult.connect();\r\n\r\n // Push new data to the stream of changes.\r\n queryResult.subscribe(data => {\r\n this.changes[key].next(data);\r\n });\r\n\r\n return queryResult;\r\n }\r\n\r\n // Hook for concrete classes to provide implementation of getting data from the server.\r\n protected abstract getDataFromServer(key: string): Observable;\r\n\r\n // Gets an observable stream of changes to the cached data for the given key.\r\n protected cachedDataChanges(key: string): Observable {\r\n // Check if there is already a BehaviorSubject for the given key.\r\n if (!this.changes[key]) {\r\n // If not, create a new BehaviorSubject initialized with undefined.\r\n this.changes[key] = new BehaviorSubject(undefined);\r\n\r\n // Proactively fetch the data for the given key.\r\n // This ensures that the data is being loaded, which is especially useful if \r\n // this function is the first to request data for the given key.\r\n this.query(false, key);\r\n }\r\n\r\n // Return the observable stream of data changes, filtering out undefined values.\r\n // Subscribers to this stream will only receive defined data values.\r\n // we are excluding the undefined and null values from the stream of changes to avoid unnecessary processing.\r\n return this.changes[key].pipe(filter(data => data !== undefined && data != null));\r\n\r\n }\r\n}","import { QueryService } from './query.service';\r\nimport { QuoteData, ContractEndpointService, QuoteQuery, QuoteScaffoldData } from 'app/core/hub-api';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class QuotesQueryService extends QueryService {\r\n\r\n constructor( private contractEndpointService: ContractEndpointService) {\r\n super();\r\n }\r\n\r\n quotesQuery(useCached: boolean, contractId: string): Observable {\r\n return super.query(useCached, contractId);\r\n }\r\n\r\n quotesDataChanges(contractId: string): Observable {\r\n return super.cachedDataChanges(contractId);\r\n }\r\n\r\n unassignedScaffoldQuery(contractId: string): Observable {\r\n return this.contractEndpointService.UnassignedScaffoldQuery({ContractId: contractId});\r\n }\r\n\r\n protected getDataFromServer(contractId: string): Observable {\r\n return this.contractEndpointService.QuoteQuery(Object.assign(new QuoteQuery(), {ContractId: contractId}));\r\n }\r\n}\r\n","\r\n\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ReportEndpointService, SiteQuery, SiteWebAppData } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class ReportSitesQueryService extends QueryService {\r\n\r\n // This is just the key we will use to look up our single value, we could use anything.\r\n private key = 'report sites';\r\n\r\n constructor(private reportEndpointService: ReportEndpointService) { super(); }\r\n\r\n reportSitesQuery(useCached: boolean): Observable {\r\n return super.query(useCached, this.key);\r\n }\r\n\r\n reportSitesDataChanges(): Observable {\r\n return super.cachedDataChanges(this.key);\r\n }\r\n\r\n protected getDataFromServer(key: string): Observable {\r\n return this.reportEndpointService.GetSiteData(new SiteQuery());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ScaffoldInspectionQuery, SiteDashBoardScaffoldInspectionData, SiteEndpointService } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class ScaffoldInspectionQueryService extends QueryService {\r\n\r\n constructor(private siteEndpointService: SiteEndpointService) { super(); }\r\n\r\n scaffoldInspectionQuery(useCached: boolean, siteId?: string): Observable {\r\n return super.query(useCached, siteId);\r\n }\r\n\r\n scaffoldInspectionDataChanges(siteId?: string): Observable {\r\n return super.cachedDataChanges(siteId);\r\n }\r\n\r\n protected getDataFromServer(siteId?: string): Observable {\r\n const query = Object.assign(new ScaffoldInspectionQuery(), { SiteId: siteId });\r\n return this.siteEndpointService.ScaffoldInspectionQuery(query);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ScaffoldEndpointService, ScaffoldStatisticsData, ScaffoldStatisticsQuery } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class ScaffoldStatisticsQueryService extends QueryService {\r\n\r\n constructor(private scaffoldEndpointService: ScaffoldEndpointService) { super(); }\r\n\r\n scaffoldStatisticsQuery(useCached: boolean, query: ScaffoldStatisticsQuery): Observable {\r\n return super.query(useCached, JSON.stringify(query));\r\n }\r\n\r\n scaffoldStatisticsDataChanges(query?: ScaffoldStatisticsQuery): Observable {\r\n return super.cachedDataChanges(JSON.stringify(query));\r\n }\r\n\r\n protected getDataFromServer(queryJson: string): Observable {\r\n const query = JSON.parse(queryJson);\r\n return this.scaffoldEndpointService.ScaffoldStatisticsQuery(query);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SiteScaffoldDiaryData, SiteEndpointService, SiteScaffoldDiaryQuery } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class SiteScaffoldDiaryQueryService extends QueryService {\r\n\r\n constructor(private siteEndpointService: SiteEndpointService) { super(); }\r\n\r\n siteScaffoldDiaryQuery(useCached: boolean, siteReference: string): Observable {\r\n return super.query(useCached, siteReference);\r\n }\r\n\r\n siteScaffoldDiaryDataChanges(siteReference: string): Observable {\r\n return super.cachedDataChanges(siteReference);\r\n }\r\n\r\n protected getDataFromServer(siteReference: string): Observable {\r\n const query = Object.assign(new SiteScaffoldDiaryQuery(), { SiteReference: siteReference });\r\n return this.siteEndpointService.SiteScaffoldDiaryQuery(query);\r\n }\r\n}\r\n","\r\n\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SiteEndpointService, SiteQuery, SiteWebAppData } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class SitesQueryService extends QueryService {\r\n\r\n // This is just the key we will use to look up our single value, we could use anything.\r\n private key = 'sites';\r\n\r\n constructor(private siteEndpointService: SiteEndpointService) { super(); }\r\n\r\n sitesQuery(useCached: boolean): Observable {\r\n return super.query(useCached, this.key);\r\n }\r\n\r\n sitesDataChanges(): Observable {\r\n return super.cachedDataChanges(this.key);\r\n }\r\n\r\n protected getDataFromServer(key: string): Observable {\r\n return this.siteEndpointService.SiteQuery(new SiteQuery());\r\n }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { StaffDetailsWebAppData, StaffEndpointService } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class StaffDetailQueryService extends QueryService {\r\n\r\n constructor(private staffEndpointService: StaffEndpointService) { super(); }\r\n\r\n staffDetailQuery(useCached: boolean, staffId: string): Observable {\r\n return super.query(useCached, staffId);\r\n }\r\n\r\n staffDetailDataChanges(staffId: string): Observable {\r\n return super.cachedDataChanges(staffId);\r\n }\r\n\r\n getDataFromServer(staffId: string): Observable {\r\n return this.staffEndpointService.StaffDetailsQuery({ StaffId: staffId }).pipe(map(data => data[0]));\r\n }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\n\r\n\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { StaffData, StaffEndpointService, StaffQuery } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\nimport { cadsAdminStaffId } from '../../shared/values/cads-admin-id';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class StaffsQueryService extends QueryService {\r\n\r\n // This is just the key we will use to look up our single value, we could use anything.\r\n private key = 'staffs';\r\n\r\n constructor(private staffEndpointService: StaffEndpointService) { super(); }\r\n\r\n staffsQuery(useCached: boolean, includeCadsAdmin = false): Observable {\r\n return super.query(useCached, this.key).pipe(map(staffs => {\r\n return staffs.filter(s => includeCadsAdmin || s.StaffId !== cadsAdminStaffId);\r\n }));\r\n }\r\n\r\n staffsDataChanges(includeCadsAdmin = false): Observable {\r\n return super.cachedDataChanges(this.key).pipe(map(staffs => {\r\n return staffs.filter(s => includeCadsAdmin || s.StaffId !== cadsAdminStaffId);\r\n }));\r\n }\r\n\r\n protected getDataFromServer(key: string): Observable {\r\n return this.staffEndpointService.StaffQuery(new StaffQuery());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { HubApiSettingsService } from 'app/core/hub-api';\r\nimport { StockReportFilter } from 'app/reports/models/stock-report-filter';\r\n\r\n@Injectable()\r\nexport class StockReportQueryService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n GetReportFromFilter(filter: any): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: filter,\r\n };\r\n\r\n return this.http.request('POST', this.settingsService.getApiServiceBaseUrl() + 'Reports/Stock/Filter/Report', options);\r\n }\r\n\r\n GetListFromFilter(filter: StockReportFilter): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: filter,\r\n };\r\n\r\n return this.http.request('GET', this.settingsService.getApiServiceBaseUrl() + 'Reports/Stock/Filter/List', options);\r\n }\r\n\r\n GetForScaffold(scaffoldId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request('GET', this.settingsService.getApiServiceBaseUrl() + 'Reports/Stock/Scaffold/' + scaffoldId, options);\r\n }\r\n\r\n GetForSite(siteId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request('GET', this.settingsService.getApiServiceBaseUrl() + 'Reports/Stock/Site/' + siteId, options);\r\n }\r\n\r\n GetForDepot(depotId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request('GET', this.settingsService.getApiServiceBaseUrl() + 'Reports/Stock/Depot/' + depotId, options);\r\n }\r\n\r\n GetForCustomer(customerId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request('GET', this.settingsService.getApiServiceBaseUrl() + 'Reports/Stock/Customer/' + customerId, options);\r\n }\r\n\r\n GetForContract(contractId: string): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.request('GET', this.settingsService.getApiServiceBaseUrl() + 'Reports/Stock/Contract/' + contractId, options);\r\n }\r\n\r\n StockReportAsCsv(filter: any): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n body: filter,\r\n responseType: 'arraybuffer'\r\n };\r\n\r\n return this.http.request('POST', this.settingsService.getApiServiceBaseUrl() + 'Reports/Stock/ReportToCSV', (options as any));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { colors } from 'app/shared/values/colours';\r\nimport { padStart } from 'lodash';\r\n\r\n@Injectable()\r\nexport class TextToColorService {\r\n\r\n // Set the icon to grey if disabled, or a colour selected based on the name string otherwise.\r\n textToColor(text: string, colours?: string[]): string {\r\n const hashedName = this.hashText(text);\r\n if (colours) {\r\n const colourIndex = Math.abs(hashedName % colours.length);\r\n return colours[colourIndex];\r\n } else {\r\n // Generate a random hex colour.\r\n const hexValue = (hashedName % Math.pow(16, 6)).toString(16);\r\n return `#${padStart(hexValue, 6, '0')}`;\r\n }\r\n }\r\n\r\n // Function taken from here: http://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript-jquery\r\n private hashText(text): number {\r\n let hash = 0, i, chr, len;\r\n\r\n if (text.length === 0) {\r\n return hash;\r\n }\r\n\r\n for (i = 0, len = text.length; i < len; i++) {\r\n chr = text.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n return Math.abs(hash);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class TimeoutService {\r\n\r\n // Iterate over the data array, passing each item in the array to the given function func,\r\n // calling setTimeout after the timeoutAfter number of iterations to free up the browser.\r\n //\r\n // Note that if work is so CPU intensive that it needs this function, maybe it should be done on the server.\r\n forWithTimeouts(data: any[], func: Function, timeoutAfter: number): Promise {\r\n let i = 0;\r\n let resolve;\r\n const promise = new Promise((res) => { resolve = res; });\r\n const processData = function (): any {\r\n for (; i < data.length; i++) {\r\n func(data[i]);\r\n if (i + 1 < data.length && (i + 1) % timeoutAfter === 0) {\r\n setTimeout(processData, 0);\r\n i++;\r\n return promise;\r\n }\r\n }\r\n resolve();\r\n return promise;\r\n };\r\n\r\n return processData();\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { TimesheetDepotsQuery, TimesheetEndpointService, TimesheetDepotData } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries data from the server (or in memory cache where specified) and allows consumer to subscribe to data changes.\r\n@Injectable()\r\nexport class TimesheetDepotsQueryService extends QueryService {\r\n\r\n // This is just the key we will use to look up our single value, we could use anything.\r\n private key = 'timesheet-depots';\r\n\r\n constructor(private timesheetEndpointService: TimesheetEndpointService) { super(); }\r\n\r\n timesheetDepotsQuery(useCached: boolean): Observable {\r\n return super.query(useCached, this.key);\r\n }\r\n\r\n timesheetDepotsDataChanges(): Observable {\r\n return super.cachedDataChanges(this.key);\r\n }\r\n\r\n protected getDataFromServer(key: string): Observable {\r\n return this.timesheetEndpointService.TimesheetDepotsQuery(new TimesheetDepotsQuery());\r\n }\r\n}\r\n","import { QueryService } from './query.service';\r\nimport { ContractEndpointService, QuoteQuery, QuoteScaffoldData } from 'app/core/hub-api';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class UnassignedScaffoldQueryService extends QueryService {\r\n\r\n constructor( private contractEndpointService: ContractEndpointService) {\r\n super();\r\n }\r\n\r\n unassignedQuery(useCached: boolean, contractId: string): Observable {\r\n return super.query(useCached, contractId);\r\n }\r\n\r\n unassignedDataChanges(contractId: string): Observable {\r\n return super.cachedDataChanges(contractId);\r\n }\r\n\r\n protected getDataFromServer(contractId: string): Observable {\r\n return this.contractEndpointService.UnassignedScaffoldQuery({ContractId: contractId});\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UtilityService {\r\n\r\n /*\r\n * Takes an iso date string and returns a date object\r\n * that can be used for the \"my-date-picker\" component\r\n */\r\n\r\n getDate(isoDate: string): any {\r\n const date = new Date(isoDate);\r\n return {\r\n date: {\r\n year: date.getFullYear(),\r\n month: date.getMonth() + 1,\r\n day: date.getDate()\r\n },\r\n jsdate: date\r\n };\r\n }\r\n}\r\n","export * from './module-import-guard';\r\n","export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\r\n if (parentModule) {\r\n throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`);\r\n }\r\n}\r\n","export * from './services';\r\nexport * from './functions';\r\nexport * from './utility.module';\r\nexport * from './models';\r\n","import { Subject } from 'rxjs';\r\nimport { Observable } from 'rxjs';\r\n// Class which models an event using observables.\r\nexport class Event {\r\n\r\n private subject: Subject;\r\n\r\n asObservable: () => Observable = () => this.subject.asObservable();\r\n\r\n // Subscribe to the event\r\n subscribe = (fn) => this.subject.subscribe(fn);\r\n\r\n // Trigger the event.\r\n trigger = (item: T) => this.subject.next(item);\r\n\r\n // You can pass in ypur own Subject if alternative behaviour is required (ReplaySubject etc...).\r\n constructor(subject?: Subject) {\r\n this.subject = subject || new Subject();\r\n }\r\n}\r\n","export * from './event';\r\n","export * from './reference-generator.service';\r\n","import { Injectable } from '@angular/core';\r\nimport { max, padStart } from 'lodash';\r\n\r\n@Injectable()\r\nexport class ReferenceGeneratorService {\r\n\r\n incrementalReference(existingReferences: string[], length: number): string {\r\n const referenceNumbers = existingReferences\r\n .map(ref => parseInt(ref.substring(0, length), 10))\r\n .filter(ref => !isNaN(ref));\r\n const nextReferenceNumber = max(referenceNumbers) + 1 || 1;\r\n return padStart(nextReferenceNumber.toString(), length, '0');\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { ReferenceGeneratorService } from './services/reference-generator.service';\r\n\r\n@NgModule({\r\n})\r\nexport class UtilityModule {\r\n constructor() { }\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: UtilityModule,\r\n providers: [\r\n ReferenceGeneratorService,\r\n ],\r\n }\r\n }\r\n}","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { forkJoin } from 'rxjs';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { mapValues } from '../../../shared/values/maps';\r\nimport { errorMessages } from '../../../shared/values/error-messages';\r\nimport { emailAddressRegex } from 'app/shared/regex/email-address.regex';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { ConfigurationData, RolesData, StaffDetailsWebAppData, StaffData, DepotData, StaffCommandService, CreateStaffCommand, EditStaffCommand, CustomerCommandService, CustomerDetailWebAppData, CustomerWebAppData, CreateCustomerCommand, EditCustomerCommand } from 'app/core/hub-api';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { mustNotExistValidator } from 'app/shared/validators/must-not-exist.validator';\r\nimport { AddEditCustomerModalContext } from 'app/customers/models/add-edit-customer-modal-context';\r\nimport { CustomerDetailQueryService } from 'app/core/services/customer-detail-query.service';\r\nimport { CustomersQueryService } from 'app/core/services/customers-query.service';\r\nimport { ReferenceGeneratorService } from 'app/core/utility';\r\nimport { customerStatusIds } from 'app/shared/values/customer-status-ids';\r\nimport { CoordinatesEvent } from 'app/shared/models/coordinates-event';\r\n\r\n/**\r\n * Add edit customer modal\r\n * Allows to add new customers to SMART Manager\r\n *\r\n * @export\r\n * @class AddEditCustomerModalComponent\r\n * @extends {FormComponent} extends the generic modal form component\r\n * @implements {OnInit} Initialises the component\r\n * @implements {OnDestroy} Stops all subscriptions and closes the component\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-edit-customer-modal',\r\n templateUrl: './add-edit-customer-modal.component.html',\r\n styleUrls: ['./add-edit-customer-modal.component.scss']\r\n})\r\nexport class AddEditCustomerModalComponent extends FormComponent implements OnInit, OnDestroy {\r\n context: Partial;\r\n editMode: boolean;\r\n customers: CustomerWebAppData[];\r\n customer: CustomerDetailWebAppData;\r\n configuration: ConfigurationData;\r\n\r\n otherCustomerReferences: string[];\r\n\r\n form: UntypedFormGroup;\r\n customerNameFormControl: UntypedFormControl;\r\n customerReferenceFormControl: UntypedFormControl;\r\n customerAddressFormControl: UntypedFormControl;\r\n telephoneFormControl: UntypedFormControl;\r\n emailFormControl: UntypedFormControl;\r\n websiteFormControl: UntypedFormControl;\r\n\r\n validation: { hasOpenContracts: boolean };\r\n customerStatusIds = customerStatusIds;\r\n\r\n // The new value of the customer status id.\r\n customerStatusId: string;\r\n\r\n validationMessages = {\r\n customerName: {\r\n required: errorMessages.required\r\n },\r\n customerReference: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.customerReferenceMustBeUnique\r\n },\r\n email: {\r\n pattern: errorMessages.emailInvalid\r\n }\r\n };\r\n\r\n map: any;\r\n\r\n constructor(\r\n public referenceGeneratorService: ReferenceGeneratorService,\r\n public customerCommandService: CustomerCommandService,\r\n public customerDetailQueryService: CustomerDetailQueryService,\r\n public customersQueryService: CustomersQueryService,\r\n private toasterService: ToasterService,\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.editMode = this.editMode;\r\n this.customers = this.customers;\r\n this.configuration = this.configuration;\r\n\r\n this.otherCustomerReferences = this.customers\r\n .filter(c => !this.context.customer || c.CustomerId !== this.context.customer.CustomerId)\r\n .map(c => c.CustomerReference);\r\n this.customer = this.context.customer || this.getNewCustomer();\r\n\r\n this.map = {\r\n latitude: this.customer.Latitude || mapValues.defaultLatitude,\r\n longitude: this.customer.Longitude || mapValues.defaultLongitude,\r\n zoom: mapValues.defaultZoom\r\n };\r\n\r\n this.customerStatusId = this.customer.CustomerStatusId;\r\n this.validation = { hasOpenContracts: false };\r\n\r\n this.customerNameFormControl = new UntypedFormControl(this.customer.CustomerName, [Validators.required]);\r\n\r\n this.customerReferenceFormControl = new UntypedFormControl(this.customer.CustomerReference, [\r\n Validators.required,\r\n mustNotExistValidator(this.otherCustomerReferences)\r\n ]);\r\n this.customerAddressFormControl = new UntypedFormControl(this.customer.CustomerAddress);\r\n this.telephoneFormControl = new UntypedFormControl(this.customer.PhoneNumber);\r\n this.emailFormControl = new UntypedFormControl(this.customer.EmailAddress, Validators.pattern(emailAddressRegex));\r\n this.websiteFormControl = new UntypedFormControl(this.customer.Website);\r\n\r\n this.form = new UntypedFormGroup({\r\n customerName: this.customerNameFormControl,\r\n customerReference: this.customerReferenceFormControl,\r\n customerAddress: this.customerAddressFormControl,\r\n telephone: this.telephoneFormControl,\r\n email: this.emailFormControl,\r\n website: this.websiteFormControl\r\n });\r\n super.ngOnInit();\r\n }\r\n\r\n getNewCustomer(): CustomerDetailWebAppData {\r\n return Object.assign(new CustomerDetailWebAppData(), {\r\n CustomerId: UUID.UUID(),\r\n CustomerReference: this.referenceGeneratorService.incrementalReference(\r\n this.otherCustomerReferences,\r\n this.configuration.CustomerReferenceLength\r\n ),\r\n CustomerName: '',\r\n CustomerAddress: '',\r\n CustomerStatusId: customerStatusIds.active,\r\n EmailAddress: '',\r\n PhoneNumber: '',\r\n Website: ''\r\n });\r\n }\r\n\r\n /**\r\n * Sets the map marker for the given coordinates when they are moved\r\n *\r\n * @param {*} event\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n onMarkerMoved(event: google.maps.MapMouseEvent): void {\r\n this.map.latitude = event.latLng.lat();\r\n this.map.longitude = event.latLng.lng();\r\n }\r\n\r\n onPlaceSelected(event: CoordinatesEvent): void {\r\n this.map.latitude = event.latitude;\r\n this.map.longitude = event.longitude;\r\n }\r\n\r\n delete(): void {\r\n this.validation.hasOpenContracts = this.customer.HasOpenContracts;\r\n\r\n if (!this.validation.hasOpenContracts) {\r\n this.customerStatusId = customerStatusIds.inactive;\r\n }\r\n }\r\n\r\n undelete(): void {\r\n this.customerStatusId = customerStatusIds.active;\r\n }\r\n\r\n onSubmit(formValues: any): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n\r\n const command: CreateCustomerCommand | EditCustomerCommand = {\r\n CustomerId: this.customer.CustomerId,\r\n CustomerName: formValues.customerName,\r\n CustomerReference: formValues.customerReference,\r\n CustomerStatusId: this.customerStatusId,\r\n CustomerImage: undefined,\r\n ApprovalExpires: undefined,\r\n Latitude: this.map.latitude,\r\n Longitude: this.map.longitude,\r\n CustomerAddress: formValues.customerAddress,\r\n EmailAddress: formValues.email,\r\n PhoneNumber: formValues.telephone,\r\n Website: formValues.website\r\n };\r\n\r\n const commandResult = this.editMode\r\n ? this.customerCommandService.EditCustomerCommand(command)\r\n : this.customerCommandService.CreateCustomerCommand(command);\r\n\r\n commandResult.subscribe(() => {\r\n const obs$ = forkJoin([\r\n this.customerDetailQueryService.customerDetailQuery(false, formValues.customerReference),\r\n this.customersQueryService.customersQuery(false)\r\n ]);\r\n\r\n obs$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.modalService.setDismissReason(formValues.customerReference);\r\n this.bsModalRef.hide();\r\n this.toasterService.pop('success', `Customer ${this.editMode ? 'updated' : 'created'}`);\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n\r\n /** Closes the modal */\r\n closeModal() {\r\n this.bsModalRef.hide();\r\n }\r\n\r\n /** Required by the AutoUnsubscribe */\r\n public ngOnDestroy(): void { }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Delete customer\r\n \r\n The customer will be deleted. Click undo if this was a mistake!\r\n
\r\n
\r\n \r\n Reactivate customer\r\n \r\n The customer will be reactivated. Click undo if this was a mistake!\r\n
\r\n
\r\n
You need to close all\r\n of the customer's contracts before deleting them.
\r\n
\r\n
\r\n \r\n
\r\n
","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { EstimatesService } from 'app/estimates/services/estimates-service';\r\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\r\nimport { cloneDeep } from 'lodash';\r\nimport { SiteImportModalComponent } from 'app/sites/components/site-import/site-import-modal/site-import-modal.component';\r\nimport { SSDialogContext, SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subscription, combineLatest } from 'rxjs';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { CustomersQueryService } from 'app/core/services/customers-query.service';\r\nimport { DepotsQueryService } from 'app/core/services/depots-query.service';\r\nimport { LoggedInStaffService } from 'app/core/services/logged-in-staff-service';\r\nimport { SitesQueryService } from 'app/core/services/sites-query.service';\r\nimport { DepotData, StaffDetailsWebAppData, ConfigurationData, CustomerWebAppData, SiteWebAppData } from 'app/core/hub-api';\r\nimport { EstimateItem, Pagination } from 'app/estimates/models/estimate';\r\nimport { EstimatesRequest, Filter } from 'app/estimates/models/estimate-filter-options';\r\nimport { Toast, ToasterService } from 'angular2-toaster';\r\nimport { SiteImportModalContext } from 'app/sites/models/site-import-modal-context';\r\nimport { siteStatusIds } from 'app/shared/values/site-status-ids';\r\nimport { roleIds } from 'app/shared/values/role-ids';\r\nimport { ModalDialogComponent } from 'app/shared/components/modal-dialog/modal-dialog.component';\r\nimport { environment } from 'environments/environment';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-estimates-container',\r\n templateUrl: './estimates-container.component.html',\r\n styleUrls: ['./estimates-container.component.scss']\r\n})\r\n/**\r\n * Represents the Estimates Container Component.\r\n * This component is responsible for managing the estimates table and its functionalities.\r\n */\r\nexport class EstimatesContainerComponent implements OnInit, OnDestroy {\r\n /** Holds all the estimates data for the current page */\r\n private allEstimates;\r\n\r\n /** Reference to the DatatableComponent. */\r\n @ViewChild(DatatableComponent) estimatesTable: DatatableComponent;\r\n\r\n /** Holds the sites data. */\r\n sites: any;\r\n\r\n /** Holds the customers data. */\r\n customers: any;\r\n\r\n /** Holds the value of the search input. */\r\n searchInputValue: string;\r\n\r\n /** Holds the value of the filters dropdown. */\r\n filtersDropdownValue: any;\r\n\r\n /** Represents the pagination information for the estimates container component. */\r\n pagination: Pagination;\r\n\r\n /** Represents the rows of estimates data to be displayed in the table. */\r\n rows = new Array();\r\n\r\n /** Represents the filtered estimates data based on search and filters. */\r\n filteredData = new Array();\r\n\r\n /** Represents the columns that can be searched. */\r\n columnsWithSearch: string[] = [];\r\n\r\n /** Represents the selected item in the dropdown. */\r\n selectedSimpleItem: any;\r\n\r\n /** Represents the columns configuration for the estimates table. */\r\n columns = [\r\n { name: 'Category', prop: 'CategoryDescription', sortable: true },\r\n { name: 'Quote No', prop: 'QuotationNumber', sortable: true },\r\n { name: 'Description', prop: 'Description', sortable: true },\r\n { name: 'Start Date', prop: 'StartDate', sortable: true },\r\n { name: 'Customer', prop: 'CustomerAddress', sortable: true },\r\n { name: 'Site', prop: 'SiteAddress', sortable: true },\r\n { name: 'Estimate Status', prop: 'StatusDescription', sortable: true },\r\n { name: 'Tendered Price', prop: 'TenderedPrice', sortable: true },\r\n { name: 'Site Status', prop: 'SiteStatus', sortable: true },\r\n ];\r\n\r\n /** Dropdown options for filters in the estimates container component. */\r\n filtersDropdownOptions = [\r\n { name: 'Category', prop: 'CategoryDescription' },\r\n { name: 'Quote No', prop: 'QuotationNumber' },\r\n { name: 'Description', prop: 'Description' },\r\n { name: 'Customer', prop: 'CustomerAddress' },\r\n { name: 'Site', prop: 'SiteAddress' },\r\n { name: 'Site Status', prop: 'SiteStatus' },\r\n { name: 'Estimate Status', prop: 'StatusDescription' },\r\n ];\r\n\r\n /** Represents all the columns available for filtering. */\r\n allFilterColumns = [];\r\n\r\n /** Represents the default option for filtering all columns. */\r\n private allColumnsDefault = { name: 'All Columns', prop: 'all' };\r\n\r\n /** Represents all the possible statuses for estimates. */\r\n allStatuses = [];\r\n\r\n /** Array containing all depot data. */\r\n allDepots: DepotData[];\r\n\r\n /** Represents the logged-in staff details. */\r\n loggedInStaff: StaffDetailsWebAppData;\r\n\r\n /** Represents the configuration data. */\r\n configuration: ConfigurationData;\r\n\r\n /** Represents the depots data. */\r\n depots: DepotData[];\r\n\r\n /** Represents all the customers data. */\r\n allCustomers: CustomerWebAppData[];\r\n\r\n /** Represents all the sites data. */\r\n allSites: any[];\r\n\r\n /** Represents the loading state of the component. */\r\n isLoading = true;\r\n\r\n /** Stores the table current selected sort */\r\n sorts: any[] = [];\r\n\r\n /** Represents the site status ids. */\r\n siteStatusIds = siteStatusIds;\r\n\r\n /** An array of subscriptions that need to be cleaned up when the component is destroyed. */\r\n subscriptionsToCleanup: Subscription[] = [];\r\n\r\n contextProjectLockedModal: SSDialogContext = {\r\n title: `Project Locked`,\r\n body: `This estimate is in use on another system and is locked. Do you wish to continue, data may be lost.`,\r\n okBtnClass: 'btn button-assertive',\r\n okBtnText: 'Yes',\r\n cancelBtnText: 'No',\r\n };\r\n\r\n /**\r\n * Constructs a new instance of the EstimatesContainerComponent.\r\n * @param bsModalRef - The Bootstrap modal reference.\r\n * @param modalService - The Bootstrap modal service.\r\n * @param estimatesService - The service for fetching estimates data.\r\n */\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService,\r\n private estimatesService: EstimatesService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private sitesQueryService: SitesQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private depotsQueryService: DepotsQueryService,\r\n private loggedInStaffService: LoggedInStaffService,\r\n private toastService: ToasterService,\r\n ) {\r\n this.pagination = {\r\n CurrentPage: 0,\r\n HasNext: false,\r\n HasPrevious: false,\r\n PageSize: 10,\r\n TotalPages: 0,\r\n TotalRecords: 0,\r\n };\r\n }\r\n\r\n /**\r\n * Lifecycle hook that is called after data-bound properties of the component are initialized.\r\n */\r\n public ngOnInit(): void {\r\n this.detectEstimatesQueryAndRemove();\r\n this.manageEstimatesAccess();\r\n // makes the All Columns option the first option in the dropdown\r\n this.filtersDropdownOptions.unshift(this.allColumnsDefault);\r\n // defaults the dropdown to All Columns option\r\n this.filtersDropdownValue = this.allColumnsDefault.prop;\r\n const obs$ = combineLatest(\r\n [this.sitesQueryService.sitesDataChanges(),\r\n this.customersQueryService.customersDataChanges(),\r\n this.configurationQueryService.configurationDataChanges(),\r\n this.depotsQueryService.depotsDataChanges(),\r\n this.loggedInStaffService.loggedInStaffChanges()]\r\n );\r\n this.subscriptionsToCleanup.push(obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1], latest[2], latest[3], latest[4])));\r\n this.setPage({ offset: this.pagination.CurrentPage });\r\n }\r\n\r\n /**\r\n * Manages access to the estimates feature.\r\n * Redirects the user to the denied page if the estimates feature flag is not enabled.\r\n *\r\n * @private\r\n */\r\n private manageEstimatesAccess(): void {\r\n // redirect the user to the denied page if the feature flag is not enabled\r\n const featureFlags = environment.featureFlags as any;\r\n if (!featureFlags?.estimates) this.router.navigate(['/denied']);\r\n }\r\n\r\n /**\r\n * Detects if the query parameter is present and removes it from the URL.\r\n */\r\n private detectEstimatesQueryAndRemove() {\r\n const queryParams = this.route.snapshot.queryParams;\r\n if (queryParams.import) {\r\n this.router.navigate([], { relativeTo: this.route, queryParams: { import: null }, queryParamsHandling: 'merge' });\r\n }\r\n }\r\n\r\n /**\r\n * Refreshes the component with new data.\r\n * \r\n * @param sites - An array of SiteWebAppData objects representing the sites.\r\n * @param customers - An array of CustomerWebAppData objects representing the customers.\r\n * @param configuration - An object representing the configuration data.\r\n * @param depots - An array of DepotData objects representing the depots.\r\n * @param loggedInStaff - An object representing the logged-in staff details.\r\n */\r\n private refreshComponent(\r\n sites: SiteWebAppData[],\r\n customers: CustomerWebAppData[],\r\n configuration: ConfigurationData,\r\n depots: DepotData[],\r\n loggedInStaff: StaffDetailsWebAppData\r\n ): void {\r\n this.allDepots = depots;\r\n // When logout the logged in staff gets cleared\r\n if (loggedInStaff == null) {\r\n return;\r\n }\r\n this.loggedInStaff = loggedInStaff;\r\n\r\n /// removes the TenderedPrice column if the logged in staff is a site supervisor\r\n if (this.loggedInStaff.RoleId === roleIds.siteSupervisor) {\r\n this.columns = this.columns.filter(column => column.prop !== 'TenderedPrice');\r\n }\r\n\r\n this.configuration = configuration;\r\n this.depots = depots\r\n .filter(d => this.loggedInStaff.SiteDepotIds.includes(d.SiteDepotId))\r\n .sort((a, b) => (a.DepotName.toLowerCase() > b.DepotName.toLowerCase() ? 1 : -1));\r\n this.allCustomers = customers;\r\n this.allSites = sites.map(site => {\r\n const tableSite = cloneDeep(site) as any;\r\n tableSite.depotName = this.depots.filter(d => site.SiteDepotId.includes(d.SiteDepotId)).map(d => d.DepotName);\r\n tableSite.customerList = this.allCustomers\r\n .filter(customer => site.Customers.includes(customer.CustomerId))\r\n .map(customer => customer.CustomerName)\r\n .sort()\r\n .join(', ');\r\n return tableSite;\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Retrieves the selected filters based on the search input value and the filters dropdown value.\r\n * If the search input value is not empty, an empty array is returned.\r\n * If the filters dropdown value is set to the default value, filters are generated for all columns.\r\n * Otherwise, filters are generated for the selected column.\r\n * @returns An array of Filter objects representing the selected filters.\r\n */\r\n public getSelectedFilters(): Filter[] {\r\n var selectedFilters = [];\r\n if (this.searchInputValue === '' || this.searchInputValue == null) return selectedFilters;\r\n if (this.filtersDropdownValue === this.allColumnsDefault.prop) {\r\n // Filter based on all columns\r\n this.columns.forEach(column => {\r\n selectedFilters.push({\r\n Field: column.prop,\r\n Operator: 'Contains',\r\n Value: this.searchInputValue,\r\n });\r\n });\r\n } else {\r\n // Filter based on selected column\r\n selectedFilters.push({\r\n Field: this.filtersDropdownValue,\r\n Operator: 'Contains',\r\n Value: this.searchInputValue,\r\n });\r\n }\r\n return selectedFilters;\r\n }\r\n\r\n /**\r\n * Sets the page for pagination and retrieves estimates data.\r\n * \r\n * @param pageInfo - The information about the selected page.\r\n * @param customSorting - An optional array of custom sorting fields and directions.\r\n */\r\n public setPage(pageInfo, customSorting: { Field: string; Direction: string }[] = []) {\r\n try {\r\n var toast;\r\n var defaultSorting = [];\r\n var matchingColumn;\r\n if (customSorting.length > 0) {\r\n matchingColumn = this.columns.find(column => column.prop === customSorting[0].Field);\r\n var toaster: Toast = {\r\n type: 'wait',\r\n title: 'Sorting',\r\n body: `Sorting ${matchingColumn.name} column...`,\r\n tapToDismiss: false,\r\n progressBarDirection: 'increasing',\r\n };\r\n if (matchingColumn) {\r\n toaster.body = `Sorting ${matchingColumn.name} column...`;\r\n }\r\n toast = this.toastService.pop(toaster);\r\n } else {\r\n this.isLoading = true;\r\n }\r\n this.pagination.CurrentPage = pageInfo.selectedPage ? pageInfo.selectedPage : pageInfo.offset;\r\n var selectedFilters = this.getSelectedFilters();\r\n var payload = new EstimatesRequest(\r\n { PageNumber: this.pagination.CurrentPage, PageSize: this.pagination.PageSize },\r\n customSorting.length > 0 ? customSorting : defaultSorting,\r\n selectedFilters\r\n ).toJson();\r\n this.subscriptionsToCleanup.push(this.estimatesService.requestEstimates(payload).subscribe(\r\n pagedData => {\r\n this.pagination = pagedData.Pagination;\r\n this.pagination.CurrentPage = this.pagination.CurrentPage;\r\n this.rows = pagedData.Items;\r\n this.filteredData = this.rows;\r\n this.allEstimates = cloneDeep(this.rows);\r\n if (this.rows && this.rows.length) this.columnsWithSearch = Object.keys(this.rows[0]);\r\n this.isLoading = false;\r\n if (customSorting.length > 0) {\r\n this.toastService.clear(toast.toastId);\r\n this.toastService.pop('success', 'Sorting', `Sorting ${matchingColumn.name} column completed`);\r\n }\r\n },\r\n error => {\r\n this.isLoading = false;\r\n this.toastService.pop('error', 'Error', 'An error occurred while fetching estimates data.');\r\n console.log(error);\r\n }\r\n ));\r\n this.subscriptionsToCleanup.push(this.estimatesService.getEstimateStatus().subscribe({\r\n next: (statuses) => {\r\n this.allStatuses = statuses;\r\n },\r\n error: (error) => {\r\n console.error(error);\r\n }\r\n }));\r\n } catch (error) {\r\n console.error(error);\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n /**\r\n * Event handler for exporting the table data to CSV.\r\n */\r\n public onExportToCSV(): void {\r\n var toast = this.toastService.pop('wait', 'Exporting', 'Exporting data to CSV, please wait...');\r\n toast.timeout = 0;\r\n this.subscriptionsToCleanup.push(this.estimatesService.exportCsv().subscribe({\r\n next: () => {\r\n this.toastService.clear(toast.toastId);\r\n },\r\n error: error => {\r\n console.error(error);\r\n this.toastService.clear(toast.toastId);\r\n this.toastService.pop('error', 'Error', 'An error occurred while exporting the data to CSV.');\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Imports an estimate for a project.\r\n * \r\n * @param estimateId - The ID of the project to import the estimate for.\r\n * @returns A Promise that resolves when the import is complete.\r\n */\r\n private async importSite(estimateId: string): Promise {\r\n var toast: Toast = {\r\n type: 'wait',\r\n title: 'Importing',\r\n body: 'Importing estimate...',\r\n tapToDismiss: false,\r\n progressBarDirection: 'increasing',\r\n timeout: 0,\r\n };\r\n this.toastService.pop(toast);\r\n this.subscriptionsToCleanup.push(this.estimatesService.exportEstimate(estimateId).subscribe({\r\n next: (estimate) => {\r\n this.isLoading = true;\r\n const context: SiteImportModalContext = {\r\n sites: cloneDeep(this.allSites),\r\n customers: cloneDeep(this.allCustomers),\r\n configuration: cloneDeep(this.configuration),\r\n depots: cloneDeep(this.depots),\r\n loggedInStaff: cloneDeep(this.loggedInStaff),\r\n selectedEstimate: cloneDeep(estimate),\r\n estimateId: estimateId,\r\n toasterId: toast.toastId,\r\n };\r\n const config: ModalOptions = {\r\n id: 'importModal',\r\n };\r\n var configs = SSModalConfig.generate(context, config);\r\n configs.class = 'modal-dialog modal-full-screen';\r\n\r\n this.router.navigate([], { relativeTo: this.route, queryParams: { import: true }, queryParamsHandling: 'merge' });\r\n const modal = this.modalService.show(SiteImportModalComponent, configs);\r\n const bsModalRef = modal.content.bsModalRef;\r\n const that = this;\r\n bsModalRef.onHide.subscribe(\r\n siteReference => {\r\n that.isLoading = false;\r\n if (siteReference === null || typeof siteReference !== 'string' || siteReference === 'browser-back-navigation-clicked') return;\r\n // the user closed the modal without completing the wizard\r\n // we need to update the status of the estimate to Live\r\n this.router.navigate([`/sites/${siteReference}`], { relativeTo: this.route });\r\n },\r\n error => {\r\n console.error(error); // This can be left here as it gives us info if any errors\r\n }\r\n );\r\n this.toastService.clear(toast.toastId);\r\n },\r\n error: (error) => {\r\n this.toastService.clear(toast.toastId);\r\n let errorMessage = 'An error occurred while exporting the estimate data.';\r\n try {\r\n const errorObj = JSON.parse(error.error);\r\n if (errorObj.Message) {\r\n errorMessage = errorObj.Message;\r\n }\r\n } catch (e) {\r\n errorMessage = error.error;\r\n }\r\n this.toastService.pop('error', 'Error', errorMessage);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Handles the start event when an estimate item is clicked.\r\n * @param $event - The estimate item that was clicked.\r\n */\r\n public onStart($event: EstimateItem): void {\r\n var toast: Toast = {\r\n type: 'wait',\r\n title: 'Importing',\r\n body: 'Checking if the estimate is locked...',\r\n tapToDismiss: false,\r\n progressBarDirection: 'increasing',\r\n timeout: 0,\r\n };\r\n this.toastService.pop(toast);\r\n this.estimatesService.isEstimateLocked($event.Id).subscribe({\r\n next: (isLocked) => {\r\n this.toastService.clear(toast.toastId);\r\n // the estimate is locked so we need to ask the user if they want to continue\r\n if (isLocked) {\r\n const context: SSDialogContext = this.contextProjectLockedModal;\r\n const config: ModalOptions = {\r\n class: 'modal-danger',\r\n id: 'projectLockedModal'\r\n };\r\n this.router.navigate([], { relativeTo: this.route, queryParams: { import: true }, queryParamsHandling: 'merge' });\r\n const modal = this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context, config));\r\n this.modalService.onHidden.subscribe({\r\n next: (modalData) => {\r\n if (modalData.id === 'importModal') this.isLoading = false;\r\n },\r\n error: error => {\r\n console.error(error);\r\n }\r\n });\r\n\r\n modal.content.onClose.subscribe({\r\n next: result => {\r\n if (result === true) {\r\n toast.body = 'Importing estimate...';\r\n this.importSite($event.Id);\r\n this.toastService.clear(toast.toastId);\r\n }\r\n },\r\n error: error => {\r\n console.error(error);\r\n }\r\n });\r\n modal.onHide.subscribe({\r\n next: () => {\r\n this.isLoading = false;\r\n },\r\n error: error => {\r\n console.error(error);\r\n }\r\n });\r\n return;\r\n }\r\n else {\r\n toast.body = 'Importing estimate...';\r\n this.importSite($event.Id);\r\n this.toastService.clear(toast.toastId);\r\n }\r\n },\r\n error: (error) => {\r\n console.error(error);\r\n this.toastService.pop('error', 'Error', 'An error occurred while checking if the estimate is locked.');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Event handler for when the In Progress button is clicked.\r\n * @param $event - The event object.\r\n */\r\n public onInProgress(estimate: EstimateItem): void {\r\n this.openSite(estimate);\r\n }\r\n\r\n /**\r\n * Event handler for when the Completed button is clicked.\r\n * @param $event - The event object.\r\n */\r\n public onCompleted(estimate: EstimateItem): void {\r\n this.openSite(estimate);\r\n }\r\n\r\n /**\r\n * Opens the site details page for the given estimate.\r\n * @param estimate - The estimate item to open the site details for.\r\n */\r\n private openSite(estimate: EstimateItem) {\r\n if (estimate != null) {\r\n if (estimate.SiteId == null) {\r\n this.toastService.pop('error', 'Error', 'The estimate is missing a site reference.');\r\n return;\r\n }\r\n var siteReference = this.allSites.find(site => site.SiteId === estimate.SiteId)?.SiteReference;\r\n this.router.navigate([`/sites/${siteReference}/details`], { relativeTo: this.route });\r\n }\r\n }\r\n\r\n /**\r\n * Handles when the user changes the page of the table.\r\n * \r\n * @param event - The page change event object.\r\n */\r\n public pageChanged(event: { page: number }): void {\r\n const customSorting = this.sorts.length > 0 ? [{ Field: this.sorts[0].prop, Direction: this.sorts[0].dir }] : [];\r\n this.setPage({ offset: event.page }, customSorting);\r\n }\r\n\r\n /**\r\n * Applies the filter based on the selected dropdown value and search input value.\r\n */\r\n public applyFilter(): void {\r\n this.setPage({ offset: this.pagination.CurrentPage });\r\n }\r\n\r\n /**\r\n * Clears the filter and resets the table to display all data.\r\n */\r\n public clearFilter(): void {\r\n this.searchInputValue = '';\r\n this.filtersDropdownValue = this.allColumnsDefault.prop;\r\n this.filteredData = this.allEstimates;\r\n // Update the table with all data\r\n this.setPage({ offset: 0 });\r\n }\r\n\r\n /**\r\n * Handles the sorting event triggered by the user.\r\n * @param sort - The sorting event object.\r\n */\r\n public onSort(sort) {\r\n var customSorting = [{ Field: sort[0].prop, Direction: sort[0].dir }];\r\n this.sorts = sort;\r\n this.setPage({ offset: this.pagination.CurrentPage }, customSorting);\r\n }\r\n\r\n /**\r\n * Checks if the estimate is locked and then proceeds to update depending on the user's request\r\n * \r\n * @param status - The status object containing the project ID, status ID, and status description.\r\n */\r\n public statusChanged(status: {\r\n EstimateId: string,\r\n StatusId: string,\r\n StatusDescription: string\r\n }): void {\r\n var toaster = this.toastService.pop('wait', 'Updating', `Updating estimate status to ${status.StatusDescription}`);\r\n toaster.timeout = 0;\r\n\r\n this.estimatesService.isEstimateLocked(status.EstimateId).subscribe({\r\n next: (isLocked) => {\r\n if (isLocked) {\r\n const context: SSDialogContext = this.contextProjectLockedModal;\r\n const config: ModalOptions = {\r\n class: 'modal-danger',\r\n };\r\n\r\n const modal = this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context, config));\r\n modal.content.onClose.subscribe({\r\n next: result => {\r\n if (result === true) {\r\n this.changeStatus(status, toaster);\r\n } else {\r\n this.toastService.clear(toaster.toastId);\r\n // Find the project in the `this.rows` array and revert its status to match the one in `this.allEstimates`.\r\n const projectIndex = this.rows.findIndex(row => row.Id === status.EstimateId);\r\n if (projectIndex > -1) {\r\n const originalEstimate = this.allEstimates.find(estimate => estimate.Id === status.EstimateId);\r\n this.rows[projectIndex].StatusDescription = originalEstimate.StatusDescription;\r\n this.rows[projectIndex].StatusCode = originalEstimate.StatusCode;\r\n this.rows[projectIndex].StatusId = originalEstimate.StatusId;\r\n this.filteredData = this.rows;\r\n this.toastService.pop('info', 'Info', 'Estimate status update cancelled');\r\n }\r\n }\r\n },\r\n error: error => {\r\n console.error(error);\r\n }\r\n });\r\n return;\r\n } else {\r\n this.changeStatus(status, toaster);\r\n }\r\n },\r\n error: (error) => {\r\n console.error(error);\r\n this.toastService.pop('error', 'Error', 'An error occurred while checking if the estimate is locked.');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Updates the status of an estimate.\r\n * \r\n * @param status - The status object containing the project ID, status ID, and status description.\r\n * @param toaster - The toaster object used for displaying toast messages.\r\n */\r\n private changeStatus(status: {\r\n EstimateId: string,\r\n StatusId: string,\r\n StatusDescription: string\r\n }, toaster) {\r\n this.subscriptionsToCleanup.push(this.estimatesService.updateStatus(status.EstimateId, status.StatusId).subscribe({\r\n next: () => {\r\n this.toastService.clear(toaster.toastId);\r\n this.toastService.pop('success', 'Success', `Estimate status updated to ${status.StatusDescription}`);\r\n var customSorting = this.sorts && this.sorts.length ? [{ Field: this.sorts[0].prop, Direction: this.sorts[0].dir }] : [];\r\n this.setPage({ offset: this.pagination.CurrentPage }, customSorting);\r\n },\r\n error: (error) => {\r\n console.error(error);\r\n toaster.body = error.error.Message ? error.error.Message : 'An error occurred while updating the estimate status';\r\n toaster.type = 'error';\r\n toaster.timeout = 3000;\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Lifecycle hook that is called when the component is destroyed.\r\n */\r\n ngOnDestroy(): void {\r\n this.subscriptionsToCleanup.forEach(sub => sub.unsubscribe());\r\n }\r\n}\r\n","
\r\n
\r\n

Estimates

\r\n
\r\n export to csv\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { EulaSlaGuard } from 'app/core/guards/eula-sla.guard';\r\nimport { EstimatesContainerComponent } from './components/estimates-container/estimates-container.component';\r\nimport { AuthorisedGuard } from 'app/core/guards/authorised-guard';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: EstimatesContainerComponent,\r\n canActivate: [EulaSlaGuard, AuthorisedGuard],\r\n data: {\r\n claims: ['AddEditSites']\r\n },\r\n resolve: {\r\n\r\n },\r\n // children: []\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class EstimatesRoutingModule { }\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ColumnMode } from '@swimlane/ngx-datatable';\r\nimport { ViewChild } from '@angular/core';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { Pagination } from '../models/estimate';\r\n\r\n@Component({\r\n selector: 'hub-estimates-table',\r\n templateUrl: './estimates-table.component.html',\r\n styleUrls: ['./estimates-table.component.scss']\r\n})\r\n/**\r\n * Represents the EstimatesTableComponent class.\r\n * This component is responsible for displaying the estimates table.\r\n */\r\nexport class EstimatesTableComponent {\r\n @ViewChild('estimatesTable', { static: false }) estimatesTable: DatatableComponent;\r\n /**\r\n * The column mode for the estimates table.\r\n * Determines how the columns should behave when resizing or scrolling.\r\n */\r\n ColumnMode = ColumnMode;\r\n\r\n /** The input property that holds the rows data for the estimates table. */\r\n @Input() rows: any[];\r\n\r\n /** The input property that holds the columns data for the estimates table. */\r\n @Input() columns: any[];\r\n\r\n /** The input property that holds all the possible statuses for the estimates table. */\r\n @Input() allStatuses: any[];\r\n\r\n /** The input property that holds the current page data for the estimates table. */\r\n @Input() page: Pagination;\r\n\r\n /** Sets the table in loading mode */\r\n @Input() isLoading: boolean;\r\n\r\n /** Gets the sorting set by the user */\r\n @Input() sorts: any[] = [];\r\n\r\n /** The output property that emits an event when the page changes in the estimates table. */\r\n @Output() pageChange = new EventEmitter();\r\n\r\n /** The output property that emits an event when the start action is triggered on a row in the estimates table. */\r\n @Output() start = new EventEmitter();\r\n\r\n /** The output property that emits an event when the completed action is triggered on a row in the estimates table. */\r\n @Output() completed = new EventEmitter();\r\n\r\n /** The output property that emits an event when the in progress action is triggered on a row in the estimates table. */\r\n @Output() inProgress = new EventEmitter();\r\n\r\n /** The output property that emits an event when the page has changed */\r\n @Output() footerPageChanged = new EventEmitter();\r\n\r\n /** The output property that emits an event when the user has sorted the table */\r\n @Output() sort = new EventEmitter();\r\n\r\n @Output() statusChanged = new EventEmitter();\r\n /**\r\n * Handles the status changed event.\r\n * @param event - The event object containing the new status data.\r\n */\r\n public statusChanges(newStatus: { Id: string, Description: string }, estimateId: string) {\r\n var data = {\r\n EstimateId: estimateId,\r\n StatusId: newStatus.Id,\r\n StatusDescription: newStatus.Description\r\n }\r\n this.statusChanged.emit(data);\r\n }\r\n /**\r\n * Sets the page for the estimates table.\r\n * @param event - The event object containing the new page data.\r\n */\r\n setPage(pageInfo: { offset: number }): void {\r\n this.pageChange.emit({ page: pageInfo.offset + 1 });\r\n }\r\n\r\n /**\r\n * Triggers the start action on a specific row in the estimates table.\r\n * @param row - The row object on which the start action is triggered.\r\n */\r\n public onStart(row: any) {\r\n this.start.emit(row);\r\n }\r\n\r\n /**\r\n * Triggers the completed action on a specific row in the estimates table.\r\n * @param row - The row object on which the completed action is triggered.\r\n */\r\n public onCompleted(row: any) {\r\n this.completed.emit(row);\r\n }\r\n\r\n /**\r\n * Triggers the in progress action on a specific row in the estimates table.\r\n * @param row - The row object on which the in progress action is triggered.\r\n */\r\n public onInProgress(row: any) {\r\n this.inProgress.emit(row);\r\n }\r\n\r\n /**\r\n * Handles the page change event.\r\n * \r\n * @param event - The page change event object containing the new page number.\r\n */\r\n public handlePageChange(event: { page: number }): void {\r\n this.footerPageChanged.emit(event);\r\n this.estimatesTable.sorts = this.sorts;\r\n }\r\n\r\n /**\r\n * Handles the sort event.\r\n * @param event - The sort event object.\r\n */\r\n public onSort(event) {\r\n const sort = event.sorts[0]; // Get the first sort (if multi-sort, this will be the primary)\r\n this.sorts = [sort]; // Update the sorts array with the new sort object\r\n this.sort.emit(this.sorts);\r\n\r\n // Workaround to existing bug on ngx-datatable https://github.com/swimlane/ngx-datatable/issues/765#issuecomment-377610554\r\n this.estimatesTable.bodyComponent.updateOffsetY(this.page.CurrentPage);\r\n this.estimatesTable.offset = this.page.CurrentPage - 1;\r\n this.sorts = [sort];\r\n this.estimatesTable.sorts = this.sorts;\r\n }\r\n}","
\r\n \r\n \r\n

Loading Estimate Data...

\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Live\r\n
\r\n
\r\n Completed\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[col.prop] | currency: 'GBP':'symbol-narrow' }}

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

{{ row[col.prop] | date: 'dd MMM yyyy' }}

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

{{ row[col.prop] }}

\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n Total: {{rowCount | number}} Records / {{page.TotalPages | number}} Pages\r\n
\r\n
\r\n 1)\" (change)=\"handlePageChange($event)\">\r\n \r\n
\r\n
\r\n\r\n \r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport '../../rxjs-imports';\r\nimport { NgModule } from '@angular/core';\r\nimport { ClickOutsideModule } from 'ng4-click-outside';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { EstimatesRoutingModule } from './estimates-routing.module';\r\nimport { EstimatesContainerComponent } from './components/estimates-container/estimates-container.component';\r\nimport { EstimatesTableComponent } from './estimates-table/estimates-table.component';\r\n\r\n/**\r\n * Controls all modules, imports, providers and declarations for the Estimates route\r\n *\r\n * @export\r\n * @class EstimatesModule\r\n */\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n NgxDatatableModule,\r\n ClickOutsideModule,\r\n FormsModule,\r\n EstimatesRoutingModule,\r\n ],\r\n declarations: [\r\n EstimatesContainerComponent,\r\n EstimatesTableComponent\r\n ],\r\n providers: [],\r\n exports: [\r\n NgxDatatableModule\r\n ]\r\n})\r\nexport class EstimatesModule { }\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\n\r\n/**\r\n * Represents a filter option for estimating.\r\n */\r\nexport class Filter {\r\n Field: string;\r\n Operator: string;\r\n Value: string;\r\n // IsUnary: boolean; // this is automatic\r\n}\r\n\r\n/**\r\n * Represents the sorting criteria for estimates.\r\n */\r\nexport class SortingCriteria {\r\n Field: string;\r\n Direction: string;\r\n}\r\n\r\n/**\r\n * Represents pagination options for retrieving a subset of data.\r\n */\r\nexport class Pagination {\r\n PageNumber: number;\r\n PageSize: number;\r\n}\r\n\r\n/**\r\n * Represents the binary operators that can be used in filtering operations.\r\n */\r\nexport enum BinaryOperator {\r\n Equals,\r\n NotEquals,\r\n GreaterThan,\r\n LessThan,\r\n GreaterThanOrEquals,\r\n LessThanOrEquals,\r\n Contains,\r\n}\r\n\r\n/**\r\n * Represents the unary operators used for filtering estimates.\r\n */\r\nexport enum UnaryOperator {\r\n IsNull,\r\n IsNotNull,\r\n}\r\n\r\n/**\r\n * Represents the request payload for estimating.\r\n */\r\nexport interface EstimateRequest {\r\n Pagination: Pagination;\r\n Sorting: SortingCriteria[];\r\n Filters: Filter[];\r\n}\r\n\r\n/**\r\n * Represents a request object for retrieving estimates.\r\n */\r\nexport class EstimatesRequest {\r\n Pagination: Pagination;\r\n Sorting: SortingCriteria[];\r\n Filters: Filter[];\r\n\r\n /**\r\n * Creates an instance of EstimatesRequest.\r\n * @param pagination - The pagination options.\r\n * @param sorting - The sorting criteria.\r\n * @param filters - The filter options.\r\n */\r\n constructor(pagination?: Pagination, sorting?: SortingCriteria[], filters?: Filter[]) {\r\n this.Pagination = pagination || new Pagination();\r\n this.Sorting = sorting || [];\r\n this.Filters = filters || [];\r\n }\r\n\r\n /**\r\n * Converts the EstimatesRequest object to a JSON string.\r\n * @returns The JSON representation of the EstimatesRequest object.\r\n */\r\n toJson(): string {\r\n return JSON.stringify(this);\r\n }\r\n\r\n /**\r\n * Creates an EstimatesRequest object from a JSON string.\r\n * @param json - The JSON string to parse.\r\n * @returns A new EstimatesRequest object.\r\n */\r\n static fromJson(json: string): EstimatesRequest {\r\n const obj = JSON.parse(json);\r\n return new EstimatesRequest(obj.Pagination, obj.Sorting, obj.Filters);\r\n }\r\n}","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { UUID } from \"angular2-uuid\";\r\nimport { CreateContractCommand, CreateContractContactCommand, CreateCustomerCommand, CreateItemWebConsoleCommand, CreateQuoteWebConsoleCommand, CreateScaffoldCommand, CreateScaffoldWebConsoleCommand, CreateSiteCommand, ImportData, ItemStatusEnum, ItemTypeEnum, SiteAreaData, SiteAreaDetails, UpdateAreasCommand } from \"app/core/hub-api\";\r\nimport { ToggleButtonPanelEnum } from \"app/shared/components/toggle-button-panel/toggle-button-panel.component\";\r\nimport { EstimateImportData, SiteImportModalData, SiteImportWizard } from \"app/sites/models/site-import-modal-data\";\r\nimport { SiteImportScaffold } from \"app/sites/models/site-import-scaffold\";\r\nimport { SiteImportScaffoldItem } from \"app/sites/models/site-import-scaffold-item\";\r\nimport { SiteImportFileV1 } from \"app/sites/models/site-import-v1/site-import-file-v1\";\r\nimport { environment } from \"environments/environment\";\r\nimport { flow, partialRight, flatten } from \"lodash\";\r\nimport { map, filter } from \"rxjs\";\r\n\r\n/**\r\n * Represents the data required to import an estimate into smart manager\r\n */\r\nexport class ImportEstimateDataService {\r\n\r\n CreateSiteCommand: CreateSiteCommand;\r\n CreateCustomerCommand: CreateCustomerCommand;\r\n CreateContractCommand: CreateContractCommand;\r\n CreateQuoteCommand: CreateQuoteWebConsoleCommand;\r\n CreateItemCommands: CreateItemWebConsoleCommand[];\r\n CreateContractContactCommands: CreateContractContactCommand[];\r\n CreateScaffoldCommands: CreateScaffoldWebConsoleCommand[];\r\n\r\n\r\n public static generateImportEstimateData(modalData: SiteImportModalData): ImportData { //ImportEstimateData {\r\n\r\n const data = modalData.wizard.estimateImportData;\r\n const wizard = modalData.wizard;\r\n const siteImportFile = modalData.siteImportFile;\r\n\r\n const isNewSite = wizard.selectedSitePanel == ToggleButtonPanelEnum.Panel2;\r\n const isNewCustomer: boolean = wizard.selectedCustomerPanel == ToggleButtonPanelEnum.Panel2;;\r\n const isNewContract = wizard.selectedContractPanel == ToggleButtonPanelEnum.Panel2;\r\n\r\n const siteId = UUID.UUID();\r\n let defaultSiteAreaId = wizard.areas?.find(area => area.IsDefaultArea)?.SiteAreaId ?? UUID.UUID().toString(); // this is overridden below if this is a exiting site\r\n const contractId = UUID.UUID();\r\n const customerId = UUID.UUID();\r\n const quoteId = UUID.UUID();\r\n const quoteNumberIfNotProvided = UUID.UUID().toString();\r\n\r\n // Get Estimator Name From Import File\r\n const estimatorForeName = siteImportFile.EstimatorAddress.Contacts.length\r\n ? siteImportFile.EstimatorAddress.Contacts[0].ForeName\r\n : '';\r\n const estimatorSurName = siteImportFile.EstimatorAddress.Contacts.length\r\n ? siteImportFile.EstimatorAddress.Contacts[0].Surname\r\n : '';\r\n const estimatorName = estimatorForeName && estimatorSurName ? `${estimatorForeName} ${estimatorSurName}` : estimatorForeName;\r\n const featureFlags = environment.featureFlags as any;\r\n\r\n // check if we added a default area earlier in the wizard\r\n let updateSiteArea = true;\r\n if (wizard.areas && wizard.areas.length === 1) {\r\n if (wizard.areas[0].IsDefaultArea && !wizard.areas[0].SiteId) {\r\n updateSiteArea = false; // don't update the site area if we added a default area in the wizard because the api will do it for us\r\n }\r\n }\r\n\r\n // get the default site area id from the existing site\r\n if (!isNewSite) {\r\n let defaultSiteAreaForExistingSite: SiteAreaData = Object.values(wizard.existingSite.SiteAreas).find(area => area.IsDefaultArea);\r\n if (defaultSiteAreaForExistingSite) {\r\n defaultSiteAreaId = defaultSiteAreaForExistingSite.SiteAreaId;\r\n } else {\r\n // if no default area is found, use the first area\r\n defaultSiteAreaId = Object.values(wizard.existingSite.SiteAreas).map(area => area.SiteAreaId)[0];\r\n }\r\n }\r\n\r\n const importData = new ImportData();\r\n if (isNewSite) {\r\n importData.CreateSiteCommand = Object.assign(data.site, {\r\n SiteId: siteId,\r\n DefaultSiteAreaId: defaultSiteAreaId,\r\n StaffId: wizard.loggedInStaffId, // originally from LoggedInStaffService \r\n IsCameraAllowed: true,\r\n IsManageStockControl: false,\r\n });\r\n }\r\n\r\n\r\n if (updateSiteArea) {\r\n const updateAreasCommand: UpdateAreasCommand = {\r\n SiteId: (isNewSite) ? siteId : wizard.existingSite.SiteId,\r\n Areas: wizard.areas as SiteAreaDetails[]\r\n };\r\n importData.UpdateAreasCommand = updateAreasCommand;\r\n }\r\n\r\n if (isNewContract) {\r\n importData.CreateContractCommand = Object.assign(data.contract, {\r\n SiteId: isNewSite ? siteId : wizard.existingSite.SiteId,\r\n ContractId: contractId,\r\n CustomerId: isNewCustomer ? customerId : data.customer.CustomerId, // either the new customer id or the existing customer id\r\n IsScheduleRatesAgreed: wizard.newContract.IsScheduleRatesAgreed,\r\n CanSubmitDocumentsWithoutSignature: wizard.newContract.CanSubmitDocumentsWithoutSignature,\r\n AllowDismantleWithoutOffhire: wizard.newContract.AllowDismantleWithoutOffhire,\r\n IsCameraAllowed: wizard.newContract.IsCameraAllowed,\r\n });\r\n }\r\n\r\n if (isNewCustomer) {\r\n importData.CreateCustomerCommand = Object.assign(wizard.newCustomer, { CustomerId: customerId });\r\n }\r\n\r\n importData.CreateScaffoldCommands = data.scaffoldCommands.map(command => {\r\n return Object.assign(command, {\r\n ScaffoldId: UUID.UUID(),\r\n ContractId: isNewContract ? contractId : wizard.existingContract.ContractId,\r\n SiteAreaId: command.SiteAreaId ?? defaultSiteAreaId\r\n });\r\n });\r\n\r\n let thisQuoteNumber = (siteImportFile.QuotationNumber && siteImportFile.QuotationNumber != '000000000') ? siteImportFile.QuotationNumber : quoteNumberIfNotProvided;\r\n\r\n importData.CreateQuoteCommand = {\r\n ContractId: isNewContract ? contractId : wizard.existingContract.ContractId,\r\n QuoteId: quoteId,\r\n QuoteNumber: thisQuoteNumber,\r\n Estimator: estimatorName ? estimatorName : ''\r\n };\r\n\r\n if (data.contacts && data.contacts.length > 0) {\r\n importData.CreateContractContactCommands = data.contacts.map(command => {\r\n return Object.assign(command, {\r\n ContractId: isNewContract ? contractId : wizard.existingContract.ContractId,\r\n ContractContactId: UUID.UUID()\r\n });\r\n });\r\n }\r\n\r\n importData.CreateItemCommands = data.scaffoldItems.map(command => {\r\n const item = new CreateItemWebConsoleCommand();\r\n item.ContractId = isNewContract ? contractId : wizard.existingContract.ContractId;\r\n item.ItemName = command.itemName;\r\n item.ItemNumber = command.itemNumber.toString();\r\n item.QuoteNumber = thisQuoteNumber;\r\n item.QuoteId = quoteId;\r\n item.ItemId = UUID.UUID();\r\n // ItemStatus: ItemStatusEnum.Open;\r\n item.ItemType = ItemTypeEnum.Quoted;\r\n item.ScaffoldIds = command.scaffolds.filter(s => s.selected).map(s => s.ScaffoldId);\r\n item.AllocatedHours = command.allocatedHours;\r\n item.Tasks = featureFlags.timesheet ? command.tasks : null;\r\n return item;\r\n })\r\n\r\n return importData;\r\n };\r\n\r\n\r\n\r\n}\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Page } from '../../core/models/page';\r\nimport { PagedData } from '../../core/models/paged-data';\r\nimport { EstimateItem, Estimates } from '../models/estimate';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { HubApiSettingsService } from '../../core/hub-api';\r\nimport { BinaryOperator, EstimateRequest, UnaryOperator } from '../models/estimate-filter-options';\r\nimport moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\n\r\n/**\r\n * A server used to mock a paged data result from a server\r\n */\r\n@Injectable()\r\nexport class EstimatesService {\r\n /** The base URL for the estimates service. */\r\n private baseUrl: string = `${this.settingsService.getApiServiceBaseUrl()}estimates`;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { }\r\n\r\n /**\r\n * Sends a post request with the specified payload\r\n * @param payload The payload object to send in the request\r\n * @returns {Observable} An observable containing the response data\r\n */\r\n public requestEstimates(payload): Observable {\r\n /** The access token used for authentication. */\r\n const token: string = this.settingsService.getAccessToken();\r\n /** The headers used for the HTTP request. */\r\n const headers: HttpHeaders = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n /** The options used for the HTTP request. */\r\n const options = { headers: headers };\r\n return this.http.post(`${this.baseUrl}`, payload, options);\r\n }\r\n\r\n /**\r\n * Sends a get request to retrieve the estimate statuses\r\n * @returns {Observable} An observable containing the response data\r\n */\r\n public getEstimateStatus(): Observable {\r\n /** The access token used for authentication. */\r\n const token: string = this.settingsService.getAccessToken();\r\n /** The headers used for the HTTP request. */\r\n const headers: HttpHeaders = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n /** The options used for the HTTP request. */\r\n const options = { headers: headers };\r\n return this.http.get(`${this.baseUrl}/statuses`, options);\r\n }\r\n /**\r\n * Sends a get request to export the estimate with the specified ID\r\n * @param estimateId The ID of the estimate to export\r\n * @returns {Observable} An observable containing the response data\r\n */\r\n public exportEstimate(estimateId: string): Observable {\r\n /** The access token used for authentication. */\r\n const token: string = this.settingsService.getAccessToken();\r\n /** The headers used for the HTTP request. */\r\n const headers: HttpHeaders = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n return this.http.get(`${this.baseUrl}/${estimateId}/export`, {\r\n headers: headers,\r\n responseType: 'text'\r\n }).pipe(\r\n map(response => JSON.parse(response))\r\n );\r\n }\r\n\r\n /**\r\n * Updates the status of an estimate.\r\n *\r\n * @param estimateId - The ID of the estimate to update.\r\n * @param statusId - The ID of the new status for the estimate.\r\n * @returns An Observable that emits the updated estimate.\r\n */\r\n public updateStatus(estimateId: string, statusId: string): Observable {\r\n try {\r\n /** The access token used for authentication. */\r\n const token: string = this.settingsService.getAccessToken();\r\n /** The headers used for the HTTP request. */\r\n const headers: HttpHeaders = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n /** The options used for the HTTP request. */\r\n const options = { headers: headers };\r\n var payload = {\r\n StatusId: statusId\r\n };\r\n return this.http.put(`${this.baseUrl}/${estimateId}/update-status`, payload, options);\r\n } catch (error) {\r\n return error;\r\n }\r\n }\r\n\r\n /**\r\n * Checks if an estimate is locked.\r\n *\r\n * @param estimateId - The ID of the project.\r\n * @returns An Observable that emits whether the estimate is locked.\r\n */\r\n public isEstimateLocked(estimateId: string): Observable {\r\n try {\r\n /** The access token used for authentication. */\r\n const token: string = this.settingsService.getAccessToken();\r\n /** The headers used for the HTTP request. */\r\n const headers: HttpHeaders = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n /** The options used for the HTTP request. */\r\n const options = { headers: headers };\r\n return this.http.get(`${this.baseUrl}/${estimateId}/IsEstimateLocked`, options);\r\n } catch (error) {\r\n return error;\r\n }\r\n }\r\n\r\n /**\r\n * A method that mocks a paged server response\r\n * @param page The selected page\r\n * @returns {any} An observable containing the data\r\n */\r\n public getResults(page: Page, payload: EstimateRequest): Observable> {\r\n return this.requestEstimates(payload)\r\n .pipe(map(d => this.getPagedData(page, d)));\r\n }\r\n\r\n /**\r\n * Exports the data as a CSV file.\r\n * @returns A promise that resolves with the exported data.\r\n */\r\n public exportCsv(): Observable {\r\n /** The access token used for authentication. */\r\n const token: string = this.settingsService.getAccessToken();\r\n /** The headers used for the HTTP request. */\r\n const headers: HttpHeaders = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n /** The options used for the HTTP request. */\r\n const options = { headers: headers };\r\n (options as any).responseType = 'blob';\r\n return this.http.get(`${this.baseUrl}/exportcsv`, options).pipe(\r\n map(blob => {\r\n const dateTime = moment().format('D-MM-YY-hh-mm-ss');\r\n saveAs(blob, `${dateTime}-export-estimates.csv`);\r\n return blob;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Package data into a PagedData object based on the selected Page\r\n * @param page The page data used to get the selected data from data\r\n * @returns {PagedData} An array of the selected data and page\r\n */\r\n private getPagedData(page: Page, estimates: Estimates): PagedData {\r\n page.pageNumber = estimates.Pagination.CurrentPage;\r\n page.size = estimates.Pagination.PageSize;\r\n page.totalElements = estimates.Pagination.TotalPages;\r\n page.totalPages = estimates.Pagination.TotalPages;\r\n const pagedData = new PagedData();\r\n pagedData.data = estimates.Items;\r\n pagedData.page = page;\r\n return pagedData;\r\n }\r\n\r\n /**\r\n * Returns the string representation of the given binary operator.\r\n * @param operator - The binary operator.\r\n * @returns The string representation of the binary operator.\r\n */\r\n public getBinaryOperator(operator: BinaryOperator): string {\r\n switch (operator) {\r\n case BinaryOperator.Equals:\r\n return 'Equals';\r\n case BinaryOperator.NotEquals:\r\n return 'NotEquals';\r\n case BinaryOperator.GreaterThan:\r\n return 'GreaterThan';\r\n case BinaryOperator.LessThan:\r\n return 'LessThan';\r\n case BinaryOperator.GreaterThanOrEquals:\r\n return 'GreaterThanOrEquals';\r\n case BinaryOperator.LessThanOrEquals:\r\n return 'LessThanOrEquals';\r\n case BinaryOperator.Contains:\r\n return 'Contains';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n /**\r\n * Returns the string representation of the given unary operator.\r\n * @param operator - The unary operator.\r\n * @returns The string representation of the unary operator.\r\n */\r\n public getUnaryOperator(operator: UnaryOperator): string {\r\n switch (operator) {\r\n case UnaryOperator.IsNull:\r\n return 'IsNull';\r\n case UnaryOperator.IsNotNull:\r\n return 'IsNotNull';\r\n default:\r\n return '';\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { CreateStaffCommand, StaffDetailsWebAppData, EditStaffCommand, ApplicationSettingsData, StaffCommandService } from 'app/core/hub-api';\r\nimport { EulaSlaModalContext } from './eula-sla-modal-context';\r\nimport { ApplicationSettingsQueryService } from 'app/core/services/application-settings-query.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { StaffsQueryService } from 'app/core/services/staffs-query.service';\r\nimport { StaffDetailQueryService } from 'app/core/services/staff-detail-query.service';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n/**\r\n * Modal to show the EULA (End User License Agreement)\r\n * Contains the EULA text and a checkbox to accept the EULA\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-eula-sla-modal',\r\n templateUrl: './eula-sla-modal.component.html',\r\n styleUrls: ['./eula-sla-modal.component.scss']\r\n})\r\nexport class EulaSlaModalComponent implements OnInit, OnDestroy {\r\n /** Stores the passed in values to this modal */\r\n context: Partial;\r\n /** Stores the staff details data */\r\n StaffDetailsData: StaffDetailsWebAppData;\r\n /** Stores the application settings data where it contains the EULA accepted version */\r\n applicationData: ApplicationSettingsData;\r\n /** Whether the EULA is currently being saved/submitted. */\r\n saveInProgress = false;\r\n /** Stores any error message of the api calls */\r\n serverError = '';\r\n /** Stores the modal settings */\r\n modalSettings = {\r\n modalTitle: 'End User License Agreement',\r\n };\r\n /** Stores if the EULA was accepted */\r\n acceptEula = false;\r\n\r\n constructor(\r\n private applicationSettingsQueryService: ApplicationSettingsQueryService,\r\n private staffCommandService: StaffCommandService,\r\n private staffDetailQueryService: StaffDetailQueryService,\r\n private staffsQueryService: StaffsQueryService,\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService\r\n ) { }\r\n\r\n /** Gets the initial values from the function that calls this modal */\r\n ngOnInit(): void {\r\n this.context = this.modalService.config.initialState;\r\n this.StaffDetailsData = this.context.StaffDetailsData;\r\n this.applicationSettingsQueryService.applicationSettingsQuery(false).subscribe(data => this.applicationData = data);\r\n }\r\n\r\n /** Sets the EulaVersion */\r\n onSubmit(): void {\r\n this.saveInProgress = true;\r\n\r\n const command: CreateStaffCommand | EditStaffCommand = {\r\n ContactName: this.StaffDetailsData.ContactName,\r\n PhoneNumber: this.StaffDetailsData.PhoneNumber,\r\n RoleId: this.StaffDetailsData.RoleId,\r\n SiteDepotIds: this.StaffDetailsData.SiteDepotIds,\r\n StaffId: this.StaffDetailsData.StaffId,\r\n EmailAddress: this.StaffDetailsData.EmailAddress,\r\n Password: undefined,\r\n CanEstimate: this.StaffDetailsData.CanEstimate,\r\n QuickId: this.StaffDetailsData.QuickId,\r\n Deleted: this.StaffDetailsData.Deleted,\r\n RatesToMakeIneffective: null,\r\n RatesToAdd: null,\r\n RatesToDelete: null,\r\n EulaAgreedVersion: this.applicationData.EulaVersion,\r\n CompanyPosition: this.StaffDetailsData.CompanyPosition,\r\n };\r\n\r\n const result = this.staffCommandService.EditStaffCommand(command);\r\n result.subscribe(\r\n {\r\n next: () => {\r\n const obs$ = forkJoin([\r\n this.staffsQueryService.staffsQuery(false),\r\n this.staffDetailQueryService.staffDetailQuery(false, this.StaffDetailsData.StaffId)\r\n ])\r\n obs$.subscribe(() => {\r\n this.modalService.setDismissReason(this.StaffDetailsData.StaffId);\r\n this.bsModalRef.hide();\r\n });\r\n },\r\n error: (err) => {\r\n this.serverErrorCallback(err);\r\n }\r\n });\r\n }\r\n\r\n /** Shows the server error on the modal */\r\n private serverErrorCallback = (response: HttpErrorResponse): void => {\r\n this.serverError = response.error.Message;\r\n this.saveInProgress = false;\r\n throw response.error.Message;\r\n }\r\n\r\n /** Gets if the user has accepted the modal */\r\n onChange(e): void {\r\n this.acceptEula = e.target.checked;\r\n }\r\n\r\n /** Required by the AutoUnsubscribe */\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

END USER SOFTWARE APPLICATION LICENCE AGREEMENT

\r\n

Computer and Design Services Ltd (CADS)

\r\n
\r\n
\r\n IMPORTANT:\r\n

PLEASE READ THIS END USER LICENCE AGREEMENT CAREFULLY.

\r\n

INSTALLING OR USING CADS SOFTWARE CONSTITUTES ACCEPTANCE OF THIS AGREEMENT.

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

Computer and Design Services Ltd (CADS) is willing to licence its software to you only on the condition\r\n that\r\n you accept all of the terms contained in the Licence Agreement overleaf which has 33 Clauses.\r\n

\r\n

\r\n It is a legal agreement between you (either as an individual, firm, partnership, sole trader, corporate\r\n entity\r\n or\r\n organisation) as the End User and Computer and Design Services Ltd as the author or distributor for the\r\n software\r\n product or products identified below.\r\n

\r\n

\r\n The Software is protected by Copyright Laws and by international provisions as with other intellectual\r\n property.\r\n The\r\n Software is licensed not sold. Title to and ownership of the intellectual property rights associated with\r\n the\r\n Software Application and any copies remain with CADS and its suppliers.\r\n

\r\n

\r\n By installing this software, you, whether as owner or lessee of the Licence, agree to be bound by the\r\n terms\r\n and\r\n conditions of this agreement and to procure that your employees or those working for you in any capacity,\r\n direct\r\n or\r\n indirect, comply with its full terms. If you do not agree to the terms and conditions of this Agreement\r\n then\r\n you\r\n must not install, register, copy or use the software.\r\n

\r\n\r\n

This page is for information and does not form part of the Licencing Agreement.

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

1.1 Parties

\r\n

\r\n This Licence is a legal agreement between Computer and Design Services Limited, Arrowsmith Court, 10\r\n Station\r\n Approach, Broadstone, Dorset BH18 8AX (\"CADS\") and the End User hereinafter referred to as the \"Licensee\",\r\n being the person, individual, firm, partnership, sole trader, corporate entity or organisation named on:\r\n

\r\n

the CADS Confirmation of Order Form(s) or

\r\n

the CADS Acknowledgement of Order Form(s) or

\r\n

the CADS CD or DVD Licence Form

\r\n

by whom or on whose behalf this Licence is agreed by ticking the acceptance box at the end of the Licence\r\n displayed on initial installation of the software.

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

1.2 The Software

\r\n

This Licence governs the Licensee's use of the CADS Software Application(s) named on

\r\n

CADS Confirmation of Order Form(s) or

\r\n

CADS Acknowledgement of Order Form(s) or

\r\n

CADS CD or DVD Licence Form(s)

\r\n

including its programs, documentation, subsequent corrections, additions and modifications (\"the\r\n Software\"). This Licence shall replace and discharge all prior representations and agreements (if any)\r\n relating to use of the Software. In case of conflict, the terms of this Licence shall over-ride any terms or\r\n conditions imposed by the Licensee.

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

1.3 The Licence

\r\n

\r\n CADS owns or is otherwise authorised to licence the software and in consideration of you, the Licensee,\r\n agreeing to abide by the terms and conditions of this Licence, and subject to the payment of applicable\r\n licence and other related fees, hereby grants the Licensee a non-exclusive, non-transferable right to use\r\n the Software Application but only on the Licensee’s compatible computer system or systems, or devices for\r\n the Licensee’s internal business operations subject to the terms and conditions of this Licence. The\r\n Software is in use on a computer when it is loaded into the temporary memory or installed into the\r\n permanent\r\n memory. The Licensee shall not install, access or otherwise copy or use the Software except as expressly\r\n authorised by this Agreement and the Licensee agrees not to use the Software for any re-sale purposes.\r\n

\r\n

\r\n Where the software is supplied on a Single User USB Hardware Key (Dongle) basis the Licensee may install\r\n as\r\n many copies of the software as is required on compatible computers but shall only use the software on one\r\n compatible computer at a time with the Dongle attached.\r\n

\r\n

\r\n Where the software is supplied on a Single User basis to be used with a CADS Single-User Software Licence\r\n the Licensee may install one copy of the Software on one Central Processing Unit (CPU) of the compatible\r\n computer and may also keep one copy of the Software for security or archival purposes only. Except for\r\n such\r\n security copy, no other copies of any part of the Software not incidental to use of the Software as\r\n permitted in Clause 3 above shall be made and the Licensee shall not download the Software to or permit it\r\n to be accessed from any unlicensed equipment or by any third party. Should the Licensee wish to cease to\r\n use\r\n the software on the computer on which it has been installed then it can be removed without further\r\n reference. If the Licensee wishes to install the software on a different compatible computer then the\r\n Software Licence may be transferred with the assistance of the CADS Technical Support Team.\r\n

\r\n

\r\n Where the software is supplied on a multi concurrent user basis on a Local Area or Wide Area Network the\r\n Licensee may install as many copies of the software as required on compatible computers with the Network\r\n Dongle or the CADS Floating-Network Software Licence installed on the Network Server. The Licensee shall\r\n at\r\n no time use more copies of the software than have been authorised by the Network Dongle or the Software\r\n Licence.\r\n

\r\n

\r\n Where the Licensee is supplied with software for a Virtual Server or a Server and dumb terminal\r\n installation\r\n then a Network Dongle will be required at the virtual server that has been authorised for each copy of the\r\n software that is being used.\r\n

\r\n

\r\n The Licensee agrees that any copies of the Software Application shall contain the same proprietary notices\r\n which appear on and in the Software Application.\r\n

\r\n

\r\n The Licensee will not attempt to alter, modify, translate, reverse engineer, decompile, decrypt, extract,\r\n or\r\n disassemble or copy the software either in whole or part or incorporate it within any other software or to\r\n emulate or reverse engineer the Dongle so that the software may be used without the authorised Dongle\r\n issued\r\n by CADS or any third party.\r\n

\r\n

\r\n The Licensee further agrees that it shall not itself or through any subsidiary agent or third party modify\r\n vary, enhance, copy, sell, lease, licence, sub-licence, grant a security interest in or otherwise deal\r\n with\r\n the Software and or the Dongle and or the Software Licence or any part or parts or variations,\r\n modifications, copies releases, versions or enhancements or have any Software or other programme written\r\n or\r\n developed for itself based on any proprietary and/or confidential, information supplied to it by CADS\r\n otherwise than in accordance with the provisions of this Licence and without first having obtained the\r\n written consent of CADS.\r\n

\r\n

\r\n Nothing in this Licence permits the Licensee to derive the source or assembly code of files that are\r\n provided to the Licensee in executable form.\r\n

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

1.4 Distribution by Licensee

\r\n

\r\n The Licensee shall not distribute, rent, loan, lease, sell, sub-licence, or otherwise transfer all or any\r\n portion of the Software Application, or any rights granted in this Agreement, to any other person without\r\n the prior written consent of CADS. The Licensee shall not install or access, or allow the installation or\r\n access of, the Software Application over the Internet, including, without limitation, use in connection\r\n with\r\n a Web hosting or similar service, or make the Software Application available to third parties via the\r\n Internet on an End-User’s computer system or otherwise.\r\n

\r\n

\r\n The Licensee shall not modify, translate, adapt, arrange, or create derivative works based on the Software\r\n Application for any purpose. The Licensee may not use or export the Software Application outside of the\r\n country of purchase for any reason. The Licensee shall not assign, give or transfer the Software\r\n Application\r\n to another individual or entity. The Licensee is prohibited from (a) timesharing, service bureau,\r\n subscription service or rental use of the Software Application or (b) passing title to the Software\r\n Application to any other individual or (c) publication of any results of benchmark tests run on the\r\n Software\r\n Application. The Licensee acknowledges that the Software Application is the confidential information of\r\n CADS\r\n and its suppliers, and the Licensee agrees that under no circumstances may the Licensee disclose the\r\n Software Application to any third party.\r\n

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

1.5 Payment of Licence Fees

\r\n

\r\n In consideration of the grant of the Licence, the Licensee agrees to pay CADS all licence fees and other\r\n charges payable by virtue of the provisions of this Licence and acknowledges that CADS may issue upgraded\r\n versions of the Software to the Licensee for an extra fee, the amount of which will be determined at the\r\n absolute discretion of CADS. The Licensee shall be entitled to receive the upgraded Software only after it\r\n has paid CADS the notified fee.\r\n

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

1.6 Enhancement and Variations to the Software

\r\n

\r\n The Licensee shall not enhance or vary any part of the Software nor permit the whole or any part of the\r\n Software to be incorporated in any other software or used on any other equipment.\r\n

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

1.7 Additional Licences

\r\n

\r\n CADS will on request provide additional licences to increase the number of licensed Software users subject\r\n to the Licensee paying the then current market price and cost of the Software.\r\n

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

1.8 Use of the Software by the Licensee

\r\n

\r\n The Licensee shall use the software on the device or system at each and every location where it is\r\n installed\r\n in accordance with the following and for the purpose of this licence use of software shall mean:\r\n

\r\n\r\n

\r\n to store and/or run the Software on the System or device in accordance with the terms of this Licence\r\n

\r\n\r\n

\r\n to process data or instructions using the software\r\n

\r\n

\r\n to make a copy of the machine readable form of the Software for security and back up purposes.\r\n

\r\n

\r\n The Licensee shall procure and ensure that all users of any CADS Software that is Licenced to him, whether\r\n employees, sub-contractors, associates, affiliates, subsidiary or sister organisations abide by all the\r\n terms of the Licence.\r\n

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

1.9 Non Bespoke Software

\r\n

\r\n The Licensee acknowledges that the Software has not been developed to meet the Licensee’s individual\r\n requirements, and that it is therefore the Licensees responsibility to ensure that the facilities and\r\n functions of the Software as described in the Documentation meet their requirements.\r\n

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

1.10 Software Application Function

\r\n

\r\n In particular, the Software is not intended for use as a tool to ensure compliance with any laws,\r\n obligations, regulations guidance or codes of practice including but not limited to matters of Health and\r\n Safety. Any diagrams that may be included in the software or documentation are for information purposes\r\n only\r\n and are not detailed technical drawings and may omit components or features that are required in practice.\r\n Whilst reasonable efforts have been made to ensure that the Software and Documentation is accurate, CADS\r\n do\r\n not accept any responsibility for any associated errors, omissions or misleading statements. Except as\r\n specified in the Limitation of liability section of Clause 15 of this licence and to the extent lawfully\r\n permitted CADS hereby excludes all liability in connection with this Software and Documentation and any\r\n reliance you may place on the Software and/or Documentation.\r\n

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

1.11 Users of Software to be Proficient

\r\n

\r\n The software must only be used by suitably trained and skilled staff as an aid to design and specification\r\n and it is not intended as and must never be used as a substitute for professional skill, experience or\r\n expertise. The Licensee should always ensure that users of the Software either have themselves the\r\n necessary\r\n skill and experience or recourse to the necessary advice specific to the circumstances for which the\r\n software is being used and that it is not a substitute for on-site assessment.\r\n

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

1.12 Maintenance and Support

\r\n

\r\n CADS will, in respect of the software in Clause 1.2, on payment in advance of the appropriate maintenance\r\n fee, provide an annual Maintenance and Support Service. The terms under which such Maintenance and Support\r\n Services are supplied are set out on CADS website.\r\n

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

1.13 Intellectual Property & Confidentiality

\r\n

\r\n Subject to the rights granted to the Licensee by this Licence, the Licensee acknowledges that all and any\r\n proprietary rights in the Software worldwide, (including but not limited to copyright) and in all\r\n associated\r\n documentation and other materials related to the Software shall be and remain the sole property of CADS or\r\n its suppliers.\r\n

\r\n

\r\n The Software and all information, data, drawings, sketches, specifications, documents, software listings,\r\n source code, or object code is proprietary, secret and confidential to CADS. The Licensee hereby agrees\r\n that\r\n it shall use such information solely in accordance with the provisions of this Licence and that it shall\r\n take all measures necessary to maintain confidence and secrecy in the Software both for the duration of\r\n this\r\n Licence and after its termination, howsoever caused. Disclosure shall be limited to those members of the\r\n Licensee's staff who need access to the Software to enable the Licensee to exercise this Licence and shall\r\n not be to any Third Party. These confidentiality obligations extend to the structure, sequence,\r\n organisation\r\n and screen presentation of the Software.\r\n

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

1.14 Indemnity and Warranties

\r\n

\r\n CADS warrants to the Licensee that the Software will not infringe any copyright, patent or other\r\n intellectual property rights of any third party.\r\n

\r\n

\r\n The Licensee shall promptly give notice to CADS of any claim alleging infringement of any intellectual\r\n property right of any third party by the Software and CADS shall at its discretion either compromise or\r\n defend such claims. CADS shall have the right to replace or change the Software so as to avoid\r\n infringement\r\n of any third party's intellectual property rights.\r\n

\r\n

\r\n CADS warrants that for a period of 90 days the Software will when delivered perform substantially in\r\n accordance with CADS's published specifications but does not warrant that the Software is error free.\r\n Faulty\r\n media and documentation will be replaced during the warranty period free of charge on receipt by CADS of\r\n written notification from the Licensee setting out details of faults. The Licensee is responsible for loss\r\n or damage of all dongles received from CADS as part of the Licence. In case of loss of a dongle, CADS has\r\n the right to terminate the Licence and CADS is not obligated to replace any lost dongle. Damaged dongles\r\n may\r\n be returned to CADS and will be replaced, but CADS reserves the right to charge additional fees to cover\r\n the\r\n costs in that case. This warranty does not apply if the defect or fault in the Software results from the\r\n Licensee having amended or attempted to amend the Software or if the defect or fault in the Software\r\n results\r\n from the Licensee having used the Software in contravention of the terms of this Licence.\r\n

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

1.15 Liability

\r\n

\r\n CADS and its suppliers shall not be liable for any loss or damages, direct or indirect, consequential or\r\n financial suffered by the Licensee caused by the delivery, use or performance of the Software or for\r\n negligence or breach of contract by CADS in relation to the Software whether foreseeable or not and\r\n regardless of whether the Licensee or its suppliers have been advised of the possibility of such damages.\r\n

\r\n

\r\n Because CADS has no control over the way in which the Software may be used, the Licensee shall indemnify\r\n CADS against all third-party claims which may arise from possession or use of the Software not being\r\n claims\r\n of the kind described in Clause 9 above. CADS shall have no support or error correction obligation in\r\n respect of the Software other than as provided in Clause 10 above or by the terms of a separate\r\n Maintenance\r\n and Support Agreement made between the parties.\r\n

\r\n

\r\n CADS and its suppliers shall not under any circumstances whatsoever be liable to you, whether in contract,\r\n tort (including negligence), breach of statutory duty, or otherwise arising under or in connection with\r\n the\r\n licence including without limitation:\r\n

\r\n
    \r\n
  1. loss of profits, sales, business, or revenue
  2. \r\n
  3. business interruption
  4. \r\n
  5. loss of anticipated savings
  6. \r\n
  7. liability or injury to third persons
  8. \r\n
  9. loss or corruption of data or information
  10. \r\n
  11. loss of business opportunity, goodwill or reputation or
  12. \r\n
  13. any indirect, special or consequential loss or damage of any nature
  14. \r\n\r\n
\r\n
\r\n\r\n
\r\n

1.16 Liability Limits

\r\n

\r\n Other than the losses set out in Clause 15 (for which CADS are not liable) the maximum aggregate of the\r\n liability of CADS under or in connection with this Licence whether in contract, tort (including\r\n negligence)\r\n or otherwise, shall in all circumstances be limited to the price paid for the Software.\r\n

\r\n

\r\n Nothing in this licence shall limit or exclude our liability for:\r\n

\r\n
    \r\n
  1. death or personal injury resulting from our negligence
  2. \r\n
  3. any other liability that cannot be excluded or limited by English law.
  4. \r\n
\r\n
\r\n\r\n
\r\n

1.17 Privacy Statement

\r\n

\r\n CADS respects your right to privacy. Our software may collect and analyse general usage information about\r\n hardware, its configuration, software usage patterns, design outcomes and error reports to help us improve\r\n the quality of our service. We will not collect personal information about individual users and do not\r\n sell\r\n or otherwise give away any such information to unaffiliated third parties unless legally compelled to do\r\n so.\r\n

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

1.18 Audit Rights

\r\n

\r\n At any time during the Licence Term, CADS or its re-seller in any location may conduct or appoint an\r\n external auditor to conduct an audit in order to ensure compliance by the Customer with the terms of any\r\n Licences of CADS Software Applications. CADS or its re-seller as applicable shall provide no less than\r\n five\r\n days advance notice of Audit to the customer unless the Audit is carried out electronically.\r\n

\r\n

\r\n The Customer shall grant the Licensor CADS or the appointed external auditor reasonable assistance and\r\n co-operation and such access to premises, systems and other such material and data as may be reasonably\r\n necessary to determine the Customer’s compliance with any CADS licensing agreements. CADS or its external\r\n auditor shall ensure that such Audit will not interfere unreasonably with the legitimate business\r\n activities\r\n of the customer.\r\n

\r\n

\r\n The Audit may also be conducted electronically utilising the Audit functionality of the Software designed\r\n to\r\n enable CADS to automatically monitor the use of its software. The Customer expressly agrees and consents\r\n to\r\n such monitoring and the reporting of it to CADS to detect and notify CADS of CADS software installations\r\n or\r\n third party applications provided by CADS and the use of any unlicensed CADS software. That an electronic\r\n Audit has been carried out does not limit CADS right to carry out further Audits through non-electronic\r\n means.\r\n

\r\n

\r\n Should the Audit whether electronic or physical determine that the Customer is not in compliance with the\r\n Terms of the Licence for use issued by CADS, the Customer shall immediately remedy the situation either\r\n through purchase and payment for additional Licences or otherwise as well as compensating CADS for the\r\n cost\r\n of the Audit. Such compensation for costs shall be without prejudice to any rights or remedies that may be\r\n available to CADS whether at law or in equity, and whether due to any breach by the Customer of this\r\n Agreement.\r\n

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

1.19 CADS Obligations

\r\n

\r\n This Licence sets out the full extent of CADS obligations and liabilities in respect of the supply of the\r\n Software and Documentation. Except as expressly stated in this licence there are no conditions warranties,\r\n representations or other terms, express or implied, that are binding on us. Any condition, warranty,\r\n representation or other term concerning the supply of the Software and Documentation which might otherwise\r\n be implied into, or incorporated in, this Licence whether by statute, common law or otherwise, is excluded\r\n to the fullest extent permitted by law.\r\n

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

1.20 Length of Licence

\r\n

\r\n This Licence shall start on the ticking of the acceptance box by the Licensee and shall continue for a\r\n period of five years unless earlier terminated. The Licensee may terminate this Licence by giving to CADS\r\n 90\r\n days’ written notice on its ceasing to use the Software for the purposes of their business.\r\n

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

1.21 Termination

\r\n

\r\n CADS may terminate the Licensee's right to use the Software under this Licence on 30 days written notice\r\n if\r\n the Licensee breaches any of the terms, conditions, or provisions of this Licence or any obligation to\r\n CADS\r\n required by law or without prejudice to clause 18 above, if the Licensee fails to pay any sum due to CADS\r\n whether due under this Licence or not and/or if the Software Maintenance and Support Agreement is\r\n terminated\r\n (for whatever reason) if the Licensee, being a body corporate, shall present a petition or have a petition\r\n that is not discharged or stayed within 30 days presented by a creditor for its winding up, or shall\r\n convene\r\n a meeting to pass a revolution for voluntary winding up, or shall enter into any liquidation (other than\r\n for\r\n the purpose of a bona fide reconstruction or amalgamation); shall call a meeting of its creditors, or\r\n shall\r\n have a receiver of all or any of its undertaking or assets appointed, or shall be deemed by virtue of\r\n section 123 of the Insolvency Act 1986 to be able to pay its debts.\r\n

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

1.22 Return of Software and Documentation

\r\n

\r\n On termination for whatever reason, the Licensee shall return immediately all copies of the Software and\r\n associated Documentation to CADS and shall pay to CADS all costs and expenses, including legal and other\r\n fees incurred and all arrears of fees, charges and other payments arising in respect of the Software and\r\n the\r\n total amount of any Licence fees outstanding under this Licence or otherwise. Termination, howsoever or\r\n whenever occasioned shall be subject to the any rights and remedies CADS or its suppliers may have and\r\n under\r\n this Licence or in law.\r\n

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

1.23 Notices

\r\n

\r\n All notices to be given under this Licence shall be in writing and be presented at or posted to the\r\n addresses as indicated on the Confirmation of Order Form unless otherwise advised in writing. Notices\r\n shall\r\n be effective when presented at such addresses or 48 hours after posting if mailed by ordinary first class\r\n post.\r\n

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

1.24 Assignment

\r\n

\r\n The Licensee shall not be entitled to assign this licence or any of its obligations hereunder. The\r\n Licensee\r\n agrees that CADS shall be entitled to assign or sub-contract its rights and obligations under this\r\n agreement\r\n to a third party and the Licensee agrees to enter into a novation of the Licence to achieve such an\r\n assignment by CADS if CADS so directs the Licensee.\r\n

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

1.25 Third Party Rights

\r\n

\r\n Nothing in this Licence shall confer on any third party any right to enforce any term of this Licence\r\n under\r\n the Contracts (Rights of Third Parties) Act 1999 .\r\n

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

1.26 Taxes

\r\n

\r\n All charges and fees paid are exclusive of and do not include any taxes, duties, or similar charges imposed\r\n by any government. The Licensee agrees to pay or reimburse CADS for all federal, state, national, dominion,\r\n provincial, or local sales, use, personal property, excise, VAT or other taxes, fees or duties arising out\r\n of this agreement or the transactions contemplated by the Agreement.\r\n

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

1.27 Law

\r\n

\r\n The parties hereby agree that the Licence concluded between them constructed on these terms and conditions\r\n shall be construed in accordance with English Law and the parties shall submit to the non-exclusive\r\n jurisdiction of the English Courts.\r\n

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

1.28 Headings

\r\n

\r\n The headings of the terms and conditions herein contained are inserted for the convenience or reference\r\n only\r\n and are not intended to be part of or to affect the meaning or interpretation of any of the terms and\r\n conditions of this Licence.\r\n

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

1.29 Force Majeure

\r\n

\r\n No Party shall be liable for, nor shall any party be considered in breach of this agreement due to any\r\n failure to perform its obligations under this Agreement as a result of a cause beyond its control (each a\r\n “Force Majeure Event”), including any act of God or a public enemy, any act of terrorism, act of military,\r\n civil or regulatory authority, change in law or regulation, fire , flood, earthquake, storm or other like\r\n event, disruption outage of communications, power or other utility, labour problem, unavailability of\r\n supplies, or any other cause, whether similar or dissimilar to any of the foregoing; provided, however\r\n that\r\n upon learning of any Force Majeure event, the applicable party shall immediately notify the other party of\r\n such a Force Majeure Event.\r\n

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

1.30 Entire Agreement

\r\n

\r\n This Licence constitutes the entire agreement between the parties in relation to its subject matter and\r\n supersedes any prior agreements on these matters and any such agreements shall cease to have any further\r\n effect. It is also agreed that neither party has relied upon any representations nor other statements in\r\n entering into this Licence other than those set out herein. No purported amendments to this Licence shall\r\n be\r\n effective unless in writing and signed by duly appointed representatives of all parties.\r\n

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

1.31 Acknowledgement

\r\n

\r\n You acknowledge that you and any entity that obtained the Software and on whose behalf it is used and any\r\n other user of this installation have read the licence understand it and agree to be bound by its terms and\r\n conditions.\r\n

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

1.32 Severability

\r\n

\r\n In the event that any of these terms, conditions, provision shall be determined invalid, unlawful or\r\n unenforceable to any extent, such term, condition or provisions shall be severed from the remaining terms,\r\n conditions and provisions which shall continue to be valid to the fullest extent permitted by law.\r\n

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

1.33 Waiver

\r\n

\r\n Failure or neglect by CADS to enforce at any time any of the terms of this Licence shall not be deemed to\r\n be\r\n a waiver of CADS rights hereunder nor in any way affect the validity of the whole or any part of this\r\n Licence nor prejudice CADS rights to take subsequent action.\r\n

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

Copyright © Computer and Design Services Limited

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\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 const homeFilterHeaders = {\r\n all: 'All sites',\r\n mySites: 'My sites',\r\n depot: 'Depot',\r\n site: 'Site',\r\n customer: 'Customer'\r\n};\r\n","import { defaultRanges } from 'app/shared/values/dates';\r\nimport { Dayjs } from 'dayjs/esm';\r\nimport dayjs from 'dayjs/esm';\r\nimport localeData from 'dayjs/esm/plugin/localeData';\r\ndayjs.extend(localeData);\r\n/**\r\n * Controls what options are available for the date picker\r\n *\r\n * @export\r\n * @interface DatePickerOptions\r\n */\r\nexport class DatePickerOptions {\r\n\r\n constructor() {\r\n this.ranges = defaultRanges;\r\n this.alwaysShowCalendars = true;\r\n this.showClearButton = false;\r\n this.showCustomRangeLabel = true;\r\n this.showDropdowns = true;\r\n this.closeOnAutoApply = true;\r\n this.locale = {\r\n format: 'DD/MM/YYYY',\r\n displayFormat: 'DD/MM/YYYY',\r\n direction: 'ltr',\r\n weekLabel: 'W',\r\n separator: ' - ',\r\n cancelLabel: 'Cancel',\r\n applyLabel: 'Apply',\r\n clearLabel: 'Clear',\r\n customRangeLabel: 'Custom Range',\r\n daysOfWeek: dayjs.weekdaysMin(),\r\n monthNames: dayjs.monthsShort(),\r\n firstDay: dayjs.localeData().firstDayOfWeek()\r\n }\r\n }\r\n\r\n /** List of ranges to be displayed next to the calendar (Last Month, Last Year, etc) */\r\n ranges?: any;\r\n locale?: {\r\n /** 'MM/DD/YYYY', could be 'YYYY-MM-DDTHH:mm:ss.SSSSZ' */\r\n format?: string;\r\n /** 'MM/DD/YYYY', default is format value */\r\n displayFormat?: string;\r\n /** 'ltr', // could be rtl */\r\n direction?: string;\r\n /** e.g.'W', */\r\n weekLabel?: string;\r\n /** ' To ', // default is ' - ' */\r\n separator?: string;\r\n /** 'Cancel', default is 'Cancel' */\r\n cancelLabel?: string;\r\n /** 'Okay', // default is 'Apply' */\r\n applyLabel?: string;\r\n /** 'Clear', // default is 'Clear' */\r\n clearLabel?: string;\r\n /** 'Custom range' */\r\n customRangeLabel?: string;\r\n /** e.g. dayjs.weekdaysMin(), */\r\n daysOfWeek?: string[];\r\n /** e.g. dayjs.monthsShort(), */\r\n monthNames?: string[];\r\n /** first day is monday, e.g. 1 */\r\n firstDay?: number;\r\n };\r\n /** Hides or shows the calendars */\r\n alwaysShowCalendars?: boolean;\r\n /** Minimum available date on the calendar */\r\n minDate?: Dayjs;\r\n /** Maximum available date on the calendar */\r\n maxDate?: Dayjs;\r\n /** A list of invalid dates */\r\n invalidDates?: Dayjs[];\r\n /** A List of valid dates will exclude all dates that are no in this range */\r\n validDates?: Dayjs[];\r\n /** Placeholder for the input */\r\n placeholder?: string;\r\n /** Opens the date calendar in specific position */\r\n opens?: 'left' | 'right' | 'center';\r\n /** Drops the date calendar down or up */\r\n drops?: 'down' | 'up';\r\n /** Enables or disables the date picker clear button */\r\n showClearButton?: boolean;\r\n /** Enables or disables the date picker custom range label */\r\n showCustomRangeLabel?: boolean;\r\n /** Shows the month and year dropdowns on the date picker, defaults to true */\r\n showDropdowns?: boolean;\r\n /** Closes the date calendar on apply */\r\n closeOnAutoApply?: boolean;\r\n}\r\n\r\n","const splitScaffoldNumber = (sn) => {\r\n return {\r\n incremental: sn.split('-')[0],\r\n suffix: sn.split('-')[1]\r\n };\r\n};\r\n\r\nconst compareBasedOnSuffix = (suffix1, suffix2) => {\r\n\r\n if (!suffix2) { return 1; }\r\n if (!suffix1) { return -1; }\r\n\r\n const suffix1IsNumber = !isNaN(Number(suffix1));\r\n const suffix2IsNumber = !isNaN(Number(suffix2));\r\n\r\n if (suffix1IsNumber && suffix2IsNumber) {\r\n return parseInt(suffix1, 10) >= parseInt(suffix2, 10) ? 1 : -1;\r\n } else if (suffix1IsNumber && !suffix2IsNumber) {\r\n return 1;\r\n } else if (!suffix1IsNumber && suffix2IsNumber) {\r\n return -1;\r\n } else {\r\n return suffix1 >= suffix2 ? 1 : -1;\r\n }\r\n};\r\n\r\n// A comparator for comparing 2 scaffold numbers.\r\nexport const scaffoldNumberComparator = (sn1, sn2) => {\r\n\r\n if (typeof (sn2) === 'undefined') { return 1; }\r\n if (typeof (sn1) === 'undefined') { return -1; }\r\n\r\n const sn1Split = splitScaffoldNumber(sn1);\r\n const sn2Split = splitScaffoldNumber(sn2);\r\n\r\n if (isNaN(Number(sn2Split.incremental))) { return 1; }\r\n if (isNaN(Number(sn1Split.incremental))) { return -1; }\r\n\r\n if (parseInt(sn1Split.incremental, 10) > parseInt(sn2Split.incremental, 10)) {\r\n return 1;\r\n } else if (parseInt(sn1Split.incremental, 10) < parseInt(sn2Split.incremental, 10)) {\r\n return -1;\r\n } else {\r\n return compareBasedOnSuffix(sn1Split.suffix, sn2Split.suffix);\r\n }\r\n};\r\n\r\n// A comparator for comparing 2 scaffolds by their scaffold numbers.\r\nexport const scaffoldComparator = (scaffold1, scaffold2) => {\r\n\r\n const sn1 = scaffold1.ScaffoldNumber;\r\n const sn2 = scaffold2.ScaffoldNumber;\r\n\r\n return scaffoldNumberComparator(sn1, sn2);\r\n};\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { UUID } from 'angular2-uuid';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { ConfigurationQueryService } from '../../../core/services/configuration-query.service';\r\nimport { errorMessages } from '../../../shared/values/error-messages';\r\nimport { AddEditListItemModalContext } from '../../models/add-edit-list-item-modal-context';\r\nimport { FormComponent } from '../form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { LookupDataBase, ConfigurationCommandService } from 'app/core/hub-api';\r\n\r\n/**\r\n * Add Edit List Item Modal\r\n * Allows users to create new list settings\r\n *\r\n * @export\r\n * @class AddEditListItemModalComponent\r\n * @extends {ModalFormComponent} extends the generic modal form component\r\n * @implements {OnInit} Initialises the component\r\n */\r\n@Component({\r\n selector: 'hub-add-edit-list-item-modal',\r\n templateUrl: './add-edit-list-item-modal.component.html',\r\n styleUrls: ['./add-edit-list-item-modal.component.scss']\r\n})\r\nexport class AddEditListItemModalComponent extends FormComponent implements OnInit {\r\n /** Stores all parameters sent to this modal */\r\n context: Partial;\r\n /** Form Group control */\r\n form: UntypedFormGroup;\r\n /** Title input controller */\r\n titleFormControl: UntypedFormControl;\r\n /** Report Text input controller */\r\n reportTextFormControl: UntypedFormControl;\r\n /** Subtitle input controller */\r\n subtitleFormControl: UntypedFormControl;\r\n /** Group name dropdown controller */\r\n groupNameFormControl: UntypedFormControl;\r\n /** All validation messages for the respective form fields */\r\n validationMessages = {\r\n title: {\r\n required: errorMessages.required\r\n },\r\n reportText: {\r\n required: errorMessages.required\r\n },\r\n groupIndex: {\r\n required: errorMessages.required\r\n }\r\n };\r\n /** Stores the selected item */\r\n item: LookupDataBase;\r\n /** Stores all the group names */\r\n groupNames: any[];\r\n /** Stores the selected item sort order */\r\n itemSortOrder: number;\r\n /** Stores the list key to be used to create the command */\r\n listKey: string;\r\n /** Stores the list title to be used on the modal title */\r\n listTitle: string;\r\n /** Decides if the subtitle input is visible */\r\n showSubtitle: boolean;\r\n /** Decides if the report text input is visible */\r\n showReportText: boolean;\r\n\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n public configurationCommandService: ConfigurationCommandService,\r\n public configurationQueryService: ConfigurationQueryService,\r\n public modalService: BsModalService,\r\n ) { super(); }\r\n\r\n /**\r\n * Component Initialisation\r\n *\r\n * @memberof AddEditListItemModalComponent\r\n */\r\n public ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.item = this.getNewItem();\r\n // the group names are a string list, for the ng-select it requires a property to link the id and name\r\n const _groupNames = this.context.groupNames;\r\n this.groupNames = [];\r\n if (_groupNames && _groupNames.length) {\r\n _groupNames.forEach(g => {\r\n this.groupNames.push({ name: g });\r\n });\r\n }\r\n this.itemSortOrder = this.context.itemSortOrder;\r\n this.listKey = this.context.listKey;\r\n this.listTitle = this.context.listTitle;\r\n\r\n this.showReportText = this.context.showReportText;\r\n this.showSubtitle = this.context.showSubtitle;\r\n\r\n this.titleFormControl = new UntypedFormControl(this.item.Title, Validators.required);\r\n this.reportTextFormControl = this.showReportText\r\n ? new UntypedFormControl(this.item.ReportText, Validators.required) : new UntypedFormControl(this.item.ReportText);\r\n this.subtitleFormControl = new UntypedFormControl(this.item.Subtitle);\r\n this.groupNameFormControl = this.groupNames && this.groupNames.length ? new UntypedFormControl(this.groupNames[0], Validators.required) : new UntypedFormControl(undefined);\r\n this.form = new UntypedFormGroup({\r\n title: this.titleFormControl,\r\n reportText: this.reportTextFormControl,\r\n groupName: this.groupNameFormControl,\r\n subtitle: this.subtitleFormControl\r\n });\r\n super.ngOnInit();\r\n }\r\n\r\n /**\r\n * Generates a new list item\r\n *\r\n * @private\r\n * @returns {LookupDataBase}\r\n * @memberof AddEditListItemModalComponent\r\n */\r\n private getNewItem(): LookupDataBase {\r\n return {\r\n GroupTitle: '',\r\n Code: '',\r\n Title: '',\r\n Subtitle: '',\r\n ReportText: '',\r\n RequireFurtherInformation: false,\r\n SortOrder: 0,\r\n IconName: '',\r\n ReplacedWithId: '',\r\n Deleted: false,\r\n IsDefault: false\r\n };\r\n }\r\n\r\n\r\n /**\r\n * Detects when the selected group name and sets it to the form\r\n *\r\n * @param {string} groupName selected group name\r\n * @returns {void}\r\n * @memberof AddEditSettingsModalComponent\r\n */\r\n public onSelectedGroupNameChanged(groupName: string): void {\r\n this.form.controls.groupName.setValue(groupName);\r\n }\r\n\r\n /**\r\n * When the user clicks save it will trigger validation then it will send the command to the api\r\n *\r\n * @param {*} formValues\r\n * @memberof AddEditListItemModalComponent\r\n */\r\n public onSubmit(formValues: any): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n const command: any = {\r\n Title: formValues.title,\r\n ReportText: formValues.reportText,\r\n SortOrder: this.itemSortOrder,\r\n GroupTitle: formValues.groupName || '',\r\n Subtitle: formValues.subtitle,\r\n RequireFurtherInformation: this.item.RequireFurtherInformation,\r\n };\r\n command[`${this.listKey}Id`] = UUID.UUID();\r\n const commandMethod = `Create${this.listKey}Command`;\r\n this.configurationCommandService[commandMethod](command).subscribe(() => {\r\n this.configurationQueryService.configurationQuery(false).subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalRef.hide();\r\n });\r\n });\r\n }\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { flow, map, partialRight, sortBy } from 'lodash';\r\nimport { AddEditStaffModalContext } from '../../models/add-edit-staff-modal-context';\r\nimport { Observable, forkJoin, combineLatest } from 'rxjs';\r\nimport { StaffDetailQueryService } from '../../../core/services/staff-detail-query.service';\r\nimport { StaffsQueryService } from '../../../core/services/staffs-query.service';\r\nimport { AutoGenerateQuickIdService } from '../../../core/services/auto-generate-quickId.service';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { errorMessages } from '../../../shared/values/error-messages';\r\nimport { matchControlValidator } from '../../validators/match-control-validator';\r\nimport { mustNotExistValidator } from '../../validators/must-not-exist.validator';\r\nimport { roleIds } from '../../../shared/values/role-ids';\r\nimport { emailAddressRegex } from 'app/shared/regex/email-address.regex';\r\nimport { passwordControlRegex } from 'app/shared/regex/password.regex';\r\nimport { quickIdControlRegex } from 'app/shared/regex/quickId.regex';\r\nimport { environment } from 'environments/environment';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { DepotsQueryService } from 'app/core/services/depots-query.service';\r\nimport { FormComponent } from '../form/form.component';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { LoggedInStaffService } from 'app/core/services/logged-in-staff-service';\r\nimport { ConfigurationData, RolesData, StaffDetailsWebAppData, StaffData, DepotData, StaffCommandService, CreateStaffCommand, EditStaffCommand } from 'app/core/hub-api';\r\n\r\n/**\r\n * Add edit staff modal\r\n * Allows to add new users to SMART Manager\r\n *\r\n * @export\r\n * @class AddEditStaffModalComponent\r\n * @extends {ModalFormComponent} extends the generic modal form component\r\n * @implements {OnInit} Initialises the component\r\n * @implements {OnDestroy} Stops all subscriptions and closes the component\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-edit-staff-modal',\r\n templateUrl: './add-edit-staff-modal.component.html',\r\n styleUrls: ['./add-edit-staff-modal.component.scss']\r\n})\r\nexport class AddEditStaffModalComponent extends FormComponent implements OnInit, OnDestroy {\r\n /** Stores the all parameters sent to this modal */\r\n context: AddEditStaffModalContext;\r\n /** Detects if the form is edit or add */\r\n editMode: boolean;\r\n /** Detects if the logged in user is editing his own profile */\r\n profileMode: boolean;\r\n /** Detects if the quickId already exists */\r\n quickIdExist: boolean;\r\n /** Form Group control */\r\n form: UntypedFormGroup;\r\n /** Staff name input controller */\r\n staffNameFormControl: UntypedFormControl;\r\n /** Company Position */\r\n companyPositionFormControl: UntypedFormControl;\r\n /** Role dropdown controller */\r\n roleIdFormControl: UntypedFormControl;\r\n /** Can Estimate radio button controller */\r\n canEstimateFormControl: UntypedFormControl;\r\n /** Depots dropdown controller */\r\n depotIdsFormControl: UntypedFormControl;\r\n /** Email input controller */\r\n emailFormControl: UntypedFormControl;\r\n /** Phone number input controller */\r\n phoneNumberFormControl: UntypedFormControl;\r\n /** Password input controller */\r\n passwordFormControl: UntypedFormControl;\r\n /** Confirm Password input controller */\r\n confirmPasswordFormControl: UntypedFormControl;\r\n /** Quick Id input controller */\r\n quickIdFormControl: UntypedFormControl;\r\n /** The new value for staff.Deleted */\r\n deleteStaff: boolean;\r\n /** All validation messages for the respective form fields */\r\n validationMessages = {\r\n staffName: {\r\n required: errorMessages.required\r\n },\r\n roleId: {\r\n required: errorMessages.required\r\n },\r\n depotIds: {\r\n required: errorMessages.required\r\n },\r\n quickId: {\r\n pattern: errorMessages.invalidQuickId\r\n },\r\n email: {\r\n required: errorMessages.required,\r\n pattern: errorMessages.emailInvalid,\r\n mustNotExist: errorMessages.duplicateEmail\r\n },\r\n password: {\r\n required: errorMessages.required,\r\n pattern: errorMessages.passwordValidation,\r\n minlength: errorMessages.passwordMinLength\r\n },\r\n confirmPassword: {\r\n matchControl: errorMessages.passwordsMustMatch\r\n },\r\n companyPosition: {\r\n pattern: errorMessages.maxLength50\r\n },\r\n };\r\n /** Stores the configuration data */\r\n configuration: ConfigurationData;\r\n /** Stores all roles and excludes timesheet roles in case it is feature flagged */\r\n staffRoles: RolesData[];\r\n\r\n /** Stores all role ids available in SMART Manager */\r\n roleIds = roleIds;\r\n /** Stores the selected user */\r\n staff: StaffDetailsWebAppData;\r\n /** Stores all staff */\r\n staffs: StaffData[];\r\n /** Stores currently logged in user */\r\n loggedInStaff: StaffDetailsWebAppData;\r\n /** Stores all depots */\r\n depots: DepotData[];\r\n /** Stores all feature flags */\r\n featureFlags = environment.featureFlags as any;\r\n /** Detects if all data was loaded before showing the form */\r\n isLoading = true;\r\n maxLength50 = 50;\r\n\r\n /**\r\n * Gets the title of the modal (e.g. Edit Staff or Add Staff or Deleted Staff)\r\n */\r\n public get title(): string {\r\n const titleFirstWord = this.editMode ? (this.isformEditable) ? 'Edit' : 'Deleted' : 'Add';\r\n const titleSecondWord = this.profileMode ? 'Profile' : 'Staff';\r\n const titleThirdWord = this.editMode ? (this.isformEditable) ? '' : '- Read Only' : '';\r\n return `${titleFirstWord} ${titleSecondWord} ${titleThirdWord}`;\r\n }\r\n\r\n // GET property to determine if fields should be ediable on the UI\r\n public get areFormFieldsDisabled() : string | null {\r\n return (!this.isformEditable ? 'disabled' : null);\r\n }\r\n\r\n public get isformEditable() : boolean{\r\n return (this.staff.Deleted && !this.deleteStaff) || (!this.staff.Deleted);// && !this.deleteStaff) ;\r\n }\r\n\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService,\r\n private staffCommandService: StaffCommandService,\r\n private staffDetailQueryService: StaffDetailQueryService,\r\n private staffsQueryService: StaffsQueryService,\r\n private toasterService: ToasterService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private depotsQueryService: DepotsQueryService,\r\n private autoGenerateQuickIdService: AutoGenerateQuickIdService,\r\n private loggedInStaffService: LoggedInStaffService,\r\n\r\n ) {\r\n super();\r\n }\r\n\r\n /**\r\n * Component Initialisation\r\n *\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n ngOnInit(): void {\r\n const obs$ = combineLatest(\r\n [this.configurationQueryService.configurationQuery(true),\r\n this.depotsQueryService.depotsQuery(false),\r\n this.staffsQueryService.staffsQuery(false),\r\n this.loggedInStaffService.loggedInStaffQuery(false)\r\n ]\r\n );\r\n obs$.subscribe(latest => {\r\n this.configuration = latest[0];\r\n this.depots = latest[1];\r\n this.staffs = latest[2];\r\n this.loggedInStaff = latest[3];\r\n\r\n const staffRoles = flow([map, partialRight(sortBy, (r: RolesData) => r.RoleName.toLowerCase())])(this.configuration.Roles);\r\n\r\n this.staffRoles = !this.featureFlags.timesheet\r\n ? staffRoles.filter(\r\n roles => roles.RoleId !== roleIds.contractsManager && roles.RoleId !== roleIds.scaffolder && roles.RoleId !== roleIds.payrollOfficer\r\n )\r\n : staffRoles;\r\n\r\n this.staff = this.staff || this.getNewStaff();\r\n this.profileMode = this.staff && this.staff.StaffId === this.loggedInStaff.StaffId;\r\n const titleFirstWord = this.editMode ? 'Edit' : 'Add';\r\n const titleSecondWord = this.profileMode ? 'Profile' : 'Staff';\r\n\r\n this.deleteStaff = this.staff.Deleted;\r\n\r\n this.generateForm();\r\n\r\n this.isLoading = false;\r\n super.ngOnInit();\r\n });\r\n }\r\n\r\n /**\r\n * Generates the form controls and validation\r\n *\r\n * @public this is required to be public so it can be used in unit tests\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n public generateForm(): void {\r\n this.staffNameFormControl = new UntypedFormControl(this.staff.ContactName, [Validators.required]);\r\n\r\n this.roleIdFormControl = new UntypedFormControl(this.staff.RoleId, [Validators.required]);\r\n\r\n this.canEstimateFormControl = new UntypedFormControl(this.staff.CanEstimate);\r\n\r\n this.companyPositionFormControl = new UntypedFormControl(this.staff.CompanyPosition, [Validators.pattern(/^.{1,50}$/)]);\r\n\r\n const staffDepotIds = this.staff.SiteDepotIds.filter(id => this.depots.map(d => d.SiteDepotId).includes(id));\r\n const staffDepotValidators = this.staff.RoleId === roleIds.admin ? [] : [Validators.required];\r\n this.depotIdsFormControl = new UntypedFormControl(staffDepotIds, staffDepotValidators);\r\n\r\n const otherStaffEmails = this.staffs.filter(s => s.StaffId !== this.staff.StaffId).map(s => s.EmailAddress);\r\n this.emailFormControl = new UntypedFormControl(this.staff.EmailAddress, [\r\n Validators.required,\r\n Validators.pattern(emailAddressRegex),\r\n mustNotExistValidator(otherStaffEmails, false)\r\n ]);\r\n\r\n this.quickIdFormControl = new UntypedFormControl(this.staff.QuickId, [\r\n Validators.pattern(quickIdControlRegex)\r\n ]);\r\n\r\n this.phoneNumberFormControl = new UntypedFormControl(this.staff.PhoneNumber);\r\n this.passwordFormControl = this.editMode\r\n ? new UntypedFormControl('', Validators.pattern(passwordControlRegex))\r\n : new UntypedFormControl('', [Validators.required, Validators.pattern(passwordControlRegex)]);\r\n this.confirmPasswordFormControl = new UntypedFormControl('', matchControlValidator(this.passwordFormControl));\r\n this.form = new UntypedFormGroup({\r\n staffName: this.staffNameFormControl,\r\n companyPosition: this.companyPositionFormControl,\r\n quickId: this.quickIdFormControl,\r\n roleId: this.roleIdFormControl,\r\n canEstimate: this.canEstimateFormControl,\r\n depotIds: this.depotIdsFormControl,\r\n email: this.emailFormControl,\r\n phoneNumber: this.phoneNumberFormControl,\r\n password: this.passwordFormControl,\r\n confirmPassword: this.confirmPasswordFormControl\r\n });\r\n }\r\n\r\n /**\r\n * Return staff's first letter of first name and last name\r\n * e.g.- staff name is John Samuel and output should be JS\r\n *\r\n * @param {string} inputStr input value\r\n * @returns {string}\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n getInitials(inputStr: string): string {\r\n let customerInitials = inputStr.match(/\\b(\\w)/g) as any;\r\n if (!customerInitials) {\r\n return '';\r\n }\r\n customerInitials = customerInitials.slice(0, 2);\r\n\r\n if (typeof customerInitials[0] !== 'undefined') {\r\n customerInitials[0] = customerInitials[0].toUpperCase();\r\n }\r\n if (typeof customerInitials[1] !== 'undefined') {\r\n customerInitials[1] = customerInitials[1].toLowerCase();\r\n }\r\n return customerInitials.join('');\r\n }\r\n\r\n /**\r\n * Returns the quickId with respect to different pattern\r\n * e.g. - staff name is John Samuel\r\n * pattern 01 : return staff initial(JS)\r\n * pattern 02 : return single digit number with staffInitial (JS1-JS9)\r\n * pattern 03 : return single letter with staffInitial (JSA-JSZ)\r\n * pattern 04 : return three digit number (111-999)\r\n * pattern 05 : return three letter alphabet (AAA-ZZZ)\r\n * pattern 06 : return empty string\r\n *\r\n * @param {*} event\r\n * @returns {string}\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n public generateQuickId(event): string {\r\n let _quickId = '';\r\n if (event.target.value) {\r\n const _staffInitials = this.getInitials(event.target.value).toUpperCase();\r\n _quickId = this.autoGenerateQuickIdService.getQuickId(_staffInitials, this.staffs);\r\n this.quickIdFormControl.setValue(_quickId);\r\n }\r\n return _quickId;\r\n\r\n }\r\n\r\n /**\r\n * Detects if the quickId already exists\r\n *\r\n * @param {*} event input event\r\n * @returns {boolean}\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n public isExistingQuickId(event): boolean {\r\n const otherQuickId = this.staffs.filter(s => s.QuickId !== this.staff.QuickId).map(s => s.QuickId);\r\n if (event.target.value) {\r\n this.quickIdExist = otherQuickId.includes(event.target.value);\r\n return this.quickIdExist;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Creates a new staff object\r\n *\r\n * @private\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n private getNewStaff = (): StaffDetailsWebAppData =>\r\n Object.assign(new StaffDetailsWebAppData(), {\r\n StaffId: UUID.UUID(),\r\n ContactName: '',\r\n RoleId: roleIds.admin,\r\n CanEstimate: false,\r\n QuickId: '',\r\n SiteDepotIds: [],\r\n EmailAddress: '',\r\n PhoneNumber: ''\r\n })\r\n\r\n /**\r\n * Detects if the user role has been changed to Scaffolder\r\n * This will decide if required to trigger a message on the UI\r\n *\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n get changeRoleToScaffolder(): boolean {\r\n return this.editMode && this.staff.RoleId !== roleIds.scaffolder && this.roleIdFormControl.value === roleIds.scaffolder;\r\n }\r\n\r\n /**\r\n * Sets the user status as deleted and updates the validation\r\n *\r\n * @param {boolean} deleted\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n public setStaffAsDeleted(deleted: boolean): void {\r\n this.deleteStaff = deleted;\r\n const validators = this.staff.Deleted && !this.deleteStaff ? [Validators.minLength(6), Validators.required] : [Validators.minLength(6)];\r\n this.passwordFormControl.setValidators(validators);\r\n this.passwordFormControl.updateValueAndValidity();\r\n }\r\n\r\n /**\r\n * Detects when the selected role and sets it to the form\r\n * applies validation accordingly\r\n * Controlled from the UI\r\n *\r\n * @param {string} roleId selected role id\r\n * @returns {void}\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n public onSelectedRoleChanged(roleId: string): void {\r\n // If the staff is a Scaffolder and changes to other role it will require a new password\r\n if (this.staff.RoleId === roleIds.scaffolder && roleId !== roleIds.scaffolder) {\r\n this.passwordFormControl.setValidators([Validators.required, Validators.pattern(passwordControlRegex)]);\r\n this.passwordFormControl.updateValueAndValidity();\r\n this.confirmPasswordFormControl.setValidators(matchControlValidator(this.passwordFormControl));\r\n this.confirmPasswordFormControl.updateValueAndValidity();\r\n }\r\n // sets the roleId to the form\r\n this.form.controls.roleId.setValue(roleId);\r\n // Sets validation for admin - depots dropdown is hidden and does not need validation\r\n const validators = roleId === roleIds.admin ? [] : Validators.required;\r\n this.depotIdsFormControl.setValidators(validators);\r\n this.depotIdsFormControl.updateValueAndValidity();\r\n }\r\n\r\n /**\r\n * Detects when the selected depots and sets them to the form\r\n * Controlled from the UI\r\n *\r\n * @param {string} depotIds selected depot ids\r\n * @returns {void}\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n public onSelectedDepotChanged(depotIds: string[]): void {\r\n this.form.controls.depotIds.setValue(depotIds);\r\n }\r\n\r\n /**\r\n * Checks if the roleId can estimate\r\n *\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n public canEstimate = (roleId: string): boolean =>\r\n roleId !== roleIds.siteSupervisor &&\r\n roleId !== roleIds.safetyManager &&\r\n roleId !== roleIds.inspector &&\r\n roleId !== roleIds.scaffolder &&\r\n roleId !== roleIds.payrollOfficer\r\n\r\n /**\r\n * Gets the form values, checks for validation and submits to API\r\n * will use different endpoints for edit and add\r\n *\r\n * @param {*} formValues all form values\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n public onSubmit(formValues): void {\r\n if ((formValues.roleId === roleIds.scaffolder && formValues.staffName && formValues.depotIds.length) || this.validateForm()) {\r\n this.saveInProgress = true;\r\n const command: CreateStaffCommand | EditStaffCommand = {\r\n ContactName: formValues.staffName,\r\n CompanyPosition: formValues.companyPosition,\r\n PhoneNumber: formValues.phoneNumber,\r\n RoleId: formValues.roleId,\r\n SiteDepotIds: formValues.depotIds,\r\n StaffId: this.staff.StaffId,\r\n EmailAddress: formValues.email,\r\n Password: formValues.password || undefined,\r\n CanEstimate: formValues.canEstimate,\r\n QuickId: formValues.quickId,\r\n Deleted: this.deleteStaff,\r\n RatesToMakeIneffective: null,\r\n RatesToAdd: null,\r\n RatesToDelete: null,\r\n EulaAgreedVersion: this.staff.EulaAgreedVersion\r\n };\r\n\r\n let result: Observable;\r\n\r\n if (formValues.roleId === roleIds.scaffolder) {\r\n result = this.editMode\r\n ? this.staffCommandService.EditStaffNoAccessCommand(command)\r\n : this.staffCommandService.CreateStaffNoAccessCommand(command);\r\n } else {\r\n result = this.editMode ? this.staffCommandService.EditStaffCommand(command) : this.staffCommandService.CreateStaffCommand(command);\r\n }\r\n\r\n result.subscribe(() => {\r\n const obs$ = forkJoin([\r\n this.staffsQueryService.staffsQuery(false),\r\n this.staffDetailQueryService.staffDetailQuery(false, this.staff.StaffId)\r\n ]).subscribe(() => {\r\n this.saveInProgress = false;\r\n this.modalService.setDismissReason(this.staff.StaffId);\r\n this.bsModalRef.hide();\r\n this.toasterService.pop('success', `Staff ${this.editMode ? 'updated' : 'created'}`);\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n\r\n /**\r\n * Required by the AutoUnsubscribe\r\n *\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n public ngOnDestroy(): void { }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n Warning: Account is inactive. Please re-open the staff/profile if you would like to make changes\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
This QuickId already exists.
\r\n
\r\n\r\n \r\n \r\n
Changing role from\r\n {{staff.Roles[0]}} to Scaffolder. User will no longer be able to login.
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n Delete account\r\n \r\n \r\n The account will be deleted and\r\n will be removed from all sites. Click\r\n undo if this was a mistake!\r\n \r\n \r\n Reopen account\r\n \r\n \r\n The account will be reopened. Click\r\n undo if this was a mistake!\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { UntypedFormControl, Validators, UntypedFormGroup } from '@angular/forms';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { errorMessages } from '../../../shared/values/error-messages';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { StaffsQueryService } from '../../../core/services/staffs-query.service';\r\nimport { StaffDetailQueryService } from '../../../core/services/staff-detail-query.service';\r\nimport { first, debounceTime } from 'rxjs/operators';\r\nimport { AddEditStaffRatesModalContext } from '../../../staff/components/models/add-staff-rates-modal-context';\r\nimport { roleIds } from 'app/shared/values/role-ids';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { FormComponent } from '../form/form.component';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { DatePickerSelectData } from '../../models/date-picker-select-data';\r\nimport { DatePickerOptions } from 'app/reports/models/date-picker-options';\r\nimport dayjs from 'dayjs/esm';\r\nimport isoWeek from 'dayjs/esm/plugin/isoWeek';\r\nimport weekday from 'dayjs/esm/plugin/weekday';\r\nimport utc from 'dayjs/esm/plugin/utc';\r\nimport { DateService } from 'app/shared/services/date.service';\r\nimport { StaffDetailsWebAppData, StaffCommandService, StaffRate, EditStaffCommand } from 'app/core/hub-api';\r\nimport { datesDayjs } from 'app/shared/values/dates';\r\ndayjs.extend(isoWeek);\r\ndayjs.extend(weekday);\r\ndayjs.extend(utc);\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-edit-staff-modal',\r\n templateUrl: './add-edit-staff-rates-modal.component.html',\r\n styleUrls: ['./add-edit-staff-rates-modal.component.scss']\r\n})\r\nexport class AddEditStaffRatesModalComponent extends FormComponent implements OnInit, OnDestroy {\r\n context: Partial;\r\n rateOneDateFormControl: UntypedFormControl;\r\n rateTwoDateFormControl: UntypedFormControl;\r\n rateOneFormControl: UntypedFormControl;\r\n rateTwoFormControl: UntypedFormControl;\r\n form: UntypedFormGroup;\r\n\r\n datePickerDays: any = [];\r\n\r\n validationMessages = {\r\n rateOne: {\r\n required: errorMessages.required,\r\n min: 'Please enter a positive value',\r\n max: 'Please enter a value less than 99.99',\r\n pattern: 'Please enter a value with two decimal places.'\r\n },\r\n rateTwo: {\r\n required: errorMessages.required,\r\n min: 'Please enter a positive value',\r\n max: 'Please enter a value less than 99.99',\r\n pattern: 'Please enter a value with two decimal places.'\r\n },\r\n rateOneDate: {\r\n required: errorMessages.required\r\n },\r\n rateTwoDate: {\r\n required: errorMessages.required\r\n }\r\n };\r\n // TODO: Improve after Lyndon release\r\n rateType = {\r\n r1: '86bbb760-d0ea-46c7-866c-d05363a8fdf3',\r\n r2: '7e5a630c-71fd-4085-b6e2-0f1a6a613d08'\r\n };\r\n staff: StaffDetailsWebAppData;\r\n editMode: boolean;\r\n title: string;\r\n datePickerOptions: DatePickerOptions;\r\n staffRateTwo: any;\r\n staffRateOne: any;\r\n dateFormatWithoutOffset = 'YYYY-MM-DDTHH:mm:ss';\r\n\r\n invalidDates: any = [];\r\n constructor(\r\n public modalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private staffCommandService: StaffCommandService,\r\n private staffsQueryService: StaffsQueryService,\r\n private staffDetailQueryService: StaffDetailQueryService,\r\n private dateService: DateService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.editMode = this.context.editMode;\r\n this.staff = this.context.staff;\r\n this.title = this.editMode ? 'Edit Staff Rates' : 'Add Staff Rates';\r\n\r\n this.staffRateOne =\r\n this.staff.RateTypes && this.staff.RateTypes.length ? this.staff.RateTypes.find(r => r.RateTypeId === this.rateType.r1) : null;\r\n this.staffRateTwo =\r\n this.staff.RateTypes && this.staff.RateTypes.length ? this.staff.RateTypes.find(r => r.RateTypeId === this.rateType.r2) : null;\r\n\r\n const rateOneDefaultVal =\r\n this.staffRateOne && this.staffRateOne.CurrentRate ? parseFloat(this.staffRateOne.CurrentRate.HourlyRate).toFixed(2) : null;\r\n const rateTwoDefaultVal =\r\n this.staffRateTwo && this.staffRateTwo.CurrentRate ? parseFloat(this.staffRateTwo.CurrentRate.HourlyRate).toFixed(2) : null;\r\n\r\n let disableDatePicker = false;\r\n if (!this.editMode) {\r\n disableDatePicker = true;\r\n }\r\n const weekStart = {\r\n startDate: this.getMostRecentStartPeriodDate(),\r\n endDate: this.getMostRecentStartPeriodDate(),\r\n };\r\n const effectiveFrom = {\r\n startDate: dayjs(this.staffRateOne?.CurrentRate?.EffectiveFrom),\r\n endDate: dayjs(this.staffRateOne?.CurrentRate?.EffectiveFrom),\r\n };\r\n\r\n const rateOneDateDefaultVal =\r\n this.editMode && this.staffRateOne && this.staffRateOne.CurrentRate\r\n ? effectiveFrom\r\n : weekStart;\r\n\r\n const rateTwoDateDefaultVal =\r\n this.editMode && this.staffRateTwo && this.staffRateTwo.CurrentRate\r\n ? effectiveFrom\r\n : weekStart;\r\n\r\n this.rateOneFormControl = new UntypedFormControl(rateOneDefaultVal, [\r\n Validators.min(0),\r\n Validators.max(999.99),\r\n Validators.pattern(/^[0-9]+(\\.[0-9]{1,2})?$/),\r\n Validators.required\r\n ]);\r\n this.rateTwoFormControl = new UntypedFormControl(rateTwoDefaultVal, [\r\n Validators.min(0),\r\n Validators.max(999.99),\r\n Validators.pattern(/^[0-9]+(\\.[0-9]{1,2})?$/),\r\n Validators.required\r\n ]);\r\n\r\n this.rateOneDateFormControl = new UntypedFormControl(rateOneDateDefaultVal, [Validators.required]);\r\n this.rateTwoDateFormControl = new UntypedFormControl(rateTwoDateDefaultVal, [Validators.required]);\r\n this.form = new UntypedFormGroup({\r\n rateOne: this.rateOneFormControl,\r\n rateTwo: this.rateTwoFormControl,\r\n rateOneDate: this.rateOneDateFormControl,\r\n rateTwoDate: this.rateTwoDateFormControl\r\n });\r\n this.initialiseDatePicker();\r\n super.ngOnInit();\r\n\r\n this.rateOneFormControl.valueChanges\r\n .pipe(\r\n debounceTime(1000),\r\n // .map(res => parseFloat(res).toFixed(2)) // TODO: Get this working as it's much cleaner then using the first operator\r\n // .distinctUntilChanged()\r\n first() // This will unsubscribe after first value has changed\r\n )\r\n .subscribe(() => {\r\n if (!this.editMode) return;\r\n });\r\n this.rateTwoFormControl.valueChanges\r\n .pipe(\r\n debounceTime(1000),\r\n first()\r\n )\r\n .subscribe(() => {\r\n if (!this.editMode) return;\r\n });\r\n }\r\n\r\n /**\r\n * Returns an object containing the moment.js objects for the current week and the last week before it.\r\n * @param startDate The start date to calculate the weeks from.\r\n * @returns An object containing the moment.js objects for the current week and the last week before it.\r\n */\r\n getCurrentAndLastMomentWeeks(startDate): any {\r\n const activePeriodStartDate = dayjs(startDate);\r\n const activePeriodWeekDayNumber = activePeriodStartDate.isoWeekday();\r\n const currentWeekStart = dayjs()\r\n .startOf('week')\r\n .weekday(activePeriodWeekDayNumber);\r\n const lastWeekBeforeWeekStart = dayjs(currentWeekStart).subtract(14, 'days');\r\n const lastWeekAfterWeekStart = dayjs(currentWeekStart).subtract(6, 'days');\r\n const lastWeek = dayjs().isoWeekday() < activePeriodWeekDayNumber ? lastWeekBeforeWeekStart : lastWeekAfterWeekStart;\r\n return { lastWeek: lastWeek, currentWeek: currentWeekStart };\r\n }\r\n\r\n /**\r\n * Initializes the date picker with valid dates and options.\r\n * Uses the current and last weeks to set the valid dates.\r\n * Sets the days of the week on the calendar headers.\r\n * @returns void\r\n */\r\n private initialiseDatePicker(): void {\r\n const periodType = this.context.configuration.CompanyDetails.PeriodType;\r\n const firstPeriodStartDate = dayjs(this.context.configuration.CompanyDetails.FirstPeriodStartDate).toISOString();\r\n const weeks = this.getCurrentAndLastMomentWeeks(firstPeriodStartDate);\r\n\r\n // logic to set to last week when adding for first time and to next week when editing\r\n let dayToAdd = !this.editMode ? weeks.lastWeek : weeks.currentWeek;\r\n let startDate = dayjs();\r\n const endDate = dayjs().add(3, 'M');\r\n\r\n while (startDate <= endDate) {\r\n this.datePickerDays.push(dayToAdd);\r\n dayToAdd = dayjs(dayToAdd).add(7, 'days');\r\n startDate = startDate.clone().add(1, 'days');\r\n }\r\n const weekData = this.dateService.getDatePeriods(firstPeriodStartDate, periodType);\r\n this.datePickerOptions = {\r\n alwaysShowCalendars: false,\r\n ranges: {},\r\n showCustomRangeLabel: false,\r\n locale: {\r\n firstDay: weekData.firstDay ? Number(weekData.firstDay) : 0,\r\n },\r\n minDate: dayjs(weeks.currentWeek).startOf('year'),\r\n maxDate: datesDayjs.startOfToday.clone().add(3, 'months'),\r\n validDates: this.datePickerDays,\r\n opens: 'left'\r\n };\r\n }\r\n\r\n /**\r\n * Updates the value of the rateOneDate form control with the selected start and end dates.\r\n * @param date - The selected start and end dates.\r\n * @returns void\r\n */\r\n onRateOneDateChanged(date: DatePickerSelectData): void {\r\n const dates = {\r\n startDate: date.startDate,\r\n endDate: date.endDate\r\n };\r\n this.form.controls.rateOneDate.setValue(dates);\r\n }\r\n\r\n\r\n /**\r\n * Handles the change event of the second rate date picker.\r\n * @param date The selected date range.\r\n * @returns void\r\n */\r\n onRateTwoDateChanged(date: DatePickerSelectData): void {\r\n const dates = {\r\n startDate: date.startDate,\r\n endDate: date.endDate\r\n };\r\n this.form.controls.rateTwoDate.setValue(dates);\r\n }\r\n\r\n /**\r\n * Returns the current and last weeks based on a given start date.\r\n * @param startDate The start date to calculate the weeks from.\r\n * @returns An object containing the last week and current week start dates.\r\n */\r\n getCurrentAndLastWeeks(startDate): any {\r\n const activePeriodStartDate = dayjs(startDate);\r\n const activePeriodWeekDayNumber = activePeriodStartDate.isoWeekday();\r\n const currentWeekStart = dayjs()\r\n .startOf('week')\r\n .weekday(activePeriodWeekDayNumber);\r\n const lastWeekBeforeWeekStart = dayjs(currentWeekStart).subtract(14, 'days');\r\n const lastWeekAfterWeekStart = dayjs(currentWeekStart).subtract(6, 'days');\r\n const lastWeek = dayjs().isoWeekday() < activePeriodWeekDayNumber ? lastWeekBeforeWeekStart : lastWeekAfterWeekStart;\r\n return { lastWeek: lastWeek, currentWeek: currentWeekStart };\r\n }\r\n\r\n /**\r\n * Returns the most recent start period date based on the company's first period start date.\r\n * @returns A Dayjs object representing the most recent start period date.\r\n */\r\n private getMostRecentStartPeriodDate(): dayjs.Dayjs {\r\n const firstPeriodStartDate = dayjs(this.context.configuration.CompanyDetails.FirstPeriodStartDate).toISOString();\r\n const firstPeriodStartDay = dayjs(firstPeriodStartDate).day();\r\n /*\r\n * That effective from date of a rate must be on the same DAY as the first period start date day.\r\n * If the rates are applied on the same day as the first period start date then make that the effective from date\r\n * If the rates are applied after the first period start date then find the previous day that matches the first perios start dates day\r\n */\r\n const mostRecentPayPeriodStartDate = dayjs().subtract(2, 'weeks').day(firstPeriodStartDay);\r\n return mostRecentPayPeriodStartDate;\r\n }\r\n\r\n /**\r\n * Checks if the staff rate one date has changed.\r\n * @returns {boolean} True if the date has changed, false otherwise.\r\n */\r\n private hasStaffRateOneDateChanged(): boolean {\r\n return this.hasStaffRateChanged(this.form.controls.rateOneDate.value.startDate, this.staffRateOne.CurrentRate.EffectiveFrom);\r\n }\r\n\r\n /**\r\n * Checks if the date for staff rate two has changed.\r\n * @returns {boolean} True if the date has changed, false otherwise.\r\n */\r\n private hasStaffRateTwoDateChanged(): boolean {\r\n return this.hasStaffRateChanged(this.form.controls.rateTwoDate.value.startDate, this.staffRateTwo.CurrentRate.EffectiveFrom);\r\n }\r\n\r\n /**\r\n * Determines if the staff rate has changed based on the rate start date and the previous date.\r\n * @param rateStartDate The new rate start date.\r\n * @param previousDate The previous rate start date.\r\n * @returns True if the staff rate has changed, false otherwise.\r\n */\r\n private hasStaffRateChanged(rateStartDate, previousDate): boolean {\r\n const previousDateFormatted = dayjs(previousDate).format(this.dateFormatWithoutOffset);\r\n var newDateISOWithoutOffset = dayjs(rateStartDate).format(this.dateFormatWithoutOffset);\r\n return previousDateFormatted !== newDateISOWithoutOffset;\r\n }\r\n\r\n /**\r\n * Handles the form submission. If the form is valid, it saves the changes made to the staff rates.\r\n * If the values of the staff rates have changed, it creates new staff rates and adds them to the staff.\r\n * If the staff rates have not changed, it updates the existing staff rates.\r\n * If the form is invalid, it does nothing.\r\n */\r\n onSubmit(): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n // Check if the values have changed\r\n const ratesToAdd: StaffRate[] = [];\r\n if (this.rateOneFormControl.dirty || this.hasStaffRateOneDateChanged()) {\r\n ratesToAdd.push({\r\n StaffRateId: UUID.UUID(),\r\n HourlyRate: this.form.value.rateOne,\r\n EffectiveFrom: !this.staff.RateTypes.length\r\n ? this.getMostRecentStartPeriodDate().toISOString()\r\n : dayjs(this.form.value.rateOneDate.startDate)\r\n .utc()\r\n .add(dayjs(this.form.value.rateOneDate.startDate).utcOffset(), 'm')\r\n .toISOString(),\r\n RateTypeId: this.rateType.r1\r\n });\r\n }\r\n\r\n if (this.rateTwoFormControl.dirty || this.hasStaffRateTwoDateChanged()) {\r\n ratesToAdd.push({\r\n StaffRateId: UUID.UUID(),\r\n HourlyRate: this.form.value.rateTwo,\r\n EffectiveFrom: !this.staff.RateTypes.length\r\n ? this.getMostRecentStartPeriodDate().toISOString()\r\n : dayjs(this.form.value.rateTwoDate.startDate)\r\n .utc()\r\n .add(dayjs(this.form.value.rateTwoDate.startDate).utcOffset(), 'm')\r\n .toISOString(),\r\n RateTypeId: this.rateType.r2\r\n });\r\n }\r\n\r\n const command: EditStaffCommand = Object.assign(this.staff, {\r\n ExternalAuthId: undefined,\r\n RatesToAdd: ratesToAdd,\r\n Password: undefined,\r\n RatesToMakeIneffective: [],\r\n RatesToDelete: []\r\n });\r\n\r\n let result: Observable;\r\n\r\n result =\r\n this.staff.RoleId === roleIds.scaffolder\r\n ? this.staffCommandService.EditStaffNoAccessCommand(command)\r\n : this.staffCommandService.EditStaffCommand(command);\r\n\r\n result.subscribe(() => {\r\n const obs$ = forkJoin([this.staffsQueryService.staffsQuery(false), this.staffDetailQueryService.staffDetailQuery(false, this.staff.StaffId)]);\r\n obs$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.modalService.setDismissReason(this.staff.StaffId);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n\r\n /**\r\n * Handles the blur event of the rate control.\r\n * If the control has a value, it sets the value to a fixed 2 decimal places.\r\n * @param control - The rate control.\r\n */\r\n onRateBlur(control): void {\r\n if (!!control.value) control.setValue(parseFloat(control.value).toFixed(2));\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n \r\n Warning: This will override any existing upcoming rates\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
£
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
£
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-audio-player',\r\n templateUrl: './audio-player.component.html',\r\n styleUrls: ['./audio-player.component.scss']\r\n})\r\nexport class AudioPlayerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

\r\n audio-player works!\r\n

\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n\r\n@Component({\r\n selector: 'hub-browser-warning',\r\n templateUrl: './browser-warning.component.html',\r\n styleUrls: ['./browser-warning.component.scss']\r\n})\r\nexport class BrowserWarningComponent implements OnInit {\r\n approvedBrowsers = ['Chrome', 'Firefox', 'MS-Edge', 'Safari', \"MS-Edge-Chromium\"];\r\n notApproved = false;\r\n browserURL = 'http://outdatedbrowser.com/en';\r\n constructor(private deviceService: DeviceDetectorService) { }\r\n\r\n ngOnInit(): any {\r\n this.checkBrowser();\r\n }\r\n\r\n checkBrowser(): void {\r\n const deviceInfo = this.deviceService.getDeviceInfo();\r\n if (this.deviceService.isDesktop() && !this.approvedBrowsers.includes(deviceInfo.browser)) {\r\n this.notApproved = true;\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n","import { Component, OnInit, Input, ElementRef, ViewChild } from '@angular/core';\r\nimport { colors } from 'app/shared/values/colours';\r\nimport { TextToColorService } from 'app/core/services/text-to-color.service';\r\n\r\n@Component({\r\n selector: 'hub-colour-coded-title',\r\n templateUrl: './colour-coded-title.component.html',\r\n styleUrls: ['./colour-coded-title.component.scss']\r\n})\r\nexport class ColourCodedTitleComponent implements OnInit {\r\n\r\n _colourGeneration: string;\r\n\r\n @ViewChild('colouredCircle', { static: true })\r\n colouredCircle: ElementRef;\r\n\r\n // String used as an input for the hash function which outputs the colour..\r\n @Input()\r\n set colourGeneration(colourGeneration: string) {\r\n this._colourGeneration = colourGeneration;\r\n this.updateColour(colourGeneration);\r\n }\r\n get colourGeneration(): string {\r\n return this._colourGeneration;\r\n }\r\n\r\n @Input()\r\n text: string;\r\n\r\n constructor(private textToColourService: TextToColorService) { }\r\n\r\n ngOnInit(): void {}\r\n\r\n updateColour(colourGeneration: string): void {\r\n const color = this.textToColourService.textToColor(colourGeneration);\r\n this.colouredCircle.nativeElement.style.backgroundColor = color;\r\n }\r\n}\r\n","
{{ text }}\r\n","import { Component, OnInit, EventEmitter, Output, Input, ViewChild, OnDestroy, ChangeDetectorRef, forwardRef } from '@angular/core';\r\nimport { DatePickerOptions } from 'app/reports/models/date-picker-options';\r\nimport dayjs from 'dayjs/esm';\r\nimport { DaterangepickerDirective } from 'ngx-daterangepicker-material';\r\nimport { defaultRanges } from '../../values/dates';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { combineLatest } from 'rxjs';\r\nimport { DatePickerSelectData } from '../../models/date-picker-select-data';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { isEqual } from 'lodash';\r\nexport const SELECT_WITH_INPUT_COMPONENT_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true\r\n};\r\n/**\r\n * Date picker wrapper that allows single or range of date select\r\n *\r\n * @export\r\n * @class DatePickerComponent\r\n * @implements {OnInit} A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive. Define an ngOnInit() method to handle any additional initialization tasks.\r\n * @implements {AfterViewInit} A lifecycle hook that is called after Angular has fully initialized a component's view. Define an ngAfterViewInit() method to handle any additional initialization tasks.\r\n */\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n styleUrls: ['./date-picker.component.scss'],\r\n providers: [SELECT_WITH_INPUT_COMPONENT_VALUE_ACCESSOR]\r\n})\r\nexport class DatePickerComponent implements ControlValueAccessor, OnInit, OnDestroy {\r\n /** Enables the code to access the date picker component */\r\n @ViewChild(DaterangepickerDirective, { static: true }) dateRangePicker: DaterangepickerDirective;\r\n /** Gets if it is a range selector or a single date picker */\r\n @Input()\r\n isRange = true;\r\n /* Settings specified here will override any defaults. */\r\n @Input()\r\n settings: DatePickerOptions;\r\n /** Output of the dates selected to UI caller */\r\n @Output()\r\n dateRangeSelected = new EventEmitter();\r\n /** Shows a message on the placeholder */\r\n @Input()\r\n placeholder = \"Select Dates...\";\r\n /** Dates to be disabled on the date picker */\r\n @Input()\r\n invalidDates: dayjs.Dayjs[] = [];\r\n /**\r\n * Shows or hides the calendars\r\n * @default true\r\n */\r\n @Input()\r\n alwaysShowCalendars = true;\r\n /** Opens the date calendar in specific position */\r\n @Input()\r\n opens: 'left' | 'right' | 'center';\r\n /** Drops the date calendar down or up */\r\n @Input()\r\n drops: 'down' | 'up';\r\n /** Gets the custom ranges or applies the defaults */\r\n @Input()\r\n ranges = defaultRanges;\r\n /** Maximum date available */\r\n @Input()\r\n maxDate: dayjs.Dayjs;\r\n /** Minimum date available */\r\n @Input()\r\n minDate: dayjs.Dayjs;\r\n /** Enables or disables the date picker */\r\n @Input()\r\n disable: boolean;\r\n /** Stores a list of valid dates */\r\n validDates: dayjs.Dayjs[] = [];\r\n /** Stores the locale settings */\r\n locale: any;\r\n /** Stores if the clear button is visible */\r\n showClearButton = false;\r\n /** Stores if the custom range label is visible */\r\n showCustomRangeLabel = true;\r\n /** Stores if the dropdowns are visible on the date picker */\r\n showDropdowns = true;\r\n /** Closes the date calendar on apply */\r\n closeOnAutoApply = true;\r\n /** Returns the invalid dates from the invalidDates property \r\n * This can also be used to give custom class names to dates\r\n *\r\n * NOTE - The invalidDates property does not allow to select ranges only single date pick, so this property needs to be used instead\r\n */\r\n isCustomDate = (date: dayjs.Dayjs) => {\r\n if (this.settings) {\r\n const validDates = this.settings.validDates;\r\n const invalidDates = this.settings.invalidDates;\r\n const cssClass = 'invalid-calendar-date';\r\n if (validDates && !validDates.some(d => d.isSame(date, 'day'))) {\r\n return cssClass;\r\n }\r\n if (invalidDates && invalidDates.some(d => d.isSame(date, 'day'))) {\r\n return cssClass;\r\n }\r\n }\r\n return false;\r\n }\r\n /** Form that controls this component */\r\n form: UntypedFormGroup;\r\n /** Form control for the date picker */\r\n dateFormControl: UntypedFormControl;\r\n /** main variables to allow change propagation\r\n required ControlValueAccessor variables */\r\n _propagateChanges: Function;\r\n _propagateTouched: Function;\r\n /** Determines the property key name for the start date */\r\n startKey = 'startDate';\r\n /** Determines the property key name for the end date */\r\n endKey = 'endDate';\r\n @Output() valueChanges = new EventEmitter();\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n }\r\n\r\n /**\r\n * Required to unsubscribeAll\r\n *\r\n * @memberof DatePickerComponent\r\n */\r\n ngOnDestroy(): void {\r\n }\r\n\r\n /**\r\n * Writes a new value to the element.\r\n * This method is called by the forms API to write to the view when programmatic changes from model to view are requested.\r\n *\r\n * @param {DatePickerSelectData} obj\r\n * @memberof DatePickerComponent\r\n */\r\n writeValue(obj: DatePickerSelectData): void {\r\n this.dateFormControl.setValue(obj);\r\n }\r\n\r\n /**\r\n * Registers a callback function that is called when the control's value changes in the UI.\r\n * This method is called by the forms API on initialization to update the form model when values propagate from the view to the model.\r\n * @param {*} fn\r\n * @memberof DatePickerComponent\r\n */\r\n registerOnChange(fn: any): void {\r\n if (this._propagateChanges) this._propagateChanges = fn;\r\n }\r\n\r\n\r\n /**\r\n * Registers a callback function is called by the forms API on initialization to update the form model on blur.\r\n * Gets called when the control is considered blurred or \"touched\".\r\n *\r\n * @param {*} fn\r\n * @memberof DatePickerComponent\r\n */\r\n registerOnTouched(fn: any): void {\r\n this._propagateTouched = fn;\r\n }\r\n\r\n /**\r\n * @description\r\n * Function that is called by the forms API when the control status changes to or from 'DISABLED'. Depending on the status, it enables or disables the appropriate DOM element.\r\n * required to have this here due to ControlValueAccessor\r\n * @example\r\n * The following is an example of writing the disabled property to a native DOM element:\r\n *\r\n * @param {boolean} isDisabled\r\n * @memberof DatePickerComponent\r\n */\r\n setDisabledState?(isDisabled: boolean): void {\r\n }\r\n\r\n loadDatePickerOptions() {\r\n // In the case it is a single date pick it will change these properties\r\n if (!this.isRange) {\r\n this.placeholder = \"Select a date...\";\r\n }\r\n if (this.settings) {\r\n if (this.settings.showCustomRangeLabel != null) this.showCustomRangeLabel = this.settings.showCustomRangeLabel;\r\n if (this.settings.ranges !== this.ranges) this.ranges = this.settings.ranges;\r\n if (this.settings.invalidDates) this.invalidDates = this.settings.invalidDates;\r\n if (this.settings.validDates) this.validDates = this.settings.validDates;\r\n if (this.settings.locale) this.locale = this.settings.locale;\r\n if (this.settings.placeholder) this.placeholder = this.settings.placeholder;\r\n if (this.settings.alwaysShowCalendars != null) this.alwaysShowCalendars = this.settings.alwaysShowCalendars;\r\n if (this.settings.opens) this.opens = this.settings.opens;\r\n if (this.settings.drops) this.drops = this.settings.drops;\r\n if (this.settings.maxDate != null) this.maxDate = this.settings.maxDate\r\n if (this.settings.minDate != null) this.minDate = this.settings.minDate;\r\n if (this.settings.showClearButton != true) this.showClearButton = this.settings.showClearButton;\r\n if (this.settings.showDropdowns != null) this.showDropdowns = this.settings.showDropdowns;\r\n if (this.settings.closeOnAutoApply != null) this.closeOnAutoApply = this.settings.closeOnAutoApply;\r\n }\r\n }\r\n\r\n /**\r\n * After the view initialises it emits the start date and end date\r\n *\r\n * @memberof DatePickerComponent\r\n */\r\n ngAfterViewInit(): void {\r\n this.loadDatePickerOptions();\r\n }\r\n\r\n /**\r\n * Detects if it is a range or single date picker and sets the initial date in case it was not set\r\n *\r\n * @memberof DatePickerComponent\r\n */\r\n ngOnInit(): void {\r\n this.loadDatePickerOptions();\r\n this.dateFormControl = new UntypedFormControl('');\r\n this.form = new UntypedFormGroup({\r\n date: this.dateFormControl,\r\n });\r\n const obs$ = combineLatest([this.dateFormControl.valueChanges]);\r\n obs$.subscribe(latest => {\r\n if (this._propagateChanges) this._propagateChanges(latest[0]);\r\n if (!isEqual(latest[0], this.dateFormControl.value)) {\r\n this.dateFormControl.setValue(latest[0], { emitEvent: false });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Detects when the user clears the date manually and sets the value to null\r\n *\r\n * @param {*} event\r\n * @memberof DatePickerComponent\r\n */\r\n onKeyUp(event: any) {\r\n if (event.target.value == \"\") {\r\n this.dateFormControl.setValue(null);\r\n }\r\n }\r\n\r\n /**\r\n * Detects if the dates were changed on the UI and emits the selected dates\r\n *\r\n * @param {*} dateRange\r\n * @memberof DatePickerComponent\r\n */\r\n onDateRangeSelected(dateRange: any): void {\r\n this.valueChanges.emit(dateRange);\r\n }\r\n\r\n /**\r\n * Detects when the user presses the clear button and sets the value to null\r\n *\r\n * @param {MouseEvent} e\r\n * @memberof DatePickerComponent\r\n */\r\n clear(e: MouseEvent): void {\r\n this.dateFormControl.setValue(null);\r\n }\r\n\r\n}","
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n ","import {\r\n ScaffoldStatisticsData,\r\n DefectStatisticsQuery,\r\n DefectStatisticData\r\n} from 'app/core/hub-api';\r\nimport {\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges\r\n} from '@angular/core';\r\n\r\nimport * as Highcharts from 'highcharts';\r\nimport { colors } from '../../values/colours';\r\nimport { forEach as _forEach } from 'lodash';\r\n\r\n@Component({\r\n selector: 'hub-defect-types-chart',\r\n templateUrl: './defect-types-chart.component.html',\r\n styleUrls: ['./defect-types-chart.component.scss']\r\n})\r\nexport class DefectTypesChartComponent implements OnInit, OnChanges {\r\n @Input()\r\n defectData: any;\r\n\r\n Highcharts: typeof Highcharts = Highcharts;\r\n chart: any;\r\n\r\n chartConfig: Highcharts.Options = {\r\n credits: { enabled: false },\r\n title: {\r\n text: ''\r\n },\r\n yAxis: {\r\n allowDecimals: false,\r\n min: 0,\r\n title: {\r\n text: 'Total Defect Count'\r\n }\r\n },\r\n xAxis: {\r\n categories: [''],\r\n labels: {\r\n enabled: true\r\n }\r\n },\r\n legend: {\r\n reversed: true\r\n },\r\n tooltip: {\r\n formatter: function (): string {\r\n return `${this.x}': ${this.y}`;\r\n }\r\n },\r\n chart: {\r\n type: 'bar',\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n backgroundColor: 'transparent'\r\n },\r\n colors: [\r\n colors.river,\r\n colors.turquoise,\r\n colors.emerald,\r\n colors.calm,\r\n colors.lightGrey\r\n ],\r\n plotOptions: {\r\n series: {\r\n stacking: 'normal'\r\n },\r\n bar: {\r\n colorByPoint: true,\r\n showInLegend: false\r\n }\r\n },\r\n series: []\r\n };\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['defectData'] && !!this.chart) {\r\n this.updateChartData();\r\n }\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.chart = Highcharts.chart('defectTypesChart', this.chartConfig);\r\n this.updateChartData();\r\n }\r\n\r\n updateChartData(): void {\r\n if (this.chart) {\r\n while (!!this.chart.series[0]) {\r\n this.chart.series[0].remove();\r\n }\r\n if (this.defectData.length) {\r\n const data = [];\r\n\r\n _forEach(this.defectData, defect => {\r\n data.push(defect.Count);\r\n });\r\n\r\n const xAxisCategories = [];\r\n _forEach(this.defectData, defect => {\r\n xAxisCategories.push(\r\n `${defect.Group}
${defect.Name}`\r\n );\r\n });\r\n\r\n this.chart.addSeries({\r\n name: '',\r\n data: data\r\n });\r\n\r\n this.chart.xAxis[0].update({\r\n categories: xAxisCategories\r\n });\r\n }\r\n this.chart.redraw();\r\n\r\n }\r\n\r\n }\r\n}\r\n","
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-dismantle-required',\r\n templateUrl: './dismantle-required.component.html',\r\n styleUrls: ['./dismantle-required.component.scss']\r\n})\r\nexport class DismantleRequiredComponent implements OnInit {\r\n\r\n _isAllowDismantleWithoutOffhire: boolean;\r\n @Input()\r\n set isAllowDismantleWithoutOffhire(isAllowDismantleWithoutOffhire: boolean) {\r\n this._isAllowDismantleWithoutOffhire = isAllowDismantleWithoutOffhire;\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n \r\n Dismantle with off-hire\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\nDismantle without off-hire\r\n\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\n\r\n@Component({\r\n selector: 'hub-donut-chart',\r\n templateUrl: './donut-chart.component.html',\r\n styleUrls: ['./donut-chart.component.scss']\r\n})\r\nexport class DonutChartComponent implements OnInit {\r\n\r\n @Input()\r\n data: Array;\r\n\r\n @Input()\r\n colors: Array;\r\n\r\n @Input()\r\n radius = 100;\r\n\r\n Highcharts: typeof Highcharts = Highcharts;\r\n chart: any;\r\n\r\n options: Highcharts.Options = {\r\n title: {\r\n text: ''\r\n },\r\n chart: {\r\n height: this.radius,\r\n width: this.radius,\r\n margin: [0, 0, 0, 0],\r\n spacingTop: 0,\r\n spacingBottom: 0,\r\n spacingLeft: 0,\r\n spacingRight: 0,\r\n type: 'pie',\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n backgroundColor: 'transparent'\r\n },\r\n colors: [],\r\n legend: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n series: {\r\n states: {\r\n hover: {\r\n enabled: false\r\n }\r\n }\r\n },\r\n pie: {\r\n size: '125%',\r\n dataLabels: {\r\n enabled: false\r\n },\r\n showInLegend: true,\r\n innerSize: '70%'\r\n }\r\n },\r\n series: [\r\n {\r\n type: 'pie',\r\n data: []\r\n }\r\n ],\r\n credits: {\r\n enabled: false\r\n },\r\n tooltip: {\r\n enabled: false\r\n },\r\n exporting: { enabled: false }\r\n };\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.options.colors = this.colors;\r\n (this.options.series as any[])[0].data = this.data;\r\n this.chart = Highcharts.chart('donutChart', this.options);\r\n }\r\n\r\n}\r\n","
\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { DropdownTexts } from './dropdown-texts';\r\n\r\n/**\r\n * This class contains all settings properties used in the dropdown component\r\n *\r\n * @export\r\n * @class DropdownSettings\r\n */\r\nexport class DropdownSettings {\r\n /**\r\n * Should be the Id of the item you want to list\r\n * @example\r\n * If you want to list sites you send 'SiteId'\r\n */\r\n idProperty?: string;\r\n /**\r\n * Displays the icon next to the item name on the dropdown items\r\n * @example\r\n * 'fa fa-building'\r\n */\r\n icon?: string;\r\n /**\r\n * Should be the Title you want to display\r\n * @example\r\n * If you want to list sites you send 'SiteName'\r\n */\r\n titleProperty?: string;\r\n /**\r\n * Should be an extension of the Title you want to display\r\n * @example\r\n * If you want to list sites with a site number in front of it you send 'SiteReference'\r\n */\r\n titleReferenceProperty?: string;\r\n /**\r\n * Will display a placeholer on the dropdown when no item is selected\r\n * @example\r\n * you can send any string here\r\n * @default 'Please select an option'\r\n */\r\n placeholder?: string;\r\n /**\r\n * A list of all options to be displayed\r\n * @example\r\n * e.g. You can send an array of sites\r\n */\r\n items?: any[];\r\n /**\r\n * allows the dropdown to multiselect items\r\n * @default false - single select\r\n */\r\n multiselect?: boolean;\r\n /**\r\n * Configuration for the number of items to show when [multiselect] is active\r\n * (e.g. if the value is 1 the dropdown text will be: Name, 3 more..)\r\n * @default this._defaultItemsToDisplay\r\n */\r\n itemsToDisplay?: number;\r\n /**\r\n * Close the menu when a value is selected\r\n * @default false\r\n */\r\n closeOnSelect?: boolean;\r\n /**\r\n * Allow to clear selected value.\r\n * @default true\r\n */\r\n clearable?: boolean;\r\n /**\r\n * Detects if the dropdown is loading.\r\n * @default false\r\n */\r\n loading?: boolean;\r\n /**\r\n * Displays the icon next to the group name on the dropdown items\r\n * @example\r\n * 'fa fa-users'\r\n */\r\n groupIcon?: string;\r\n /**\r\n * Groups by property\r\n * @default null\r\n */\r\n groupBy?: string;\r\n /**\r\n * Displays the icon next to the description name on the dropdown items\r\n * @example\r\n * 'fa fa-building'\r\n */\r\n descriptionIcon?: string;\r\n /** Displays the description next to the item on the dropdown items */\r\n description?: string;\r\n /** Selecting group will select all of its children but not group itself if deactivated */\r\n selectableGroupAsModel?: boolean;\r\n /** Enables/Disables Selecting groups */\r\n selectableGroup?: boolean;\r\n // Overrides the placeholder texts\r\n texts?: DropdownTexts;\r\n // Overrides all settings\r\n settings?: DropdownSettings;\r\n // Allow to search for value. Default true\r\n searchable?: boolean;\r\n // Clears search input when item is selected. Default true. Default false when closeOnSelect is false\r\n clearSearchOnAdd?: boolean;\r\n /** Set custom text when filter returns empty result */\r\n searchEmptyResultText?: string;\r\n /** Sets the text for the clear button */\r\n uncheckAllText?: string;\r\n /** Sets the text for the select all button */\r\n checkAllText?: string;\r\n /** Sites the text for the all selected label */\r\n allSelectedText?: string;\r\n /** Enables the clear option (x icon next to the label)*/\r\n clearItemOption?: boolean;\r\n /** Enables/Disables the user to access the DOM on the dropdown component */\r\n readonly?= false;\r\n /** Allows to create custom options. */\r\n addTag?: boolean | ((term: string) => any | Promise);\r\n /** Set custom text when using tagging */\r\n addTagText?: string = null;\r\n}\r\n\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\n/**\r\n * This class contains all texts properties used in the dropdown component\r\n *\r\n * @export\r\n * @class DropdownTexts\r\n */\r\nexport class DropdownTexts {\r\n checkAll?: string;\r\n uncheckAll?: string;\r\n checked?: string;\r\n checkedPlural?: string;\r\n searchPlaceholder?: string;\r\n searchEmptyResult?: string;\r\n searchNoRenderText?: string;\r\n searchEmptyResultText?: string;\r\n defaultTitle?: string;\r\n allSelected?: string;\r\n}\r\n","// Copyright © Computer and Design Services Ltd.\r\n// All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n// electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n\r\nimport { combineLatest } from 'rxjs';\r\nimport {\r\n AfterViewChecked, ChangeDetectionStrategy,\r\n ChangeDetectorRef, Component, EventEmitter, forwardRef,\r\n Input, OnDestroy, OnInit, Output, OnChanges, ViewChild\r\n} from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { SelectWithInfoData } from '../../models/select-with-info-data';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { isString as _isString, isNumber as _isNumber } from 'lodash';\r\nimport { DropdownSettings } from './dropdown-settings';\r\nimport { DropdownTexts } from './dropdown-texts';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\nexport const SELECT_WITH_INPUT_COMPONENT_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DropdownComponent),\r\n multi: true\r\n};\r\n\r\n/**\r\n * Dropdown single or multiselect component\r\n * ```html\r\n * \r\n * ```\r\n * @export\r\n * @class DropdownComponent\r\n * @implements {ControlValueAccessor}\r\n * @implements {OnInit}\r\n * @implements {OnDestroy}\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-dropdown',\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.scss'],\r\n providers: [SELECT_WITH_INPUT_COMPONENT_VALUE_ACCESSOR],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\n\r\nexport class DropdownComponent implements ControlValueAccessor, OnInit, OnDestroy, AfterViewChecked, OnChanges {\r\n /** The default number of items to show when [multiselect] is active */\r\n _defaultItemsToDisplay = 1;\r\n /**\r\n * Should be the Id of the item you want to list\r\n * @example\r\n * If you want to list sites you send 'SiteId'\r\n */\r\n @Input() idProperty: string;\r\n /**\r\n * Displays the icon next to the item name on the dropdown items\r\n * @example\r\n * 'fa fa-building'\r\n */\r\n @Input() icon: string;\r\n /**\r\n * Should be the Title you want to display\r\n * @example\r\n * If you want to list sites you send 'SiteName'\r\n */\r\n @Input() titleProperty: string;\r\n /**\r\n * Should be an extension of the Title you want to display\r\n * @example\r\n * If you want to list sites with a site number in front of it you send 'SiteReference'\r\n */\r\n @Input() titleReferenceProperty: string;\r\n /**\r\n * Will display a placeholder on the dropdown when no item is selected\r\n * @example\r\n * you can send any string here\r\n * @default 'Please select an option'\r\n */\r\n @Input() placeholder = 'Please select an option';\r\n /**\r\n * A list of all options to be displayed\r\n * @example\r\n * e.g. You can send an array of sites\r\n */\r\n @Input() items: any[];\r\n /**\r\n * allows the dropdown to multiselect items\r\n * @default false - single select\r\n */\r\n @Input() multiselect = false;\r\n /**\r\n * Configuration for the number of items to show when [multiselect] is active\r\n * (e.g. if the value is 1 the dropdown text will be: Name, 3 more..)\r\n * @default this._defaultItemsToDisplay\r\n */\r\n @Input()\r\n itemsToDisplay: number = this._defaultItemsToDisplay;\r\n /**\r\n * Close the menu when a value is selected\r\n * @default false\r\n */\r\n @Input() closeOnSelect = false;\r\n /**\r\n * Allow to clear selected value.\r\n * @default true\r\n */\r\n @Input() clearable = true;\r\n /**\r\n * Detects if the dropdown is loading.\r\n * @default false\r\n */\r\n @Input() loading = false;\r\n /**\r\n * Displays the icon next to the group name on the dropdown items\r\n * @example\r\n * 'fa fa-users'\r\n */\r\n @Input() groupIcon: string | null = null;\r\n /**\r\n * Groups by property\r\n * @default null\r\n */\r\n @Input() groupBy: string | null = null;\r\n /**\r\n * Displays the icon next to the description name on the dropdown items\r\n * @example\r\n * 'fa fa-building'\r\n */\r\n @Input() descriptionIcon: string | null = null;\r\n /** Displays the description next to the item on the dropdown items */\r\n @Input() description: string | null = null;\r\n /** Selecting group will select all of its children but not group itself if deactivated */\r\n @Input() selectableGroupAsModel = false;\r\n /** Enables/Disables Selecting groups */\r\n @Input() selectableGroup = false;\r\n // Overrides the placeholder texts\r\n @Input() texts: DropdownTexts;\r\n // Overrides all settings\r\n @Input() settings: DropdownSettings;\r\n // Allow to search for value. Default true\r\n @Input() searchable = true;\r\n // Clears search input when item is selected. Default true. Default false when closeOnSelect is false\r\n @Input() clearSearchOnAdd = false;\r\n /** Set custom text when filter returns empty result */\r\n @Input() searchEmptyResultText?= 'No results found';\r\n /** Sets the text for the clear button */\r\n @Input() uncheckAllText = 'Clear All';\r\n /** Sets the text for the select all button */\r\n @Input() checkAllText = 'Select All';\r\n /** Sites the text for the all selected label */\r\n @Input() allSelectedText = 'All Selected';\r\n /** Enables the clear option (x icon next to the label)*/\r\n @Input() clearItemOption = false;\r\n /** Enables/Disables the user to access the DOM on the dropdown component */\r\n @Input() readonly?= false;\r\n /** Form that controls this component */\r\n form: UntypedFormGroup;\r\n // Form control for the ng-select */\r\n idFormControl: UntypedFormControl;\r\n /** main variables to allow change propagation\r\n required ControlValueAccessor variables */\r\n _propagateChanges: Function;\r\n _propagateTouched: Function;\r\n /** Allows to create custom options. */\r\n addTag?: boolean | ((term: string) => any | Promise) = false;\r\n /** Set custom text when using tagging */\r\n addTagText: string | null = null;\r\n /**\r\n * Creates an instance of this class that can deliver events synchronously or asynchronously.\r\n * @example\r\n * ```html\r\n * \r\n * ```\r\n */\r\n /* eslint-disable-next-line @angular-eslint/no-output-native */\r\n @Output() valueChanges = new EventEmitter();\r\n /**\r\n * Triggers the focus from the dropdown to the component\r\n * @example\r\n * ```html\r\n * \r\n * ```\r\n */\r\n /* eslint-disable-next-line @angular-eslint/no-output-native */\r\n @Output() focus = new EventEmitter();\r\n /** The ngSelect component is used to get the selected value from the DOM */\r\n @ViewChild('dropdownComponent') ngSelect: NgSelectComponent;\r\n\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n /**\r\n * Detects the changes to the list and sets an empty search term if the list is empty,\r\n * In case there are items it will set the first item in the list\r\n * Only gets activated if the [refreshTitleActivated] is true\r\n *\r\n * @memberof DropdownComponent\r\n */\r\n ngOnChanges(): void {\r\n if (!this.ngSelect) return;\r\n const searchedTerm = this.ngSelect.searchTerm;\r\n if (searchedTerm != null && searchedTerm != \"\") {\r\n var searchTermMatchesList = this.items.filter(x => x[this.titleProperty] === searchedTerm);\r\n var filteredItems = this.items.filter(x => x[this.titleProperty] !== searchedTerm);\r\n if (searchTermMatchesList.length == 0) {\r\n if (filteredItems.length > 0) {\r\n this.ngSelect.searchTerm = filteredItems[0][this.titleProperty];\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Creates the form and subscribes to the changes made to the ng-select\r\n *\r\n * @memberof DropdownComponent\r\n */\r\n ngOnInit(): void {\r\n this.textOverrides();\r\n this.settingsOverrides();\r\n this._defaultItemsToDisplay = this.itemsToDisplay != null ? this.itemsToDisplay : this._defaultItemsToDisplay;\r\n this.idFormControl = new UntypedFormControl('');\r\n this.form = new UntypedFormGroup({\r\n id: this.idFormControl,\r\n });\r\n const obs$ = combineLatest([this.idFormControl.valueChanges]);\r\n obs$.subscribe(latest => {\r\n if (this._propagateChanges) this._propagateChanges(latest[0]);\r\n this.idFormControl.setValue(latest[0], { emitEvent: true });\r\n });\r\n }\r\n\r\n /**\r\n * Overrides the texts of the dropdown\r\n *\r\n * @private\r\n * @memberof DropdownComponent\r\n */\r\n private textOverrides(): void {\r\n if (this.texts) {\r\n if (this.texts.defaultTitle) this.placeholder = this.texts.defaultTitle;\r\n if (this.texts.checkAll) this.checkAllText = this.texts.checkAll;\r\n if (this.texts.uncheckAll) this.uncheckAllText = this.texts.uncheckAll;\r\n if (this.texts.allSelected) this.allSelectedText = this.texts.allSelected;\r\n if (this.texts.searchEmptyResult) this.searchEmptyResultText = this.texts.searchEmptyResultText;\r\n }\r\n }\r\n /**\r\n * Overrides the settings of the dropdown\r\n *\r\n * @private\r\n * @memberof DropdownComponent\r\n */\r\n private settingsOverrides(): void {\r\n if (this.settings) {\r\n if (this.settings.idProperty) this.idProperty = this.settings.idProperty;\r\n if (this.settings.icon) this.icon = this.settings.icon;\r\n if (this.settings.titleProperty) this.titleProperty = this.settings.titleProperty;\r\n if (this.settings.titleReferenceProperty) this.titleReferenceProperty = this.settings.titleReferenceProperty;\r\n if (this.settings.placeholder) this.placeholder = this.settings.placeholder;\r\n if (this.settings.items) this.items = this.settings.items;\r\n if (this.settings.multiselect != null) this.multiselect = this.settings.multiselect;\r\n if (this.settings.itemsToDisplay) this.itemsToDisplay = this.settings.itemsToDisplay;\r\n if (this.settings.closeOnSelect != null) this.closeOnSelect = this.settings.closeOnSelect;\r\n if (this.settings.clearable != null) this.clearable = this.settings.clearable;\r\n if (this.settings.loading != null) this.loading = this.settings.loading;\r\n if (this.settings.groupIcon) this.groupIcon = this.settings.groupIcon;\r\n if (this.settings.groupBy) this.groupBy = this.settings.groupBy;\r\n if (this.settings.descriptionIcon) this.descriptionIcon = this.settings.descriptionIcon;\r\n if (this.settings.description) this.description = this.settings.description;\r\n if (this.settings.selectableGroupAsModel != null) this.selectableGroupAsModel = this.settings.selectableGroupAsModel;\r\n if (this.settings.selectableGroup != null) this.selectableGroup = this.settings.selectableGroup;\r\n if (this.settings.texts) this.texts = this.settings.texts;\r\n if (this.settings.searchable != null) this.searchable = this.settings.searchable;\r\n if (this.settings.clearSearchOnAdd != null) this.clearSearchOnAdd = this.settings.clearSearchOnAdd;\r\n if (this.settings.searchEmptyResultText) this.searchEmptyResultText = this.settings.searchEmptyResultText;\r\n if (this.settings.uncheckAllText) this.uncheckAllText = this.settings.uncheckAllText;\r\n if (this.settings.checkAllText) this.checkAllText = this.settings.checkAllText;\r\n if (this.settings.allSelectedText) this.allSelectedText = this.settings.allSelectedText;\r\n if (this.settings.clearItemOption != null) this.clearItemOption = this.settings.clearItemOption;\r\n if (this.settings.readonly != false) this.readonly = this.settings.readonly;\r\n if (this.settings.addTag != false) this.addTag = this.settings.addTag;\r\n if (this.settings.addTagText != null) this.addTagText = this.settings.addTagText;\r\n }\r\n }\r\n\r\n /**\r\n * Callback method that is invoked immediately after the default change detector has completed one change-check cycle\r\n *\r\n * @memberof DropdownComponent\r\n */\r\n ngAfterViewChecked(): void {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n /**\r\n * Detects the changes on the ng-select component and propagates the changes through the output\r\n *\r\n * @param {*} event\r\n * @memberof DropdownComponent\r\n */\r\n public onChange(selectedValues): void {\r\n let values: any = this.multiselect ? [] : null;\r\n if (selectedValues && !this.multiselect) values = selectedValues[this.idProperty];\r\n if (selectedValues && this.multiselect) {\r\n\r\n values = selectedValues.map(v => {\r\n // The selected values must have an ID, that ID can be either a string or a number\r\n if (_isString(v) || _isNumber(v)) return v;\r\n // In the case where it does not match the previous it will send the property value\r\n return v[this.idProperty];\r\n });\r\n }\r\n\r\n this.valueChanges.emit(values);\r\n }\r\n\r\n /**\r\n * Triggered by the focus on the input, emits the focus values to an output\r\n *\r\n * @param {*} values\r\n * @memberof DropdownComponent\r\n */\r\n public onFocus(values): void {\r\n this.focus.emit(values);\r\n }\r\n\r\n /**\r\n * Writes a new value to the element.\r\n * This method is called by the forms API to write to the view when programmatic changes from model to view are requested.\r\n *\r\n * @param {SelectWithInfoData} value\r\n * @memberof DropdownComponent\r\n */\r\n writeValue(value: SelectWithInfoData): void {\r\n this.idFormControl.setValue(value);\r\n }\r\n\r\n /**\r\n * Registers a callback function that is called when the control's value changes in the UI.\r\n * This method is called by the forms API on initialization to update the form model when values propagate from the view to the model.\r\n *\r\n * @param {*} fn\r\n * @memberof DropdownComponent\r\n */\r\n registerOnChange(fn: any): void {\r\n if (this._propagateChanges) this._propagateChanges = fn;\r\n }\r\n\r\n /**\r\n * Registers a callback function is called by the forms API on initialization to update the form model on blur.\r\n * Gets called when the control is considered blurred or \"touched\".\r\n *\r\n * @param {*} fn\r\n * @memberof DropdownComponent\r\n */\r\n registerOnTouched(fn: any): void {\r\n this._propagateTouched = fn;\r\n }\r\n\r\n /**\r\n * @description\r\n * Function that is called by the forms API when the control status changes to or from 'DISABLED'. Depending on the status, it enables or disables the appropriate DOM element.\r\n * required to have this here due to ControlValueAccessor\r\n * @example\r\n * The following is an example of writing the disabled property to a native DOM element:\r\n *\r\n * @param {boolean} isDisabled\r\n * @memberof DropdownComponent\r\n */\r\n setDisabledState?(isDisabled: boolean): void { }\r\n\r\n /**\r\n * Selects all items on the dropdown\r\n *\r\n * @memberof DropdownComponent\r\n */\r\n onSelectAll(): void {\r\n const selected = this.items.map(item => item[this.idProperty]);\r\n this.idFormControl.setValue(selected);\r\n this.onChange(selected);\r\n }\r\n\r\n /**\r\n * Clears all items on the dropdown\r\n *\r\n * @memberof DropdownComponent\r\n */\r\n onClearAll(): void {\r\n this.idFormControl.setValue(null);\r\n this.onChange('');\r\n }\r\n\r\n /**\r\n * Generates the text for the dropdown list depending how many are selected\r\n * 1 selected - Will display the item name\r\n * +1 selected - will display the Item name +X many selected\r\n *\r\n * @returns {string}\r\n * @memberof DropdownComponent\r\n */\r\n getLengthSelected(): string {\r\n const formValues = this.form.get('id')!.value;\r\n if (formValues.length - this.itemsToDisplay === 0) return '';\r\n if (formValues.length === this.items.length) {\r\n this.itemsToDisplay = 0;\r\n return this.allSelectedText;\r\n }\r\n this.itemsToDisplay = this._defaultItemsToDisplay;\r\n return `+ ${(formValues.length - this.itemsToDisplay).toString()}`;\r\n }\r\n\r\n /**\r\n * Clears the selected value\r\n * Usage:\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * @ViewChild('siteDropdown') siteDropdown: DropdownComponent;\r\n * this.siteDropdown.clearSelectedValue();\r\n * ```\r\n *\r\n * @memberof DropdownComponent\r\n */\r\n clearSelectedValue(): void {\r\n this.ngSelect.searchTerm = \"\";\r\n this.onClearAll();\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n {{item[groupBy]}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{item[titleProperty]}} ({{item[titleReferenceProperty]}})\r\n ×\r\n
\r\n
itemsToDisplay\">\r\n {{getLengthSelected()}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{item[titleProperty]}}\r\n ({{item[titleReferenceProperty]}})\r\n

\r\n

\r\n {{item[description]}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { ConfigurationQueryService } from '../../../core/services/configuration-query.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ArrayHelperService } from '../../../core/services/array-helper.service';\r\nimport { mobileLists } from '../../../admin/values/mobile-lists';\r\nimport { flow, cloneDeep, map, partialRight, sortBy, each, max, filter } from 'lodash';\r\nimport { ListPreviewModalContext } from '../../../admin/models/list-preview-modal-context';\r\nimport { ListPreviewModalComponent } from '../../../admin/components/list-preview-modal/list-preview-modal.component';\r\nimport { AddEditListItemModalComponent } from '../add-edit-list-item-modal/add-edit-list-item-modal.component';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { ModalOptions, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { ModalDialogComponent } from '../modal-dialog/modal-dialog.component';\r\nimport { SSModalConfig, SSDialogContext } from 'app/shared/models/ss-modal-config';\r\nimport { LookupDataBase, ConfigurationCommandService, ConfigurationData } from 'app/core/hub-api';\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-editable-list-table',\r\n templateUrl: './editable-list-table.component.html',\r\n styleUrls: ['./editable-list-table.component.scss']\r\n})\r\nexport class EditableListTableComponent implements OnInit, OnDestroy, OnChanges {\r\n /** The title of the editable list table component. */\r\n title: string;\r\n /** An array of LookupDataBase objects representing the items to be displayed in the editable list table. */\r\n items: LookupDataBase[] = [];\r\n\r\n /** The key used to identify the list in the component. */\r\n @Input()\r\n listKey: string;\r\n\r\n /** A boolean value indicating whether the mobile preview is currently being shown or not. */\r\n @Input()\r\n showMobilePreview = false;\r\n\r\n /** The title of the list displayed in the editable list table component. */\r\n @Input()\r\n listTitle?: string;\r\n\r\n constructor(\r\n private configurationQueryService: ConfigurationQueryService,\r\n private arrayHelperService: ArrayHelperService,\r\n private configurationCommandService: ConfigurationCommandService,\r\n public modalService: BsModalService,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n /**\r\n * Lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.\r\n * This method is called only once when the directive is instantiated.\r\n * It is an ideal place to perform any initialization logic that depends on the input properties.\r\n */\r\n ngOnInit(): void {\r\n this.getSubscription();\r\n }\r\n\r\n /**\r\n * Responds to changes in input properties.\r\n * @param changes - An object containing the changed properties and their previous and current values.\r\n * @returns void\r\n */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['listKey']) {\r\n this.getSubscription();\r\n }\r\n }\r\n\r\n /**\r\n * Subscribes to configuration data changes and refreshes the component with the latest data.\r\n * @returns void\r\n */\r\n getSubscription(): void {\r\n this.configurationQueryService.configurationDataChanges().subscribe(latest => this.refreshComponent(latest));\r\n }\r\n\r\n /**\r\n * Refreshes the component with the given configuration data.\r\n * @param configuration The configuration data to use for refreshing the component.\r\n * @returns void\r\n */\r\n refreshComponent(configuration: ConfigurationData): void {\r\n const items = mobileLists.find(l => l.key === this.listKey);\r\n this.title = this.listTitle ? this.listTitle : items ? items.title : '';\r\n this.items = flow([cloneDeep, map, partialRight(sortBy, i => i.SortOrder)])(\r\n filter(configuration[`${this.listKey}s`], function (item): boolean {\r\n return !item.Deleted;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Moves an item from the old index to the new index in the list of items.\r\n * @param oldIndex The index of the item to be moved.\r\n * @param newIndex The index where the item should be moved to.\r\n */\r\n onMoveItem(oldIndex: number, newIndex: number): void {\r\n if (this.items[oldIndex] && this.items[newIndex]) {\r\n this.items = this.arrayHelperService.move(this.items, oldIndex, newIndex);\r\n this.saveSortOrder();\r\n }\r\n }\r\n\r\n /**\r\n * Saves the current sort order of the items in the list by updating their `SortOrder` property\r\n * and calling the `updateItems` function to persist the changes.\r\n */\r\n saveSortOrder(): void {\r\n each(this.items, (t, i) => (t.SortOrder = i));\r\n this.updateItems(this.items);\r\n }\r\n\r\n /**\r\n * Updates the items in the editable list table.\r\n * @param items The new list of items to update.\r\n * @returns void\r\n */\r\n updateItems(items: LookupDataBase[]): void {\r\n const command = {\r\n [`${this.listKey}s`]: items\r\n };\r\n this.configurationCommandService[`Edit${this.listKey}sCommand`](command).subscribe(() =>\r\n this.configurationQueryService.configurationQuery(false)\r\n );\r\n }\r\n\r\n /**\r\n * Handles the logic for adding a new item to the list.\r\n * Sets up the context for the AddEditListItemModalComponent and opens the modal.\r\n */\r\n onAddItem(): void {\r\n const context = {\r\n listKey: this.listKey,\r\n listTitle: this.title,\r\n itemSortOrder: flow([partialRight(map, t => t.SortOrder), max])(this.items) + 1 || 0,\r\n showSubtitle: true\r\n };\r\n const modal = this.modalService.show(AddEditListItemModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n /**\r\n * Sets the item at the specified index as the default item and updates the list.\r\n * @param itemIndex The index of the item to set as default.\r\n */\r\n onSetAsDefault(itemIndex: number): any {\r\n each(this.items, function (item, i): any {\r\n item['IsDefault'] = i === itemIndex;\r\n });\r\n this.onMoveItem(itemIndex, 0);\r\n this.updateItems(this.items);\r\n }\r\n\r\n /**\r\n * Deletes an item from the list of items.\r\n * If the item is a default item, it will not allow to be deleted and will show a modal dialog.\r\n * If the item is not a default item, it will show a confirmation modal dialog before deleting the item.\r\n * @param itemIndex The index of the item to be deleted.\r\n * @returns void\r\n */\r\n onDeleteItem(itemIndex: number): any {\r\n const item = this.items[itemIndex];\r\n let context: SSDialogContext, config: ModalOptions;\r\n // If it is a default item it will not allow to be deleted\r\n if (item.IsDefault) {\r\n context = {\r\n title: `Unable to Delete ${this.title}`,\r\n body: `\"${item.Title}\" is a default item and cannot be deleted.`,\r\n cancelBtnClass: 'btn button-assertive',\r\n cancelBtnText: 'Close',\r\n showOnlyCloseBtn: true,\r\n };\r\n config = {\r\n class: 'modal-danger',\r\n };\r\n const modal = this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context, config));\r\n return;\r\n }\r\n context = {\r\n title: `Delete ${this.title}?`,\r\n body: `Are you sure you want to delete \"${item.Title}\"?`,\r\n okBtnClass: 'btn button-assertive',\r\n okBtnText: 'Yes delete it',\r\n cancelBtnClass: 'btn button-default',\r\n cancelBtnText: 'No keep it',\r\n headerClass: 'confirm-modal-header',\r\n footerClass: 'confirm-modal-footer'\r\n };\r\n config = {\r\n class: 'modal-danger',\r\n };\r\n const modal = this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context, config));\r\n modal.content.onClose.subscribe({\r\n next: (result) => {\r\n if (result === true) {\r\n this.items.splice(itemIndex, 1);\r\n this.deleteItems([item]);\r\n }\r\n },\r\n error: (error) => {\r\n console.error(error);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Deletes the specified items from the list.\r\n * @param items The items to delete.\r\n */\r\n deleteItems(items: LookupDataBase[]): void {\r\n const command = {\r\n [`${this.listKey}s`]: items.map(t => t[`${this.listKey}Id`])\r\n };\r\n this.configurationCommandService[`Delete${this.listKey}sCommand`](command).subscribe(() =>\r\n this.configurationQueryService.configurationQuery(false)\r\n );\r\n }\r\n\r\n /**\r\n * Opens a modal to preview the list items.\r\n * @returns void\r\n */\r\n onViewPreview(): void {\r\n const context: ListPreviewModalContext = {\r\n listTitle: this.title,\r\n mobileListItems: this.items\r\n };\r\n const modal = this.modalService.show(ListPreviewModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n /**\r\n * Lifecycle hook that is called when the component is destroyed.\r\n * Use this hook to perform any necessary cleanup, such as unsubscribing from observables.\r\n */\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{title}}\r\n
{{item.Title}}{{item.Subtitle}}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { ButtonStyleValues } from 'app/shared/values/button-style-enum';\r\n\r\n@Component({\r\n selector: 'hub-export-csv',\r\n template: `\r\n \r\n export csv\r\n `\r\n})\r\n\r\nexport class ExportCsvComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n blobContainer: any;\r\n @Input()\r\n buttonStyle?: any;\r\n @Input()\r\n trigger?: boolean; // workaround for change detection generating multiple downloads\r\n buttonStyleValues = ButtonStyleValues;\r\n constructor() { }\r\n\r\n private isVaildBlob(blob: any): any {\r\n return blob && blob.fileURL && blob.fileName;\r\n }\r\n\r\n private download(): void {\r\n if (this.isVaildBlob(this.blobContainer) && this.trigger) {\r\n const exportLink = document.createElement('a');\r\n document.body.appendChild(exportLink);\r\n exportLink.href = this.blobContainer.fileURL;\r\n exportLink.download = this.blobContainer.fileName;\r\n exportLink.click();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.buttonStyle = this.buttonStyle ? this.buttonStyle : this.buttonStyleValues.round;\r\n this.download();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['blobContainer']) {\r\n this.download();\r\n }\r\n }\r\n}\r\n\r\n","import { FEATURE_FLAGS_TOKEN } from './feature-flags.token';\r\n\r\nimport { Directive, Inject, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ssFeatureFlag]'\r\n})\r\nexport class FeatureFlagDirective {\r\n\r\n private hasView = false;\r\n\r\n constructor(\r\n @Inject(FEATURE_FLAGS_TOKEN) private featureFlags,\r\n private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef) { }\r\n\r\n @Input() set ssFeatureFlag(feature: string) {\r\n if (this.featureFlags[feature] && !this.hasView) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.hasView = true;\r\n } else if (!this.featureFlags[feature] && this.hasView) {\r\n this.viewContainer.clear();\r\n this.hasView = false;\r\n }\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FeatureFlagDirective } from './feature-flag.directive';\r\nimport { FEATURE_FLAGS_TOKEN } from './feature-flags.token';\r\n\r\n@NgModule({\r\n declarations: [\r\n FeatureFlagDirective\r\n ],\r\n exports: [\r\n FeatureFlagDirective\r\n ]\r\n})\r\nexport class FeatureFlagsModule {\r\n constructor() { }\r\n static forRoot(featureFlags: () => { [key: string]: boolean }): ModuleWithProviders {\r\n return {\r\n ngModule: FeatureFlagsModule,\r\n providers: [\r\n {\r\n provide: FEATURE_FLAGS_TOKEN,\r\n useFactory: featureFlags\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const FEATURE_FLAGS_TOKEN = new InjectionToken<{ [key: string]: boolean }>('featureFlags');\r\n","export * from './feature-flags.module';\r\nexport * from './feature-flag.directive';\r\nexport * from './feature-flags.token';\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'hub-form-group',\r\n templateUrl: './form-group.component.html',\r\n styleUrls: ['./form-group.component.scss']\r\n})\r\nexport class FormGroupComponent implements OnInit {\r\n\r\n @Input()\r\n control: UntypedFormControl = new UntypedFormControl();\r\n // formControlName of the input.\r\n @Input()\r\n name: string;\r\n @Input()\r\n label: string;\r\n @Input()\r\n validationErrors: { [key: string]: string } = {};\r\n @Input()\r\n tooltipText?: string;\r\n @Input()\r\n tooltipPlacement?: string;\r\n\r\n required: boolean;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n // We run the validator against a form control with an empty value and check if the required attribute exists on the result :)\r\n if (this.control.validator && this.control.validator(new UntypedFormControl(''))) {\r\n const errors = this.control.validator(new UntypedFormControl(''));\r\n this.required = Object.keys(errors).includes('required');\r\n } else {\r\n this.required = false;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n \r\n
\r\n {{ validationErrors[name] }}\r\n
\r\n
","import { OnDestroy, OnInit, Directive } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormGroup } from '@angular/forms';\r\nimport { map, mapValues } from 'lodash';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\n\r\n@Directive()\r\n@AutoUnsubscribe()\r\n// Abstract class implementing common functionality used in the app's forms.\r\nexport abstract class FormComponent implements OnInit, OnDestroy {\r\n // The form which we are working with in this modal.\r\n abstract form: UntypedFormGroup;\r\n\r\n // Nested dictionary mapping form field names to dictionaries which map all of that field's\r\n // possible error message names to its error messages. The order of the error messages determines which\r\n // one will be used in the event of multiple validation errors. Example:\r\n // {\r\n // 'siteName': {\r\n // 'required': errorMessages.required,\r\n // },\r\n // 'siteAddress': {\r\n // 'required': errorMessages.required,\r\n // },\r\n // }\r\n abstract validationMessages: { [key: string]: { [key: string]: string } };\r\n\r\n // Whether the form data is currently being saved/submitted.\r\n saveInProgress = false;\r\n serverError = '';\r\n\r\n // Dictionary of the current validation errors which will be displayed in the UI - eg:\r\n // {\r\n // 'siteName': ''\r\n // 'siteAddress': ''\r\n // }\r\n validationErrors: { [key: string]: string };\r\n\r\n // Child component should call this manually after setting up the form in its own ngOnInit.\r\n ngOnInit(): void {\r\n // Generate form errors dictionary from the validation messages.\r\n this.validationErrors = mapValues(this.validationMessages, () => '');\r\n\r\n map(this.form?.controls, (control, fieldName) => {\r\n // Update the validation errors when any control's value changes.\r\n control.valueChanges.subscribe(() => {\r\n this.updateValidationErrors(fieldName);\r\n });\r\n // Update the validation errors on initialisation.\r\n this.updateValidationErrors(fieldName);\r\n });\r\n }\r\n\r\n // Updates the validation errors which will be shown in the UI - note that we do not reason about whether the field is dirty/touched here.\r\n updateValidationErrors(field: string, form: UntypedFormGroup = this.form ): void {\r\n // Clear previous error message.\r\n this.validationErrors[field] = '';\r\n\r\n const control = form.get(field);\r\n if (control && !control.valid) {\r\n const messages = this.validationMessages ? this.validationMessages[field] : null;\r\n // Show only the first error for this field.\r\n if (messages) {\r\n const firstError = Object.keys(messages).find(key => control.errors[key]);\r\n this.validationErrors[field] = messages[firstError];\r\n }\r\n }\r\n }\r\n\r\n // Updates the validation errors, then returns true if there are no invalid controls, false otherwise.\r\n validateForm(): boolean {\r\n // Set any invalid controls to touched and show any form errors.\r\n const invalidControls = map(this.form.controls).filter(control => !control.valid);\r\n\r\n // Mark all controls as touched to ensure errors will be shown in the UI.\r\n map(this.form.controls, control => {\r\n this.markControlTouched(control);\r\n });\r\n\r\n Object.keys(this.validationErrors).map(field => {\r\n this.updateValidationErrors(field);\r\n });\r\n\r\n return !invalidControls.length;\r\n }\r\n\r\n // allows you to pass in a different form or different validation errors\r\n public validateThisForm(form: UntypedFormGroup = this.form, validationErrors: any = this.validationErrors): boolean {\r\n // Set any invalid controls to touched and show any form errors.\r\n const invalidControls = Object.values(form.controls).filter(control => !control.valid);\r\n\r\n // Mark all controls as touched to ensure errors will be shown in the UI.\r\n Object.values(form.controls).forEach(control => {\r\n control.markAsTouched();\r\n });\r\n\r\n Object.keys(validationErrors).forEach(field => {\r\n this.updateValidationErrors(field, form);\r\n });\r\n\r\n return invalidControls.length == 0;\r\n }\r\n\r\n // Handling Nested Form Groups and Controls\r\n markControlTouched(control): void {\r\n control.markAsTouched();\r\n if (control instanceof UntypedFormArray) {\r\n (control as UntypedFormArray).controls.map(c => this.markControlTouched(c));\r\n }\r\n if (control instanceof UntypedFormGroup) {\r\n map((control as UntypedFormGroup).controls, c => this.markControlTouched(c));\r\n }\r\n }\r\n\r\n serverErrorCallback = (response: HttpErrorResponse): void => {\r\n this.serverError = response.error.Message || 'An error occurred while processing your request. Please try again later.';\r\n this.saveInProgress = false;\r\n throw response.error.Message;\r\n }\r\n\r\n // Don't allow the user to dismiss the modal while saving.\r\n beforeDismiss(): boolean {\r\n return this.saveInProgress;\r\n }\r\n\r\n // Don't allow the user to close the modal while saving.\r\n beforeClose(): boolean {\r\n return this.saveInProgress;\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { ScaffoldStatisticsData } from 'app/core/hub-api';\r\nimport { colors } from '../../values/colours';\r\nimport * as Highcharts from 'highcharts';\r\n\r\n@Component({\r\n selector: 'hub-handovers-extra-hire-chart',\r\n templateUrl: './handovers-extra-hire-chart.component.html',\r\n styleUrls: ['./handovers-extra-hire-chart.component.scss']\r\n})\r\nexport class HandoversExtraHireChartComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n scaffoldData: ScaffoldStatisticsData;\r\n\r\n Highcharts: typeof Highcharts = Highcharts;\r\n chart: any;\r\n\r\n chartConfig = {\r\n credits: { enabled: false },\r\n title: {\r\n text: '',\r\n y: 15,\r\n style: {\r\n color: colors.river\r\n }\r\n },\r\n subtitle: {\r\n text: 'Scaffolds On Hire',\r\n y: 30\r\n },\r\n chart: {\r\n type: 'pie',\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n backgroundColor: 'transparent'\r\n },\r\n colors: [colors.positive, colors.assertive],\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: true,\r\n formatter: function (): any {\r\n return this.y > 0 ? this.point.y : null;\r\n },\r\n color: 'black'\r\n }\r\n },\r\n pie: {\r\n dataLabels: {\r\n enabled: true,\r\n formatter(): any {\r\n return this.y > 0 ? Math.round(this.percentage * 100) / 100 + ' %' : null;\r\n },\r\n distance: 15,\r\n color: 'black'\r\n },\r\n showInLegend: true,\r\n innerSize: '80%'\r\n }\r\n },\r\n series: []\r\n };\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.chart = Highcharts.chart('handoversExtraHireChart', this.chartConfig);\r\n this.updateChartData();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['scaffoldData'] && !!this.chartConfig) {\r\n this.updateChartData();\r\n }\r\n }\r\n\r\n updateChartData(): void {\r\n if (this.chart) {\r\n\r\n while (!!this.chart.series[0]) { this.chart.series[0].remove(); }\r\n\r\n this.chart.setTitle({ text: this.scaffoldData.TotalScaffoldsOnHire.toString() });\r\n\r\n this.chart.addSeries(\r\n {\r\n type: 'pie',\r\n name: 'Scaffolds',\r\n data: [\r\n ['On Hire', this.scaffoldData.TotalScaffoldsOnHire - this.scaffoldData.TotalScaffoldsInExtraHire],\r\n ['Extra Hire', this.scaffoldData.TotalScaffoldsInExtraHire]\r\n ]\r\n }\r\n );\r\n this.chart.redraw();\r\n }\r\n }\r\n}\r\n","
\r\n","import { ScaffoldStatisticsData } from 'app/core/hub-api';\r\nimport { Component, Input, OnChanges, OnInit, SimpleChanges, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { colors } from '../../values/colours';\r\n\r\n@Component({\r\n selector: 'hub-handovers-scaffold-status-chart',\r\n templateUrl: './handovers-scaffold-status-chart.component.html',\r\n styleUrls: ['./handovers-scaffold-status-chart.component.scss']\r\n})\r\nexport class HandoversScaffoldStatusChartComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n scaffoldData: ScaffoldStatisticsData;\r\n\r\n @Output() selectedLegend = new EventEmitter();\r\n\r\n Highcharts: typeof Highcharts = Highcharts;\r\n chart: any;\r\n selectedLeg: any;\r\n\r\n\r\n chartConfig: Highcharts.Options = {\r\n credits: { enabled: false },\r\n title: {\r\n text: '',\r\n y: 15,\r\n style: {\r\n color: colors.river\r\n }\r\n },\r\n subtitle: {\r\n text: 'Total Scaffolds',\r\n y: 30\r\n },\r\n yAxis: {\r\n allowDecimals: false,\r\n min: 0,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n xAxis: {\r\n categories: [\r\n '', '', ''\r\n ],\r\n },\r\n tooltip: {},\r\n chart: {\r\n type: 'column',\r\n },\r\n colors: [\r\n colors.calm,\r\n colors.positive,\r\n colors.tomato\r\n ],\r\n plotOptions: {\r\n series: {\r\n events: {\r\n legendItemClick: (e) => {\r\n // Gets the selected chart legend\r\n const point1 = (this.chart.series[0] as any).points[0];\r\n const point2 = (this.chart.series[1] as any).points[0];\r\n const point3 = (this.chart.series[2] as any).points[0];\r\n\r\n const points = [\r\n { name: point1.series.name.replace(/\\s/g, ''), visible: point1.series.visible },\r\n { name: point2.series.name.replace(/\\s/g, ''), visible: point2.series.visible },\r\n { name: point3.series.name.replace(/\\s/g, ''), visible: point3.series.visible }\r\n ];\r\n\r\n this.selectedLeg = points.filter(s => s.visible).map(s => s.name);\r\n if ((e.target as any).visible) {\r\n const index = this.selectedLeg.findIndex(s => s === (e.target as any).name);\r\n this.selectedLeg.splice(index, 1);\r\n } else {\r\n this.selectedLeg.push((e.target as any).name);\r\n }\r\n this.selectedLegend.emit(this.selectedLeg);\r\n }\r\n },\r\n showInLegend: true,\r\n },\r\n column: {},\r\n },\r\n series: [],\r\n };\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['scaffoldData'] && !!this.chart) {\r\n this.updateChartData();\r\n }\r\n }\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n this.chart = Highcharts.chart('handoversScaffoldStatusChart', this.chartConfig);\r\n this.updateChartData();\r\n }\r\n\r\n updateChartData(): void {\r\n if (this.chart) {\r\n while (!!this.chart.series[0]) { this.chart.series[0].remove(); }\r\n\r\n this.chart.addSeries({\r\n name: 'Incomplete',\r\n type: 'column',\r\n data: [this.scaffoldData.TotalScaffoldsIncomplete]\r\n\r\n });\r\n\r\n this.chart.addSeries({\r\n name: 'On Hire',\r\n type: 'column',\r\n data: [this.scaffoldData.TotalScaffoldsOnHire]\r\n });\r\n\r\n this.chart.addSeries({\r\n name: 'Off Hire',\r\n type: 'column',\r\n data: [this.scaffoldData.TotalScaffoldsOffHire]\r\n\r\n });\r\n\r\n const points = [\r\n (this.chart.series[0] as any).points[0].series.name.replace(/\\s/g, ''),\r\n (this.chart.series[1] as any).points[0].series.name.replace(/\\s/g, ''),\r\n (this.chart.series[2] as any).points[0].series.name.replace(/\\s/g, '')\r\n ];\r\n\r\n this.selectedLegend.emit(points);\r\n\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.chart.setTitle({ text: this.scaffoldData.TotalScaffolds.toString() }, undefined, false);\r\n this.chart.redraw();\r\n }\r\n }\r\n\r\n}\r\n","
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n// Help panel display component which can be given custom content.\r\n@Component({\r\n selector: 'hub-help-panel',\r\n templateUrl: './help-panel.component.html',\r\n styleUrls: ['./help-panel.component.scss']\r\n})\r\nexport class HelpPanelComponent implements OnInit {\r\n\r\n @Input()\r\n title: string;\r\n\r\n togglePanel: boolean;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.togglePanel = false;\r\n }\r\n\r\n onTogglePanel = () => this.togglePanel = !this.togglePanel;\r\n\r\n}\r\n","\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
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ImageModalComponent } from '../image-modal/image-modal.component';\r\nimport { ImageModalContext } from '../image-modal/image-modal-context';\r\nimport { indexOf as _indexOf } from 'lodash';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-image-carousel',\r\n templateUrl: './image-carousel.component.html',\r\n styleUrls: ['./image-carousel.component.scss']\r\n})\r\nexport class ImageCarouselComponent implements OnInit {\r\n @Input() media?: string[];\r\n @Input() height?: string;\r\n\r\n\r\n constructor(private bsModalService: BsModalService) { }\r\n\r\n ngOnInit(): void {\r\n this.height = this.height ? this.height : '100px';\r\n }\r\n\r\n openImageModal(imageURL): void {\r\n if (!imageURL) return;\r\n const imageIndex = _indexOf(this.media, imageURL);\r\n this.media.splice(imageIndex, 1);\r\n this.media.unshift(imageURL);\r\n const context: ImageModalContext = { imageUrl: this.media };\r\n this.bsModalService.show(ImageModalComponent, SSModalConfig.generate(context, { ignoreBackdropClick: false, keyboard: true }));\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n","import { ImageModalContext } from './image-modal-context';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n// Component for displaying an image in a modal.\r\n@Component({\r\n selector: 'hub-image-modal',\r\n templateUrl: './image-modal.component.html',\r\n styleUrls: ['./image-modal.component.scss']\r\n})\r\nexport class ImageModalComponent implements OnInit {\r\n context: Partial;\r\n imageUrls: string[];\r\n\r\n constructor(private bsModalRef: BsModalRef, public modalService: BsModalService) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.context.dialogClass = 'image-modal';\r\n this.imageUrls = this.context.imageUrl;\r\n }\r\n\r\n dismiss(): void {\r\n this.modalService.setDismissReason('continue-loading');\r\n this.bsModalRef.hide();\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-image-viewer',\r\n templateUrl: './image-viewer.component.html',\r\n styleUrls: ['./image-viewer.component.scss']\r\n})\r\nexport class ImageViewerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

\r\n image-viewer works!\r\n

\r\n","import { colors } from '../../values/colours';\r\n\r\nimport { Component, ElementRef, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { TextToColorService } from 'app/core/services/text-to-color.service';\r\n\r\n@Component({\r\n selector: 'hub-initials-icon',\r\n templateUrl: './initials-icon.component.html',\r\n styleUrls: ['./initials-icon.component.scss']\r\n})\r\nexport class InitialsIconComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n name = '';\r\n\r\n @Input()\r\n disabled: boolean;\r\n\r\n initials: string;\r\n\r\n @ViewChild('initialsContainer', { static: true })\r\n initialsContainer: ElementRef;\r\n\r\n constructor(private textToColourService: TextToColorService) { }\r\n\r\n ngOnInit(): void {\r\n this.refreshComponent();\r\n }\r\n\r\n refreshComponent(): void {\r\n this.initials = this.getInitials();\r\n this.setColour();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['name'] || changes['disabled']) {\r\n this.refreshComponent();\r\n }\r\n }\r\n\r\n getInitials(): string {\r\n let customerInitials = this.name.match(/\\b(\\w)/g);\r\n if (!customerInitials) {\r\n return '';\r\n }\r\n customerInitials = customerInitials.slice(0, 2);\r\n\r\n if (typeof customerInitials[0] !== 'undefined') {\r\n customerInitials[0] = customerInitials[0].toUpperCase();\r\n }\r\n if (typeof customerInitials[1] !== 'undefined') {\r\n customerInitials[1] = customerInitials[1].toLowerCase();\r\n }\r\n return customerInitials.join('');\r\n }\r\n\r\n // Set the icon to grey if disabled, or a colour selected based on the name string otherwise.\r\n setColour(): void {\r\n let color;\r\n if (this.disabled) {\r\n color = colors.lightGrey;\r\n } else {\r\n const iconColours = [\r\n colors.carrot,\r\n colors.tomato,\r\n colors.river,\r\n colors.emerald,\r\n colors.amethyst,\r\n colors.sunflower,\r\n colors.pumpkin,\r\n ];\r\n\r\n color = this.textToColourService.textToColor(this.name, iconColours);\r\n }\r\n this.initialsContainer.nativeElement.style.backgroundColor = color;\r\n }\r\n}\r\n","
{{ initials }}
\r\n","import { icons } from '../../values/icons';\r\nimport { inspectionOutcomeStatusIds } from '../../values/inspection-outcome-status-ids';\r\nimport {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { scaffoldStatusIds } from 'app/shared/values/scaffold-status-ids';\r\nimport { ActivityStatusEnum, DiaryDataTypeEnum } from 'app/core/hub-api';\r\n\r\n@Component({\r\n selector: 'hub-inspection-result',\r\n templateUrl: './inspection-result.component.html',\r\n styleUrls: ['./inspection-result.component.scss'],\r\n})\r\nexport class InspectionResultComponent implements OnInit, OnChanges {\r\n @Input()\r\n status: number | string;\r\n @Input()\r\n handover?: boolean;\r\n @Input()\r\n hideTitle: boolean;\r\n @Input()\r\n hideIcon?: boolean;\r\n\r\n icon: string;\r\n title: string;\r\n\r\n ngOnInit(): void {\r\n this.refreshComponent();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['handover'] || changes['status']) {\r\n this.refreshComponent();\r\n }\r\n }\r\n\r\n refreshComponent(): void {\r\n if (this.handover) {\r\n this.icon = icons.handoverInspection;\r\n this.title = 'Handover inspection';\r\n return;\r\n }\r\n switch (this.status) {\r\n case DiaryDataTypeEnum.SiteDiary:\r\n this.icon = icons.siteDiary;\r\n this.title = 'Site Diary';\r\n break;\r\n case ActivityStatusEnum.Incomplete:\r\n this.icon = icons.inCompleteStatus;\r\n this.title = 'Incomplete';\r\n break;\r\n case inspectionOutcomeStatusIds.noDefects:\r\n case ActivityStatusEnum.InspectionNoDefects:\r\n this.icon = icons.noDefects;\r\n this.title = 'No defects';\r\n break;\r\n case inspectionOutcomeStatusIds.defectsFixed:\r\n case ActivityStatusEnum.InspectionDefectsFixed:\r\n this.icon = icons.defectsFixed;\r\n this.title = 'Defects fixed';\r\n break;\r\n case inspectionOutcomeStatusIds.defectsNotFixed:\r\n case ActivityStatusEnum.InspectionDefectsNotFixed:\r\n this.icon = icons.defectsNotFixed;\r\n this.title = 'Minor defects remain';\r\n break;\r\n case inspectionOutcomeStatusIds.unsafeScaffold:\r\n case ActivityStatusEnum.InspectionUnSafeScaffold:\r\n this.icon = icons.unsafeScaffold;\r\n this.title = 'Unsafe';\r\n break;\r\n case scaffoldStatusIds.incomplete:\r\n case ActivityStatusEnum.Incomplete:\r\n this.icon = icons.inCompleteStatus;\r\n this.title = 'Incomplete';\r\n break;\r\n case scaffoldStatusIds.onHire:\r\n case ActivityStatusEnum.OnHire:\r\n this.icon = icons.onHireStatus;\r\n this.title = 'On-hire';\r\n break;\r\n case scaffoldStatusIds.offHire:\r\n case ActivityStatusEnum.OffHire:\r\n this.icon = icons.offHireStatus;\r\n this.title = 'Off-hire';\r\n break;\r\n case scaffoldStatusIds.dismantled:\r\n case ActivityStatusEnum.Dismantled:\r\n this.icon = icons.dismantle;\r\n this.title = 'Dismantled';\r\n break;\r\n case undefined:\r\n this.icon = icons.neverInspected;\r\n this.title = 'Never inspected';\r\n break;\r\n default:\r\n this.icon = icons.unknown;\r\n this.title = 'Unknown';\r\n }\r\n }\r\n}\r\n","\r\n \r\n {{ title }}\r\n\r\n","import { Component, OnInit, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { DepotData, StaffDetailsWebAppData, ConfigurationData, StaffData, SiteWebAppData } from 'app/core/hub-api';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { LimitReachedModalContext } from 'app/shared/models/limit-reached-modal-context';\r\nimport { AddEditSiteModalComponent } from 'app/sites/components/sites-list/add-edit-site-modal/add-edit-site-modal.component';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { AddEditStaffModalComponent } from '../add-edit-staff-modal/add-edit-staff-modal.component';\r\nimport { CompanySettingsService } from 'app/shared/services/company-setting.service';\r\nimport { FormComponent } from '../form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\n\r\n@Component({\r\n selector: 'hub-limit-reached-modal',\r\n templateUrl: './limit-reached-modal.component.html',\r\n styleUrls: ['./limit-reached-modal.component.scss']\r\n})\r\nexport class LimitReachedModalComponent extends FormComponent implements OnInit, OnDestroy {\r\n context: Partial;\r\n editMode = false;\r\n addEditText: string;\r\n ClientMaxSitesLimit: number;\r\n NoOfOpenSites: number;\r\n ClientMaxStaffsLimit: number;\r\n NoOfOpenStaffs: number;\r\n depots: DepotData[];\r\n loggedInStaff: StaffDetailsWebAppData;\r\n configuration: ConfigurationData;\r\n title: string;\r\n validationMessages = {};\r\n form: UntypedFormGroup;\r\n type: string;\r\n mainMessageSubString: string;\r\n noteMessageSubString: string;\r\n cancel = new EventEmitter();\r\n allStaffs: StaffData[];\r\n closeDeleteText: string;\r\n site: SiteWebAppData;\r\n staff: StaffDetailsWebAppData;\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private companySettingsService: CompanySettingsService,\r\n private bsModalService: BsModalService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.editMode = this.context.editMode;\r\n this.configuration = this.context.configuration;\r\n this.depots = this.context.depots;\r\n this.loggedInStaff = this.context.loggedInStaff;\r\n this.type = this.context.type;\r\n this.title = this.editMode ? `Edit ${this.type}` : `Add ${this.type}`;\r\n this.addEditText = this.editMode ? `re-opening a ${this.type}` : `adding a new ${this.type}`;\r\n this.closeDeleteText = this.type === 'site' ? 'close an open one' : 'delete one';\r\n this.ClientMaxSitesLimit = this.context.ClientMaxSitesLimit;\r\n this.NoOfOpenSites = this.context.NoOfOpenSites;\r\n this.ClientMaxStaffsLimit = this.context.ClientMaxStaffsLimit;\r\n this.NoOfOpenStaffs = this.context.NoOfOpenStaffs;\r\n this.site = this.context.site;\r\n this.allStaffs = this.context.staffs;\r\n this.staff = this.context.staff;\r\n this.mainMessageSubString = this.type === 'site' ? 'open sites' : 'staff members';\r\n this.noteMessageSubString = this.type === 'site' ? 'Sites' : 'Staff Members';\r\n }\r\n\r\n onRefresh(): void {\r\n this.saveInProgress = true;\r\n this.companySettingsService.getCompanyDetailsForceFetchFromServer().subscribe(clientSettings => {\r\n this.ClientMaxSitesLimit = clientSettings.MaxOpenSites;\r\n this.ClientMaxStaffsLimit = clientSettings.MaxStaff;\r\n\r\n this.configurationQueryService.configurationQueryFromServer().subscribe(configuration => {\r\n this.NoOfOpenSites = configuration.CompanyStatisticData.NoOfOpenSite;\r\n this.NoOfOpenStaffs = configuration.CompanyStatisticData.NoOfNonDeletedStaff;\r\n this.saveInProgress = false;\r\n\r\n if (this.type === 'site' && !this.editMode && this.NoOfOpenSites < this.ClientMaxSitesLimit) {\r\n this.bsModalRef.hide();\r\n\r\n const context = {\r\n editMode: false,\r\n configuration: configuration,\r\n depots: this.depots,\r\n loggedInStaff: this.loggedInStaff,\r\n stockControl: clientSettings.FeatureFlags.stockControl\r\n };\r\n const modal = this.bsModalService.show(AddEditSiteModalComponent, SSModalConfig.generate(context))\r\n modal.onHidden.subscribe(\r\n siteReference => {\r\n if (siteReference === null || typeof siteReference !== 'string') return;\r\n this.router.navigate([`/sites/${siteReference}`], { relativeTo: this.route });\r\n },\r\n error => {\r\n console.log(error);\r\n },\r\n () => { }\r\n );\r\n }\r\n\r\n if (this.type === 'site' && this.editMode && this.NoOfOpenSites < this.ClientMaxSitesLimit) {\r\n this.bsModalRef.hide();\r\n const context = {\r\n editMode: true,\r\n configuration: configuration,\r\n depots: this.depots,\r\n loggedInStaff: this.loggedInStaff,\r\n site: this.site,\r\n stockControl: clientSettings.FeatureFlags.stockControl\r\n };\r\n this.bsModalService.show(AddEditSiteModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n if (this.type === 'staff' && !this.editMode && this.NoOfOpenStaffs < this.ClientMaxStaffsLimit) {\r\n this.bsModalRef.hide();\r\n const context = {\r\n editMode: false,\r\n staffs: this.allStaffs,\r\n configuration: configuration,\r\n depots: this.depots,\r\n loggedInStaff: this.loggedInStaff\r\n };\r\n const modal = this.bsModalService.show(AddEditStaffModalComponent, SSModalConfig.generate(context))\r\n modal.onHidden.subscribe(\r\n staffId => {\r\n if (staffId === null || typeof staffId !== 'string') return;\r\n this.router.navigate([`/staff/${staffId}`], { relativeTo: this.route });\r\n },\r\n error => {\r\n console.log(error);\r\n },\r\n () => { }\r\n );\r\n }\r\n\r\n if (this.type === 'staff' && this.editMode && this.NoOfOpenStaffs < this.ClientMaxStaffsLimit) {\r\n this.bsModalRef.hide();\r\n const context = {\r\n editMode: true,\r\n staff: this.staff,\r\n staffs: this.allStaffs,\r\n configuration: configuration,\r\n depots: this.depots,\r\n loggedInStaff: this.loggedInStaff\r\n };\r\n this.bsModalService.show(AddEditStaffModalComponent, SSModalConfig.generate(context));\r\n }\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n

{{ title }}

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

{{type}} Limit Reached\r\n

\r\n
\r\n

You have reached the maximum {{mainMessageSubString}} allowed on your subscription.

\r\n

Before {{addEditText}}, please {{closeDeleteText}}.

\r\n
\r\n
\r\n \r\n
\r\n
Want more {{noteMessageSubString}}?
\r\n

Contact sales@smartscaffolder.com\r\n to upgrade your subscription.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { FormGroup, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-list-panel',\r\n templateUrl: './list-panel.component.html',\r\n styleUrls: ['./list-panel.component.scss']\r\n})\r\n/**\r\n * Represents a list panel component.\r\n */\r\nexport class ListPanelComponent implements OnInit, OnChanges {\r\n /** The property for item ID. */\r\n @Input()\r\n itemIdProperty: string;\r\n\r\n /** The property for item title. */\r\n @Input()\r\n itemTitleProperty: string;\r\n\r\n /** The extra property for item title. e.g. 00001 */\r\n @Input()\r\n itemTitleExtraProperty: string;\r\n\r\n /** The property for item description 1. */\r\n @Input()\r\n itemDescription1Property: string;\r\n\r\n /** The description 1 title */\r\n @Input()\r\n itemDescription1Title: string;\r\n\r\n /** The property for item description 2. */\r\n @Input()\r\n itemDescription2Property: string;\r\n\r\n /** The description 2 title. */\r\n @Input()\r\n itemDescription2Title: string;\r\n\r\n /** The array of items. */\r\n @Input()\r\n items: Array = [];\r\n\r\n /** Allows the user to multiselect items */\r\n @Input()\r\n isMultiSelect: boolean = false;\r\n\r\n /** Event emitter for the selected item. */\r\n @Output()\r\n selectedItemsChange: EventEmitter = new EventEmitter();\r\n\r\n /** Stores all items */\r\n private allItems: Array;\r\n\r\n /** The selected items */\r\n @Input()\r\n selectItems: Array = [];\r\n\r\n /** The search form group. */\r\n searchForm: FormGroup;\r\n\r\n // /** Stores the enum values for the panel names */\r\n // panelEnum = ToggleButtonPanelEnum;\r\n\r\n /** Replaces the no items found message */\r\n @Input()\r\n noItemsFoundMessage: string = 'No items found';\r\n\r\n searchTermFormControl: UntypedFormControl;\r\n filtersForm: FormGroup;\r\n\r\n /** Constructs a new instance of the ToggleButtonPanelComponent class. */\r\n constructor() { }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.selectItems && this.selectItems) {\r\n this.selectItems.forEach(item => {\r\n this.selectItem(item[this.itemIdProperty]);\r\n });\r\n }\r\n\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.setupFiltersForm();\r\n }\r\n\r\n /**\r\n * Initializes the filters form and sets up the search functionality.\r\n * \r\n * This method creates a new form control for the search term and a form group\r\n * containing this control. It also sets up a subscription to the value changes\r\n * of the search term form control, filtering the items based on the search term.\r\n * \r\n * @remarks\r\n * - `searchTermFormControl` is initialized with an empty string.\r\n * - `filtersForm` is a form group containing the `searchTermFormControl`.\r\n * - `allItems` is set to the initial list of items.\r\n * - The subscription to `searchTermFormControl.valueChanges` filters `items` \r\n * based on the search term, matching the `itemTitleProperty` of each item.\r\n */\r\n setupFiltersForm(): void {\r\n this.searchTermFormControl = new UntypedFormControl('');\r\n this.filtersForm = new UntypedFormGroup({\r\n searchTerm: this.searchTermFormControl,\r\n });\r\n this.allItems = this.items;\r\n this.searchTermFormControl.valueChanges.subscribe(searchTerm => {\r\n this.items = this.allItems.filter(item => item[this.itemTitleProperty].toLowerCase().includes(searchTerm.toLowerCase()));\r\n });\r\n }\r\n\r\n /**\r\n * Selects an item based on the given item ID.\r\n * Allows to multiselect items if isMultiSelect is set to true.\r\n * @param itemId - The ID of the item to select.\r\n */\r\n public selectItem(itemId: string): void {\r\n let selectedItems = this.items.filter(item => item.selected);\r\n const itemToToggle = this.items.find(item => item[this.itemIdProperty] === itemId);\r\n\r\n if (itemToToggle) {\r\n\r\n let originalSelectedItemState = itemToToggle.selected;\r\n // If isMultiSelect is false, clear the selection of all other items\r\n if (!this.isMultiSelect) {\r\n this.items.forEach(item => item.selected = false);\r\n }\r\n\r\n // Toggle the selection of the item to select\r\n itemToToggle.selected = !originalSelectedItemState;\r\n // itemToToggle.selected = !itemToToggle.selected;\r\n }\r\n\r\n // Filter the items to get the currently selected ones\r\n selectedItems = this.items.filter(item => item.selected);\r\n\r\n // Emit the updated selected items\r\n this.selectedItemsChange.emit(this.isMultiSelect ? selectedItems : selectedItems[0]);\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n
Items
\r\n
\r\n \r\n
","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-loading-spinner',\r\n templateUrl: './loading-spinner.html',\r\n styleUrls: ['./loading-spinner.scss']\r\n})\r\nexport class LoadingSpinnerComponent {}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSDialogContext } from 'app/shared/models/ss-modal-config';\r\nimport { ModalFormFooterComponent } from '../modal-form-footer/modal-form-footer.component';\r\nimport { Subject } from 'rxjs';\r\n\r\n/**\r\n * Component for displaying the modal dialog.\r\n *\r\n * @export\r\n * @class ModalDialogComponent\r\n * @extends {ModalFormFooterComponent}\r\n * @implements {OnInit}\r\n */\r\n@Component({\r\n selector: 'hub-modal-dialog',\r\n templateUrl: './modal-dialog.component.html',\r\n styleUrls: ['./modal-dialog.component.scss']\r\n})\r\nexport class ModalDialogComponent extends ModalFormFooterComponent implements OnInit {\r\n /* Stores the sent data context */\r\n public context: Partial;\r\n /* Modal reference */\r\n public modalRef: BsModalRef;\r\n /* Message to be displayed */\r\n public message: string;\r\n /* Stores the onClose event */\r\n public onClose: Subject;\r\n /* Sets the dialog to active or inactive */\r\n public active: boolean = false;\r\n\r\n constructor(public bsModalRef: BsModalRef, public modalService: BsModalService) { super(); }\r\n\r\n /**\r\n * Initializes the component.\r\n *\r\n * @memberof ModalDialogComponent\r\n */\r\n public ngOnInit(): void {\r\n this.onClose = new Subject();\r\n this.active = true;\r\n\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.context.okBtnText = this.context.okBtnText ? this.context.okBtnText : 'Yes';\r\n this.context.cancelBtnText = this.context.cancelBtnText ? this.context.cancelBtnText : 'No';\r\n this.context.showHeaderClose = this.context.showHeaderClose ? this.context.showHeaderClose : true;\r\n this.context.showOnlyCloseBtn = this.context.showOnlyCloseBtn ? this.context.showOnlyCloseBtn : false;\r\n this.context.footerClass = this.context.footerClass ? this.context.footerClass : 'confirm-modal-footer';\r\n }\r\n\r\n /**\r\n * When user presses submit button, this method is called.\r\n *\r\n * @memberof ModalDialogComponent\r\n */\r\n public confirm(): void {\r\n this.active = false;\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n /**\r\n * When user presses cancel button, this method is called.\r\n *\r\n * @memberof ModalDialogComponent\r\n */\r\n public decline(): void {\r\n this.active = false;\r\n this.onClose.next(false);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n /**\r\n * Hides the confirmation modal.\r\n *\r\n * @memberof ModalDialogComponent\r\n */\r\n public hideConfirmationModal(): void {\r\n this.active = false;\r\n this.onClose.next(null);\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","
\r\n
\r\n

{{ context.title }}

\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-modal-form-footer',\r\n templateUrl: './modal-form-footer.component.html',\r\n styleUrls: ['./modal-form-footer.component.scss']\r\n})\r\nexport class ModalFormFooterComponent implements OnInit {\r\n\r\n @Input()\r\n errorMessage: string;\r\n @Input()\r\n inProgress: boolean;\r\n @Input()\r\n requiredNote = true;\r\n @Input()\r\n saveText = 'Save';\r\n @Input()\r\n saveBtnClass = 'button-primary';\r\n @Input()\r\n cancelText = 'Cancel';\r\n @Output()\r\n /* eslint-disable-next-line @angular-eslint/no-output-native */\r\n close = new EventEmitter();\r\n @Output()\r\n /* eslint-disable-next-line @angular-eslint/no-output-native */\r\n submit = new EventEmitter();\r\n\r\n ngOnInit(): void { }\r\n}\r\n","
\r\n * Denotes a required\r\n field\r\n
\r\n \r\n \r\n \r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-modal-form-header',\r\n templateUrl: './modal-form-header.component.html',\r\n styleUrls: ['./modal-form-header.component.scss']\r\n})\r\nexport class ModalFormHeaderComponent implements OnInit {\r\n\r\n @Input()\r\n title: string;\r\n @Output()\r\n /* eslint-disable-next-line @angular-eslint/no-output-native */\r\n close = new EventEmitter();\r\n\r\n constructor(public bsModalRef: BsModalRef) { }\r\n\r\n\r\n ngOnInit(): void { }\r\n\r\n}\r\n","
\r\n

{{title}}

\r\n \r\n
","import { DynamicComponent } from '../../models/dynamic-component';\r\nimport { FormComponent } from '../form/form.component';\r\nimport { Directive } from \"@angular/core\";\r\n\r\n/**\r\n * Abstract class for steps in a multi-step modal\r\n *\r\n * @export\r\n * @abstract\r\n * @class MultiStepModalFormComponent\r\n * @extends {FormComponent}\r\n * @implements {DynamicComponent}\r\n */\r\n@Directive()\r\nexport abstract class MultiStepModalFormComponent extends FormComponent implements DynamicComponent {\r\n context: any;\r\n data: any;\r\n nextStep: Function;\r\n previousStep: Function;\r\n}\r\n","import { MultiStepFormStep } from '../../models/multi-step-form-step';\r\nimport { MultiStepModalFormComponent } from '../multi-step-modal-form/multi-step-modal-form.component';\r\nimport { DynamicComponentDirective } from '../../directives/dynamic-component.directive';\r\nimport { AfterViewInit, ChangeDetectorRef, Component, ComponentFactoryResolver, Input, OnInit, Type, ViewChild } from '@angular/core';\r\n\r\n/**\r\n * Component for controlling a multistep modal form.\r\n *\r\n * @export\r\n * @class MultiStepComponent\r\n * @implements {OnInit}\r\n */\r\n@Component({\r\n selector: 'hub-multi-step',\r\n templateUrl: './multi-step.component.html',\r\n styleUrls: ['./multi-step.component.scss']\r\n})\r\nexport class MultiStepComponent implements OnInit, AfterViewInit {\r\n /* Stores all steps */\r\n @Input()\r\n steps: MultiStepFormStep[];\r\n /* Gets the sent context */\r\n @Input()\r\n context: any;\r\n /* Gets the current step */\r\n currentStep: number;\r\n /* Data object shared between all steps. */\r\n @Input()\r\n data: any;\r\n /* Dynamic component that directive access */\r\n @ViewChild(DynamicComponentDirective, { static: false }) dynamicComponent: DynamicComponentDirective;\r\n /* Applies the old style if requested (stepper count on the top) */\r\n @Input()\r\n isOldStyle: boolean = false;\r\n\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private cdr: ChangeDetectorRef) { }\r\n\r\n /**\r\n * A callback method that is invoked immediately after Angular has completed initialization of a component's view. \r\n * It is invoked only once when the view is instantiated.\r\n *\r\n * @memberof MultiStepComponent\r\n */\r\n ngAfterViewInit(): void {\r\n this.showCurrentStep();\r\n }\r\n\r\n /**\r\n * Initializes the component.\r\n *\r\n * @memberof MultiStepComponent\r\n */\r\n ngOnInit(): void {\r\n this.currentStep = 0;\r\n this.data = this.data || {};\r\n }\r\n\r\n /**\r\n * Shows the current step data and layout\r\n *\r\n * @memberof MultiStepComponent\r\n */\r\n showCurrentStep(stepPosition : number = -1): void {\r\n if(stepPosition >= this.currentStep) \r\n return;\r\n\r\n const nextStepPosition = this.currentStep = (stepPosition > -1) ? stepPosition : this.currentStep;\r\n \r\n const step = this.steps[nextStepPosition];\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(step.component);\r\n const viewContainerRef = this.dynamicComponent.viewContainerRef;\r\n viewContainerRef.clear();\r\n\r\n const componentRef = viewContainerRef.createComponent(componentFactory);\r\n const instance = componentRef.instance;\r\n instance.data = this.data;\r\n instance.context = this.context;\r\n instance.nextStep = this.next;\r\n instance.previousStep = this.previous;\r\n // Checks this view and its children\r\n this.cdr.detectChanges();\r\n }\r\n\r\n /**\r\n * Moves to the next step.\r\n *\r\n * @memberof MultiStepComponent\r\n */\r\n next = () => {\r\n if (this.currentStep < this.steps.length - 1) {\r\n this.currentStep++;\r\n this.showCurrentStep();\r\n }\r\n }\r\n\r\n /**\r\n * Moves to the previous step.\r\n *\r\n * @memberof MultiStepComponent\r\n */\r\n previous = () => {\r\n if (this.currentStep > 0) {\r\n this.currentStep--;\r\n this.showCurrentStep();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n ","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { some, cloneDeep, chain, filter, isEqual as _isEqual, sortBy as _sortBy } from 'lodash';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { SiteDashBoardScaffoldInspectionData, ScaffoldData, SiteWebAppData, InspectionWorkflowStatusEnum } from 'app/core/hub-api';\r\nimport { TimeoutService } from '../../../core/services/timeout.service';\r\nimport { colors } from '../../values/colours';\r\nimport { siteStatusIds } from '../../values/site-status-ids';\r\nimport { contractStatusIds } from '../../values/contract-status-ids';\r\nimport * as Highcharts from 'highcharts';\r\n\r\n@Component({\r\n selector: 'hub-one-day-inspection-chart',\r\n templateUrl: './one-day-inspection-chart.component.html',\r\n styleUrls: ['./one-day-inspection-chart.component.scss']\r\n})\r\nexport class OneDayInspectionChartComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n inspectionData: SiteDashBoardScaffoldInspectionData[] = [];\r\n\r\n @Input()\r\n date: Moment = moment();\r\n\r\n @Input()\r\n contractId: string;\r\n\r\n @Input()\r\n hideList: boolean;\r\n\r\n uiSettings = {\r\n showChart: true,\r\n allCleared: false\r\n };\r\n\r\n Highcharts: typeof Highcharts = Highcharts;\r\n chart: any;\r\n\r\n private readonly iterationsBeforeTimeout = 10;\r\n\r\n inspectionsBySite: any[];\r\n\r\n chartConfig: Highcharts.Options = {\r\n title: {\r\n text: '',\r\n align: 'center',\r\n y: 15,\r\n style: {\r\n color: colors.river,\r\n }\r\n },\r\n subtitle: {\r\n text: 'Inspections today',\r\n align: 'center',\r\n y: 35,\r\n },\r\n chart: {\r\n type: 'pie',\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n },\r\n colors: [colors.positive, colors.calm, colors.assertive],\r\n plotOptions: {\r\n pie: {\r\n dataLabels: {\r\n enabled: true,\r\n formatter(): any {\r\n return this.y > 0 ? Math.round(this.percentage * 100) / 100 + ' %' : null;\r\n },\r\n distance: 15,\r\n color: 'black'\r\n },\r\n showInLegend: true,\r\n innerSize: '80%'\r\n }\r\n },\r\n series: [],\r\n credits: {\r\n enabled: false\r\n },\r\n };\r\n\r\n constructor(private timeoutService: TimeoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.chart = Highcharts.chart('onDayInspectionChart', this.chartConfig);\r\n this.updateChartData();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ((changes['inspectionData'] || changes['contractId']) && !!this.chart) {\r\n this.updateChartData();\r\n }\r\n }\r\n\r\n updateChartData(): Promise {\r\n this.inspectionData = filter(this.inspectionData, function (scaffold): boolean {\r\n return scaffold.SiteStatusId !== siteStatusIds.closed && scaffold.ContractStatusId !== contractStatusIds.closed;\r\n });\r\n return this.getChartData().then((chartData) => {\r\n\r\n while (!!this.chart.series[0]) { this.chart.series[0].remove(); }\r\n\r\n this.chart.addSeries({\r\n name: 'Inspections',\r\n type: 'pie',\r\n data: chartData.data\r\n }, false);\r\n\r\n const titleText = (chartData.data[0][1] + chartData.data[1][1] + chartData.data[2][1]).toString();\r\n this.chart.setTitle({ text: titleText }, undefined, false);\r\n\r\n this.inspectionsBySite = _sortBy(chartData.sites, 'siteName');\r\n this.uiSettings.allCleared = false;\r\n if (_isEqual([], this.inspectionsBySite)) {\r\n this.uiSettings.allCleared = true;\r\n }\r\n\r\n // Redraw only once at the end instead of on setTitle and addSeries.\r\n this.chart.redraw();\r\n\r\n this.uiSettings.showChart = some(chartData.data, (el) => {\r\n return el[1] > 0;\r\n });\r\n });\r\n\r\n }\r\n\r\n private createChartDataBySite(): any {\r\n const chartDataBySite = {\r\n tryGetSite: function (scaffold): any {\r\n if (!scaffold.SiteId) {\r\n return;\r\n }\r\n let site = this.sites[scaffold.SiteId];\r\n if (!site) {\r\n site = this.createSiteData(scaffold);\r\n this.sites[scaffold.SiteId] = site;\r\n }\r\n return site;\r\n },\r\n incrementComplete: function (scaffold): void {\r\n const site = chartDataBySite.tryGetSite(scaffold);\r\n site.incrementComplete();\r\n },\r\n incrementRemaining: function (scaffold): void {\r\n const site = chartDataBySite.tryGetSite(scaffold);\r\n site.incrementRemaining();\r\n },\r\n incrementOverdue: function (scaffold): void {\r\n const site = chartDataBySite.tryGetSite(scaffold);\r\n site.incrementOverdue();\r\n },\r\n sites: {},\r\n createSiteData: this.createSiteData\r\n };\r\n return chartDataBySite;\r\n }\r\n\r\n private getChartData(): Promise {\r\n const chartDataBySite = this.createChartDataBySite();\r\n const chartData = {\r\n incrementComplete(): void {\r\n this.data[0][1] += 1;\r\n },\r\n incrementRemaining(): void {\r\n this.data[1][1] += 1;\r\n },\r\n incrementOverdue(): void {\r\n this.data[2][1] += 1;\r\n },\r\n data: [\r\n ['Complete', 0],\r\n ['Remaining', 0],\r\n ['Overdue', 0]\r\n ]\r\n };\r\n\r\n const promises = [];\r\n promises.push(this.getChartDataFromScaffoldNextInspectionDates(chartData, chartDataBySite));\r\n promises.push(this.getChartDataFromInspectionWorkflowStatuses(chartData, chartDataBySite));\r\n\r\n return Promise.all(promises).then((resolutions) => {\r\n return resolutions[0];\r\n });\r\n }\r\n\r\n private createSiteData(scaffold): any {\r\n return (function (scaff): any {\r\n\r\n let complete = 0;\r\n let overdue = 0;\r\n let remaining = 0;\r\n const siteName = scaff.SiteName;\r\n const siteReference = scaff.SiteReference;\r\n\r\n return {\r\n incrementComplete: function (): void {\r\n complete += 1;\r\n },\r\n incrementOverdue: function (): void {\r\n overdue += 1;\r\n },\r\n incrementRemaining: function (): void {\r\n remaining += 1;\r\n },\r\n completeCount: function (): number {\r\n return complete;\r\n },\r\n overdueCount: function (): number {\r\n return overdue;\r\n },\r\n remainingCount: function (): number {\r\n return remaining;\r\n },\r\n siteName: siteName,\r\n siteReference: siteReference\r\n };\r\n }(scaffold));\r\n }\r\n\r\n // Calculate the number of overdue and remaining inspections from the scaffold next inspection dates.\r\n getChartDataFromScaffoldNextInspectionDates(chartData, chartDataBySite): Promise {\r\n\r\n const processScaffoldData = (scaffold) => {\r\n if (this.contractId && this.contractId !== scaffold.ContractId) {\r\n return;\r\n }\r\n\r\n if (moment(scaffold.NextInspectionDate).isSame(this.date, 'day')) {\r\n chartData.incrementRemaining();\r\n chartDataBySite.incrementRemaining(scaffold);\r\n }\r\n\r\n if (moment(scaffold.NextInspectionDate).isBefore(this.date, 'day')) {\r\n chartData.incrementOverdue();\r\n chartDataBySite.incrementOverdue(scaffold);\r\n }\r\n };\r\n\r\n let resolve;\r\n const promise = new Promise((res) => { resolve = res; });\r\n\r\n // Make sure we don't freeze the UI.\r\n this.timeoutService.forWithTimeouts(this.inspectionData, processScaffoldData, this.iterationsBeforeTimeout).then(() => {\r\n resolve({ data: chartData.data, sites: chartDataBySite.sites });\r\n });\r\n\r\n return promise;\r\n }\r\n\r\n // Calculate the number of completed and remaining inspections from the workflow status of existing scaffold inspections.\r\n getChartDataFromInspectionWorkflowStatuses(chartData, chartDataBySite): Promise {\r\n\r\n const processInspectionData = (inspection) => {\r\n if (this.contractId && this.contractId !== inspection.ContractId ||\r\n !moment(inspection.When).isSame(this.date, 'day')) {\r\n return;\r\n }\r\n\r\n if (inspection.InspectionWorkflowStatus === InspectionWorkflowStatusEnum.Complete ||\r\n inspection.InspectionWorkflowStatus === InspectionWorkflowStatusEnum.Finished) {\r\n chartData.incrementComplete();\r\n chartDataBySite.incrementComplete(inspection);\r\n }\r\n\r\n if (inspection.InspectionWorkflowStatus === InspectionWorkflowStatusEnum.Inspected ||\r\n inspection.InspectionWorkflowStatus === InspectionWorkflowStatusEnum.InProgress) {\r\n chartData.incrementRemaining();\r\n chartDataBySite.incrementRemaining(inspection);\r\n }\r\n };\r\n\r\n const inspections = chain(this.inspectionData)\r\n .map((scaffold) => {\r\n const inspectionData = cloneDeep(scaffold.InspectionData);\r\n return inspectionData.map((i: any) => {\r\n i.ContractId = scaffold.ContractId;\r\n i.SiteId = scaffold.SiteId;\r\n i.SiteReference = scaffold.SiteReference;\r\n i.SiteName = scaffold.SiteName;\r\n return i;\r\n });\r\n })\r\n .flatten()\r\n .value();\r\n\r\n let resolve;\r\n const promise = new Promise((res) => { resolve = res; });\r\n\r\n // Make sure we don't freeze the UI.\r\n this.timeoutService.forWithTimeouts(inspections, processInspectionData, this.iterationsBeforeTimeout).then(() => {\r\n resolve({ data: chartData.data, sites: chartDataBySite.sites });\r\n });\r\n\r\n return promise;\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n \r\n

All Cleared

\r\n
\r\n
\r\n","export enum OverUnderDesignType {\r\n timeEntry = 1,\r\n report = 2\r\n}\r\n\r\nimport { Component, OnInit, Input, ElementRef, OnChanges } from '@angular/core';\r\nimport { colors } from 'app/shared/values/colours';\r\n\r\n@Component({\r\n selector: 'hub-over-under',\r\n templateUrl: './over-under.component.html',\r\n styleUrls: ['./over-under.component.scss']\r\n})\r\nexport class OverUnderComponent implements OnInit, OnChanges {\r\n title: string;\r\n\r\n @Input()\r\n overUnder: number;\r\n @Input()\r\n design?: OverUnderDesignType;\r\n overUnderDesign: typeof OverUnderDesignType;\r\n\r\n constructor(private elRef: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.overUnderDesign = OverUnderDesignType;\r\n this.design = this.design ? this.design : OverUnderDesignType.timeEntry;\r\n this.initalise();\r\n }\r\n\r\n initalise(): void {\r\n if (this.design === 1) {\r\n this.elRef.nativeElement.style.backgroundColor = this.overUnder >= 0 ? colors.positive : colors.assertive;\r\n }\r\n this.title = this.overUnder >= 0 ? 'Under' : 'Over';\r\n }\r\n\r\n ngOnChanges(changes: any): void {\r\n this.initalise();\r\n }\r\n}\r\n","
\r\n

{{ overUnder | removeNegativeSymbol | number }}

\r\n

{{ title }}

\r\n
\r\n\r\n
= 0, 'report-design-assertive ': overUnder < 0 }\">\r\n

\r\n = 0, 'fa-caret-up ': overUnder < 0 }\"> {{ overUnder | removeNegativeSymbol | number }}\r\n

\r\n

{{ title }}

\r\n
\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, forwardRef, NgZone, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\n\r\nimport { CoordinatesEvent } from '../../models/coordinates-event';\r\n\r\nexport const PLACES_INPUT_COMPONENT_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PlacesInputComponent),\r\n multi: true\r\n};\r\n\r\n// Component for autocompleting user input using Google Places.\r\n@Component({\r\n selector: 'hub-places-input',\r\n templateUrl: './places-input.component.html',\r\n styleUrls: ['./places-input.component.scss'],\r\n providers: [\r\n PLACES_INPUT_COMPONENT_VALUE_ACCESSOR\r\n ]\r\n})\r\nexport class PlacesInputComponent implements OnInit, ControlValueAccessor, AfterViewInit {\r\n\r\n @ViewChild('places', { static: true })\r\n public placesElementRef: ElementRef;\r\n autocomplete: google.maps.places.Autocomplete | undefined;\r\n\r\n value = '';\r\n propagateChanges: Function;\r\n\r\n // Outputs the latitude and longitude of the chosen place.\r\n @Output()\r\n placeSelected = new EventEmitter();\r\n\r\n constructor(private ngZone: NgZone) { }\r\n\r\n /**\r\n * Initializing the Autocomplete service\r\n */\r\n ngAfterViewInit() {\r\n // Initializing the autocomplete and binding the placesElementRef\r\n this.autocomplete = new google.maps.places.Autocomplete(this.placesElementRef.nativeElement);\r\n\r\n // We need to create an event handler for when selecting a place from the dropdown or pess Enter on the input field\r\n this.autocomplete.addListener('place_changed', () => {\r\n this.ngZone.run(() => {\r\n const place = this.autocomplete?.getPlace();\r\n\r\n if (place?.geometry === undefined || place?.geometry === null) return;\r\n \r\n this.propagateChanges(place?.name);\r\n this.placeSelected.emit({\r\n latitude: place?.geometry?.location?.lat(),\r\n longitude: place?.geometry?.location?.lng()\r\n });\r\n });\r\n })\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.propagateChanges = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void { }\r\n\r\n setDisabledState(isDisabled: boolean): void { }\r\n\r\n onValueChanged(event: any): void {\r\n this.propagateChanges(event.target.value);\r\n }\r\n}\r\n","\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-principal-contract',\r\n templateUrl: './principal-contract.component.html',\r\n styleUrls: ['./principal-contract.component.scss']\r\n})\r\nexport class PrincipalContractComponent implements OnInit {\r\n\r\n tooltipMessage: string;\r\n icon: string;\r\n status: string;\r\n _principalContract: boolean;\r\n @Input()\r\n set principalContract(principalContract: boolean) {\r\n this._principalContract = principalContract;\r\n this.isPrincipalContract();\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.isPrincipalContract();\r\n }\r\n\r\n isPrincipalContract(): void {\r\n if (this._principalContract) {\r\n this.status = 'Main Contractor';\r\n this.icon = 'fa-star';\r\n this.tooltipMessage = 'A main contractor can receive the sub-contractor\\'s inspection reports.';\r\n } else {\r\n this.status = 'Sub-contractor';\r\n this.icon = 'fa-star-o';\r\n this.tooltipMessage = 'A main contractor can receive the sub-contractor\\'s inspection reports.';\r\n }\r\n }\r\n\r\n}\r\n","\r\n {{ status }}\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { IPrintOptions } from '../../models/print-options-interface';\r\n\r\n@Component({\r\n selector: 'hub-print',\r\n templateUrl: './print.component.html',\r\n styleUrls: ['./print.component.scss']\r\n})\r\nexport class PrintComponent {\r\n private styles = {\r\n landscape: `@page {size: A4 landscape;} html, body {width: 297mm;height:210mm;}`,\r\n portrait: `@page {size: A4 portrait;} html, body {width: 210mm;height:297mm;}`\r\n };\r\n private style = this.styles.portrait;\r\n\r\n constructor() {}\r\n\r\n print(options: IPrintOptions): void {\r\n if (options.orientation) {\r\n this.style = options.orientation === 'landscape' ? this.styles.landscape : this.styles.portrait;\r\n }\r\n\r\n const html = `\r\n \r\n \r\n ${options.title}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n ${options.content}\r\n
\r\n \r\n `;\r\n const newWindow = window.open('/timesheet/reports/print-preview');\r\n newWindow.document.write(html);\r\n }\r\n}\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { combineLatest } from 'rxjs';\r\nimport { Component, forwardRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { sortBy } from 'lodash';\r\nimport { SelectWithInfoData } from '../../models/select-with-info-data';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\n\r\nexport const SELECT_WITH_INPUT_COMPONENT_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectWithInfoComponent),\r\n multi: true\r\n};\r\n\r\n/**\r\n * A control with a select input and a text input fore select options which require further information.\r\n *\r\n * @export\r\n * @class SelectWithInfoComponent\r\n * @implements {ControlValueAccessor} Defines an interface that acts as a bridge between the Angular forms API and a native element in the DOM.\r\n * @implements {OnInit} A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive.\r\n * @implements {OnDestroy} A lifecycle hook that is called when a directive, pipe, or service is destroyed.\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-select-with-info',\r\n templateUrl: './select-with-info.component.html',\r\n styleUrls: ['./select-with-info.component.scss'],\r\n providers: [SELECT_WITH_INPUT_COMPONENT_VALUE_ACCESSOR]\r\n})\r\nexport class SelectWithInfoComponent implements ControlValueAccessor, OnInit, OnDestroy {\r\n /** Property ID */\r\n @Input()\r\n idProperty: string;\r\n /** Title Property */\r\n @Input()\r\n titleProperty: string;\r\n /** Checks if it will show the further info input */\r\n @Input()\r\n requiresInfoProperty: string;\r\n /** placeholder for the ng-select */\r\n @Input()\r\n optionPlaceholder: string;\r\n /** Placeholder for the input */\r\n @Input()\r\n furtherInfoPlaceholder: string;\r\n /** All dropdown items */\r\n @Input()\r\n options: any[];\r\n /** Sorts by property name */\r\n @Input()\r\n sortByProperty: string; // Overrides the requiresInfoProperty if sorting is required but does not add an extra field\r\n /**\r\n * Displays the icon next to the item name on the dropdown items\r\n * @example\r\n * 'fa fa-building'\r\n */\r\n @Input() icon: string;\r\n /** Form group control */\r\n form: UntypedFormGroup;\r\n /** Id dropdown control */\r\n idFormControl: UntypedFormControl;\r\n /** further Information input controller */\r\n furtherInfoFormControl: UntypedFormControl;\r\n\r\n /** main variables to allow change propagation, required ControlValueAccessor variables */\r\n propagateChanges: (data: SelectWithInfoData) => {};\r\n propagateTouched: Function;\r\n /** Detects if it requires further information */\r\n requiresFurtherInfo: boolean;\r\n\r\n\r\n constructor() { }\r\n\r\n /**\r\n * Component initialisation\r\n *\r\n * @memberof SelectWithInfoComponent\r\n */\r\n ngOnInit(): void {\r\n this.options = sortBy(this.options, o =>\r\n [o[this.sortByProperty ? this.sortByProperty : this.requiresInfoProperty], o[this.titleProperty].toLowerCase()].join()\r\n );\r\n this.idFormControl = new UntypedFormControl('');\r\n this.furtherInfoFormControl = new UntypedFormControl('');\r\n this.form = new UntypedFormGroup({\r\n id: this.idFormControl,\r\n furtherInfo: this.furtherInfoFormControl\r\n });\r\n const obs$ = combineLatest([this.idFormControl.valueChanges, this.furtherInfoFormControl.valueChanges]);\r\n obs$.subscribe(latest => {\r\n const option = this.options.find(o => o[this.idProperty] === latest[0]);\r\n this.requiresFurtherInfo = option ? option[this.requiresInfoProperty] : false;\r\n if (this.propagateChanges) {\r\n this.propagateChanges({ id: latest[0], furtherInfo: latest[1] });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Writes a new value to the element.\r\n * This method is called by the forms API to write to the view when programmatic changes from model to view are requested.\r\n *\r\n * @param {SelectWithInfoData} value\r\n * @memberof SelectWithInfoComponent\r\n */\r\n writeValue(value: SelectWithInfoData): void {\r\n if (this.idFormControl && this.furtherInfoFormControl) {\r\n this.idFormControl.setValue(value.id);\r\n this.furtherInfoFormControl.setValue(value.furtherInfo);\r\n }\r\n }\r\n\r\n /**\r\n * Registers a callback function that is called when the control's value changes in the UI.\r\n * This method is called by the forms API on initialization to update the form model when values propagate from the view to the model.\r\n *\r\n * @param {*} fn\r\n * @memberof SelectWithInfoComponent\r\n */\r\n registerOnChange(fn: any): void {\r\n this.propagateChanges = fn;\r\n }\r\n\r\n /**\r\n * Registers a callback function is called by the forms API on initialization to update the form model on blur.\r\n * Gets called when the control is considered blurred or \"touched\".\r\n *\r\n * @param {*} fn\r\n * @memberof SelectWithInfoComponent\r\n */\r\n registerOnTouched(fn: any): void {\r\n this.propagateTouched = fn;\r\n }\r\n\r\n /**\r\n * @description\r\n * Function that is called by the forms API when the control status changes to or from 'DISABLED'. Depending on the status, it enables or disables the appropriate DOM element.\r\n * required to have this here due to ControlValueAccessor\r\n * @example\r\n * The following is an example of writing the disabled property to a native DOM element:\r\n *\r\n * @param {boolean} isDisabled\r\n * @memberof SelectWithInfoComponent\r\n */\r\n setDisabledState?(isDisabled: boolean): void { }\r\n\r\n /**\r\n * Required by AutoUnsubscribe()\r\n *\r\n * @memberof SelectWithInfoComponent\r\n */\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n {{item[titleProperty]}}\r\n ×\r\n
\r\n
itemsToDisplay\">\r\n {{getLengthSelected()}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{item[titleProperty]}}\r\n

\r\n

\r\n {{item[description]}}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
(\r\n )\r\n
\r\n
","import { ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges, EventEmitter, Output } from '@angular/core';\r\nimport { HandoverStatisticsData } from 'app/core/hub-api';\r\nimport * as Highcharts from 'highcharts';\r\nimport { environment } from 'environments/environment';\r\n\r\nimport { colors } from '../../values/colours';\r\n\r\n@Component({\r\n selector: 'hub-seven-day-handover-chart',\r\n templateUrl: './seven-day-handover-chart.component.html',\r\n styleUrls: ['./seven-day-handover-chart.component.scss']\r\n})\r\nexport class SevenDayHandoverChartComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n handoverData: HandoverStatisticsData;\r\n\r\n @Output() selectedHandover7DaysLegend = new EventEmitter();\r\n selectedTest: any;\r\n\r\n Highcharts: typeof Highcharts = Highcharts;\r\n chart: any;\r\n\r\n uiSettings = {\r\n showChart: true\r\n };\r\n\r\n chartConfig: Highcharts.Options = {\r\n title: {\r\n y: 15,\r\n style: {\r\n color: colors.river\r\n },\r\n text: ''\r\n },\r\n subtitle: {\r\n text: 'Handovers last 7 days',\r\n y: 30,\r\n },\r\n chart: {\r\n type: 'pie',\r\n // plotBackgroundColor: null,\r\n // plotBorderWidth: null,\r\n // plotShadow: false,\r\n },\r\n colors: [\r\n colors.positive,\r\n colors.carrot,\r\n colors.assertive,\r\n colors.amethyst,\r\n colors.river,\r\n colors.lightBlue\r\n ],\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: true,\r\n formatter: function (): any {\r\n return this.y > 0 ? Math.round(this.percentage * 100) / 100 + ' %' : null;\r\n },\r\n color: 'black'\r\n }\r\n },\r\n pie: {\r\n point: {\r\n events: {\r\n legendItemClick: (e) => {\r\n // Gets the selected chart legend\r\n const points = (this.chart.series[0] as any).points;\r\n this.selectedTest = points.filter(s => s.visible).map(s => s.name);\r\n if ((e.target as any).visible) {\r\n const index = this.selectedTest.findIndex(s => s === (e.target as any).name);\r\n this.selectedTest.splice(index, 1);\r\n } else {\r\n this.selectedTest.push((e.target as any).name);\r\n }\r\n this.selectedHandover7DaysLegend.emit(this.selectedTest);\r\n }\r\n },\r\n },\r\n\r\n dataLabels: {\r\n enabled: true,\r\n formatter(): any {\r\n return this.y > 0 ? Math.round(this.percentage * 100) / 100 + ' %' : null;\r\n },\r\n distance: 15,\r\n color: 'black'\r\n },\r\n showInLegend: true,\r\n innerSize: '80%'\r\n }\r\n },\r\n series: [],\r\n credits: {\r\n enabled: false\r\n },\r\n };\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n this.chart = Highcharts.chart('handoversLast7Days', this.chartConfig);\r\n this.updateChartData();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['handoverData'] && !!this.chart) {\r\n this.updateChartData();\r\n }\r\n }\r\n\r\n updateChartData(): void {\r\n if (this.chart) {\r\n while (!!this.chart.series[0]) { this.chart.series[0].remove(); }\r\n\r\n let variation, adaption;\r\n const featureFlags = environment.featureFlags as any;\r\n if (featureFlags.variation) {\r\n adaption = ['Adaptions', this.handoverData.TotalAdaptionsForLastSevenDays];\r\n variation = ['Variations', this.handoverData.TotalVariationsForLastSevenDays];\r\n }\r\n\r\n this.chart.addSeries({\r\n type: 'pie',\r\n data: [\r\n ['Initial Handovers', this.handoverData.TotalInitialHandoverForLastSevenDays],\r\n ['Re-Handovers', this.handoverData.TotalReHandoverForLastSevenDays],\r\n ['Full Off-Hires', this.handoverData.TotalFullOffHiresForLastSevenDays],\r\n ['Partial Off-Hires', this.handoverData.TotalPartialOffhiresForLastSevenDays],\r\n adaption, variation\r\n ]\r\n });\r\n // Resets the selected legend\r\n this.selectedHandover7DaysLegend.emit(this.chart.series[0].data.map(d => d.name));\r\n\r\n\r\n const totalHandovers = Object.keys(this.handoverData)\r\n .map((k) => this.handoverData[k])\r\n .reduce((total, value) => total + value);\r\n\r\n this.uiSettings.showChart = !!totalHandovers;\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.chart.setTitle({ text: totalHandovers.toString() }, undefined, false);\r\n this.chart.redraw();\r\n }\r\n }\r\n}\r\n","
\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { chain, cloneDeep, each, findIndex, map, some } from 'lodash';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { SiteDashBoardScaffoldInspectionData } from 'app/core/hub-api';\r\n\r\nimport { TimeoutService } from '../../../core/services/timeout.service';\r\nimport { colors } from '../../values/colours';\r\nimport { inspectionOutcomeStatusIds } from '../../values/inspection-outcome-status-ids';\r\nimport * as Highcharts from 'highcharts';\r\n\r\n\r\n@Component({\r\n selector: 'hub-seven-day-inspection-chart',\r\n templateUrl: './seven-day-inspection-chart.component.html',\r\n styleUrls: ['./seven-day-inspection-chart.component.scss']\r\n})\r\nexport class SevenDayInspectionChartComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n inspectionData: SiteDashBoardScaffoldInspectionData[] = [];\r\n\r\n Highcharts: typeof Highcharts = Highcharts;\r\n chart: any;\r\n\r\n @Input()\r\n startDate: Moment = moment();\r\n\r\n @Input()\r\n contractId: string;\r\n\r\n uiSettings = {\r\n showChart: true\r\n };\r\n\r\n chartConfig: Highcharts.Options = {\r\n chart: {\r\n type: 'column',\r\n },\r\n plotOptions: {\r\n series: {\r\n stacking: 'normal',\r\n }\r\n },\r\n colors: [\r\n colors.tomato,\r\n colors.carrot,\r\n colors.river,\r\n colors.positive\r\n ],\r\n xAxis: {\r\n categories: [],\r\n title: {\r\n text: 'Days'\r\n }\r\n },\r\n yAxis: {\r\n allowDecimals: false,\r\n title: {\r\n text: 'Total'\r\n }\r\n },\r\n series: [],\r\n title: {\r\n text: '',\r\n style: {\r\n color: colors.river,\r\n }\r\n },\r\n subtitle: {\r\n text: 'Inspections completed in the last 7 days'\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n };\r\n\r\n constructor(private timeoutService: TimeoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.chart = Highcharts.chart('inspectionsLast7Days', this.chartConfig);\r\n this.updateChartData();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ((changes['inspectionData'] || changes['contractId']) && !!this.chart) {\r\n this.updateChartData();\r\n }\r\n }\r\n\r\n // Update the chart with the current inspection data.\r\n updateChartData(): Promise {\r\n if (this.chart) {\r\n // Inspection data formatted in the way required by the chart.\r\n const formattedInspectionData = chain(this.inspectionData)\r\n .map((scaffold: any) => {\r\n const inspectionData = map(scaffold.InspectionData, (inspection: any) => {\r\n inspection.ContractId = scaffold.ContractId;\r\n return inspection;\r\n });\r\n return inspectionData;\r\n })\r\n .flatten()\r\n .value();\r\n\r\n return this.getChartData(formattedInspectionData).then((chartData) => {\r\n\r\n while (!!this.chart.series[0]) { this.chart.series[0].remove(); }\r\n\r\n this.chart.addSeries({\r\n name: 'Unsafe (U)',\r\n data: chartData[inspectionOutcomeStatusIds.unsafeScaffold],\r\n }, false);\r\n\r\n this.chart.addSeries({\r\n name: 'Minor defects remain (Nm)',\r\n data: chartData[inspectionOutcomeStatusIds.defectsNotFixed],\r\n }, false);\r\n\r\n this.chart.addSeries({\r\n name: 'Defects fixed by inspector (Nf)',\r\n data: chartData[inspectionOutcomeStatusIds.defectsFixed],\r\n }, false);\r\n\r\n this.chart.addSeries({\r\n name: 'No defects found (N)',\r\n data: chartData[inspectionOutcomeStatusIds.noDefects],\r\n }, false);\r\n\r\n // Redraw so we can use chart.series.\r\n this.chart.redraw();\r\n\r\n const titleText = chain(this.chart.series)\r\n .map((series) => {\r\n return series.data;\r\n })\r\n .flatten()\r\n .map((dayData: any) => {\r\n return dayData.y;\r\n })\r\n .flatten()\r\n .reduce((total: any, current: any) => {\r\n return total + current;\r\n })\r\n .value()\r\n .toString();\r\n\r\n this.chart.setTitle({ text: titleText }, undefined, false);\r\n\r\n const xAxis = {\r\n categories: map(this.getDatesForWeek(), (date: any) => {\r\n const days = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\r\n return days[date.day()];\r\n })\r\n };\r\n\r\n this.chart.xAxis[0].update(xAxis, false);\r\n\r\n this.uiSettings.showChart = this.showChart(this.chart.series);\r\n\r\n // Redraw the chart as few times as possible.\r\n this.chart.redraw();\r\n });\r\n }\r\n }\r\n\r\n private getChartData(formattedInspectionData): Promise {\r\n const chartData = {};\r\n\r\n const datesInWeek = this.getDatesForWeek();\r\n\r\n each(inspectionOutcomeStatusIds, (outcomeId) => {\r\n const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n chartData[outcomeId] = map(datesInWeek, (dateInWeek) => {\r\n return {\r\n name: days[dateInWeek.day()],\r\n y: 0\r\n };\r\n });\r\n });\r\n\r\n const processInspectionData = (inspection) => {\r\n const day = findIndex(datesInWeek, (dayInWeek) => {\r\n return moment(inspection.When).isSame(dayInWeek, 'day');\r\n });\r\n\r\n if ((!this.contractId || this.contractId === inspection.ContractId) && day !== -1 && inspection.InspectionOutcomeId) {\r\n chartData[inspection.InspectionOutcomeId][day].y += 1;\r\n }\r\n };\r\n\r\n let resolve;\r\n const promise = new Promise((res) => { resolve = res; });\r\n\r\n const iterationsbeforeTimeout = 10;\r\n\r\n this.timeoutService.forWithTimeouts(formattedInspectionData, processInspectionData, iterationsbeforeTimeout).then(() => {\r\n resolve(chartData);\r\n });\r\n\r\n return promise;\r\n }\r\n\r\n private getDatesForWeek(): any[] {\r\n const datesForWeek = [];\r\n for (let i = 0; i < 7; i++) {\r\n const day = cloneDeep(this.startDate).add(i, 'days');\r\n datesForWeek.push(day);\r\n }\r\n return datesForWeek;\r\n }\r\n\r\n private showChart(seriesCollection): boolean {\r\n let show;\r\n each(seriesCollection, (series) => {\r\n show = some(series.data, (el: any) => {\r\n return el.y > 0;\r\n });\r\n });\r\n return show;\r\n }\r\n\r\n}\r\n","
\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { groupBy, countBy, filter, Dictionary } from 'lodash';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { SiteDashBoardScaffoldInspectionData } from 'app/core/hub-api';\r\nimport { siteStatusIds } from '../../values/site-status-ids';\r\nimport { contractStatusIds } from '../../values/contract-status-ids';\r\n\r\n@Component({\r\n selector: 'hub-seven-day-inspections-due-chart',\r\n templateUrl: './seven-day-inspections-due-chart.component.html',\r\n styleUrls: ['./seven-day-inspections-due-chart.component.scss']\r\n})\r\nexport class SevenDayInspectionsDueChartComponent implements OnInit, OnChanges {\r\n\r\n objectKeys: any;\r\n inspectionsCountBySite: Dictionary;\r\n readonly title = 'Inspections Due';\r\n readonly subtitle = 'Next 7 Days';\r\n totalNextWeek: number;\r\n selectedDay: string;\r\n\r\n inspectionsByDay: { [key: string]: SiteDashBoardScaffoldInspectionData[] };\r\n inspectionCountByDay: { [key: string]: number };\r\n\r\n @Input()\r\n inspectionData: SiteDashBoardScaffoldInspectionData[];\r\n\r\n @Input()\r\n startDate: Moment;\r\n\r\n @Input()\r\n hideList: boolean;\r\n\r\n daysOfWeek: { day: string, count: number }[];\r\n\r\n constructor() { }\r\n\r\n /**\r\n * Lifecycle hook that is called when any data-bound property of the component changes.\r\n * @param changes - An object containing the changed properties and their current and previous values.\r\n */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ((changes['inspectionData'])) {\r\n this.updateChartData();\r\n }\r\n }\r\n\r\n /**\r\n * Initializes the component.\r\n * This lifecycle hook is called after Angular has initialized all data-bound properties of a directive.\r\n */\r\n ngOnInit(): void {\r\n this.updateChartData();\r\n }\r\n\r\n /**\r\n * Updates the chart data for the seven-day inspections due chart.\r\n * Removes inspections with closed site status or closed contract status from the inspection data.\r\n * Calculates the number of inspections due in the next week.\r\n * Groups inspections by day of the week and counts the number of inspections for each day.\r\n * Sets the days of the week and the selected day for the chart.\r\n */\r\n updateChartData(): void {\r\n this.inspectionData = filter(this.inspectionData, function (scaffold): boolean {\r\n return scaffold.SiteStatusId !== siteStatusIds.closed && scaffold.ContractStatusId !== contractStatusIds.closed;\r\n });\r\n this.startDate = this.startDate.clone().startOf('day');\r\n const endDate = this.startDate.clone().add(6, 'days').endOf('day');\r\n\r\n const inspectionsForWeek = this.inspectionData.filter(inspection => {\r\n const nextInspectionDate = moment(inspection.NextInspectionDate);\r\n return nextInspectionDate.isSameOrAfter(this.startDate) && nextInspectionDate.isBefore(endDate);\r\n });\r\n\r\n this.totalNextWeek = inspectionsForWeek.length;\r\n\r\n this.inspectionsByDay = groupBy(inspectionsForWeek, (inspection) => {\r\n return moment(inspection.NextInspectionDate).startOf('day').format('dd');\r\n });\r\n\r\n this.inspectionCountByDay = countBy(inspectionsForWeek, inspection => {\r\n return moment(inspection.NextInspectionDate).startOf('day').format('dd');\r\n });\r\n\r\n this.daysOfWeek = this.getDaysBetween(this.startDate, endDate);\r\n\r\n this.objectKeys = Object.keys;\r\n\r\n this.selectedDay = this.daysOfWeek[0].day;\r\n }\r\n\r\n getDaysBetween(start: Moment, end: Moment): any[] {\r\n const days = [];\r\n\r\n const currentDate = start.clone().startOf('day');\r\n const lastDate = end.clone().startOf('day');\r\n\r\n do {\r\n const day = currentDate.clone().format('dd');\r\n const countForDay = this.inspectionCountByDay[day] || 0;\r\n days.push({ day: day, count: countForDay });\r\n }\r\n while (currentDate.add(1, 'days').diff(lastDate) <= 0);\r\n\r\n return days;\r\n }\r\n\r\n getCountBySite(day: string): void {\r\n this.selectedDay = day;\r\n const inspectionsForDay = this.inspectionsByDay[day];\r\n this.inspectionsCountBySite = inspectionsForDay ? countBy(inspectionsForDay, 'SiteName') : null;\r\n }\r\n\r\n}\r\n","
\r\n

{{title}}

\r\n

{{subtitle}}

\r\n

{{totalNextWeek}}

\r\n
\r\n\r\n\r\n
\r\n
    \r\n
  • \r\n
    \r\n
    {{ key }}
    \r\n
    \r\n
    {{ inspectionsCountBySite[key] }}
    \r\n
    \r\n
    \r\n
  • \r\n
\r\n
\r\n\r\n
\r\n \r\n

No inspections due

\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-signatures-required',\r\n templateUrl: './signatures-required.component.html',\r\n styleUrls: ['./signatures-required.component.scss']\r\n})\r\nexport class SignaturesRequiredComponent implements OnInit {\r\n\r\n tooltipMessage: string;\r\n icon: string;\r\n status: string;\r\n private _canSubmitDocumentsWithoutSignature: boolean;\r\n\r\n @Input()\r\n set canSubmitDocumentsWithoutSignature(canSubmitDocumentsWithoutSignature: boolean) {\r\n this._canSubmitDocumentsWithoutSignature = canSubmitDocumentsWithoutSignature;\r\n this.submitDocumentsWithoutSignature();\r\n }\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.submitDocumentsWithoutSignature();\r\n }\r\n\r\n submitDocumentsWithoutSignature(): void {\r\n if (this._canSubmitDocumentsWithoutSignature) {\r\n this.status = 'Signatures not required';\r\n this.icon = 'fa-times text-assertive';\r\n this.tooltipMessage = 'Site documents can be submitted without the customer signature by selecting the \"customer not present\" option from the app.';\r\n } else {\r\n this.status = 'Signatures required';\r\n this.icon = 'fa-pencil';\r\n this.tooltipMessage = 'Customer signatures will be required on some site documents before they can be submitted from the app.';\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n {{ status }}\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-signatures-svg',\r\n templateUrl: './signatures-svg.component.html',\r\n styleUrls: ['./signatures-svg.component.scss']\r\n})\r\nexport class SignaturesSvgComponent implements OnInit {\r\n @Input() data;\r\n @Input() width?;\r\n\r\n path: string;\r\n svgWidth: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.svgWidth = this.width ? this.width : '100%';\r\n this.decodeSvgSignatures(this.data);\r\n }\r\n\r\n decodeSvgSignatures(data: any[]): any {\r\n if (data) {\r\n const points = data;\r\n let draw = '';\r\n\r\n let lastX = null;\r\n let lastY = null;\r\n if (points) {\r\n for (let indx = 0; indx < points.length; indx++) {\r\n\r\n const lX = points[indx][0];\r\n const lY = points[indx][1];\r\n const cX = points[indx][2];\r\n const cY = points[indx][3];\r\n\r\n if (lastX !== lX || lastY !== lY) {\r\n draw = draw + ' M ' + lX + ' ' + lY;\r\n }\r\n draw = draw + ' L ' + cX + ' ' + cY;\r\n lastX = cX;\r\n lastY = cY;\r\n }\r\n }\r\n this.path = draw;\r\n }\r\n return;\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-text-editor',\r\n templateUrl: './text-editor.component.html',\r\n styleUrls: ['./text-editor.component.scss']\r\n})\r\nexport class TextEditorComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

\r\n text-editor works!\r\n

\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { FormGroup, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { SimpleChanges } from '@angular/core';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nexport enum ToggleButtonPanelEnum {\r\n Panel1 = 'Panel1',\r\n Panel2 = 'Panel2'\r\n}\r\n\r\nexport interface ToggleButtonPanelDirective {\r\n type: string;\r\n property: string;\r\n tooltip?: string;\r\n format?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'hub-toggle-button-panel',\r\n templateUrl: './toggle-button-panel.component.html',\r\n styleUrls: ['./toggle-button-panel.component.scss'],\r\n})\r\n/**\r\n * Represents a toggle button panel component.\r\n */\r\nexport class ToggleButtonPanelComponent implements OnInit, OnChanges {\r\n /** The property for item ID. */\r\n @Input()\r\n itemIdProperty: string;\r\n\r\n /** The property for item title. */\r\n @Input()\r\n itemTitleProperty: string;\r\n\r\n /** The extra property for item title. e.g. 00001 */\r\n @Input()\r\n itemTitleExtraProperty: string;\r\n\r\n /** The property for item description 1. */\r\n @Input()\r\n itemDescription1Property: string;\r\n\r\n /** The description 1 icon */\r\n @Input()\r\n itemDescription1Icon: string;\r\n\r\n /** The property for item description 2. */\r\n @Input()\r\n itemDescription2Property: string;\r\n\r\n /** The description 2 icon. */\r\n @Input()\r\n itemDescription2Icon: string;\r\n\r\n /** The array of items. */\r\n @Input()\r\n items: Array = [];\r\n\r\n /** The label for button panel 1. */\r\n @Input()\r\n buttonLabelPanel1: string = 'Select Existing';\r\n\r\n /** The label for button panel 2. */\r\n @Input()\r\n buttonLabelPanel2: string = 'Create New';\r\n\r\n /** Allows the user to multiselect items */\r\n @Input()\r\n isMultiSelect: boolean = false;\r\n\r\n /** The main icon for the component. */\r\n @Input()\r\n mainIcon: string;\r\n\r\n /** Event emitter for the selected item. */\r\n @Output()\r\n selectedItemsChange: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n selectedPanelChange: EventEmitter = new EventEmitter();\r\n\r\n /** Stores all items */\r\n private allItems: Array = [];\r\n\r\n /** The currently selected panel. */\r\n @Input()\r\n selectedPanel: ToggleButtonPanelEnum = ToggleButtonPanelEnum.Panel1; // Default value is 'Panel1'\r\n\r\n @Input()\r\n selectItems: Array = [];\r\n\r\n /** The search form group. */\r\n searchForm: FormGroup;\r\n\r\n /** Stores the enum values for the panel names */\r\n panelEnum = ToggleButtonPanelEnum;\r\n\r\n searchTermFormControl: UntypedFormControl;\r\n filtersForm: FormGroup;\r\n\r\n /** Only visible items will be displayed */\r\n visibleItems: Array = [];\r\n /** Number of items to initially display */\r\n visibleCount: number = 10;\r\n\r\n @Input()\r\n hidePanel1: boolean = false;\r\n @Input()\r\n hidePanel2: boolean = false;\r\n @Input()\r\n directives: ToggleButtonPanelDirective[] = [];\r\n\r\n /** Replaces the no items found message */\r\n @Input()\r\n noItemsFoundMessage: string = 'No items found';\r\n\r\n /** Constructs a new instance of the ToggleButtonPanelComponent class. */\r\n constructor(private cdr: ChangeDetectorRef) {\r\n this.setupFiltersForm(); // make sure the filters form is set up\r\n }\r\n\r\n\r\n /**\r\n * Responds to changes in the input properties of the component.\r\n * \r\n * @param changes - An object of key-value pairs where the key is the name of the input property and the value is an instance of SimpleChange.\r\n * \r\n * The method performs the following actions:\r\n * 1. If the `items` input property has changed and has a current value, it updates `allItems` with the new items and resets the visible items.\r\n * 2. If the `selectItems` input property has changed, it checks if the selection has changed by comparing the previous and current selected items.\r\n * - If the selection has changed, it iterates over the new selected items and calls `selectItem` for each item.\r\n */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // if there are no selected items then the selected items should be cleared on the UI\r\n if (!changes?.selectedItems && !this.selectItems?.length) {\r\n let resetNeeded = false;\r\n for (const item of this.items) {\r\n if (item.selected) {\r\n item.selected = false;\r\n resetNeeded = true;\r\n }\r\n }\r\n if (resetNeeded) {\r\n this.resetVisibleItems();\r\n }\r\n }\r\n if (changes.selectedPanel && changes.selectedPanel.currentValue) {\r\n this.selectedPanel = changes.selectedPanel.currentValue;\r\n }\r\n\r\n if (changes.items && changes.items.currentValue) {\r\n this.allItems = [...this.items];\r\n this.resetVisibleItems();\r\n }\r\n const hasPanelChanged = changes.selectedPanel.currentValue !== changes.selectedPanel.previousValue;\r\n\r\n if (changes.selectItems && this.selectItems) {\r\n const previousSelectedItems = changes.selectItems.previousValue || [];\r\n const currentSelectedItems = this.selectItems;\r\n\r\n var isSameSelection = previousSelectedItems.length === currentSelectedItems.length &&\r\n previousSelectedItems.every((prevItem: any) =>\r\n currentSelectedItems.some((currItem: any) => currItem[this.itemIdProperty] === prevItem[this.itemIdProperty])\r\n );\r\n\r\n // if the panel has changed then it needs to update the items\r\n if (hasPanelChanged) {\r\n isSameSelection = false;\r\n }\r\n\r\n if (!isSameSelection) {\r\n this.selectItems.forEach(item => {\r\n // Check if the item is already selected before calling selectItem\r\n const itemToToggle = this.items.find(i => i[this.itemIdProperty] === item[this.itemIdProperty]);\r\n if (itemToToggle && !itemToToggle.selected) {\r\n this.selectItem(new Event('dummy'), item[this.itemIdProperty], hasPanelChanged);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resets the visible items to the initial subset based on the visible count.\r\n * This method slices the items array from the start up to the visible count\r\n * and assigns it to the visibleItems property.\r\n */\r\n resetVisibleItems(): void {\r\n this.visibleItems = this.items.slice(0, this.visibleCount);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.allItems = [...this.items]; // Copy items to allItems\r\n this.visibleItems = this.allItems.slice(0, this.visibleCount); // Load initial items\r\n }\r\n\r\n /**\r\n * TrackBy function to optimize ngFor performance by tracking items by a unique identifier.\r\n * \r\n * @param index - The index of the current item in the ngFor loop.\r\n * @param item - The current item in the ngFor loop.\r\n * @returns The unique identifier of the item based on the specified itemIdProperty.\r\n */\r\n trackById(index: number, item: any): any {\r\n return item[this.itemIdProperty];\r\n }\r\n\r\n /**\r\n * Initializes the filters form and sets up the search term control with debounce.\r\n * \r\n * - Creates a form control for the search term.\r\n * - Initializes the filters form group with the search term control.\r\n * - Sets the initial list of all items.\r\n * - Sets up a debounce on the search term control to reduce the frequency of search filter application.\r\n * - Initially displays a limited set of items for faster rendering.\r\n * \r\n * @returns {void}\r\n */\r\n setupFiltersForm(): void {\r\n this.searchTermFormControl = new UntypedFormControl('');\r\n this.filtersForm = new UntypedFormGroup({\r\n searchTerm: this.searchTermFormControl,\r\n });\r\n\r\n // Debounce to reduce frequency of search filter\r\n this.searchTermFormControl.valueChanges.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged()\r\n ).subscribe(searchTerm => {\r\n this.applySearchFilter(searchTerm);\r\n });\r\n // Initially display a limited set of items for faster rendering\r\n this.resetVisibleItems();\r\n }\r\n\r\n /**\r\n * Filters the list of items based on the provided search term and updates the visible items.\r\n *\r\n * @param searchTerm - The term to filter the items by. The search is case-insensitive.\r\n */\r\n applySearchFilter(searchTerm: string): void {\r\n const filteredItems = this.allItems.filter(item =>\r\n item[this.itemTitleProperty]?.toLowerCase().includes(searchTerm.toLowerCase())\r\n );\r\n this.items = filteredItems;\r\n // Reset visible items to the first batch after filtering\r\n this.resetVisibleItems();\r\n }\r\n\r\n /**\r\n * Handles the scroll event for the toggle button panel.\r\n * \r\n * @param event - The scroll event object.\r\n * \r\n * This method checks if the user has scrolled close to the bottom of the scrollable area.\r\n * If the user is within a certain threshold from the bottom and there are more items to load,\r\n * it triggers the loading of additional items.\r\n */\r\n onScroll(event: any): void {\r\n const threshold = 100;\r\n const scrollableElement = event.target;\r\n\r\n // Calculate the scroll position and height\r\n const position = scrollableElement.scrollTop + scrollableElement.clientHeight;\r\n const height = scrollableElement.scrollHeight;\r\n\r\n // Check if scrolled to bottom within threshold\r\n if (position >= height - threshold && this.visibleItems.length < this.items.length) {\r\n this.loadMoreItems();\r\n }\r\n }\r\n\r\n /**\r\n * Loads more items into the visibleItems array.\r\n * It takes the next batch of items from the items array,\r\n * starting from the current length of visibleItems and\r\n * extending by the visibleCount.\r\n * The new batch of items is then appended to the existing\r\n * visibleItems array.\r\n */\r\n loadMoreItems(): void {\r\n const currentLength = this.visibleItems.length;\r\n if (currentLength < this.items.length) {\r\n const nextBatch = this.items.slice(currentLength, currentLength + this.visibleCount);\r\n this.visibleItems = [...this.visibleItems, ...nextBatch];\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Toggles the selected panel and emits the change event.\r\n * \r\n * @param panel - The panel to be selected, represented by the ToggleButtonPanelEnum.\r\n * @returns void\r\n */\r\n public togglePanel(panel: ToggleButtonPanelEnum): void {\r\n this.selectedPanel = panel;\r\n this.selectedPanelChange.emit(panel);\r\n }\r\n\r\n /**\r\n * A flag indicating whether the toggle button panel is currently in the selection mode.\r\n * When set to `true`, the panel is in the process of selecting an item.\r\n * When set to `false`, the panel is not in selection mode.\r\n */\r\n private isSelecting: boolean = false;\r\n\r\n /**\r\n * Handles the selection of an item in the toggle button panel.\r\n *\r\n * @param event - The event triggered by the selection action.\r\n * @param itemId - The unique identifier of the item to be selected or deselected.\r\n * @param uiSelected - Indicates if the selection was triggered by a user interaction (default: false).\r\n * If true, prevents multiple simultaneous selections.\r\n *\r\n * This method ensures that only one item is selected at a time unless multi-select is enabled.\r\n * It updates the selection state of the items and emits the selected items through the `selectedItemsChange` event.\r\n * The component is marked for change detection and changes are forced to be detected.\r\n */\r\n public selectItem(event: Event, itemId: string, uiSelected: boolean = false): void {\r\n // Prevent multiple simultaneous selections\r\n if (!uiSelected) {\r\n if (this.isSelecting) return;\r\n this.isSelecting = true;\r\n }\r\n\r\n let selectedItems = this.items.filter(item => item.selected);\r\n const itemToToggle = this.items.find(item => item[this.itemIdProperty] === itemId);\r\n\r\n if (itemToToggle) {\r\n const originalSelectedItemState = itemToToggle.selected;\r\n\r\n // If not multi-select, clear other selections\r\n if (!this.isMultiSelect) {\r\n this.items.forEach(item => item.selected = false);\r\n }\r\n\r\n itemToToggle.selected = !originalSelectedItemState;\r\n }\r\n\r\n // Update the selected items list\r\n this.selectItems = selectedItems = this.items.filter(item => item.selected);\r\n\r\n // Emit only if there are selected items\r\n if (this.isMultiSelect) {\r\n const emitValue = selectedItems.length ? selectedItems : undefined;\r\n this.selectedItemsChange.emit(emitValue);\r\n } else {\r\n const emitValue = selectedItems.length > 0 ? selectedItems[0] : undefined;\r\n this.selectedItemsChange.emit(emitValue);\r\n }\r\n\r\n try {\r\n // Mark the component for change detection and force change detection\r\n this.cdr.markForCheck();\r\n this.cdr.detectChanges();\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n if (!uiSelected) {\r\n this.isSelecting = false;\r\n }\r\n }\r\n\r\n }\r\n}","
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { some, cloneDeep, chain, map, each, findIndex } from 'lodash';\r\nimport { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport { SiteDashBoardScaffoldInspectionData } from 'app/core/hub-api';\r\n\r\nimport { TimeoutService } from '../../../core/services/timeout.service';\r\nimport { colors } from '../../values/colours';\r\nimport { inspectionOutcomeStatusIds } from '../../values/inspection-outcome-status-ids';\r\n\r\nimport * as Highcharts from 'highcharts';\r\n\r\n@Component({\r\n selector: 'hub-twelve-month-inspection-chart',\r\n templateUrl: './twelve-month-inspection-chart.component.html',\r\n styleUrls: ['./twelve-month-inspection-chart.component.scss']\r\n})\r\nexport class TwelveMonthInspectionChartComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n inspectionData: SiteDashBoardScaffoldInspectionData[] = [];\r\n\r\n Highcharts: typeof Highcharts = Highcharts;\r\n chart: any;\r\n\r\n @Input()\r\n startDate: Moment = moment();\r\n\r\n @Input()\r\n contractId: string;\r\n\r\n uiSettings = {\r\n showChart: true\r\n };\r\n\r\n chartConfig: Highcharts.Options = {\r\n chart: {\r\n },\r\n colors: [\r\n colors.tomato,\r\n colors.carrot,\r\n colors.river,\r\n colors.positive\r\n ],\r\n title: {\r\n text: 'Monthly Inspection Results',\r\n x: -20 // center\r\n },\r\n subtitle: {\r\n text: '',\r\n x: -20\r\n },\r\n xAxis: {\r\n categories: [],\r\n },\r\n yAxis: {\r\n allowDecimals: false,\r\n title: {\r\n text: 'Total Results'\r\n },\r\n plotLines: [{\r\n value: 0,\r\n width: 1,\r\n color: '#808080'\r\n }]\r\n },\r\n series: [],\r\n credits: {\r\n enabled: false\r\n },\r\n };\r\n\r\n constructor(private timeoutService: TimeoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.chart = Highcharts.chart('twelveMonthInspectionChart', this.chartConfig);\r\n this.updateChartData();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ((changes['inspectionData'] || changes['contractId']) && !!this.chart) {\r\n this.updateChartData();\r\n }\r\n }\r\n\r\n updateChartData(): Promise {\r\n if (this.chart) {\r\n // Inspection data formatted in the way required by the chart.\r\n const formattedInspectionData = chain(this.inspectionData)\r\n .map((scaffold) => {\r\n const inspectionData = map(scaffold.InspectionData, (inspection: any) => {\r\n inspection.ContractId = scaffold.ContractId;\r\n return inspection;\r\n });\r\n return inspectionData;\r\n })\r\n .flatten()\r\n .value();\r\n\r\n\r\n return this.getChartData(formattedInspectionData).then((chartData) => {\r\n\r\n while (!!this.chart.series[0]) { this.chart.series[0].remove(); }\r\n\r\n this.chart.addSeries({\r\n name: 'Unsafe (U)',\r\n data: chartData[inspectionOutcomeStatusIds.unsafeScaffold]\r\n }, false);\r\n\r\n this.chart.addSeries({\r\n name: 'Minor defects remain (Nm)',\r\n data: chartData[inspectionOutcomeStatusIds.defectsNotFixed],\r\n }, false);\r\n\r\n this.chart.addSeries({\r\n name: 'Defects fixed by inspector (Nf)',\r\n data: chartData[inspectionOutcomeStatusIds.defectsFixed],\r\n }, false);\r\n\r\n this.chart.addSeries({\r\n name: 'No defects found (N)',\r\n data: chartData[inspectionOutcomeStatusIds.noDefects],\r\n }, false);\r\n\r\n const xAxis = { categories: this.getMonthLabels() };\r\n this.chart.xAxis[0].update(xAxis, false);\r\n\r\n // Redraw the chart as few times as possible.\r\n this.chart.redraw();\r\n\r\n this.uiSettings.showChart = this.showChart(this.chart.series);\r\n });\r\n }\r\n }\r\n\r\n private showChart(seriesCollection): boolean {\r\n let show;\r\n each(seriesCollection, (series) => {\r\n show = some(series.data, (el: any) => {\r\n return el.y > 0;\r\n });\r\n });\r\n return show;\r\n }\r\n\r\n // Gets an array containing one date in each month of the chart's year.\r\n private getMonthsForYear(): any[] {\r\n const months = [];\r\n for (let i = 0; i < 12; i++) {\r\n const month = cloneDeep(this.startDate).add(i, 'months');\r\n months.push(month);\r\n }\r\n return months;\r\n }\r\n\r\n private getMonthLabels(): any[] {\r\n const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\r\n return map(this.getMonthsForYear(), (month) => {\r\n return months[month.month()];\r\n });\r\n }\r\n\r\n private getChartData(formattedInspectionData): Promise {\r\n const chartData = {};\r\n\r\n const dateInEachMonth = this.getMonthsForYear();\r\n\r\n each(inspectionOutcomeStatusIds, (outcomeId) => {\r\n chartData[outcomeId] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\r\n });\r\n\r\n const processInspectionData = (inspection) => {\r\n const month = findIndex(dateInEachMonth, (dateInMonth) => {\r\n return moment(inspection.When).isSame(dateInMonth, 'month');\r\n });\r\n\r\n if ((!this.contractId || this.contractId === inspection.ContractId) && month !== -1 && inspection.InspectionOutcomeId) {\r\n chartData[inspection.InspectionOutcomeId][month] += 1;\r\n }\r\n };\r\n\r\n let resolve;\r\n const promise = new Promise((res) => { resolve = res; });\r\n\r\n const iterationsBeforeTimeout = 10;\r\n\r\n this.timeoutService.forWithTimeouts(formattedInspectionData, processInspectionData, iterationsBeforeTimeout).then(() => {\r\n resolve(chartData);\r\n });\r\n\r\n return promise;\r\n }\r\n\r\n}\r\n","
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-video-player',\r\n templateUrl: './video-player.component.html',\r\n styleUrls: ['./video-player.component.scss']\r\n})\r\nexport class VideoPlayerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

\r\n video-player works!\r\n

\r\n","import { Component, ElementRef, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n/**\r\n * This component creates an iframe for youtube embed links\r\n *\r\n * @export\r\n * @class YoutubeComponent\r\n * @implements {OnInit}\r\n * @implements {OnChanges}\r\n */\r\n@Component({\r\n selector: 'hub-youtube',\r\n templateUrl: './youtube.component.html',\r\n styleUrls: ['./youtube.component.scss']\r\n})\r\nexport class YoutubeComponent implements OnInit, OnChanges {\r\n // Gets the youtube iframe to be accessed here\r\n @ViewChild('iframeYoutube') iframeYoutube: ElementRef;\r\n // Gets the youtube url from the parent component\r\n @Input() source;\r\n\r\n // Gets the safe url to be displayed in the embed iframe\r\n src: SafeResourceUrl;\r\n\r\n constructor(public domSanitizer: DomSanitizer) { }\r\n\r\n /**\r\n * Sets the url as a trusted resouce so UI can access it\r\n *\r\n * @memberof YoutubeComponent\r\n */\r\n ngOnInit(): void {\r\n this.src = this.domSanitizer.bypassSecurityTrustResourceUrl(this.source);\r\n }\r\n\r\n /**\r\n * Detects changes to source property and sets the new url and refreshes the iframe\r\n *\r\n * @param {SimpleChanges} changes\r\n * @memberof YoutubeComponent\r\n */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.source = changes['source'].currentValue;\r\n if (this.iframeYoutube) {\r\n this.iframeYoutube.nativeElement.src = this.source;\r\n }\r\n }\r\n\r\n}\r\n","","import { Directive, OnInit, HostListener, Input } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { saveAs } from 'file-saver';\r\n\r\n// Download the specified blob file when the element is clicked.\r\n@Directive({\r\n selector: '[hubDownloadClick]'\r\n})\r\nexport class DownloadClickDirective implements OnInit {\r\n\r\n @Input()\r\n path: string;\r\n\r\n @Input()\r\n fileName: string;\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n @HostListener('click', ['$event'])\r\n clickEvent(event): void {\r\n this.httpClient.get(this.path, {\r\n responseType: 'blob'\r\n }).subscribe(mediaBlob => {\r\n const ext = this.path.split('?')[0].split('.').pop();\r\n const filename = `${this.fileName}.${ext}`;\r\n saveAs(mediaBlob, filename);\r\n });\r\n }\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n// Directive used for displaying a component dynamically.\r\n@Directive({\r\n selector: '[hubDynamicComponent]'\r\n})\r\nexport class DynamicComponentDirective {\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","// Here you declare the global interfaces then you need to create or use one of the existing\r\n// This will make the extensions available all over the smart manager\r\n\r\ndeclare const require: any;\r\nrequire('./sort.extension');\r\n\r\nexport { }; // this is required so angular does not recognise this page as a module\r\n\r\ndeclare global {\r\n interface Array {\r\n sortAlphaNumeric(fieldName: string): Array;\r\n }\r\n interface Navigator {\r\n msSaveBlob: (blobOrBase64: Blob | string, filename: string) => boolean;\r\n }\r\n}\r\n","/**\r\n * The extension of Array type allows to sort AlphaNumeric data\r\n * @param fieldName {string} requires the field name which you want to sort by\r\n */\r\n// @ts-ignore\r\nArray.prototype.sortAlphaNumeric = function (fieldName: string): Array {\r\n return this.sort((a, b) => {\r\n return a[fieldName].toLowerCase().localeCompare(b[fieldName].toLowerCase(), undefined, {\r\n numeric: true,\r\n sensitivity: 'base'\r\n });\r\n });\r\n};\r\n","import { ModalOptions } from 'ngx-bootstrap/modal';\r\n\r\n/**\r\n * Extended version of the ModalOptions class from ngx-bootstrap. Used to match our modal configurations\r\n *\r\n * @export\r\n * @class SSModalConfig\r\n * @extends {ModalOptions}\r\n */\r\nexport class SSModalConfig extends ModalOptions {\r\n // initialState?: {\r\n // context: {};\r\n // };\r\n\r\n /**\r\n * Gets the default modal configuration\r\n *\r\n * @private\r\n * @static\r\n * @returns {SSModalConfig}\r\n * @memberof SSModalConfig\r\n */\r\n private static getDefault(): SSModalConfig {\r\n return {\r\n animated: true,\r\n class: 'modal-dialog modal-lg',\r\n ignoreBackdropClick: true,\r\n keyboard: false,\r\n initialState: {\r\n // context: {}\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Generates an modal config file\r\n * @param context - This is the data we want to assign and pass to the modal\r\n * @param config - This is the config file, if not passed it will be passed as null\r\n * and use default config file.\r\n * @returns A new config file\r\n */\r\n public static generate(context: Object, config: Object = null): SSModalConfig {\r\n const newConfig = SSModalConfig.getDefault();\r\n Object.assign(newConfig, config);\r\n if (context) {\r\n Object.assign(newConfig.initialState, context);\r\n }\r\n return newConfig;\r\n }\r\n}\r\n\r\n/**\r\n * This class is used to create a modal dialog.\r\n *\r\n * @export\r\n * @class SSDialogContext\r\n */\r\nexport class SSDialogContext {\r\n title: string;\r\n body: string;\r\n okBtnText?: string;\r\n cancelBtnText?: string;\r\n cancelBtnClass?: string;\r\n dialogClass?: string;\r\n footerClass?: string;\r\n headerClass?: string;\r\n okBtnClass?: string;\r\n showHeaderClose?: boolean;\r\n showOnlyCloseBtn?: boolean;\r\n\r\n private static getDefault(): SSDialogContext {\r\n return {\r\n title: null,\r\n body: null,\r\n okBtnText: 'Yes',\r\n cancelBtnText: 'No',\r\n okBtnClass: 'btn button-primary',\r\n cancelBtnClass: 'btn btn-default',\r\n headerClass: 'confirm-modal-header',\r\n footerClass: 'confirm-modal-footer',\r\n dialogClass: 'modal-dialog',\r\n showHeaderClose: true,\r\n showOnlyCloseBtn: false\r\n };\r\n }\r\n\r\n /**\r\n * Generates an modal config file\r\n *\r\n * @static\r\n * @param {Object} config\r\n * @returns {SSDialogContext}\r\n * @memberof SSDialogContext\r\n */\r\n public static generate(config: Object): SSDialogContext {\r\n const newConfig = SSDialogContext.getDefault();\r\n Object.assign(newConfig, config);\r\n return newConfig;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment from 'moment';\r\n\r\n// Datetime pipe, as Angular 4 date pipe doesn't work for IE/Edge.\r\n@Pipe({\r\n name: 'datetime'\r\n})\r\nexport class DatetimePipe implements PipeTransform {\r\n\r\n transform(value: string, format: string): string {\r\n if (!value) { return ''; }\r\n return moment(value).format(format);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'defectResults'\r\n})\r\nexport class DefectResultsPipe implements PipeTransform {\r\n transform(status: number): any {\r\n switch (status) {\r\n case 0:\r\n return {\r\n icon: 'fa-exclamation-circle text-orange',\r\n title: 'Fixed by inspector'\r\n };\r\n case 1:\r\n return {\r\n icon: 'fa-exclamation-circle text-assertive',\r\n title: 'Unsafe'\r\n };\r\n case 2:\r\n return {\r\n icon: 'fa-exclamation-circle text-amber',\r\n title: 'Minor defects remain'\r\n };\r\n default:\r\n return {\r\n icon: 'fa-question-circle text-gray-50',\r\n title: 'Unknown'\r\n };\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n// Checks if there is a value and returns Not Set if there is none\r\n@Pipe({\r\n name: 'displayValue'\r\n})\r\nexport class DisplayValuePipe implements PipeTransform {\r\n\r\n transform(value: any): any {\r\n if (value === 0) {\r\n return 0;\r\n }\r\n if (value) {\r\n return value;\r\n } else {\r\n return 'Not Set';\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { fieldTypes } from '../values/field-types';\r\n\r\n@Pipe({\r\n name: 'fieldType'\r\n})\r\nexport class FieldTypePipe implements PipeTransform {\r\n transform(type: number): any {\r\n switch (type) {\r\n case fieldTypes.Text:\r\n return 'Text';\r\n case fieldTypes.YesNo:\r\n return 'Yes / No';\r\n case fieldTypes.YesNoNA:\r\n return 'Yes / No / N/A';\r\n default:\r\n return 'Unknown';\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DiaryTypeEnum } from 'app/core/hub-api';\r\nimport { icons } from '../values/icons';\r\nimport { inspectionOutcomeStatusIds } from '../values/inspection-outcome-status-ids';\r\n\r\n@Pipe({\r\n name: 'idToActivity'\r\n})\r\nexport class IdToActivityPipe implements PipeTransform {\r\n transform(value: number, inspectionId?: string): any {\r\n if (!value) {\r\n return {\r\n text: 'None'\r\n };\r\n }\r\n switch (value) {\r\n case DiaryTypeEnum.Diary:\r\n return {\r\n text: 'Diary',\r\n icon: icons.diary\r\n };\r\n case DiaryTypeEnum.Dismantle:\r\n return {\r\n text: 'Dismantle',\r\n icon: icons.dismantle\r\n };\r\n case DiaryTypeEnum.Variation:\r\n return {\r\n text: 'Variation',\r\n icon: icons.variation\r\n };\r\n case DiaryTypeEnum.Adaption:\r\n return {\r\n text: 'Adaption',\r\n icon: icons.variation\r\n };\r\n case DiaryTypeEnum.FullHandover:\r\n return {\r\n text: 'Handover',\r\n icon: icons.handover\r\n };\r\n case DiaryTypeEnum.PartialHandover:\r\n return {\r\n text: 'Re-Handover',\r\n icon: icons.handover\r\n };\r\n case DiaryTypeEnum.FullOffHire:\r\n return {\r\n text: 'Full off-hire',\r\n icon: icons.offhire\r\n };\r\n case DiaryTypeEnum.PartialOffHire:\r\n return {\r\n text: 'Partial off-hire',\r\n icon: icons.offhire\r\n };\r\n case DiaryTypeEnum.InspectionFollowUpNotify:\r\n return {\r\n text: 'Inspection follow up actions',\r\n icon: icons.inspectionFollowUp\r\n };\r\n case DiaryTypeEnum.InspectionFollowUpInstruction:\r\n return {\r\n text: 'Remedial actions',\r\n icon: icons.inspectionFollowUp\r\n };\r\n case DiaryTypeEnum.UnsafeScaffoldReport:\r\n return {\r\n text: 'Unsafe scaffold report',\r\n icon: icons.unsafeScaffold\r\n };\r\n case DiaryTypeEnum.PauseInspections:\r\n return {\r\n text: 'Inspections paused',\r\n icon: icons.paused\r\n };\r\n case DiaryTypeEnum.StopInspections:\r\n return {\r\n text: 'Inspections stopped',\r\n icon: icons.stopped\r\n };\r\n case DiaryTypeEnum.ResumeInspections:\r\n return {\r\n text: 'Inspections resumed',\r\n icon: icons.resumed\r\n };\r\n case DiaryTypeEnum.Inspection:\r\n return {\r\n text: 'Inspection',\r\n icon: this.getIconPathBasedOnInspectionResult(inspectionId[1])\r\n };\r\n }\r\n return value;\r\n }\r\n\r\n getIconPathBasedOnInspectionResult(inspectionId: string): string {\r\n switch (inspectionId) {\r\n case inspectionOutcomeStatusIds.noDefects:\r\n return icons.noDefects;\r\n case inspectionOutcomeStatusIds.defectsFixed:\r\n return icons.defectsFixed;\r\n case inspectionOutcomeStatusIds.defectsNotFixed:\r\n return icons.defectsNotFixed;\r\n case inspectionOutcomeStatusIds.unsafeScaffold:\r\n return icons.unsafeScaffold;\r\n default:\r\n return icons.inspection;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n// Pipe for displaying items from any user Configurable lists.\r\n@Pipe({\r\n name: 'idToTitle'\r\n})\r\nexport class IdToTitlePipe implements PipeTransform {\r\n\r\n transform(id: string, configurationItems: any, titleProperty: string = 'Title'): any {\r\n const item = configurationItems[id];\r\n return item ? item[titleProperty] : '';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n// Pipe for displaying negative number without the minus sign\r\n@Pipe({\r\n name: 'removeNegativeSymbol'\r\n})\r\nexport class RemoveNegativeSymbolPipe implements PipeTransform {\r\n\r\n transform(num: number): number {\r\n return num >= 0 ? num : Math.abs(num);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { siteStatusIds } from '../values/site-status-ids';\r\n\r\n// Pipe displaying a site status (Open/Closed) from an ID.\r\n@Pipe({\r\n name: 'siteStatus'\r\n})\r\nexport class SiteStatusPipe implements PipeTransform {\r\n\r\n transform(id: string): any {\r\n if (id === siteStatusIds.open) { return 'Open'; }\r\n if (id === siteStatusIds.closed) { return 'Closed'; }\r\n }\r\n}\r\n","// Regex to validate international email addresses\r\n// Example: https://rubular.com/r/bqNZ0WT0RMSaGV\r\nexport const emailAddressRegex = /^(?=^.{6,255}$)((?=.{1,64}$)((([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\")))@(?=.{4,190}$)((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,85})))$/;\r\n","// Regex to match a file extension (everything after and including the last dot in a string).\r\nexport const fileExtensionRegex = /\\.[^/.]+$/;\r\n","// Regex which matches a valid file name.\r\nexport const fileNameRegex = /^[\\w\\-][\\w\\- ]*$/;\r\n","export const passwordControlRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})/;\r\n","export const quickIdControlRegex = /^([A-Z0-9]){1,3}$/;\r\n","import { Injectable } from '@angular/core';\r\nimport { HandoverViewComponent } from 'app/activity/modals/handover-view/handover-view.component';\r\nimport { DiaryViewComponent } from 'app/activity/modals/diary-view/diary-view.component';\r\nimport { InspectionViewComponent } from 'app/activity/modals/inspection-view/inspection-view.component';\r\nimport { DismantleViewComponent } from 'app/activity/modals/dismantle-view/dismantle-view.component';\r\nimport { UnsafeViewComponent } from 'app/activity/modals/unsafe-view/unsafe-view.component';\r\nimport { VariationViewComponent } from 'app/activity/modals/variation-view/variation-view.component';\r\nimport { DiaryTypeEnum, ActivityDetailQuery, ScaffoldEndpointService } from 'app/core/hub-api';\r\nimport { OffhireViewComponent } from 'app/activity/modals/offhire-view/offhire-view.component';\r\nimport { of, BehaviorSubject, combineLatest } from 'rxjs';\r\nimport { SiteDetailQueryService } from 'app/sites/services/site-detail-query.service';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from '../models/ss-modal-config';\r\n\r\n@Injectable()\r\nexport class ActivityModalService {\r\n private loadingSource = new BehaviorSubject(false);\r\n public loading = this.loadingSource.asObservable();\r\n private disableApiRequest = false;\r\n constructor(\r\n private scaffoldEndpointService: ScaffoldEndpointService,\r\n private siteDetailsQueryService: SiteDetailQueryService,\r\n public modalService: BsModalService\r\n ) { }\r\n /**\r\n * TODO: Add a check for what componet gets passed so we can query the correct API.\r\n * Add different API Endpoints\r\n */\r\n\r\n public openActivityModal(type: number, scaffoldDiaryId: string, siteReference?: string): any {\r\n const apiQuery = new ActivityDetailQuery();\r\n apiQuery.ActivityId = scaffoldDiaryId;\r\n apiQuery.ActivityType = type;\r\n const siteDetailQuery = siteReference ? this.siteDetailsQueryService.siteDetailQuery(true, siteReference) : of('');\r\n if (this.disableApiRequest) {\r\n return;\r\n } else {\r\n this.disableApiRequest = true;\r\n const obs$ = combineLatest([siteDetailQuery, this.scaffoldEndpointService.ActivityDetailQuery(apiQuery)]);\r\n obs$.subscribe(\r\n latest => {\r\n const context = {\r\n ActivityTypeId: scaffoldDiaryId,\r\n ActivityType: type,\r\n Site: latest[0],\r\n ActivityDetail: latest[1]\r\n };\r\n const modal = this.modalService.show(this.modalToLoad(type), SSModalConfig.generate(context));\r\n\r\n modal.onHide.subscribe(\r\n res => {\r\n this.loadingSource.next(false);\r\n return;\r\n },\r\n error => {\r\n // Catch errors when user clicks escape button in the modal. So we just handle it.\r\n console.error(error);\r\n },\r\n );\r\n },\r\n error => {\r\n console.error(error);\r\n },\r\n () => {\r\n this.disableApiRequest = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n private modalToLoad(ActivityType: Number): any {\r\n switch (ActivityType) {\r\n case DiaryTypeEnum.Adaption:\r\n case DiaryTypeEnum.Variation:\r\n return VariationViewComponent;\r\n case DiaryTypeEnum.FullHandover:\r\n case DiaryTypeEnum.PartialHandover:\r\n return HandoverViewComponent;\r\n case DiaryTypeEnum.FullOffHire:\r\n case DiaryTypeEnum.PartialOffHire:\r\n return OffhireViewComponent;\r\n case DiaryTypeEnum.Diary:\r\n return DiaryViewComponent;\r\n case DiaryTypeEnum.Inspection:\r\n case DiaryTypeEnum.InspectionFollowUpInstruction:\r\n case DiaryTypeEnum.InspectionFollowUpNotify:\r\n return InspectionViewComponent;\r\n case DiaryTypeEnum.Dismantle:\r\n return DismantleViewComponent;\r\n case DiaryTypeEnum.UnsafeScaffoldReport:\r\n return UnsafeViewComponent;\r\n }\r\n return ActivityType;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HandoverReportEndpointService,\r\n InspectionReportEndpointService,\r\n VariationReportEndpointService,\r\n DiaryTypeEnum\r\n} from 'app/core/hub-api';\r\nimport { Observable } from 'rxjs';\r\n// import { PDFDocumentProxy } from 'ng2-pdf-viewer';\r\nimport { saveAs } from 'file-saver';\r\nimport { map } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\n@Injectable()\r\nexport class ActivityReportService {\r\n pdf/*: PDFDocumentProxy*/;\r\n constructor(\r\n private handoverReportService: HandoverReportEndpointService,\r\n private inspectionReportService: InspectionReportEndpointService,\r\n private variationReportService: VariationReportEndpointService\r\n ) {}\r\n\r\n generateReport(ActivityType: number, id: string, Activity: any): any {\r\n if (ActivityType && id) {\r\n const reportToLoad: Observable = this.reportToLoad(ActivityType, id);\r\n return reportToLoad.pipe(\r\n map(val => {\r\n const blob = new Blob([val]);\r\n this.generateDownload(blob, Activity, ActivityType);\r\n })\r\n );\r\n }\r\n }\r\n\r\n generateDownload(blob: Blob, Activity: any, ActivityType: number): any {\r\n const date = moment(Activity.When).format('YYYY-MM-DDTHHmmss');\r\n const filename = date + ' ' + this.activityName(ActivityType) + ' ' + Activity.SiteDetails.SiteName + '.pdf';\r\n if ((navigator as any).msSaveOrOpenBlob) {\r\n // msSaveOrOpenBlob for IE/Edge.\r\n (navigator as any).msSaveOrOpenBlob(blob, filename);\r\n } else {\r\n // file-saver library for Chrome/Firefox.\r\n saveAs(blob, filename);\r\n }\r\n }\r\n\r\n private reportToLoad(ActivityType: Number, id: string): any {\r\n switch (ActivityType) {\r\n case DiaryTypeEnum.Variation:\r\n return this.variationReportService.GetVariationEstimationReportForDownload(id);\r\n case DiaryTypeEnum.Adaption:\r\n return this.variationReportService.GetAdaptionInstructionReportForDownload(id);\r\n case DiaryTypeEnum.FullHandover:\r\n case DiaryTypeEnum.PartialHandover:\r\n return this.handoverReportService.GetHandoverCertificateReportForDownload(id);\r\n case DiaryTypeEnum.FullOffHire:\r\n case DiaryTypeEnum.PartialOffHire:\r\n return this.handoverReportService.GetOffhireCertificateReportForDownload(id);\r\n case DiaryTypeEnum.InspectionFollowUpInstruction:\r\n case DiaryTypeEnum.InspectionFollowUpNotify:\r\n return this.inspectionReportService.GetRemedialReportForDownload(id);\r\n case DiaryTypeEnum.UnsafeScaffoldReport:\r\n return this.inspectionReportService.GetUnsafeScaffoldReportForDownload(id);\r\n case DiaryTypeEnum.Inspection:\r\n return this.inspectionReportService.GetSiteInspectionReportForDownload(id);\r\n }\r\n return ActivityType;\r\n }\r\n\r\n private activityName(ActivityType: Number): any {\r\n switch (ActivityType) {\r\n case DiaryTypeEnum.Variation:\r\n return 'Variation Instruction';\r\n case DiaryTypeEnum.Adaption:\r\n return 'Variation Instruction';\r\n case DiaryTypeEnum.FullHandover:\r\n case DiaryTypeEnum.PartialHandover:\r\n return 'Handover Certificate';\r\n case DiaryTypeEnum.FullOffHire:\r\n case DiaryTypeEnum.PartialOffHire:\r\n return 'Off Hire Certificate';\r\n case DiaryTypeEnum.InspectionFollowUpInstruction:\r\n case DiaryTypeEnum.InspectionFollowUpNotify:\r\n return 'Remedial Action';\r\n case DiaryTypeEnum.UnsafeScaffoldReport:\r\n return 'Unsafe Scaffold';\r\n }\r\n return ActivityType;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { LocalStorageService } from 'angular-web-storage';\r\nimport { UserIdentityService, AUTHENTICATION_SETTINGS_TOKEN, AuthenticationModuleSettings } from 'app/core/authentication';\r\nimport { Observable } from 'rxjs';\r\n\r\n/*\r\n* Provide the company data from API\r\n*/\r\n@Injectable()\r\nexport class CompanySettingsService {\r\n constructor(\r\n private userIdentityService: UserIdentityService,\r\n private localStorageService: LocalStorageService,\r\n private http: HttpClient,\r\n @Inject(AUTHENTICATION_SETTINGS_TOKEN) private settings: AuthenticationModuleSettings,\r\n\r\n ) { }\r\n\r\n\r\n /*\r\n * Gets company details and cache the client id for further usage\r\n *\r\n * @memberof CompanySettingsService\r\n */\r\n public getCompanyDetailsAndCache(companyId: string): Observable {\r\n var isFromServerCache = true;\r\n var observable = this.getCompanyDetailsRequest(companyId, isFromServerCache);\r\n observable.subscribe((clientAppSettings: any) => {\r\n this.updateCompanySettingCacheData(clientAppSettings);\r\n });\r\n return observable;\r\n }\r\n\r\n /*\r\n * Gets company details from server, mostly from server cache otherwise fetch from support console api \r\n *\r\n * @memberof CompanySettingsService\r\n */\r\n public getCompanyDetailsFromServer(): Observable {\r\n const companyId = this.getCompanyId();\r\n var isFromServerCache = true;\r\n return this.getCompanyDetailsRequest(companyId, isFromServerCache);\r\n }\r\n\r\n /*\r\n * Gets company details from server, force fetch data from support console api\r\n * @param companyId - The ID of the company to retrieve details for. If not provided, it will be retrieved from the cache.\r\n * @memberof CompanySettingsService\r\n */\r\n public getCompanyDetailsForceFetchFromServer(companyId?: string): Observable {\r\n var id = companyId ? companyId : this.getCompanyId();\r\n var isFromServerCache = false;\r\n var observable = this.getCompanyDetailsRequest(id, isFromServerCache);\r\n observable.subscribe((clientAppSettings: any) => {\r\n // sets the companyId in local storage\r\n this.updateCompanySettingCacheData(clientAppSettings);\r\n });\r\n return observable;\r\n }\r\n\r\n /*\r\n * Gets company id from local storage\r\n *\r\n * @memberof CompanySettingsService\r\n */\r\n public getCompanyId(): any {\r\n const companyId = this.localStorageService.get('companyId');\r\n return (companyId) ? companyId : '';\r\n }\r\n\r\n /*\r\n * Generate query to fetch company details from server\r\n *\r\n * @memberof CompanySettingsService\r\n */\r\n private getCompanyDetailsRequest(companyId: string, isFromServerCache: boolean): Observable {\r\n const token = this.userIdentityService.getAccessToken();\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n Authorization: 'Bearer ' + token,\r\n 'Cache-control': 'no-cache'\r\n });\r\n const options = { headers: headers };\r\n const url = `${this.settings.multiTenantUrl}configuration/ClientDetails/${companyId}/${isFromServerCache}`;\r\n\r\n return this.http.get(url, options);\r\n }\r\n\r\n /*\r\n * Update required comapny setting in local storage\r\n *\r\n * @memberof CompanySettingsService\r\n */\r\n private updateCompanySettingCacheData(clientAppSettings: any) {\r\n // Set feature flags and customer title.\r\n Object.assign(this.settings.featureFlags, clientAppSettings.FeatureFlags);\r\n this.settings.customerTitle = clientAppSettings.CustomerTitle;\r\n\r\n // Store the clientSettings in localStorage.\r\n this.localStorageService.set('companyId', clientAppSettings.Id);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PeriodTypeEnum } from 'app/core/hub-api';\r\nimport * as moment from 'moment';\r\n\r\n/**\r\n * A service that provides utility functions for working with dates.\r\n */\r\n@Injectable()\r\nexport class DateService {\r\n private readonly weekdays = ['su', 'mo', 'tu', 'we', 'th', 'fr', 'sa'];\r\n\r\n /**\r\n * Returns an array of abbreviated weekdays, starting with the specified week first day.\r\n * @param weekFirstDay The week first day, as a two-letter abbreviation (e.g. 'su', 'mo').\r\n */\r\n public getWeekdays(weekFirstDay: 'su' | 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa') {\r\n const weekFirstDayIndex = this.weekdays.indexOf(weekFirstDay);\r\n return [\r\n ...this.weekdays.slice(weekFirstDayIndex).map(day => day.toUpperCase()),\r\n ...this.weekdays.slice(0, weekFirstDayIndex).map(day => day.toUpperCase())\r\n ];\r\n }\r\n\r\n /**\r\n * Converts the dates in a moment object\r\n * @param dateRange The date range to convert.\r\n * @param single A flag indicating whether the date range is a single date (default: false).\r\n */\r\n public generateMomentDate(dateRange: any, single: boolean = false): any {\r\n // Converts the dates in a moment object before submitting\r\n if (dateRange) {\r\n\r\n if (single) {\r\n const singleDate = moment()\r\n .year(dateRange.date.year)\r\n .month(dateRange.date.month - 1)\r\n .date(dateRange.date.day).startOf('day');\r\n return moment(singleDate);\r\n }\r\n\r\n const start = moment()\r\n .year(dateRange.startDate.year)\r\n .month(dateRange.startDate.month - 1)\r\n .date(dateRange.startDate.day).startOf('day');\r\n\r\n const end = moment()\r\n .year(dateRange.endDate.year)\r\n .month(dateRange.endDate.month - 1)\r\n .date(dateRange.endDate.day).endOf('day');\r\n return { startDate: moment(start), endDate: moment(end) };\r\n }\r\n }\r\n\r\n /**\r\n * Converts the dates in a datepicker object\r\n * @param dateRange The date range to convert.\r\n */\r\n public generateDatePickerDate(dateRange: any): any {\r\n const dates = {\r\n startDate: {\r\n year: dateRange.startDate.year(),\r\n month: dateRange.startDate.month() + 1,\r\n day: dateRange.startDate.date()\r\n },\r\n endDate: {\r\n year: dateRange.endDate.year(),\r\n month: dateRange.endDate.month() + 1,\r\n day: dateRange.endDate.date()\r\n }\r\n };\r\n return dates;\r\n }\r\n /**\r\n * Applies the timezone offset to a moment date object.\r\n * @param timezone The timezone offset to apply, in the format `±HH:mm`.\r\n * @param date The date to apply the timezone to.\r\n * @returns A new moment date object with the timezone offset applied.\r\n */\r\n public applyTimezoneToMomentDate(timezone: string, date: moment.Moment): moment.Moment {\r\n return moment(date.format(`YYYY-MM-DDTHH:mm:ss${timezone}`));\r\n }\r\n\r\n /**\r\n * Returns an object containing the start and end dates for the last period, current period, and first period,\r\n * as well as other relevant information based on the given start date and period type.\r\n * @param firstPeriodStartDate The start date of the first period.\r\n * @param periodType The type of period to calculate (e.g. weekly).\r\n */\r\n getDatePeriods(firstPeriodStartDate: string, periodType: PeriodTypeEnum): any {\r\n let periodDays;\r\n // TODO: Add different Periods later\r\n if (periodType === PeriodTypeEnum.Weekly) {\r\n periodDays = 6;\r\n }\r\n \r\n // gets the company preferred start date (Ex: '5' = Friday)\r\n const weekDayNumberStart = moment(firstPeriodStartDate).isoWeekday();\r\n \r\n // sets the current week start to the company preferred start day (ex: Friday)\r\n const weekStart = moment().startOf('week').weekday(weekDayNumberStart);\r\n const lastWeekAfterWeekStart = moment(weekStart).subtract(7, 'days');\r\n const currentWeekStart = moment().isoWeekday() < weekDayNumberStart ? lastWeekAfterWeekStart : weekStart;\r\n \r\n // calculate the start date of the first period\r\n const firstPeriodStart = moment(firstPeriodStartDate);\r\n if (firstPeriodStart.isAfter(currentWeekStart)) {\r\n firstPeriodStart.subtract(7, 'days');\r\n }\r\n \r\n // gets the first day of the week as string\r\n const firstDayOfWeek = moment(firstPeriodStart).format('dddd');\r\n const firstDayInt = moment(firstPeriodStart).format('d');\r\n \r\n return {\r\n lastPeriod: {\r\n start: moment(currentWeekStart).subtract(periodDays + 1, 'day').startOf('day'),\r\n end: moment(currentWeekStart).subtract(1, 'days').startOf('day')\r\n },\r\n currentPeriod: {\r\n start: moment(currentWeekStart).startOf('day'),\r\n end: moment(currentWeekStart).add(periodDays, 'days').startOf('day')\r\n },\r\n firstPeriod: {\r\n start: firstPeriodStart.startOf('day'),\r\n end: moment(firstPeriodStart).add(periodDays, 'days').startOf('day')\r\n },\r\n weekDayNumberStart: weekDayNumberStart,\r\n firstDayOfWeek: firstDayOfWeek.slice(0, 2).toLowerCase(),\r\n firstDay: firstDayInt,\r\n periodDays: periodDays,\r\n };\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { WindowScrollingService } from './window-scrolling.service';\r\n\r\n@Injectable()\r\nexport class LoadingSpinnerService {\r\n private loadingSource = new BehaviorSubject(false);\r\n loading = this.loadingSource.asObservable();\r\n\r\n constructor(private scrollingService: WindowScrollingService) {}\r\n\r\n show(): void {\r\n this.loadingSource.next(true);\r\n this.scrollingService.disable();\r\n }\r\n\r\n hide(): void {\r\n this.loadingSource.next(false);\r\n this.scrollingService.enable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class SimilarityService {\r\n /**\r\n * Calculates the similarity between two strings using the edit distance algorithm.\r\n * @param str1 - The first string.\r\n * @param str2 - The second string.\r\n * @returns The similarity score between 0 and 1, where 1 indicates identical strings and 0 indicates completely different strings.\r\n */\r\n calculateSimilarity(str1: string, str2: string): number {\r\n str1 = str1 ?? '';\r\n str2 = str2 ?? '';\r\n const longer = str1?.length ?? 0 > str2?.length ?? 0 ? str1 : str2;\r\n const shorter = str1?.length ?? 0 > str2?.length ?? 0 ? str2 : str1;\r\n const longerLength = longer.length;\r\n if (longerLength === 0) {\r\n return 1.0;\r\n }\r\n return (longerLength - this.editDistance(longer, shorter)) / parseFloat(longerLength.toString());\r\n }\r\n\r\n /**\r\n * Calculates the edit distance between two strings.\r\n * The edit distance is the minimum number of operations (insertions, deletions, or substitutions)\r\n * required to transform one string into another.\r\n *\r\n * @param str1 - The first string.\r\n * @param str2 - The second string.\r\n * @returns The edit distance between the two strings.\r\n */\r\n editDistance(str1: string, str2: string): number {\r\n str1 = str1 ?? '';\r\n str2 = str2 ?? '';\r\n str1 = str1.toLowerCase();\r\n str2 = str2.toLowerCase();\r\n\r\n const costs = new Array();\r\n for (let i = 0; i <= str1.length; i++) {\r\n let lastValue = i;\r\n for (let j = 0; j <= str2.length; j++) {\r\n if (i === 0) {\r\n costs[j] = j;\r\n } else {\r\n if (j > 0) {\r\n let newValue = costs[j - 1];\r\n if (str1.charAt(i - 1) !== str2.charAt(j - 1)) {\r\n newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;\r\n }\r\n costs[j - 1] = lastValue;\r\n lastValue = newValue;\r\n }\r\n }\r\n }\r\n if (i > 0) {\r\n costs[str2.length] = lastValue;\r\n }\r\n }\r\n return costs[str2.length];\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StringConversionService {\r\n\r\n constructor() { }\r\n\r\n /**\r\n * Returns a string separated with comma from [value1] and [value2]\r\n * Example:\r\n * * value1 = ScaffoldName\r\n * * value2 = ScaffoldDescription\r\n * Output: \"ScaffoldName, ScaffoldDescription\"\r\n * * In case there is no value1 it will return value2 if has data\r\n * * If it doesn't have value 1 and 2 it will return null\r\n *\r\n * @param {string} value1\r\n * @param {string} value2\r\n * @returns {string}\r\n * @memberof StringConversionService\r\n */\r\n commaSeparatedString(value1: string, value2: string): string {\r\n if (value1 && value2 && value1 !== '' && value2 !== '') {\r\n return `${value1.trim()}, ${value2.trim()}`;\r\n }\r\n if (value1 && value1 !== '') {\r\n return value1.trim();\r\n } else if (value2 && value2 !== '') {\r\n return value2.trim();\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class WindowScrollingService {\r\n private styleTag: HTMLStyleElement;\r\n\r\n constructor() {\r\n this.styleTag = this.buildStyleElement();\r\n }\r\n // I disable the scrolling feature on the main viewport.\r\n public disable(): void {\r\n document.body.appendChild(this.styleTag);\r\n }\r\n\r\n // I re-enable the scrolling feature on the main viewport.\r\n public enable(): void {\r\n const element = document.getElementById('overflow');\r\n if (element) {\r\n document.body.removeChild(this.styleTag);\r\n }\r\n }\r\n\r\n // I build and return a Style element that will prevent scrolling on the body.\r\n private buildStyleElement(): HTMLStyleElement {\r\n const style = document.createElement('style');\r\n\r\n style.type = 'text/css';\r\n style.id = 'overflow';\r\n style.textContent = `\r\n body {\r\n overflow: hidden !important ;\r\n }\r\n `;\r\n\r\n return style;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AlertModule } from 'ngx-bootstrap/alert';\r\nimport { CarouselModule } from 'ngx-bootstrap/carousel';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { NgOptionHighlightModule } from '@ng-select/ng-option-highlight';\r\nimport { PopoverModule } from 'ngx-bootstrap/popover';\r\nimport { AccordionModule } from 'ngx-bootstrap/accordion';\r\nimport { AddEditStaffModalComponent } from './components/add-edit-staff-modal/add-edit-staff-modal.component';\r\nimport { DonutChartComponent } from './components/donut-chart/donut-chart.component';\r\nimport { FormGroupComponent } from './components/form-group/form-group.component';\r\nimport { HandoversExtraHireChartComponent } from './components/handovers-extra-hire-chart/handovers-extra-hire-chart.component';\r\nimport { HandoversScaffoldStatusChartComponent } from './components/handovers-scaffold-status-chart/handovers-scaffold-status-chart.component';\r\nimport { HelpPanelComponent } from './components/help-panel/help-panel.component';\r\nimport { ImageModalComponent } from './components/image-modal/image-modal.component';\r\nimport { InitialsIconComponent } from './components/initials-icon/initials-icon.component';\r\nimport { InspectionResultComponent } from './components/inspection-result/inspection-result.component';\r\nimport { ModalFormFooterComponent } from './components/modal-form-footer/modal-form-footer.component';\r\nimport { ModalFormHeaderComponent } from './components/modal-form-header-component/modal-form-header.component';\r\nimport { MultiStepComponent } from './components/multi-step/multi-step.component';\r\nimport { OneDayInspectionChartComponent } from './components/one-day-inspection-chart/one-day-inspection-chart.component';\r\nimport { PlacesInputComponent } from './components/places-input/places-input.component';\r\nimport { SelectWithInfoComponent } from './components/select-with-info/select-with-info.component';\r\nimport { SevenDayHandoverChartComponent } from './components/seven-day-handover-chart/seven-day-handover-chart.component';\r\nimport { SevenDayInspectionChartComponent } from './components/seven-day-inspection-chart/seven-day-inspection-chart.component';\r\nimport { SevenDayInspectionsDueChartComponent } from './components/seven-day-inspections-due-chart/seven-day-inspections-due-chart.component';\r\nimport { TwelveMonthInspectionChartComponent } from './components/twelve-month-inspection-chart/twelve-month-inspection-chart.component';\r\nimport { DynamicComponentDirective } from './directives/dynamic-component.directive';\r\nimport { DatetimePipe } from './pipes/datetime.pipe';\r\nimport { IdToTitlePipe } from './pipes/id-to-title.pipe';\r\nimport { SiteStatusPipe } from './pipes/site-status.pipe';\r\nimport { IdToActivityPipe } from './pipes/id-to-activity.pipe';\r\nimport { LoadingSpinnerComponent } from 'app/shared/components/loading-spinner/loading-spinner';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ColourCodedTitleComponent } from './components/colour-coded-title/colour-coded-title.component';\r\nimport { AudioPlayerComponent } from './components/audio-player/audio-player.component';\r\nimport { VideoPlayerComponent } from './components/video-player/video-player.component';\r\nimport { ImageViewerComponent } from './components/image-viewer/image-viewer.component';\r\nimport { TextEditorComponent } from './components/text-editor/text-editor.component';\r\nimport { DownloadClickDirective } from 'app/shared/directives/download-click.directive';\r\nimport { ExportCsvComponent } from './components/export-csv/export-csv.component';\r\nimport { PrintComponent } from './components/print/print.component';\r\nimport { EditableListTableComponent } from './components/editable-list-table/editable-list-table.component';\r\nimport { AddEditListItemModalComponent } from './components/add-edit-list-item-modal/add-edit-list-item-modal.component';\r\nimport { AddEditStaffRatesModalComponent } from './components/add-edit-staff-rates-modal/add-edit-staff-rates-modal.component';\r\nimport { NgxTrimModule } from 'ngx-trim';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { DefectResultsPipe } from './pipes/defect-results.pipe';\r\nimport { OverUnderComponent } from './components/over-under/over-under.component';\r\nimport { RemoveNegativeSymbolPipe } from './pipes/remove-negative-symbol-pipe';\r\nimport { SignaturesSvgComponent } from './components/signatures-svg/signatures-svg.component';\r\nimport { ImageCarouselComponent } from './components/image-carousel/image-carousel.component';\r\nimport { LoadingSpinnerService } from './services/loading-spinner.service';\r\nimport { DefectTypesChartComponent } from './components/defect-types-chart/defect-types-chart.component';\r\nimport { BrowserWarningComponent } from './components/browser-warning/browser-warning.component';\r\nimport { ActivityReportService } from './services/activity-report.service';\r\nimport { DownloadReportButtonComponent } from 'app/activity/components/download-report-button/download-report-button.component';\r\nimport { WindowScrollingService } from './services/window-scrolling.service';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { DisplayValuePipe } from './pipes/display-value.pipe';\r\nimport { FieldTypePipe } from './pipes/field-type.pipe';\r\nimport { AddEditDepotsModalComponent } from 'app/admin/components/add-edit-depots-modal/add-edit-depots-modal.component';\r\nimport { LimitReachedModalComponent } from './components/limit-reached-modal/limit-reached-modal.component';\r\nimport { CompanySettingsService } from './services/company-setting.service';\r\nimport { StringConversionService } from './services/string-conversion.service';\r\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\r\nimport { YoutubeComponent } from './components/youtube/youtube.component';\r\nimport { ModalModule as NgxModalModule } from 'ngx-bootstrap/modal';\r\nimport { ModalDialogComponent } from './components/modal-dialog/modal-dialog.component';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\r\nimport { BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { NgxExtendedPdfViewerModule } from 'ngx-extended-pdf-viewer';\r\nimport { DatePickerComponent } from './components/date-picker/date-picker.component';\r\nimport { DateService } from './services/date.service';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { AngularSlickgridModule } from 'angular-slickgrid';\r\nimport { FeatureFlagsModule } from './components/feature-flags/feature-flags.module';\r\nimport { AuthenticationEventsService } from 'app/core/authentication';\r\nimport { PermissionComponent } from 'app/core/authentication/components/permission/permission.component';\r\nimport { ToggleButtonPanelComponent } from './components/toggle-button-panel/toggle-button-panel.component';\r\nimport { SimilarityService } from './services/similarity.service';\r\nimport { SignaturesRequiredComponent } from './components/signatures-required/signatures-required.component';\r\nimport { PrincipalContractComponent } from './components/principal-contract/principal-contract.component';\r\nimport { DismantleRequiredComponent } from './components/dismantle-required/dismantle-required.component';\r\nimport { ListPanelComponent } from './components/list-panel/list-panel.component';\r\n\r\n// Contains components, directives and pipes for use the across whole application.\r\n//\r\n// DO NOT PUT APPLICATION WIDE SERVICES INTENDED AS SINGLETONS IN THIS MODULE - application wide services\r\n// should generally go in the core module to ensure that they are only instantiated once.\r\n@NgModule({\r\n declarations: [\r\n /// PIPES\r\n IdToTitlePipe,\r\n SiteStatusPipe,\r\n DatetimePipe,\r\n IdToActivityPipe,\r\n DefectResultsPipe,\r\n RemoveNegativeSymbolPipe,\r\n DisplayValuePipe,\r\n FieldTypePipe,\r\n\r\n /// DIRECTIVES\r\n DynamicComponentDirective,\r\n DownloadClickDirective,\r\n\r\n /// COMPONENTS\r\n DatePickerComponent,\r\n InitialsIconComponent,\r\n SevenDayInspectionChartComponent,\r\n OneDayInspectionChartComponent,\r\n TwelveMonthInspectionChartComponent,\r\n SevenDayHandoverChartComponent,\r\n DonutChartComponent,\r\n FormGroupComponent,\r\n PlacesInputComponent,\r\n ImageModalComponent,\r\n ModalFormHeaderComponent,\r\n ModalFormFooterComponent,\r\n InspectionResultComponent,\r\n MultiStepComponent,\r\n SelectWithInfoComponent,\r\n SevenDayInspectionsDueChartComponent,\r\n HandoversScaffoldStatusChartComponent,\r\n HandoversExtraHireChartComponent,\r\n HelpPanelComponent,\r\n AddEditStaffModalComponent,\r\n LoadingSpinnerComponent,\r\n ColourCodedTitleComponent,\r\n AudioPlayerComponent,\r\n VideoPlayerComponent,\r\n ImageViewerComponent,\r\n TextEditorComponent,\r\n ExportCsvComponent,\r\n EditableListTableComponent,\r\n AddEditListItemModalComponent,\r\n AddEditStaffRatesModalComponent,\r\n OverUnderComponent,\r\n SignaturesSvgComponent,\r\n ImageCarouselComponent,\r\n PrintComponent,\r\n DefectTypesChartComponent,\r\n BrowserWarningComponent,\r\n DownloadReportButtonComponent,\r\n AddEditDepotsModalComponent,\r\n LimitReachedModalComponent,\r\n DropdownComponent,\r\n YoutubeComponent,\r\n ModalDialogComponent,\r\n PermissionComponent,\r\n ToggleButtonPanelComponent,\r\n SignaturesRequiredComponent,\r\n PrincipalContractComponent,\r\n DismantleRequiredComponent,\r\n ListPanelComponent,\r\n ],\r\n imports: [\r\n /// MODULES --- ANGULAR\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n\r\n /// MODULES --- PLUGINS\r\n NgxDatatableModule,\r\n FeatureFlagsModule,\r\n RouterModule,\r\n CarouselModule,\r\n NgSelectModule,\r\n TooltipModule.forRoot(),\r\n AlertModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n PopoverModule.forRoot(),\r\n TranslateModule.forRoot(),\r\n AccordionModule.forRoot(),\r\n NgxModalModule.forRoot(),\r\n NgxExtendedPdfViewerModule,\r\n // TODO: Make these work on individual PR's\r\n NgxTrimModule,\r\n InfiniteScrollModule,\r\n NgxDaterangepickerMd.forRoot({\r\n format: 'DD-MM-YYYY',\r\n }),\r\n NgOptionHighlightModule,\r\n\r\n // Google Maps\r\n GoogleMapsModule,\r\n\r\n // Slickgrid\r\n AngularSlickgridModule.forRoot(),\r\n ],\r\n\r\n exports: [\r\n /// MODULES --- ANGULAR\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n\r\n /// MODULES --- PLUGINS\r\n NgxDaterangepickerMd,\r\n FeatureFlagsModule,\r\n TooltipModule,\r\n AlertModule,\r\n BsDropdownModule,\r\n RouterModule,\r\n NgxTrimModule,\r\n PopoverModule,\r\n InfiniteScrollModule,\r\n TranslateModule,\r\n CarouselModule,\r\n AccordionModule,\r\n NgxModalModule,\r\n NgSelectModule,\r\n NgOptionHighlightModule,\r\n NgxDatatableModule,\r\n NgxExtendedPdfViewerModule,\r\n\r\n /// COMPONENTS\r\n FormGroupComponent,\r\n ModalFormFooterComponent,\r\n OverUnderComponent,\r\n ModalFormHeaderComponent,\r\n DropdownComponent,\r\n EditableListTableComponent,\r\n HelpPanelComponent,\r\n SelectWithInfoComponent,\r\n MultiStepComponent,\r\n ImageCarouselComponent,\r\n DownloadReportButtonComponent,\r\n BrowserWarningComponent,\r\n ToggleButtonPanelComponent,\r\n SignaturesRequiredComponent,\r\n PrincipalContractComponent,\r\n DismantleRequiredComponent,\r\n ListPanelComponent,\r\n\r\n // PIPES\r\n DatetimePipe,\r\n IdToActivityPipe,\r\n DatePickerComponent,\r\n IdToTitlePipe,\r\n InitialsIconComponent,\r\n SevenDayInspectionChartComponent,\r\n OneDayInspectionChartComponent,\r\n TwelveMonthInspectionChartComponent,\r\n SevenDayHandoverChartComponent,\r\n SevenDayInspectionsDueChartComponent,\r\n HandoversScaffoldStatusChartComponent,\r\n HandoversExtraHireChartComponent,\r\n DonutChartComponent,\r\n SiteStatusPipe,\r\n PlacesInputComponent,\r\n ImageModalComponent,\r\n InspectionResultComponent,\r\n AddEditStaffModalComponent,\r\n LoadingSpinnerComponent,\r\n ColourCodedTitleComponent,\r\n AudioPlayerComponent,\r\n VideoPlayerComponent,\r\n ImageViewerComponent,\r\n TextEditorComponent,\r\n DownloadClickDirective,\r\n ExportCsvComponent,\r\n PrintComponent,\r\n AddEditListItemModalComponent,\r\n DefectResultsPipe,\r\n RemoveNegativeSymbolPipe,\r\n SignaturesSvgComponent,\r\n DefectResultsPipe,\r\n DefectTypesChartComponent,\r\n DisplayValuePipe,\r\n FieldTypePipe,\r\n LimitReachedModalComponent,\r\n YoutubeComponent,\r\n ModalDialogComponent,\r\n\r\n // Google Maps\r\n GoogleMapsModule,\r\n\r\n // Slickgrid\r\n AngularSlickgridModule,\r\n PermissionComponent\r\n ],\r\n providers: [\r\n /// PIPES\r\n IdToTitlePipe,\r\n IdToActivityPipe,\r\n DefectResultsPipe,\r\n RemoveNegativeSymbolPipe,\r\n DisplayValuePipe,\r\n FieldTypePipe,\r\n\r\n /// SERVICES\r\n LoadingSpinnerService,\r\n ActivityReportService,\r\n WindowScrollingService,\r\n CompanySettingsService,\r\n StringConversionService,\r\n DeviceDetectorService,\r\n AuthenticationEventsService,\r\n BsModalRef,\r\n DateService,\r\n SimilarityService\r\n ],\r\n schemas: [\r\n CUSTOM_ELEMENTS_SCHEMA\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { AbstractControl } from '@angular/forms';\r\n\r\n\r\nexport class CustomValidator {\r\n\r\n\r\n/**\r\n *To validate the inpur for non zero,positive,2 decimal places\r\n *\r\n * @static\r\n * @param {AbstractControl} control\r\n * @returns {({ [key: string]: boolean } | null)}\r\n * @memberof CustomValidator\r\n */\r\nstatic negativeDecimalValidator(control: AbstractControl): { [key: string]: boolean } | null {\r\n if (control.value !== undefined) {\r\n const REGEXP = /^(?:\\d*\\.\\d{1,2}|\\d+)$/;\r\n if (REGEXP.test(control.value)) {\r\n return null;\r\n }\r\n return {\r\n 'invalidValue': true\r\n };\r\n }\r\n return null;\r\n}\r\n}\r\n","import { AbstractControl, UntypedFormControl, ValidatorFn } from '@angular/forms';\r\n\r\n// Custom validator to validate that the value of some control matches the value of another control.\r\nexport function matchControlValidator(otherControl: UntypedFormControl): ValidatorFn {\r\n return (control: AbstractControl) => {\r\n const isValid = control.value === otherControl.value;\r\n return isValid ? null : {\r\n matchControl: {\r\n value: control.value\r\n }\r\n };\r\n };\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\n// Custom validator to validate that the value of some control does not exist in a list of given values.\r\nexport function mustNotExistValidator(values: string[], caseSensitive = true): ValidatorFn {\r\n return (control: AbstractControl) => {\r\n values = caseSensitive ? values : values.map((v) => {\r\n if (v != null) { return v.toLowerCase(); }\r\n });\r\n const controlValue = caseSensitive || !control.value ? control.value : control.value.toLowerCase();\r\n const isValid = !values.includes(controlValue);\r\n return isValid ? null : {\r\n mustNotExist: {\r\n value: control.value\r\n }\r\n };\r\n };\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\n/**\r\n * Validates that a scaffold with a quick ID does not already exist in a given list of values.\r\n * if the scaffold number is null or empty, the validation will fail and return the required error. \r\n * @param values - The list of values to check against.\r\n * @param suffix - An optional suffix to append to the scaffold number.\r\n * @param caseSensitive - Specifies whether the validation should be case-sensitive. Default is true.\r\n * @returns A validator function that can be used to validate a form control.\r\n */\r\nexport function scaffoldWithQuickIdMustNotExistValidator(values: string[], suffix?: string, caseSensitive = true): ValidatorFn {\r\n return (control: AbstractControl) => {\r\n values = caseSensitive ? values : values.map((v) => {\r\n if (v != null) { return v.toLowerCase(); }\r\n });\r\n var scaffoldNumber = control.value;\r\n if (scaffoldNumber == null || scaffoldNumber == \"\") {\r\n return {\r\n required: {\r\n value: control.value\r\n }\r\n };\r\n }\r\n if (suffix) {\r\n scaffoldNumber += `-${suffix}`;\r\n }\r\n const controlValue = caseSensitive || !scaffoldNumber ? scaffoldNumber : scaffoldNumber.toLowerCase();\r\n const isValid = !values.includes(controlValue);\r\n return isValid ? null : {\r\n scaffoldWithQuickIdMustNotExist: {\r\n value: scaffoldNumber\r\n }\r\n };\r\n };\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\n// Custom validator to validate that a scaffold incremental number is of the correct format.\r\nexport function scaffoldNumberIncrementalValidator(control: AbstractControl): any {\r\n const incremental = control.value.split('-')[0];\r\n\r\n const isValid = !!incremental;\r\n return isValid ? null : {\r\n incremental: {\r\n value: control.value\r\n }\r\n };\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\n// Custom validator to validate that a scaffold number suffix is of the correct format.\r\nexport function scaffoldNumberSuffixValidator(control: AbstractControl): any {\r\n const suffix = control.value.split('-')[1];\r\n const suffixRegex = /^[A-Z0-9]{1,3}$/;\r\n\r\n const numberContainsOneOrZeroDashes = (control.value.split('-').length <= 2);\r\n\r\n const isValid = numberContainsOneOrZeroDashes && (suffix === undefined || suffixRegex.test(suffix));\r\n return isValid ? null : {\r\n suffix: {\r\n value: control.value\r\n }\r\n };\r\n}\r\n","export const ButtonStyleValues: any = {\r\n round: 0,\r\n reportSquare: 1\r\n };\r\n","export const cadsAdminStaffId = '96dcc7ab-3b70-49a9-9cde-413e07a296fd';\r\n","export const claddingIds = {\r\n brickguards: 'f8113dc8-5c84-41de-891b-1c47940dc0ee',\r\n sheeting: '6806452b-1385-475b-b8f7-372e2c676f98',\r\n netting: '20c761ff-7f7f-4c3f-bf1a-eb15d72c14fb',\r\n other: '2f90521f-3e46-4a09-9ab6-382906f05f70',\r\n none: '527be580-724d-41c8-9391-86727780d11e'\r\n};\r\n","export const colors: { [key: string]: string} = {\r\n lightGrey: '#efefef',\r\n positive: '#45B975',\r\n calm: '#d0d0d0',\r\n assertive: '#d0021b',\r\n carrot: '#e67e22',\r\n tomato: '#ee684b',\r\n river: '#3498db',\r\n lightBlue: '#8bc4ea',\r\n emerald: '#2ecc71',\r\n amethyst: '#9b59b6',\r\n sunflower: '#f1c40f',\r\n pumpkin: '#d35400',\r\n turquoise: '#1abc9c',\r\n lightGold: '#ffe993',\r\n};\r\n","export const contactTypeIds: { [key: string]: string } = {\r\n siteContact: 'e8dbf1f7-46af-44ae-80e4-88362e8b708b',\r\n officeContact: '089c042b-28ca-463d-8622-ddb81d49866a',\r\n bccContact: '2bc154f5-e106-4415-bf54-280fb6686aaa',\r\n companyContact: 'b8a3d528-f9dc-4d45-99da-36fa2915893f',\r\n};\r\n","export const contractStatusIds: ContractStatuses = {\r\n open: 'f08db0a2-a32c-4267-90fb-07e4cf34491e',\r\n closed: 'a264eb8f-0bd5-471a-87d9-5e01a5e81c46'\r\n};\r\n\r\nclass ContractStatuses {\r\n open: string;\r\n closed: string;\r\n}\r\n","export const customerStatusIds = {\r\n active: '98124f87-04aa-49a9-bc8c-1a185ab47da0',\r\n inactive: '126ea846-35f8-4f8b-b41b-671a4af51e1a'\r\n};\r\n","import { Moment } from 'moment';\r\nimport * as moment from 'moment';\r\nimport dayjs, { Dayjs } from 'dayjs/esm';\r\nimport { DatePickerOptions } from 'app/reports/models/date-picker-options';\r\nimport utc from 'dayjs/esm/plugin/utc';\r\n\r\ndayjs.extend(utc)\r\n\r\n/** Default Dates used across the entire application */\r\nexport const dates: { [key: string]: Moment } = {\r\n // What should be considered the earliest date for the purpose of this application.\r\n minDate: moment('2000-01-01T00:00:00'),\r\n today: moment().startOf('day'),\r\n sixDaysAgo: moment().startOf('day').subtract(6, 'days'),\r\n oneMonthAgo: moment().startOf('day').subtract(29, 'days'),\r\n elevenMonthsAgo: moment().startOf('day').subtract(11, 'months'),\r\n tomorrow: moment().startOf('day').add(1, 'days'),\r\n nextSevenDays: moment().startOf('day').add(7, 'days'),\r\n currentMonthStart: moment().startOf('month').startOf('day'),\r\n currentMonthEnd: moment().endOf('month').endOf('day'),\r\n};\r\n\r\n/** Default Dates used across the entire application */\r\nexport const datesDayjs: { [key: string]: Dayjs } = {\r\n // What should be considered the earliest date for the purpose of this application.\r\n minDate: dayjs.utc(\"2000-01-01T00:00:00\"),\r\n now: dayjs().utcOffset(0),\r\n startOfToday: dayjs().utcOffset(0).startOf('day'),\r\n endOfToday: dayjs().utcOffset(0).endOf('day'),\r\n oneWeekAgo: dayjs().utcOffset(0).subtract(1, 'week').startOf('day'),\r\n oneMonthAgo: dayjs().utcOffset(0).subtract(1, 'month').startOf('day'),\r\n elevenMonthsAgo: dayjs().utcOffset(0).subtract(11, 'months').startOf('day'),\r\n tomorrow: dayjs().utcOffset(0).add(1, 'days').endOf('day'),\r\n nextSevenDays: dayjs().utcOffset(0).add(1, 'week').endOf('day'),\r\n currentMonthStart: dayjs().utcOffset(0).startOf('month').startOf('day'),\r\n currentMonthEnd: dayjs().utcOffset(0).endOf('month').endOf('day'),\r\n yesterday: dayjs().utcOffset(0).subtract(1, 'days').startOf('day'),\r\n};\r\n\r\n/** Default Date Picker Range Settings */\r\nexport const defaultRanges = {\r\n 'Today': {\r\n 0: datesDayjs.startOfToday,\r\n 1: datesDayjs.endOfToday,\r\n },\r\n 'Yesterday & Today': {\r\n 0: datesDayjs.yesterday,\r\n 1: datesDayjs.endOfToday,\r\n },\r\n 'Last 7 Days': {\r\n 0: datesDayjs.oneWeekAgo,\r\n 1: datesDayjs.endOfToday,\r\n },\r\n 'Last 30 Days': {\r\n 0: datesDayjs.oneMonthAgo,\r\n 1: datesDayjs.endOfToday,\r\n },\r\n 'This Month': {\r\n 0: datesDayjs.currentMonthStart,\r\n 1: datesDayjs.currentMonthEnd\r\n },\r\n 'All Dates': {\r\n 0: dates.minDate,\r\n 1: datesDayjs.endOfToday,\r\n }\r\n};\r\n\r\n/** Default Date Picker Settings */\r\nexport const defaultDateSettings: DatePickerOptions = {\r\n ranges: defaultRanges,\r\n minDate: datesDayjs.minDate,\r\n maxDate: datesDayjs.endOfToday,\r\n};","export const designTypeIds = {\r\n systemScaffold: '35649535-bf17-4878-8e12-01bd3b20385e',\r\n tg20WithDesignInput: 'afb99244-9283-4e72-8b4c-8ce51c6c7690',\r\n designNumber: 'e62211d5-a494-4eeb-b6aa-af4b0e4eadef',\r\n tg20: '3b64a45c-a873-45ed-88f9-d203a2d293e9'\r\n};\r\n","export const diaryCategoryIds = {\r\n uncategorised: 'd52f508e-7137-49cb-aca3-95fd3d31cd73'\r\n};\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\n// Error messages to be displayed in the UI throughout the application.\r\n// A key may map to a key in an error response from the server, when this is the case the value will\r\n// be placed into the response by an interceptor.\r\nexport const errorMessages: { [key: string]: string } = {\r\n required: 'This field is required.',\r\n areaNameMustBeUnique: 'An area with this name already exists.',\r\n areaCannotBeDeletedIfItHasActiveScaffolds: 'The area cannot be deleted as it contains active scaffolds.',\r\n AreaCannotBeDeletedIfThereAreNoOtherActiveAreas: 'The site must have at least one active area',\r\n contractReferenceMustBeUnique: 'There is already a contract with this contract reference. Contract references must be unique.',\r\n contractContactNotFound: 'The contact could not be found.',\r\n contractNotFound: 'There was a problem finding the contract.',\r\n contractIdMustBeUnique: 'The contract id already exists.',\r\n contractStatusIdNotFound: 'There was a problem finding the contract status.',\r\n customerIdNotFound: 'There was a problem finding the customer',\r\n customerIdMustBeUnique: 'The customer id already exists.',\r\n customerReferenceMustBeUnique: 'The customer reference already exists.',\r\n customerStatusIdNotFound: 'There was a problem finding the customer status',\r\n duplicateEmail: 'This email address already exists.',\r\n emailAddressMustBeUnique: 'The email address already exists.',\r\n emailInvalidShortMessage: 'Invalid email address.',\r\n emailInvalid: 'The email address is invalid. Please enter a valid email address.',\r\n mustCloseContractsToCloseSite: 'You must close all of this site\\'s contracts in order to close the site.',\r\n cannotEditSiteReferenceIfContractsExist: 'You cannot edit the site reference of a site which already has contracts.',\r\n cannotEditContractReferenceIfScaffoldsExist: 'You cannot edit the contract reference of a contract which already has scaffolds.',\r\n cannotOpenContractForDeletedCustomer: 'You cannot re-open a contract with a deleted customer.',\r\n cannotOpenContractForClosedSite: 'You cannot re-open a contract on a closed site.',\r\n minimumContractPeriod: 'Invalid contract period',\r\n oneMainContractor: 'There is already a main contractor on this site.',\r\n pauseInspectionsReasonRequired: 'Please enter a reason for why inspections have been paused.',\r\n pauseInspectionsResumeDateRequired: 'Please choose a date for inspections to be resumed.',\r\n scaffoldIdNotFound: 'There was a problem finding the scaffold.',\r\n scaffoldIdMustBeUnique: 'The scaffold id already exists.',\r\n scaffoldNumberSuffix: 'A scaffold reference suffix must be maximum of 3 numbers or uppercase letters.',\r\n scaffoldNumberIncremental: 'Please choose a scaffold reference to group this one with.',\r\n scaffoldReferenceMustBeUnique: 'The scaffold reference already exists.',\r\n scaffoldStatusIdNotFound: 'The scaffold status id could not be found.',\r\n siteAreaIdNotFound: 'The site area id could not be found.',\r\n siteIdMustNotExist: 'The site id already exists.',\r\n siteReferenceMustBeUnique: 'The site reference already exists.',\r\n siteStatusIdNotFound: 'The site status id could not be found.',\r\n staffIdsNotFound: 'The staff id(s) could not be found.',\r\n staffIdNotFound: 'The staff id could not be found.',\r\n passwordMinLength: 'The password must be a minimum of 6 characters.',\r\n passwordsMustMatch: 'Passwords don\\'t match',\r\n minPercentageComplete: 'You cannot enter less than 0%',\r\n maxPercentageComplete: 'You cannot enter more than 100%',\r\n fileName: 'File name contains invalid symbols.',\r\n quotedItemMustHaveQuoteNumber: 'A quoted item must have a quote number.',\r\n quoteMustBeOnSameContractAsItem: 'An item can only be assigned to a quote on the same contract.',\r\n quoteNumberMustBeUnique: 'A quote number must be unique on the Contract.',\r\n dateMustBeInTheFuture: 'Rate start date must be in the future.',\r\n cannotHaveMultipleFutureRatesOfSameType: 'There is already a rate of the same type scheduled to come into effect in future.',\r\n cannotAddMultipleRatesOfSameType: 'You cannot add multiple rates of the same type.',\r\n effectiveFromMustBeStartOfPeriod: 'Rate must come into effect at the start of a period.',\r\n ratesMustBeInEffect: 'Unable to remove one or more rates.',\r\n ratesMustExistOnStaff: 'Unable to remove one or more rates.',\r\n ratesToDeleteMustBeFutureRates: 'Unable to remove one or more rates.',\r\n timesheetMustExist: 'Timesheet does not exist.',\r\n timesheetPeriodMustExistOnTimesheet: 'Timesheet period does not exist on the given timesheet.',\r\n timesheetTaskAllocatedHours: 'There are not enough allocated hours remaining',\r\n timesheetNotAssignedToSitesOnDepot: 'You are not assigned to any site on this depot.',\r\n timesheetSelectDate: 'Select a date range to create the report.',\r\n timesheetSelectStaff: 'Select staff to create the report.',\r\n timesheetSelectContract: 'Select contracts to create the report.',\r\n timesheetSelectDepot: 'Select a depot to create the report.',\r\n fileSizeErrorMsg: 'Please enter a file with a valid size no larger than 60mb.',\r\n passwordValidation: 'The password needs to be at least 8 characters long and contain lowercase, uppercase and a number',\r\n itemNumberMustBeUnique: 'The item number already exists',\r\n depotRequired: 'Please select a depot to create the report.',\r\n invalidValue: 'Please enter a positive number up to two decimal places precision',\r\n maxLength24: 'Please enter a maximum of 24 characters',\r\n invalidQuickId: 'Please enter a maximum of 3 numbers or uppercase letters',\r\n max5Files: 'A maximum of 5 files can be added',\r\n wrongFormat: 'The file format is not accepted',\r\n scaffoldNumberRequired: 'Please select a scaffold number',\r\n suffixRequired: 'Please enter a suffix'\r\n};\r\n","\r\nexport const fieldTypes = {\r\n Text: 0,\r\n YesNo: 1,\r\n YesNoNA: 2\r\n};\r\n","export const uploadMinAllowedContentLength = 1024; // 1 kb\r\nexport const uploadMaxAllowedContentLength = 62914560; // 60mb\r\n","export const icons = {\r\n noDefects: 'assets/icons/timeline/inspection-result-n.svg',\r\n defectsFixed: 'assets/icons/timeline/inspection-result-nf.svg',\r\n defectsNotFixed: 'assets/icons/timeline/inspection-result-nm.svg',\r\n unsafeScaffold: 'assets/icons/timeline/inspection-result-u.svg',\r\n neverInspected: 'assets/icons/inspection-results/inspection-result-empty.svg',\r\n handoverInspection: 'assets/icons/inspection-results/inspection-result-handover.svg',\r\n unknown: 'assets/icons/inspection-results/inspection-result-unknown.svg',\r\n diary: 'assets/icons/timeline/diary.svg',\r\n dismantle: 'assets/icons/timeline/dismantle.svg',\r\n handover: 'assets/icons/timeline/handover.svg',\r\n offhire: 'assets/icons/timeline/off-hire.svg',\r\n inspectionFollowUp: 'assets/icons/timeline/inspection-follow-up.svg',\r\n unsafeTag: 'assets/icons/timeline/tag-unsafe.svg',\r\n paused: 'assets/icons/timeline/inspections-paused.svg',\r\n stopped: 'assets/icons/timeline/inspections-stopped.svg',\r\n resumed: 'assets/icons/timeline/inspections-resumed.svg',\r\n variation: 'assets/icons/timeline/variation.svg',\r\n adverseWeather: 'assets/icons/inspection-types/inspection-adverse-weather.svg',\r\n inspection: 'assets/icons/inspection-types/inspection-generic.svg',\r\n sevenDay: 'assets/icons/inspection-types/inspection-schedule-7-green.svg',\r\n management: 'assets/icons/inspection-types/management.svg',\r\n extraHire: 'assets/icons/hire-status/extrahire-icon.svg',\r\n onHireStatus: 'assets/icons/hire-status/onhire-icon.svg',\r\n offHireStatus: 'assets/icons/hire-status/offhire-icon.svg',\r\n inCompleteStatus: 'assets/icons/hire-status/incomplete-icon.svg',\r\n siteDiary: 'assets/icons/siteDiary.svg'\r\n};\r\n","export const inspectionOutcomeStatusIds: { [key: string]: string } = {\r\n noDefects: '1950d818-d348-46b1-87a1-e0a6b36b793a',\r\n defectsFixed: '72cec2ee-8fe3-4e13-971d-3f51f11d6968',\r\n unsafeScaffold: '48135324-c74a-4db4-9389-9df48095ea22',\r\n defectsNotFixed: '9800ecea-93a5-40a1-8463-1e5d5fbbce2e'\r\n};\r\n","export const loadingLimitIds = {\r\n veryLight: 'f62c55ee-630f-40e3-97c0-161691486705',\r\n light: '2aa467d6-a52f-4dcd-bc5a-c7058daf9369',\r\n general: 'd7e0f4a1-c6a6-4e08-b2ad-378c6f3642c8',\r\n heavy: 'f5ee2e83-c0ae-48c1-8c82-deecf6ea6f75',\r\n loadingBay10: 'd3c1e631-c338-4305-8351-091a3e5ff54a',\r\n loadingBay20: 'b05d41be-4108-4fbb-9efd-52ff9fb29613',\r\n notToBeLoaded: 'b05d41be-4108-4fbb-9efd-52ff9fb296c2',\r\n specialPurpose: '8d9e044a-3aad-4cce-a544-92e0a7fea5e1'\r\n};\r\n","export const mapValues = {\r\n defaultLatitude: 53.1,\r\n defaultLongitude: -1.6,\r\n defaultZoom: 6\r\n};\r\n","export const roleIds = {\r\n admin: 'd95374ca-9443-4c99-98b2-45856fed67f7',\r\n depotAdmin: '38213224-0ebd-49b8-9efa-f0cdacc33af5',\r\n estimator: '08190507-3ec2-4c66-8895-866842919863',\r\n regionalManager: '01dffd7f-502b-4e61-b9c5-0f8e9be7a511',\r\n safetyManager: 'e07d6548-3c32-42c0-8683-ab7e479d7a65',\r\n siteSupervisor: 'c3b67b04-fa5a-46c8-ae52-941d5d80da14',\r\n inspector: '31d7c5a7-0f99-4253-9e59-43b5e6b65166',\r\n contractsManager: '277bd0e9-0f3f-4814-819a-0a2f1630827b',\r\n scaffolder: '52ce46df-72ec-445b-a2c4-5942f6ed0047',\r\n payrollOfficer: 'f3dc4c31-9738-4425-b036-53da20ae81bb'\r\n};\r\n","export const scaffoldStatusIds: { [key: string]: string } = {\r\n incomplete: '218cc6f7-7dcf-4438-a1f2-d0a92cddd84f',\r\n onHire: '47a83b47-590f-4f21-839d-904d696d6f66',\r\n offHire: '6f4f2e80-0ac8-4dc5-83e2-90511f0a7ef8',\r\n dismantled: 'b37f6451-4d79-4339-8834-d8694192474b'\r\n};\r\n","export const siteStatusIds: SiteStatuses = {\r\n open: '77e8c6d7-9174-4753-81ae-fe32d101b902',\r\n closed: '1a086283-5c5f-47ba-99cf-2c16fa9eaa90',\r\n};\r\n\r\nclass SiteStatuses {\r\n open: string;\r\n closed: string;\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-agreed-rates',\r\n templateUrl: './agreed-rates.component.html',\r\n styleUrls: ['./agreed-rates.component.scss']\r\n})\r\nexport class AgreedRatesComponent implements OnInit {\r\n\r\n _isScheduleRatesAgreed: boolean;\r\n @Input()\r\n set isScheduleRatesAgreed(isScheduleRatesAgreed: boolean) {\r\n this._isScheduleRatesAgreed = isScheduleRatesAgreed;\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n \r\n Schedule of rates\r\n\r\n \r\n \r\n \r\n \r\n \r\n No schedule of rates\r\n \r\n\r\n","import { inspectionOutcomeStatusIds } from '../../../shared/values/inspection-outcome-status-ids';\r\nimport { icons } from '../../../shared/values/icons';\r\nimport { ScaffoldTimelineData, InspectionTypeData, DiaryTypeEnum } from 'app/core/hub-api';\r\nimport { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n// Component for displaying a scaffold diary label/icon\r\n@Component({\r\n selector: 'hub-diary-type',\r\n templateUrl: './diary-type.component.html',\r\n styleUrls: ['./diary-type.component.scss']\r\n})\r\nexport class DiaryTypeComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n diary: ScaffoldTimelineData;\r\n\r\n @Input()\r\n inspectionTypes: InspectionTypeData[];\r\n\r\n diaryIconPath: string;\r\n label: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.refreshComponent();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['diary']) {\r\n this.refreshComponent();\r\n }\r\n }\r\n\r\n refreshComponent(): void {\r\n this.label = this.getDiaryLabel();\r\n this.diaryIconPath = this.getIconPath();\r\n }\r\n\r\n getDiaryLabel(): string {\r\n switch (this.diary.DiaryType) {\r\n case DiaryTypeEnum.Diary:\r\n return 'Diary';\r\n case DiaryTypeEnum.Inspection:\r\n if (!this.diary.InspectionTypeId) {\r\n return '';\r\n }\r\n let inspectionTypeName = this.inspectionTypes[this.diary.InspectionTypeId].GroupTitle;\r\n\r\n const title = this.inspectionTypes[this.diary.InspectionTypeId].Title;\r\n if (title) {\r\n inspectionTypeName += ` - ${title}`;\r\n }\r\n if (this.diary.InspectionTypeFurtherInformation) {\r\n inspectionTypeName += ` (${this.diary.InspectionTypeFurtherInformation})`;\r\n }\r\n return inspectionTypeName;\r\n case DiaryTypeEnum.Dismantle:\r\n return 'Dismantle';\r\n case DiaryTypeEnum.Variation:\r\n return 'Variation';\r\n case DiaryTypeEnum.Adaption:\r\n return 'Adaption';\r\n case DiaryTypeEnum.FullHandover:\r\n return 'Initial Handover';\r\n case DiaryTypeEnum.FullHandover:\r\n return 'Initial Handover';\r\n case DiaryTypeEnum.PartialHandover:\r\n return 'Re-Handover';\r\n case DiaryTypeEnum.FullOffHire:\r\n return 'Full off-hire';\r\n case DiaryTypeEnum.PartialOffHire:\r\n return 'Partial off-hire';\r\n case DiaryTypeEnum.InspectionFollowUpNotify:\r\n return 'Inspection follow up actions';\r\n case DiaryTypeEnum.InspectionFollowUpInstruction:\r\n return 'Remedial actions';\r\n case DiaryTypeEnum.UnsafeScaffoldReport:\r\n return 'Unsafe scaffold report';\r\n case DiaryTypeEnum.PauseInspections:\r\n return 'Inspections paused';\r\n case DiaryTypeEnum.StopInspections:\r\n return 'Inspections stopped';\r\n case DiaryTypeEnum.ResumeInspections:\r\n return 'Inspections resumed';\r\n }\r\n }\r\n\r\n getIconPath(): string {\r\n switch (this.diary.DiaryType) {\r\n case DiaryTypeEnum.Diary:\r\n return icons.diary;\r\n case DiaryTypeEnum.Inspection:\r\n return this.getIconPathBasedOnInspectionResult();\r\n case DiaryTypeEnum.Dismantle:\r\n return icons.dismantle;\r\n case DiaryTypeEnum.Variation:\r\n return icons.variation;\r\n case DiaryTypeEnum.Adaption:\r\n return icons.variation;\r\n case DiaryTypeEnum.FullHandover:\r\n return icons.handover;\r\n case DiaryTypeEnum.PartialHandover:\r\n return icons.handover;\r\n case DiaryTypeEnum.FullOffHire:\r\n return icons.offhire;\r\n case DiaryTypeEnum.PartialOffHire:\r\n return icons.offhire;\r\n case DiaryTypeEnum.InspectionFollowUpInstruction:\r\n return icons.inspectionFollowUp;\r\n case DiaryTypeEnum.InspectionFollowUpNotify:\r\n return icons.inspectionFollowUp;\r\n case DiaryTypeEnum.UnsafeScaffoldReport:\r\n return icons.unsafeTag;\r\n case DiaryTypeEnum.PauseInspections:\r\n return icons.paused;\r\n case DiaryTypeEnum.StopInspections:\r\n return icons.stopped;\r\n case DiaryTypeEnum.ResumeInspections:\r\n return icons.resumed;\r\n }\r\n }\r\n\r\n getIconPathBasedOnInspectionResult(): string {\r\n switch (this.diary.InspectionOutcomeId) {\r\n case inspectionOutcomeStatusIds.noDefects:\r\n return icons.noDefects;\r\n case inspectionOutcomeStatusIds.defectsFixed:\r\n return icons.defectsFixed;\r\n case inspectionOutcomeStatusIds.defectsNotFixed:\r\n return icons.defectsNotFixed;\r\n case inspectionOutcomeStatusIds.unsafeScaffold:\r\n return icons.unsafeScaffold;\r\n default:\r\n return icons.neverInspected;\r\n }\r\n }\r\n}\r\n"," {{label}}\r\n","import { HandoverHistoryTypeEnum } from 'app/core/hub-api';\r\nimport { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n// Component for displaying a handover history type enum.\r\n@Component({\r\n selector: 'hub-handover-type',\r\n templateUrl: './handover-type.component.html',\r\n styleUrls: ['./handover-type.component.scss']\r\n})\r\nexport class HandoverTypeComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n type: HandoverHistoryTypeEnum;\r\n\r\n handoverType: string;\r\n cssClass: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.refreshComponent();\r\n }\r\n\r\n refreshComponent(): void {\r\n switch (this.type) {\r\n case HandoverHistoryTypeEnum.FullHandover:\r\n this.handoverType = 'Initial Handover';\r\n this.cssClass = 'fullHandover';\r\n break;\r\n case HandoverHistoryTypeEnum.FullOffHire:\r\n this.handoverType = 'Full Off-Hire';\r\n this.cssClass = 'fullOffHire';\r\n break;\r\n case HandoverHistoryTypeEnum.PartialOffHire:\r\n this.handoverType = 'Partial Off-Hire';\r\n this.cssClass = 'partialOffHire';\r\n break;\r\n case HandoverHistoryTypeEnum.PartialHandover:\r\n this.handoverType = 'Re-Handover';\r\n this.cssClass = 'partialHandover';\r\n break;\r\n case HandoverHistoryTypeEnum.Variation:\r\n this.handoverType = 'Variation';\r\n this.cssClass = 'variation';\r\n break;\r\n case HandoverHistoryTypeEnum.Adaption:\r\n this.handoverType = 'Adaption';\r\n this.cssClass = 'adaption';\r\n break;\r\n default:\r\n this.handoverType = 'Unknown';\r\n this.cssClass = '';\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['type']) {\r\n this.refreshComponent();\r\n }\r\n }\r\n\r\n}\r\n","
{{handoverType}}\r\n","import { ContractInspectionStatus, InspectionStatusEnumEnum } from 'app/core/hub-api';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\n\r\n// Component for displaying a scaffold's inspection status.\r\n@Component({\r\n selector: 'hub-scaffold-inspection-state',\r\n templateUrl: './scaffold-inspection-state.component.html',\r\n styleUrls: ['./scaffold-inspection-state.component.scss']\r\n})\r\nexport class ScaffoldInspectionStateComponent implements OnInit {\r\n\r\n @Input()\r\n status: ContractInspectionStatus;\r\n @Input()\r\n inspectionsCompleted: number;\r\n @Input()\r\n overdue: boolean;\r\n\r\n inspectionState: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n if (this.status && this.status.State === InspectionStatusEnumEnum.Paused) {\r\n this.inspectionState = 'Paused';\r\n } else if (this.status && this.status.State === InspectionStatusEnumEnum.Stopped) {\r\n this.inspectionState = 'Stopped';\r\n } else if (this.inspectionsCompleted <= 0) {\r\n this.inspectionState = 'Never Inspected';\r\n } else if (this.overdue) {\r\n this.inspectionState = 'Overdue';\r\n } else {\r\n this.inspectionState = 'Active';\r\n }\r\n }\r\n\r\n}\r\n"," Paused\r\n Not Contracted\r\n Never Inspected\r\n Overdue\r\n Active\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-site-camera',\r\n templateUrl: './site-camera.component.html',\r\n styleUrls: ['./site-camera.component.scss']\r\n})\r\nexport class SiteCameraComponent implements OnInit {\r\n\r\n private _cameraAllowed: boolean;\r\n tooltipMessage: string;\r\n icon: string;\r\n status: string;\r\n @Input()\r\n set cameraAllowed(cameraAllowed: boolean) {\r\n this._cameraAllowed = cameraAllowed;\r\n this.isCameraAllowed();\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.isCameraAllowed();\r\n }\r\n\r\n isCameraAllowed(): void {\r\n if (!this._cameraAllowed) {\r\n this.status = 'Not Permitted';\r\n this.icon = 'fa-camera text-assertive';\r\n this.tooltipMessage = 'Cameras are not permitted on site so all app photo fields will be optional.';\r\n } else {\r\n this.status = 'Permitted';\r\n this.icon = 'fa-camera text-positive';\r\n this.tooltipMessage = 'Cameras are allowed on site so some app photo fields will be mandatory.';\r\n }\r\n }\r\n\r\n}\r\n","\r\n {{ status }}\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { cloneDeep } from 'lodash';\r\nimport {\r\n ContractContactData,\r\n ContractData,\r\n StaffData,\r\n CreateEditBccContractContactCommand,\r\n} from 'app/core/hub-api';\r\nimport {\r\n ContractCommandService,\r\n SiteWebAppData\r\n} from 'app/core/hub-api';\r\nimport { contactTypeIds } from '../../../../../shared/values/contact-type-ids';\r\nimport { AddEditBccContactModalContext } from '../../../../models/add-edit-bcc-contact-modal-context';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { emailAddressRegex } from 'app/shared/regex/email-address.regex';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { StaffsQueryService } from 'app/core/services/staffs-query.service';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-edit-bcc-contact-modal',\r\n templateUrl: './add-edit-bcc-contact-modal.component.html',\r\n styleUrls: ['./add-edit-bcc-contact-modal.component.scss']\r\n})\r\nexport class AddEditBccContactModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n editMode: boolean;\r\n contract: ContractData;\r\n contractContact: ContractContactData;\r\n site: SiteWebAppData;\r\n modalTitle: string;\r\n errorMessage: boolean;\r\n form: UntypedFormGroup;\r\n emailAddressFormControl: UntypedFormControl;\r\n staffs: StaffData[];\r\n\r\n validationMessages = {\r\n emailAddress: {\r\n pattern: errorMessages.emailInvalid\r\n }\r\n };\r\n\r\n constructor(\r\n private bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private contractCommandService: ContractCommandService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private staffsQueryService: StaffsQueryService,\r\n public modalService: BsModalService,\r\n ) { super(); }\r\n\r\n ngOnInit(): any {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.editMode = this.context.editMode;\r\n this.contract = this.context.contract;\r\n this.site = this.context.site;\r\n this.contractContact = cloneDeep(this.context.contractContact) || this.getNewBccContact();\r\n this.modalTitle = this.editMode ? `Edit Bcc Email Address ` : `Add Bcc Email Address`;\r\n this.emailAddressFormControl = new UntypedFormControl(this.contractContact.EmailAddress, [Validators.pattern(emailAddressRegex)]);\r\n this.staffsQueryService.staffsDataChanges(false).subscribe(staffs => this.staffs = staffs);\r\n this.form = new UntypedFormGroup({\r\n emailAddress: this.emailAddressFormControl,\r\n\r\n });\r\n\r\n super.ngOnInit();\r\n }\r\n getNewBccContact(): ContractContactData {\r\n return Object.assign(new ContractContactData(), {\r\n ContractContactId: UUID.UUID(),\r\n EmailAddress: '',\r\n });\r\n }\r\n\r\n\r\n onSubmit(formValues): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n const command: CreateEditBccContractContactCommand = {\r\n ContractContactId: this.contractContact.ContractContactId,\r\n EmailAddress: formValues.emailAddress,\r\n ContractId: this.contract.ContractId,\r\n ContactTypeId: contactTypeIds.bccContact,\r\n IsInactive: false\r\n };\r\n\r\n\r\n if (command.EmailAddress.trim() === '') {\r\n command.IsInactive = true;\r\n }\r\n\r\n const commandFunction = this.contractCommandService.CreateEditBccContractContactCommand;\r\n\r\n commandFunction.call(this.contractCommandService, command)\r\n .subscribe(() => {\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference)\r\n .subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(command.ContractId);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n ","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators, AbstractControl } from '@angular/forms';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { cloneDeep, map } from 'lodash';\r\nimport { contactTypeIds } from '../../../../../shared/values/contact-type-ids';\r\nimport {\r\n ReportSubscriptionTypesEnum, ConfigurationData, CompanyDetails,\r\n} from 'app/core/hub-api';\r\nimport {\r\n ContactTypeData,\r\n ContractCommandService,\r\n ContractContactData,\r\n ContractData,\r\n CustomerData,\r\n SiteWebAppData,\r\n CompanyContacts,\r\n CreateEditCompanyContactCommand\r\n} from 'app/core/hub-api';\r\nimport { contractStatusIds } from '../../../../../shared/values/contract-status-ids';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport * as moment from 'moment';\r\nimport { AddEditCompanyContactModalContext } from '../../../../models/add-edit-company-contact-modal-context';\r\nimport { StaffsQueryService } from 'app/core/services/staffs-query.service';\r\nimport { roleIds } from 'app/shared/values/role-ids';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { emailAddressRegex } from 'app/shared/regex/email-address.regex';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-add-edit-company-contact-modal',\r\n templateUrl: './add-edit-company-contact-modal.component.html',\r\n styleUrls: ['./add-edit-company-contact-modal.component.scss']\r\n})\r\nexport class AddEditCompanyContactModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n editMode: boolean;\r\n chooseContractMode: boolean;\r\n site: SiteWebAppData;\r\n contract: ContractData;\r\n contractContact: ContractContactData;\r\n customers: CustomerData[];\r\n contactTypes: ContactTypeData[];\r\n modalTitle: string;\r\n openContracts: ContractData[];\r\n staffs: any[];\r\n email: string;\r\n name: string;\r\n companyContacts: CompanyContacts[] = [];\r\n form: UntypedFormGroup;\r\n configuration: ConfigurationData;\r\n contractIdFormControl: UntypedFormControl;\r\n contactTypeIdFormControl: UntypedFormControl;\r\n emailAddressFormControl: UntypedFormControl;\r\n handoverCertificateFormControl: UntypedFormControl;\r\n variationInstructionsFormControl: UntypedFormControl;\r\n inspectionsCompletedFormControl: UntypedFormControl;\r\n detailedInspectionFormControl: UntypedFormControl;\r\n inspectionStatusesFormControl: UntypedFormControl;\r\n subContractorInspectionsFormControl: UntypedFormControl;\r\n contactNameFormControl: UntypedFormControl;\r\n contactEmailFormControl: UntypedFormControl;\r\n activeCompanyContactsEmails: string[];\r\n companyDetails: CompanyDetails;\r\n validationMessages = {\r\n contractId: {\r\n required: errorMessages.required\r\n },\r\n contactName: {\r\n required: errorMessages.required,\r\n },\r\n contactTypeId: {\r\n required: errorMessages.required\r\n },\r\n emailAddress: {\r\n required: errorMessages.required,\r\n pattern: errorMessages.emailInvalid,\r\n duplicateEmail: errorMessages.duplicateEmail,\r\n email: errorMessages.emailInvalid\r\n }\r\n };\r\n addingNewContact: boolean;\r\n\r\n constructor(\r\n private bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private contractCommandService: ContractCommandService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private staffsQueryService: StaffsQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n public modalService: BsModalService,\r\n ) { super(); }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.configurationQueryService.configurationDataChanges().subscribe((configuration) => {\r\n this.companyDetails = configuration.CompanyDetails;\r\n });\r\n\r\n this.editMode = this.context.editMode;\r\n this.chooseContractMode = this.context.chooseContractMode;\r\n this.site = this.context.site;\r\n this.contract = this.context.contract;\r\n const contractNameRef = `${this.contract.ContractName}(${this.contract.ContractReference})`;\r\n this.modalTitle = this.editMode ? `Edit ${this.companyDetails.CompanyName} Contact - ${contractNameRef}` : `Add ${this.companyDetails.CompanyName} Contact - ${contractNameRef}`;\r\n this.contractContact = cloneDeep(this.context.contractContact) || this.getNewContractContact();\r\n this.customers = this.context.customers;\r\n this.contactTypes = map(this.context.configuration.ContactTypes);\r\n this.activeCompanyContactsEmails = map(this.contract.ContractContacts)\r\n .filter(c => !c.IsInactive && c.ContactTypeId === contactTypeIds.companyContact).map((contact) => contact.EmailAddress);\r\n this.openContracts = this.site.Contracts\r\n .filter(c => c.ContractStatusId === contractStatusIds.open)\r\n .map(contract => {\r\n contract = cloneDeep(contract);\r\n const customerName = this.customers.find(c => c.CustomerId === contract.CustomerId).CustomerName;\r\n (contract as any).optionName = `${customerName} (${contract.ContractReference})`;\r\n return contract;\r\n });\r\n\r\n this.staffsQueryService.staffsDataChanges(false).subscribe((staffs) => {\r\n\r\n this.staffs = staffs.filter(staff => !this.activeCompanyContactsEmails.includes(staff.EmailAddress)\r\n && !staff.RoleId.includes(roleIds.scaffolder));\r\n this.staffs = this.staffs.map(function (staff): any {\r\n return {\r\n ContactName: staff.ContactName,\r\n EmailAddress: staff.EmailAddress,\r\n UserCode: staff.UserCode\r\n };\r\n });\r\n this.staffs = this.sortStaff(this.staffs);\r\n });\r\n\r\n this.contractIdFormControl = new UntypedFormControl(this.contract ? this.contract.ContractId : '', Validators.required);\r\n this.contactTypeIdFormControl = new UntypedFormControl(contactTypeIds.companyContact, Validators.required);\r\n this.emailAddressFormControl = new UntypedFormControl(this.contractContact.EmailAddress, [Validators.required]);\r\n this.contactNameFormControl = new UntypedFormControl(this.contractContact.ContactName);\r\n this.contactEmailFormControl = new UntypedFormControl('');\r\n\r\n if (this.editMode) {\r\n this.contactNameFormControl.setValidators(Validators.required);\r\n this.emailAddressFormControl.setValidators([Validators.required, Validators.pattern(emailAddressRegex)]);\r\n }\r\n\r\n this.handoverCertificateFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.HandoverCertificate));\r\n this.variationInstructionsFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.VariationInstructions));\r\n this.inspectionsCompletedFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.InspectionsCompleted));\r\n this.detailedInspectionFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.SiteInspectionsCompleted));\r\n this.inspectionStatusesFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.InspectionStatuses));\r\n this.subContractorInspectionsFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.SubContractorInspections));\r\n this.form = new UntypedFormGroup({\r\n contractId: this.contractIdFormControl,\r\n contactTypeId: this.contactTypeIdFormControl,\r\n emailAddress: this.emailAddressFormControl,\r\n handoverCertificate: this.handoverCertificateFormControl,\r\n variationInstructions: this.variationInstructionsFormControl,\r\n inspectionsCompleted: this.inspectionsCompletedFormControl,\r\n detailedInspection: this.detailedInspectionFormControl,\r\n inspectionStatuses: this.inspectionStatusesFormControl,\r\n subContractorInspections: this.subContractorInspectionsFormControl,\r\n contactName: this.contactNameFormControl,\r\n contactEmail: this.contactEmailFormControl\r\n });\r\n super.ngOnInit();\r\n }\r\n\r\n getNewContractContact(): ContractContactData {\r\n return Object.assign(new ContractContactData(), {\r\n ContractContactId: UUID.UUID(),\r\n EmailAddress: '',\r\n IsInactive: false,\r\n ReportSubscriptionTypes: ReportSubscriptionTypesEnum.None,\r\n ContactTypeId: contactTypeIds.companyContact,\r\n });\r\n }\r\n\r\n deleteContractContact(): void {\r\n this.contractContact.IsInactive = true;\r\n }\r\n\r\n undoDeleteContractContact(): void {\r\n this.contractContact.IsInactive = false;\r\n }\r\n\r\n /**\r\n * Removes the validation in case the user is no longer adding a new contact\r\n * The validation is only required when the user is adding a new contact and the email address is not found in the list of active contacts,\r\n * once the user adds the contact the validation is no longer required as the email address is already in the list of active contacts\r\n * @param formValues gets the form values from the submit\r\n */\r\n private removeAddNewValidationErrors(formValues): void {\r\n this.addingNewContact = (!formValues.contactEmail && formValues.emailAddress.length) ? false : true;\r\n if (!this.addingNewContact) {\r\n this.contactName.setValidators(null);\r\n this.contactName.updateValueAndValidity();\r\n this.contactEmail.setValidators(null);\r\n this.contactEmail.updateValueAndValidity();\r\n }\r\n }\r\n\r\n onSubmit(formValues): void {\r\n this.removeAddNewValidationErrors(formValues);\r\n\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n\r\n if (this.editMode) {\r\n const companyContact: CompanyContacts = {\r\n ContractContactId: this.contractContact.ContractContactId,\r\n EmailAddress: formValues.emailAddress,\r\n ContactName: formValues.contactName,\r\n IsInactive: this.contractContact.IsInactive\r\n };\r\n this.companyContacts.push(companyContact);\r\n }\r\n\r\n const command: CreateEditCompanyContactCommand = {\r\n CompanyContacts: this.companyContacts,\r\n ContractId: formValues.contractId,\r\n ReceiveInspectionReports: true,\r\n ScheduledReportStartDate: moment().startOf('day').format('YYYY-MM-DD HH:mm'),\r\n ReportSubscriptionTypes: this.getReportSubscriptionType(formValues),\r\n ContactTypeId: formValues.contactTypeId\r\n };\r\n\r\n const commandFunction = this.contractCommandService.CreateEditCompanyContactCommand;\r\n\r\n commandFunction.call(this.contractCommandService, command)\r\n .subscribe(() => {\r\n // Here we must reload any data that this add/edit affects from the server.\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference)\r\n .subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(command.ContractId);\r\n this.bsModalRef.hide();\r\n\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n\r\n\r\n public get contactName(): AbstractControl {\r\n return this.form.get('contactName');\r\n }\r\n\r\n\r\n public get contactEmail(): AbstractControl {\r\n return this.form.get('contactEmail');\r\n }\r\n\r\n /**\r\n * Add contact details to the contact list array\r\n */\r\n AddEmail(): void {\r\n const name = this.contactName.value;\r\n const email = this.contactEmail.value;\r\n const pattern = new RegExp('^(?!\\s*$).+');\r\n if (name === null || !pattern.test(name) || name === '') {\r\n this.contactName.setErrors({ required: true });\r\n return;\r\n }\r\n if (email === null || email === '') {\r\n this.contactEmail.setErrors({ required: true });\r\n return;\r\n }\r\n\r\n if (!emailAddressRegex.test(email)) {\r\n this.contactEmail.setErrors({ pattern: true });\r\n return;\r\n }\r\n\r\n const isEmailExists = this.staffs.find(staff => staff.EmailAddress === email);\r\n if (isEmailExists) {\r\n this.contactEmail.setErrors({ duplicate: true });\r\n return;\r\n }\r\n\r\n const newContact = {\r\n ContactName: name.trim(),\r\n EmailAddress: email.trim()\r\n };\r\n\r\n this.staffs.push(newContact);\r\n this.staffs = this.sortStaff([...this.staffs]);\r\n this.contactEmailFormControl.reset();\r\n this.contactNameFormControl.reset();\r\n }\r\n\r\n /**\r\n * this will be called when selecting an item from the auto complete to add\r\n * to the list of contact send to api\r\n * @param item\r\n */\r\n addCompanyContact(item): any {\r\n const companyContact: CompanyContacts = {\r\n ContractContactId: UUID.UUID(),\r\n EmailAddress: item.EmailAddress,\r\n ContactName: item.ContactName,\r\n IsInactive: false\r\n };\r\n\r\n this.companyContacts.push(companyContact);\r\n this.staffs = this.staffs.filter(staff => staff.EmailAddress !== item.EmailAddress);\r\n this.staffs = [...this.staffs];\r\n }\r\n\r\n /**\r\n *remove the staff from the already added list when removed from autocomplete\r\n * @param item\r\n */\r\n removeCompanyContact(item): any {\r\n this.companyContacts = this.companyContacts.filter(contact => contact.EmailAddress !== item.value.EmailAddress);\r\n this.staffs.push(item.value);\r\n this.staffs = this.sortStaff([...this.staffs]);\r\n }\r\n\r\n /**\r\n *prepare staff list on clear inclusding the staff and company contact added\r\n */\r\n rePrepareStaffList(): any {\r\n this.staffs = this.sortStaff([...this.staffs, ...this.companyContacts]);\r\n this.companyContacts = [];\r\n }\r\n\r\n sortStaff(staffs): any {\r\n return staffs.sort((a, b) =>\r\n (a.ContactName.toLowerCase() > b.ContactName.toLowerCase() ? 1 : ((b.ContactName.toLowerCase() > a.ContactName.toLowerCase()) ? -1 : 0)));\r\n }\r\n\r\n /**\r\n * Report subscritption values in X0R format. this is will handled at the backend\r\n * @param formValues\r\n */\r\n private getReportSubscriptionType(formValues: any): any {\r\n return (ReportSubscriptionTypesEnum.HandoverCertificate * +formValues.handoverCertificate) +\r\n (ReportSubscriptionTypesEnum.VariationInstructions * +formValues.variationInstructions) +\r\n (ReportSubscriptionTypesEnum.InspectionsCompleted * +formValues.inspectionsCompleted) +\r\n (ReportSubscriptionTypesEnum.SiteInspectionsCompleted * +formValues.detailedInspection) +\r\n (ReportSubscriptionTypesEnum.InspectionStatuses * +formValues.inspectionStatuses) +\r\n (ReportSubscriptionTypesEnum.SubContractorInspections * +formValues.subContractorInspections);\r\n }\r\n\r\n principalContractSelected(): boolean {\r\n const contract = this.site.Contracts.find(c => c.ContractId === this.contractIdFormControl.value);\r\n return contract ? contract.IsPrincipalContract : false;\r\n }\r\n\r\n\r\n}\r\n","
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n

Add Custom Contact

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{ contactName.errors?.required ? 'Contact Name is required' : 'Contact Email is required'}}
\r\n
\r\n {{ validationMessages.emailAddress?.pattern}}
\r\n
\r\n {{ validationMessages.emailAddress?.duplicateEmail}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{item.ContactName}}\r\n ({{item.UserCode}})\r\n

\r\n

\r\n {{item.EmailAddress}}\r\n

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

Subscriptions

\r\n

Select which reports you would like this contact to receive.

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Delete contact\r\n \r\n This contact will be deleted. Click\r\n undo if this was a mistake!\r\n
\r\n \r\n
\r\n
\r\n
","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { cloneDeep, map } from 'lodash';\r\nimport {\r\n CreateContractContactCommand,\r\n CustomerWebAppData,\r\n EditContractContactCommand,\r\n ReportSubscriptionTypesEnum,\r\n} from 'app/core/hub-api';\r\nimport {\r\n ContactTypeData,\r\n ContractCommandService,\r\n ContractContactData,\r\n ContractData,\r\n SiteWebAppData,\r\n} from 'app/core/hub-api';\r\nimport { contractStatusIds } from '../../../../../shared/values/contract-status-ids';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport * as moment from 'moment';\r\nimport { contactTypeIds } from '../../../../../shared/values/contact-type-ids';\r\nimport { emailAddressRegex } from 'app/shared/regex/email-address.regex';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { AddEditContractModalContext } from 'app/sites/models/add-edit-contract-modal-context';\r\n\r\n/**\r\n * Add edit Contract Contact Modal\r\n * Shows the add or edit contract contact form\r\n *\r\n * @export\r\n * @class AddEditContractContactModalComponent\r\n * @extends {ModalFormComponent} extends the generic modal form component\r\n * @implements {OnInit} Initialises the component\r\n * @implements {OnDestroy} Stops all subscriptions and closes the component\r\n */\r\n@Component({\r\n selector: 'hub-add-edit-contract-contact-modal',\r\n templateUrl: './add-edit-contract-contact-modal.component.html',\r\n styleUrls: ['./add-edit-contract-contact-modal.component.scss']\r\n})\r\nexport class AddEditContractContactModalComponent extends FormComponent implements OnInit, OnDestroy {\r\n /* Stores all parameters for this modal */\r\n context: Partial;\r\n /** Detects if the form is edit or add */\r\n editMode: boolean;\r\n /** Decides if it shows the contract dropdown */\r\n chooseContractMode: boolean;\r\n /** Current selected site */\r\n site: SiteWebAppData;\r\n /** Selected contract */\r\n contract: ContractData;\r\n /** Selected contract contact */\r\n contractContact: ContractContactData;\r\n /** Stores all customers */\r\n customers: CustomerWebAppData[];\r\n /** Stores all contact types */\r\n contactTypes: ContactTypeData[];\r\n /** Stores the modal title */\r\n modalTitle: string;\r\n /** Stores the modal title */\r\n openContracts: ContractData[];\r\n /** Form Group control */\r\n form: UntypedFormGroup;\r\n /** Contract dropdown controller */\r\n contractIdFormControl: UntypedFormControl;\r\n /** Contact name input controller */\r\n contactNameFormControl: UntypedFormControl;\r\n /** Contact type input controller */\r\n contactTypeIdFormControl: UntypedFormControl;\r\n /** Email address input controller */\r\n emailAddressFormControl: UntypedFormControl;\r\n /** Phone number input controller */\r\n phoneNumberFormControl: UntypedFormControl;\r\n /** Handover certificate checkbox controller */\r\n handoverCertificateFormControl: UntypedFormControl;\r\n /** Variation Instructions checkbox controller */\r\n variationInstructionsFormControl: UntypedFormControl;\r\n /** Inspections Completed checkbox controller */\r\n inspectionsCompletedFormControl: UntypedFormControl;\r\n /** Detailed Inspection checkbox controller */\r\n detailedInspectionFormControl: UntypedFormControl;\r\n /** Inspection Statuses checkbox controller */\r\n inspectionStatusesFormControl: UntypedFormControl;\r\n /** Sub-Contractor Inspections checkbox controller */\r\n subContractorInspectionsFormControl: UntypedFormControl;\r\n /** All validation messages for the respective form fields */\r\n validationMessages = {\r\n contractId: {\r\n required: errorMessages.required\r\n },\r\n contactName: {\r\n required: errorMessages.required,\r\n },\r\n contactTypeId: {\r\n required: errorMessages.required\r\n },\r\n emailAddress: {\r\n required: errorMessages.required,\r\n pattern: errorMessages.emailInvalid\r\n }\r\n };\r\n\r\n constructor(\r\n public modalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private contractCommandService: ContractCommandService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n ) { super(); }\r\n\r\n /**\r\n * Initialises the component\r\n *\r\n * @memberof AddEditContractContactModalComponent\r\n */\r\n public ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.editMode = this.context.editMode;\r\n this.chooseContractMode = this.context.chooseContractMode;\r\n this.site = this.context.site;\r\n this.contract = this.context.contract;\r\n const contractNameRef = `${this.contract.ContractName}(${this.contract.ContractReference})`;\r\n this.modalTitle = this.editMode ? `Edit Customer Contact - ${contractNameRef}` : `Add Customer Contact - ${contractNameRef}`;\r\n this.contractContact = cloneDeep(this.context.contractContact) || this.getNewContractContact();\r\n this.customers = this.context.customers;\r\n this.contactTypes = map(this.context.configuration.ContactTypes).filter((type) => {\r\n return type.ContactTypeId !== contactTypeIds.bccContact && type.ContactTypeId !== contactTypeIds.companyContact;\r\n });\r\n\r\n this.openContracts = this.site.Contracts\r\n .filter(c => c.ContractStatusId === contractStatusIds.open)\r\n .map(contract => {\r\n contract = cloneDeep(contract);\r\n const customerName = this.customers.find(c => c.CustomerId === contract.CustomerId).CustomerName;\r\n (contract as any).optionName = `${customerName} (${contract.ContractReference})`;\r\n return contract;\r\n });\r\n\r\n this.generateForm();\r\n super.ngOnInit();\r\n }\r\n\r\n /**\r\n * Generates the form with values and validation\r\n *\r\n * @memberof AddEditContractContactModalComponent\r\n */\r\n public generateForm(): void {\r\n this.contractIdFormControl = new UntypedFormControl(this.contract ? this.contract.ContractId : '', Validators.required);\r\n this.contactNameFormControl = new UntypedFormControl(this.contractContact.ContactName, [Validators.required]);\r\n this.contactTypeIdFormControl = new UntypedFormControl(this.contractContact.ContactTypeId, Validators.required);\r\n this.emailAddressFormControl = new UntypedFormControl(this.contractContact.EmailAddress, [Validators.required, Validators.pattern(emailAddressRegex)]);\r\n this.phoneNumberFormControl = new UntypedFormControl(this.contractContact.PhoneNumber);\r\n this.handoverCertificateFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.HandoverCertificate));\r\n this.variationInstructionsFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.VariationInstructions));\r\n this.inspectionsCompletedFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.InspectionsCompleted));\r\n this.detailedInspectionFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.SiteInspectionsCompleted));\r\n this.inspectionStatusesFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.InspectionStatuses));\r\n this.subContractorInspectionsFormControl =\r\n new UntypedFormControl(!!(this.contractContact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.SubContractorInspections));\r\n this.form = new UntypedFormGroup({\r\n contractId: this.contractIdFormControl,\r\n contactName: this.contactNameFormControl,\r\n contactTypeId: this.contactTypeIdFormControl,\r\n emailAddress: this.emailAddressFormControl,\r\n phoneNumber: this.phoneNumberFormControl,\r\n handoverCertificate: this.handoverCertificateFormControl,\r\n variationInstructions: this.variationInstructionsFormControl,\r\n inspectionsCompleted: this.inspectionsCompletedFormControl,\r\n detailedInspection: this.detailedInspectionFormControl,\r\n inspectionStatuses: this.inspectionStatusesFormControl,\r\n subContractorInspections: this.subContractorInspectionsFormControl\r\n });\r\n }\r\n\r\n /**\r\n * Creates a new contract contact object\r\n *\r\n * @private\r\n * @returns {ContractContactData}\r\n * @memberof AddEditContractContactModalComponent\r\n */\r\n private getNewContractContact(): ContractContactData {\r\n return Object.assign(new ContractContactData(), {\r\n ContractContactId: UUID.UUID(),\r\n ContactName: '',\r\n EmailAddress: '',\r\n PhoneNumber: '',\r\n IsInactive: false,\r\n ReportSubscriptionTypes: ReportSubscriptionTypesEnum.None,\r\n // Same as existing or weekly\r\n // ScheduleType: ScheduleTypeEnum.None,\r\n // ScheduledReportStartDate: '',\r\n ContactTypeId: '',\r\n });\r\n }\r\n\r\n /**\r\n * Sets the contract contact to inactive\r\n *\r\n * @memberof AddEditContractContactModalComponent\r\n */\r\n public deleteContractContact(): void {\r\n this.contractContact.IsInactive = true;\r\n }\r\n\r\n /**\r\n * Activates the contract contact\r\n *\r\n * @memberof AddEditContractContactModalComponent\r\n */\r\n public undoDeleteContractContact(): void {\r\n this.contractContact.IsInactive = false;\r\n }\r\n\r\n /**\r\n * Submits the form to api\r\n *\r\n * @param {*} formValues all form values\r\n * @memberof AddEditContractContactModalComponent\r\n */\r\n public onSubmit(formValues): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n const contract = this.site.Contracts.find(c => c.ContractId === formValues.contractId);\r\n const contacts = map(contract.ContractContacts).filter(c => !c.IsInactive);\r\n\r\n const command: CreateContractContactCommand | EditContractContactCommand = {\r\n ContractContactId: this.contractContact.ContractContactId,\r\n ContactName: formValues.contactName,\r\n EmailAddress: formValues.emailAddress,\r\n PhoneNumber: formValues.phoneNumber,\r\n ContractId: formValues.contractId,\r\n ReceiveInspectionReports: true,\r\n IsInactive: this.contractContact.IsInactive,\r\n ScheduledReportStartDate: moment().startOf('day').format('YYYY-MM-DD HH:mm'),\r\n ReportSubscriptionTypes: this.getReportSubscriptionType(formValues),\r\n ContactTypeId: formValues.contactTypeId\r\n };\r\n\r\n const commandFunction = this.editMode\r\n ? this.contractCommandService.EditContractContactCommand\r\n : this.contractCommandService.CreateContractContactCommand;\r\n\r\n commandFunction.call(this.contractCommandService, command)\r\n .subscribe(() => {\r\n // Here we must reload any data that this add/edit affects from the server.\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference)\r\n .subscribe(() => {\r\n this.saveInProgress = false;\r\n this.modalService.setDismissReason(command.ContractId);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n\r\n /**\r\n * Returns the report subscription type as a total count\r\n *\r\n * @private\r\n * @param {*} formValues\r\n * @returns {number}\r\n * @memberof AddEditContractContactModalComponent\r\n */\r\n private getReportSubscriptionType(formValues: any): number {\r\n return (ReportSubscriptionTypesEnum.HandoverCertificate * +formValues.handoverCertificate) +\r\n (ReportSubscriptionTypesEnum.VariationInstructions * +formValues.variationInstructions) +\r\n (ReportSubscriptionTypesEnum.InspectionsCompleted * +formValues.inspectionsCompleted) +\r\n (ReportSubscriptionTypesEnum.SiteInspectionsCompleted * +formValues.detailedInspection) +\r\n (ReportSubscriptionTypesEnum.InspectionStatuses * +formValues.inspectionStatuses) +\r\n (ReportSubscriptionTypesEnum.SubContractorInspections * +formValues.subContractorInspections);\r\n }\r\n\r\n /**\r\n * Checks if it is the principal contract\r\n *\r\n * @returns {boolean}\r\n * @memberof AddEditContractContactModalComponent\r\n */\r\n public principalContractSelected(): boolean {\r\n const contract = this.site.Contracts.find(c => c.ContractId === this.contractIdFormControl.value);\r\n return contract ? contract.IsPrincipalContract : false;\r\n }\r\n\r\n\r\n /**\r\n * Detect when the selected contact type changes and sets it to the form\r\n *\r\n * @param {string} contactTypeId\r\n * @memberof AddEditContractModalComponent\r\n */\r\n public onSelectedContactTypeChanged(contactTypeId: string): void {\r\n this.form.controls.contactTypeId.setValue(contactTypeId);\r\n }\r\n\r\n /**\r\n * Required by AutoUnsubscribe()\r\n *\r\n * @memberof AddEditContractContactModalComponent\r\n */\r\n ngOnDestroy(): void { }\r\n\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Subscriptions

\r\n

Select which reports you would like this contact to receive.

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Delete contact\r\n \r\n This contact will be deleted. Click\r\n undo if this was a mistake!\r\n
\r\n \r\n
\r\n
","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnDestroy, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { forkJoin } from 'rxjs';\r\nimport { map } from 'lodash';\r\nimport {\r\n ConfigurationData,\r\n ContractData,\r\n CustomerWebAppData,\r\n SiteWebAppData,\r\n ContractTypeData\r\n} from 'app/core/hub-api';\r\nimport { ContractCommandService, CreateContractCommand, EditContractCommand, InspectionStatusEnumEnum } from 'app/core/hub-api';\r\nimport { CustomerDetailQueryService } from '../../../../../core/services/customer-detail-query.service';\r\nimport { mustNotExistValidator } from '../../../../../shared/validators/must-not-exist.validator';\r\nimport { contractStatusIds } from '../../../../../shared/values/contract-status-ids';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { AddEditContractModalContext } from '../../../../models/add-edit-contract-modal-context';\r\nimport { ContractInspectionStatusQueryService } from '../../../../services/contract-inspection-status-query.service';\r\nimport { AddEditCustomerModalContext } from '../../../../../customers/models/add-edit-customer-modal-context';\r\nimport { AddEditCustomerModalComponent } from '../../../../../customers/components/add-edit-customer-modal/add-edit-customer-modal.component';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { customerStatusIds } from '../../../../../shared/values/customer-status-ids';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { ReferenceGeneratorService } from 'app/core/utility';\r\n\r\n/**\r\n * Add Edit Contract Modal\r\n * Allows users to create or edit contracts\r\n *\r\n * @export\r\n * @class AddEditContractModalComponent\r\n * @extends {ModalFormComponent} extends the generic modal form component\r\n * @implements {OnInit} Initialises the component\r\n * @implements {OnDestroy} Stops all subscriptions and closes the component\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-edit-contract-modal',\r\n templateUrl: './add-edit-contract-modal.component.html',\r\n styleUrls: ['./add-edit-contract-modal.component.scss']\r\n})\r\nexport class AddEditContractModalComponent extends FormComponent implements OnInit, OnDestroy {\r\n /** Stores the parameters for this modal */\r\n context: Partial;\r\n /** Detects if the form is edit or add */\r\n editMode: boolean;\r\n /** Stores the selected site */\r\n site: SiteWebAppData;\r\n /** Stores all customers */\r\n allCustomers: CustomerWebAppData[];\r\n /** Stores all filtered customers */\r\n filteredCustomers: CustomerWebAppData[];\r\n /** Stores the selected customer */\r\n customer: CustomerWebAppData;\r\n /** Stores the selected contract */\r\n contract: ContractData;\r\n /** Contract name input control */\r\n existingMainContractor: any;\r\n inspectionStatusEnum: any;\r\n configuration: ConfigurationData;\r\n contractTypes: ContractTypeData[];\r\n /** Form group control */\r\n form: UntypedFormGroup;\r\n /** Contract name input control */\r\n contractNameFormControl: UntypedFormControl;\r\n /** Contract description input control */\r\n contractDescriptionFormControl: UntypedFormControl;\r\n /** Contract type dropdown control */\r\n contractTypeFormControl: UntypedFormControl;\r\n /** Customer form control */\r\n customerFormControl: UntypedFormControl;\r\n /** Contract reference input control */\r\n contractReferenceFormControl: UntypedFormControl;\r\n /** Main contractor radio control */\r\n mainContractorFormControl: UntypedFormControl;\r\n /** Submit without signature radio control */\r\n submitWithoutSignatureFormControl: UntypedFormControl;\r\n /** Agreed schedule of rates radio control */\r\n agreedScheduleOfRatesFormControl: UntypedFormControl;\r\n /** Inspection Status radio control */\r\n inspectionStatusFormControl: UntypedFormControl;\r\n /** Cameras allowed radio control */\r\n camerasAllowedFormControl: UntypedFormControl;\r\n /** Dismantle without offhire radio control */\r\n dismantleWithoutOffhireFormControl: UntypedFormControl;\r\n /** Form validation for all required fields */\r\n validationMessages = {\r\n contractName: {\r\n required: errorMessages.required\r\n },\r\n customer: {\r\n required: errorMessages.required\r\n },\r\n contractReference: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.contractReferenceMustBeUnique\r\n },\r\n mainContractor: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.oneMainContractor\r\n },\r\n submitWithoutSignature: {\r\n required: errorMessages.required\r\n },\r\n agreedScheduleOfRates: {\r\n required: errorMessages.required\r\n },\r\n inspectionStatusFormControl: {\r\n required: errorMessages.required\r\n }\r\n };\r\n\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n private referenceGeneratorService: ReferenceGeneratorService,\r\n private contractCommandService: ContractCommandService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private contractInspectionStatusQueryService: ContractInspectionStatusQueryService,\r\n private customerDetailQueryService: CustomerDetailQueryService,\r\n public modalService: BsModalService,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n /**\r\n * Component Initialises\r\n *\r\n * @memberof AddEditContractModalComponent\r\n */\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.inspectionStatusEnum = InspectionStatusEnumEnum;\r\n\r\n this.editMode = this.context.editMode;\r\n this.site = this.context.site;\r\n this.configuration = this.context.configuration;\r\n this.contract = this.context.contract || this.getNewContract();\r\n this.allCustomers = this.context.customers;\r\n this.filteredCustomers = this.allCustomers\r\n .filter(customer => customer.CustomerId === this.contract.CustomerId || customer.CustomerStatusId === customerStatusIds.active);\r\n this.customer = this.customer ? this.customer : this.filteredCustomers.find(customer => customer.CustomerId === this.contract.CustomerId);\r\n\r\n const _contractTypes = map(this.context.configuration.ContractTypes);\r\n // creates and adds an empty field so user can select 'None'\r\n const emptyContractType = new ContractTypeData();\r\n emptyContractType.Title = 'None';\r\n emptyContractType.ContractTypeId = '';\r\n _contractTypes.unshift(emptyContractType);\r\n this.contractTypes = _contractTypes;\r\n\r\n const contractCustomer = this.filteredCustomers.find(customer => customer.CustomerId === this.contract.CustomerId);\r\n const contractRefs = this.site.Contracts.filter(c => c.ContractId !== this.contract.ContractId).map(c => c.ContractReference);\r\n\r\n this.generateForm(contractCustomer, contractRefs);\r\n\r\n this.initialiseExistingMainContractor();\r\n super.ngOnInit();\r\n }\r\n\r\n /**\r\n * Generates the add or edit contract form and applies all values and validation\r\n *\r\n * @private\r\n * @param {CustomerWebAppData} contractCustomer\r\n * @param {string[]} contractRefs\r\n * @memberof AddEditContractModalComponent\r\n */\r\n private generateForm(contractCustomer: CustomerWebAppData, contractRefs: string[]): void {\r\n this.customerFormControl = new UntypedFormControl(contractCustomer ? contractCustomer.CustomerId : null, Validators.required);\r\n this.contractReferenceFormControl = new UntypedFormControl(this.contract.ContractReference, [Validators.required, mustNotExistValidator(contractRefs)]);\r\n\r\n this.contractNameFormControl = new UntypedFormControl(this.contract.ContractName || '', [Validators.required]);\r\n this.contractDescriptionFormControl = new UntypedFormControl(this.contract.Description || '');\r\n this.contractTypeFormControl = new UntypedFormControl(this.contract.ContractTypeId || '');\r\n\r\n this.mainContractorFormControl = new UntypedFormControl(this.contract.IsPrincipalContract);\r\n this.submitWithoutSignatureFormControl = new UntypedFormControl(this.contract.CanSubmitDocumentsWithoutSignature);\r\n this.agreedScheduleOfRatesFormControl = new UntypedFormControl(this.contract.IsScheduleRatesAgreed);\r\n this.inspectionStatusFormControl = new UntypedFormControl(this.contract.InspectionStatus.State);\r\n this.camerasAllowedFormControl = new UntypedFormControl(this.contract.IsCameraAllowed);\r\n this.dismantleWithoutOffhireFormControl = new UntypedFormControl(this.contract.AllowDismantleWithoutOffhire);\r\n this.form = new UntypedFormGroup({\r\n contractName: this.contractNameFormControl,\r\n contractDescription: this.contractDescriptionFormControl,\r\n contractType: this.contractTypeFormControl,\r\n customer: this.customerFormControl,\r\n contractReference: this.contractReferenceFormControl,\r\n mainContractor: this.mainContractorFormControl,\r\n submitWithoutSignature: this.submitWithoutSignatureFormControl,\r\n agreedScheduleOfRates: this.agreedScheduleOfRatesFormControl,\r\n inspectionStatus: this.inspectionStatusFormControl,\r\n camerasAllowed: this.camerasAllowedFormControl,\r\n dismantleWithoutOffhire: this.dismantleWithoutOffhireFormControl\r\n });\r\n }\r\n\r\n /**\r\n * Checks if there is a main contractor for the current contract\r\n * this function is public so it can be tested\r\n *\r\n * @memberof AddEditContractModalComponent\r\n */\r\n public initialiseExistingMainContractor(): void {\r\n const existingMainContract = this.site.Contracts.find(c => c.ContractId !== this.contract.ContractId && c.IsPrincipalContract);\r\n if (existingMainContract) {\r\n this.existingMainContractor = {\r\n contractReference: existingMainContract.ContractReference,\r\n customerName: this.allCustomers.find(c => c.CustomerId === existingMainContract.CustomerId).CustomerName\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Creates a mew contract object\r\n *\r\n * @private\r\n * @returns {ContractData}\r\n * @memberof AddEditContractModalComponent\r\n */\r\n private getNewContract(): ContractData {\r\n const contractReferences = this.site.Contracts.map(c => c.ContractReference);\r\n return Object.assign(new ContractData(), {\r\n ContractId: UUID.UUID(),\r\n ContractReference: this.referenceGeneratorService.incrementalReference(contractReferences, this.configuration.ContractReferenceLength),\r\n IsPrincipalContract: false,\r\n CanSubmitDocumentsWithoutSignature: false,\r\n IsScheduleRatesAgreed: false,\r\n InspectionStatus: {\r\n State: InspectionStatusEnumEnum.Normal\r\n },\r\n IsCameraAllowed: true,\r\n AllowDismantleWithoutOffhire: false\r\n });\r\n }\r\n\r\n /**\r\n * Submits the edited or new contract to the api\r\n *\r\n * @param {*} formValues all form values\r\n * @memberof AddEditContractModalComponent\r\n */\r\n public onSubmit(formValues: any): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n\r\n const command: EditContractCommand | CreateContractCommand = {\r\n ContractId: this.contract.ContractId,\r\n ContractReference: formValues.contractReference,\r\n CustomerId: this.customer.CustomerId,\r\n ContractStatusId: contractStatusIds.open,\r\n SiteId: this.site.SiteId,\r\n IsPrincipalContract: formValues.mainContractor,\r\n IsCustomerNotPresent: formValues.submitWithoutSignature,\r\n CreationDate: undefined,\r\n IsScheduleRatesAgreed: formValues.agreedScheduleOfRates,\r\n CanSubmitDocumentsWithoutSignature: formValues.submitWithoutSignature,\r\n ContractInspectionStatus: formValues.inspectionStatus,\r\n ContractName: formValues.contractName,\r\n Description: formValues.contractDescription,\r\n ContractTypeId: formValues.contractType,\r\n IsCameraAllowed: formValues.camerasAllowed,\r\n AllowDismantleWithoutOffhire: formValues.dismantleWithoutOffhire\r\n };\r\n\r\n if (this.editMode) {\r\n this.contractCommandService.EditContractCommand.call(this.contractCommandService, command).subscribe(() => {\r\n // Here we must reload any data that this edit affects from the server.\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference).subscribe((site) => {\r\n this.saveInProgress = false;\r\n this.modalService.setDismissReason(this.customer.CustomerReference);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n } else {\r\n this.contractCommandService.CreateContractCommand.call(this.contractCommandService, command).subscribe(() => {\r\n // Here we must reload any data that this add affects from the server.\r\n const obs$ = forkJoin([\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n this.contractInspectionStatusQueryService.contractInspectionStatusQuery(false, this.site.SiteId),\r\n this.customerDetailQueryService.customerDetailQuery(false, this.customer.CustomerReference)\r\n ]);\r\n obs$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.modalService.setDismissReason(this.customer.CustomerReference);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Detects if user is creating a new customer and displays the add customer form when\r\n * Add button is actioned\r\n *\r\n * @memberof AddEditContractModalComponent\r\n */\r\n public onAddCustomer(): void {\r\n const context: AddEditCustomerModalContext = {\r\n editMode: false,\r\n customers: this.allCustomers,\r\n configuration: this.configuration\r\n };\r\n const modal = this.modalService.show(AddEditCustomerModalComponent, SSModalConfig.generate(context));\r\n modal.onHidden.subscribe(\r\n customerReference => {\r\n if (customerReference && typeof customerReference === 'string') {\r\n this.customerDetailQueryService.customerDetailQuery(false, customerReference).subscribe(customer => {\r\n this.customer = customer;\r\n this.filteredCustomers = [...this.filteredCustomers, customer];\r\n this.changeDetectorRef.detectChanges();\r\n this.form.controls.customer.setValue(customer.CustomerId)\r\n });\r\n }\r\n },\r\n error => {\r\n console.log(error);\r\n },\r\n () => { }\r\n );\r\n }\r\n\r\n /**\r\n * Blurs the following fields on the UI\r\n * * Contract Description\r\n * * Contract Reference\r\n * * Contract Name\r\n *\r\n * @param {*} event\r\n * @memberof AddEditContractModalComponent\r\n */\r\n public blurReadOnly(event: any): void {\r\n if (event.target.readOnly) {\r\n event.target.blur();\r\n }\r\n }\r\n\r\n /**\r\n * When the user clicks on a typeahead customer result it will select that customer\r\n *\r\n * @param {CustomerWebAppData} customerId\r\n * @memberof AddEditContractModalComponent\r\n */\r\n public onCustomerSelected(customerId: string): void {\r\n this.customer = this.allCustomers.find(c => c.CustomerId === customerId);\r\n this.form.controls.customer.setValue(customerId);\r\n }\r\n\r\n /**\r\n * Detect when the selected contract type changes and sets it to the form\r\n *\r\n * @param {string} contractTypeId\r\n * @memberof AddEditContractModalComponent\r\n */\r\n public onSelectedContractTypeChanged(contractTypeId: string): void {\r\n this.form.controls.contractType.setValue(contractTypeId);\r\n }\r\n\r\n /**\r\n * Required by AutoUnsubscribe()\r\n *\r\n * @memberof AddEditContractModalComponent\r\n */\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n \r\n Warning: Contract references can not be edited once scaffolds have been\r\n assigned to them.\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n Add\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n This will make\r\n {{existingMainContractor.customerName}} ({{existingMainContractor.contractReference}})\r\n a\r\n subcontractor.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { UUID } from 'angular2-uuid';\r\nimport {\r\n CreateContractContactCommand,\r\n EditContractContactCommand,\r\n ReportSubscriptionTypesEnum,\r\n SiteWebAppData,\r\n ContractData,\r\n} from 'app/core/hub-api';\r\nimport {\r\n ContractCommandService,\r\n StaffDetailsWebAppData\r\n} from 'app/core/hub-api';\r\nimport { contactTypeIds } from '../../../../../shared/values/contact-type-ids';\r\nimport { AddMeAsContactModalContext } from '../../../../models/add-me-as-contact-modal-context';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport * as moment from 'moment';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-me-as-contact-modal',\r\n templateUrl: './add-me-as-contact-modal.component.html',\r\n styleUrls: ['./add-me-as-contact-modal.component.scss']\r\n})\r\nexport class AddMeAsContactModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n editMode: boolean;\r\n loggedInStaff: StaffDetailsWebAppData;\r\n contractId: string;\r\n modalTitle: string;\r\n cancelText: string;\r\n saveText: string;\r\n errorMessage: boolean;\r\n site: SiteWebAppData;\r\n form: UntypedFormGroup;\r\n validationMessages = {};\r\n contract: ContractData;\r\n\r\n constructor(\r\n private bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private contractCommandService: ContractCommandService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n public modalService: BsModalService,\r\n\r\n ) { super(); }\r\n\r\n ngOnInit(): any {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.editMode = this.context.editMode;\r\n this.loggedInStaff = this.context.loggedInStaff;\r\n this.contractId = this.context.contractId;\r\n this.site = this.context.site;\r\n this.saveText = 'Yes';\r\n this.cancelText = 'No';\r\n this.modalTitle = 'Add Me As A Contact';\r\n this.contract = this.context.contract;\r\n }\r\n\r\n\r\n\r\n onSubmit(): void {\r\n this.saveInProgress = true;\r\n const command: CreateContractContactCommand | EditContractContactCommand = {\r\n ContractContactId: UUID.UUID(),\r\n ContactName: this.loggedInStaff.ContactName,\r\n EmailAddress: this.loggedInStaff.EmailAddress,\r\n PhoneNumber: this.loggedInStaff.PhoneNumber,\r\n ContractId: this.contractId,\r\n ReceiveInspectionReports: true,\r\n IsInactive: false,\r\n ScheduledReportStartDate: moment().startOf('day').format('YYYY-MM-DD HH:mm'),\r\n ReportSubscriptionTypes: ReportSubscriptionTypesEnum.HandoverCertificate +\r\n ReportSubscriptionTypesEnum.VariationInstructions +\r\n ReportSubscriptionTypesEnum.InspectionStatuses +\r\n ReportSubscriptionTypesEnum.InspectionsCompleted +\r\n ReportSubscriptionTypesEnum.SiteInspectionsCompleted,\r\n ContactTypeId: contactTypeIds.companyContact\r\n };\r\n\r\n if (this.contract.IsPrincipalContract) {\r\n command.ReportSubscriptionTypes = command.ReportSubscriptionTypes + ReportSubscriptionTypesEnum.SubContractorInspections;\r\n }\r\n\r\n const commandFunction = this.editMode\r\n ? this.contractCommandService.EditContractContactCommand\r\n : this.contractCommandService.CreateContractContactCommand;\r\n\r\n\r\n commandFunction.call(this.contractCommandService, command)\r\n .subscribe(() => {\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference)\r\n .subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(command.ContractId);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n\r\n\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n

Also add {{loggedInStaff.EmailAddress}} as a contact?

\r\n\r\n

Choose Yes to receive all types of email generated by SMART Scaffolder for\r\n this contract.

\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-contracts-info-text',\r\n templateUrl: './contracts-info-text.component.html',\r\n styleUrls: ['./contracts-info-text.component.scss']\r\n})\r\nexport class ContractsInfoTextComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n}\r\n","
\r\n

A contract is the relationship between a site and a customer. When you add a customer to a site you are creating a contract.\r\n A customer can have one or more contracts on any given site.

\r\n

Main Contractor vs Sub Contractor

\r\n

The only difference is that a main contractor can receive the sub contractors inspection reports and unsafe scaffold reports.\r\n You can only have one main contractor on a site.

\r\n

Customer Signatures

\r\n

Some documents on the mobile apps require a customer signature before they can be submitted. If this is not possible then\r\n you can allow documents to be submitted without a customer signature. This will allow the users of the app to select\r\n \"customer not present\" in the customer contact pickers.

\r\n

Weekly Inspections

\r\n

Inspections can be paused for any given contract and the app will not prompt you to inspect scaffolds whilst they are paused.\r\n If you are no longer contracted to carry out inspections for a particular customer then you can press the stop button.\r\n Once inspections have been paused or stopped then all inspection reports will reflect this. Pause/Stopped inspections\r\n can be resumed at anytime by clicking the \"Play\" button.

\r\n

Closing Contracts

\r\n

Contracts can be closed at any time by clicking the \"Advanced Options\" link and tapping the \"Close Contract button\". You\r\n can re-open the contract at anytime and any previous information/scaffolds will still be available.

\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport {\r\n ContractCommandService,\r\n ContractData,\r\n CustomerWebAppData,\r\n EditContractInspectionStatusCommand,\r\n InspectionStatusEnumEnum,\r\n SiteWebAppData,\r\n StaffDetailsWebAppData,\r\n} from 'app/core/hub-api';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { InspectionStatusModalContext } from '../../../../models/inspection-status-modal-context';\r\nimport { ContractInspectionStatusQueryService } from '../../../../services/contract-inspection-status-query.service';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { DatePickerOptions } from 'app/reports/models/date-picker-options';\r\nimport dayjs from 'dayjs/esm';\r\nimport { DatePickerSelectData } from 'app/shared/models/date-picker-select-data';\r\n/**\r\n * Modal to pause, resume or stop inspections for a contract\r\n */\r\n@Component({\r\n selector: 'hub-inspection-status-modal',\r\n templateUrl: './inspection-status-modal.component.html',\r\n styleUrls: ['./inspection-status-modal.component.scss']\r\n})\r\nexport class InspectionStatusModalComponent extends FormComponent implements OnInit {\r\n /** Stores the passed in values from where it was called */\r\n context: Partial;\r\n /** Stores the pause mode */\r\n pauseMode: boolean;\r\n /** Stores the stop mode */\r\n resumeMode: boolean;\r\n /** Stores the resume mode */\r\n stopMode: boolean;\r\n /** Stores the site data */\r\n site: SiteWebAppData;\r\n /** Stores the customers */\r\n customers: CustomerWebAppData[];\r\n /** Stores the contract data */\r\n contract: ContractData;\r\n /** Stores the staff details */\r\n loggedInStaff: StaffDetailsWebAppData;\r\n /** Stores the selected customer name */\r\n customerName: string;\r\n /** Stores the modal title */\r\n title: string;\r\n /** Stores the modal text */\r\n text: string;\r\n /** Stores the modal save button text */\r\n saveText: string;\r\n /** Stores the modal cancel button text */\r\n cancelText: string;\r\n /** Stores the form */\r\n form: UntypedFormGroup;\r\n /** Stores the reason form control */\r\n reasonFormControl: UntypedFormControl;\r\n /** Stores the resume date form control */\r\n resumeDateFormControl: UntypedFormControl;\r\n /** Stores the resume date picker options */\r\n datePickerOptions: DatePickerOptions;\r\n /** Stores contract inspection status */\r\n contractInspectionStatus: InspectionStatusEnumEnum;\r\n /** Stores the validations messages to present on the UI */\r\n validationMessages = {\r\n reason: {\r\n required: errorMessages.pauseInspectionsReasonRequired,\r\n },\r\n resumeDate: {\r\n required: errorMessages.pauseInspectionsResumeDateRequired,\r\n }\r\n };\r\n\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n public contractCommandService: ContractCommandService,\r\n public contractInspectionStatusQueryService: ContractInspectionStatusQueryService,\r\n public siteScaffoldQueryService: SiteScaffoldQueryService,\r\n public siteDetailQueryService: SiteDetailQueryService,\r\n public modalService: BsModalService,\r\n ) { super(); }\r\n\r\n /**\r\n * Initialises the modal, sets the initial values and detects which button was clicked.\r\n * @returns {void}\r\n */\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.pauseMode = this.context.pauseMode;\r\n this.stopMode = this.context.stopMode;\r\n this.resumeMode = this.context.resumeMode;\r\n this.customers = this.context.customers;\r\n this.site = this.context.site;\r\n this.contract = this.context.contract;\r\n this.loggedInStaff = this.context.loggedInStaff;\r\n\r\n this.customerName = this.customers.find(c => c.CustomerId === this.contract.CustomerId).CustomerName;\r\n\r\n if (this.pauseMode) {\r\n this.initPauseMode();\r\n } else if (this.resumeMode) {\r\n this.initResumeMode();\r\n } else if (this.stopMode) {\r\n this.initStopMode();\r\n }\r\n super.ngOnInit();\r\n }\r\n\r\n /**\r\n * This method is called when the user clicks the 'Pause' button on the modal.\r\n * @returns {void}\r\n */\r\n private initPauseMode(): void {\r\n this.reasonFormControl = new UntypedFormControl('', [Validators.required]);\r\n this.resumeDateFormControl = new UntypedFormControl(null, [Validators.required]);\r\n\r\n this.form = new UntypedFormGroup({\r\n reason: this.reasonFormControl,\r\n resumeDate: this.resumeDateFormControl,\r\n });\r\n this.datePickerOptions = {\r\n ranges: {},\r\n alwaysShowCalendars: false,\r\n showCustomRangeLabel: false,\r\n minDate: dayjs().add(1, 'day'),\r\n };\r\n this.title = 'Pause Inspections?';\r\n this.text = `This will pause all the scheduled weekly inspections for ${this.contract.ContractName}(${this.contract.ContractReference}) on ${this.site.SiteName}.`;\r\n this.contractInspectionStatus = InspectionStatusEnumEnum.Paused;\r\n this.saveText = 'Save';\r\n this.cancelText = 'Cancel';\r\n }\r\n\r\n /**\r\n * This method is called when the user clicks the 'Resume' button on the modal.\r\n * @returns {void}\r\n */\r\n private initResumeMode(): void {\r\n this.form = new UntypedFormGroup({});\r\n this.title = 'Resume Inspections?';\r\n this.text = `Are you sure you want to resume inspections for ${this.contract.ContractName}(${this.contract.ContractReference}) on ${this.site.SiteName}?`;\r\n this.contractInspectionStatus = InspectionStatusEnumEnum.Normal;\r\n this.saveText = 'Yes resume inspections';\r\n this.cancelText = 'No I\\'ve changed my mind';\r\n }\r\n\r\n /**\r\n * This method is called when the user clicks the 'Stop' button on the modal.\r\n * @returns {void}\r\n */\r\n private initStopMode(): void {\r\n this.form = new UntypedFormGroup({});\r\n this.title = 'Stop Inspections?';\r\n this.text = `Are you sure you want to stop inspections for ${this.contract.ContractName}(${this.contract.ContractReference}) on ${this.site.SiteName}?\r\n Only do this if you are no longer contracted to carry out the weekly inspections.`;\r\n this.contractInspectionStatus = InspectionStatusEnumEnum.Stopped;\r\n this.saveText = 'Yes stop inspections';\r\n this.cancelText = 'No I\\'ve changed my mind';\r\n }\r\n\r\n /** \r\n * This method is called whenever the user changes the date on the date picker\r\n * for the inspection status date.\r\n * @param date The date selected by the user.\r\n * @returns {void}\r\n */\r\n public onInspectionStatusDateChanged(date: DatePickerSelectData): void {\r\n if (date.startDate == null) return this.form.controls.resumeDate.setValue(null);\r\n this.resumeDateFormControl.setValue(date);\r\n }\r\n\r\n /**\r\n * Checks the validation for the date picker.\r\n */\r\n private checkDatePickerValidation(): void {\r\n if (this.pauseMode && this.form.controls.resumeDate.value == null) {\r\n this.resumeDateFormControl.setErrors({ required: true });\r\n }\r\n }\r\n\r\n /**\r\n * This method is called when the user clicks the save button on the modal.\r\n * @param formValues \r\n * @returns {void}\r\n */\r\n public onSubmit(formValues): void {\r\n this.checkDatePickerValidation();\r\n if (this.pauseMode && !this.validateForm()) return;\r\n this.saveInProgress = true;\r\n\r\n const command: EditContractInspectionStatusCommand = {\r\n ContractId: this.contract.ContractId,\r\n ContractInspectionStatus: {\r\n State: this.contractInspectionStatus,\r\n Reason: formValues.reason,\r\n ResumeDate: formValues.resumeDate\r\n ? formValues.resumeDate.startDate.toISOString()\r\n : undefined,\r\n },\r\n OwnerId: this.loggedInStaff.StaffId,\r\n OffsetFromUtc: moment().utcOffset()\r\n };\r\n this.contractCommandService.EditContractInspectionStatusCommand(command)\r\n .subscribe({\r\n next: () => {\r\n forkJoin([this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n this.siteScaffoldQueryService.siteScaffoldQuery(false, this.site.SiteId),\r\n this.contractInspectionStatusQueryService.contractInspectionStatusQuery(false, this.site.SiteId)]).subscribe({\r\n next: () => {\r\n this.saveInProgress = false;\r\n this.bsModalRef.hide();\r\n },\r\n error: this.serverErrorCallback\r\n });\r\n },\r\n error: this.serverErrorCallback\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n {{ text }}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { forkJoin } from 'rxjs';\r\nimport { ContractCommandService, ContractData, CustomerWebAppData, EditContractCommand, SiteWebAppData } from 'app/core/hub-api';\r\nimport { CustomerDetailQueryService } from '../../../../../core/services/customer-detail-query.service';\r\nimport { contractStatusIds } from '../../../../../shared/values/contract-status-ids';\r\nimport { OpenCloseContractModalContext } from '../../../../models/open-close-contract-modal-context';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\n\r\n@Component({\r\n selector: 'hub-open-close-contract-modal',\r\n templateUrl: './open-close-contract-modal.component.html',\r\n styleUrls: ['./open-close-contract-modal.component.scss']\r\n})\r\nexport class OpenCloseContractModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n form: UntypedFormGroup;\r\n validationMessages = {};\r\n\r\n openMode: boolean;\r\n contract: ContractData;\r\n customers: CustomerWebAppData[];\r\n site: SiteWebAppData;\r\n\r\n title: string;\r\n text: string;\r\n saveText: string;\r\n cancelText: string;\r\n\r\n contractStatusId: string;\r\n\r\n constructor(\r\n private bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n public contractCommandService: ContractCommandService,\r\n public siteDetailQueryService: SiteDetailQueryService,\r\n public customerDetailQueryService: CustomerDetailQueryService,\r\n public modalService: BsModalService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.form = new UntypedFormGroup({});\r\n this.openMode = this.context.openMode;\r\n this.contract = this.context.contract;\r\n this.customers = this.context.customers;\r\n this.site = this.context.site;\r\n\r\n if (this.openMode) {\r\n this.initOpenMode();\r\n } else {\r\n this.initCloseMode();\r\n }\r\n super.ngOnInit();\r\n }\r\n\r\n initOpenMode(): void {\r\n this.contractStatusId = contractStatusIds.open;\r\n this.title = 'Reopen Contract';\r\n this.text = `Are you sure you want to reopen the contract ${this.contract.ContractName}(${this.contract.ContractReference})?`;\r\n this.saveText = 'Yes reopen contract';\r\n this.cancelText = 'No keep it closed';\r\n }\r\n\r\n initCloseMode(): void {\r\n this.contractStatusId = contractStatusIds.closed;\r\n this.title = 'Close Contract';\r\n this.text =\r\n `Are you sure you want to close the contract ${this.contract.ContractName}(${this.contract.ContractReference})?\r\n You can still view closed contracts but you will no longer be able to edit it or make any changes.`;\r\n this.saveText = 'Yes close contract';\r\n this.cancelText = 'No keep it open';\r\n }\r\n\r\n onSubmit(formValues: any): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n\r\n const command: EditContractCommand = Object.assign({}, this.contract, { ContractStatusId: this.contractStatusId });\r\n\r\n // Here we must reload any data that this edit affects from the server.\r\n this.contractCommandService.EditContractCommand(command).subscribe(() => {\r\n const customerReference = this.customers.find(c => c.CustomerId === this.contract.CustomerId).CustomerReference;\r\n const obs$ = forkJoin([\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n this.customerDetailQueryService.customerDetailQuery(false, customerReference)\r\n ]);\r\n obs$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(customerReference);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n {{ text }}\r\n \r\n \r\n
\r\n
","\r\nimport { Component, OnDestroy, OnInit, Input } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { cloneDeep, map, some } from 'lodash';\r\nimport { Observable, combineLatest, forkJoin } from 'rxjs';\r\nimport {\r\n ConfigurationData,\r\n ContactTypeData,\r\n ContractCommandService,\r\n ContractContactData,\r\n ContractData,\r\n CustomerWebAppData,\r\n ReportSubscriptionTypesEnum,\r\n ScheduleTypeEnum,\r\n SiteWebAppData,\r\n CompanyDetails\r\n} from 'app/core/hub-api';\r\nimport { ConfigurationQueryService } from '../../../../../core/services/configuration-query.service';\r\nimport { CustomersQueryService } from '../../../../../core/services/customers-query.service';\r\nimport { AddEditCompanyContactModalContext } from '../../../../models/add-edit-company-contact-modal-context';\r\nimport { ScheduledReportsStartGeneratorService } from '../../../../services/scheduled-reports-start-generator.service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { AddEditCompanyContactModalComponent } from '../add-edit-company-contact-modal/add-edit-company-contact-modal.component';\r\nimport { customerContactsHelpPanelData } from '../../../../values/contracts-help-panel-data';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { contactTypeIds } from '../../../../../shared/values/contact-type-ids';\r\nimport { AddEditBccContactModalContext } from 'app/sites/models/add-edit-bcc-contact-modal-context';\r\nimport { AddEditBccContactModalComponent } from '../add-edit-bcc-contact-modal/add-edit-bcc-contact-modal.component';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSDialogContext, SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { ModalDialogComponent } from 'app/shared/components/modal-dialog/modal-dialog.component';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-site-company-contacts',\r\n templateUrl: './site-company-contacts.component.html',\r\n styleUrls: ['./site-company-contacts.component.scss']\r\n})\r\n\r\nexport class SiteCompanyContactsComponent implements OnInit, OnDestroy {\r\n @Input()\r\n selectedContract: ContractData;\r\n\r\n contract: ContractData;\r\n activeCompanyContacts: ContractContactData[];\r\n\r\n site: SiteWebAppData;\r\n siteReference: string;\r\n\r\n customers: CustomerWebAppData[];\r\n configuration: ConfigurationData;\r\n\r\n contactTypes: { [key: string]: ContactTypeData };\r\n activeBccContacts: ContractContactData[];\r\n\r\n contractContactsChanged: boolean;\r\n updateInProgress: boolean;\r\n\r\n contractContactsForm: UntypedFormGroup;\r\n contractContactsFormArray: UntypedFormArray;\r\n scheduledReportsIntervalFormControl: UntypedFormControl;\r\n\r\n scheduleTypeEnum: any;\r\n\r\n contactHelpPanelData = customerContactsHelpPanelData;\r\n selectedHelp = customerContactsHelpPanelData[0];\r\n\r\n showCustomerContacts: boolean;\r\n\r\n companyDetails: CompanyDetails;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private scheduledReportsStartGeneratorService: ScheduledReportsStartGeneratorService,\r\n private contractCommandService: ContractCommandService,\r\n public modalService: BsModalService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.siteReference = this.route.parent.parent.snapshot.params['siteReference'];\r\n const obs$ = combineLatest(\r\n [this.siteDetailQueryService.siteDetailDataChanges(this.siteReference),\r\n this.configurationQueryService.configurationDataChanges(),\r\n this.route.params,\r\n this.customersQueryService.customersDataChanges()]\r\n );\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1], latest[2]['contractReference'], latest[3]));\r\n }\r\n\r\n refreshComponent(\r\n site: SiteWebAppData,\r\n configuration: ConfigurationData,\r\n contractReference: string,\r\n customers: CustomerWebAppData[]\r\n ): void {\r\n let contract;\r\n this.companyDetails = configuration.CompanyDetails;\r\n if (this.selectedContract && this.selectedContract.ContractReference) {\r\n contract = cloneDeep(site.Contracts.find(c => c.ContractReference === this.selectedContract.ContractReference));\r\n }\r\n // When updating the contract reference it may temporarily not match any contract.\r\n if (!contract) {\r\n return;\r\n }\r\n this.contract = contract;\r\n\r\n this.site = site;\r\n this.customers = customers;\r\n this.configuration = configuration;\r\n this.scheduleTypeEnum = ScheduleTypeEnum;\r\n (this.contract as any).name = customers.find(c => c.CustomerId === this.contract.CustomerId).CustomerName;\r\n\r\n this.activeCompanyContacts = map(this.contract.ContractContacts)\r\n .filter(c => !c.IsInactive && c.ContactTypeId === contactTypeIds.companyContact && c.ContactTypeId !== contactTypeIds.bccContact)\r\n .sort((a, b) => (a.ContactName.toLowerCase() > b.ContactName.toLowerCase() ? 1 : -1));\r\n this.contactTypes = configuration.ContactTypes;\r\n this.contractContactsChanged = false;\r\n this.updateInProgress = false;\r\n\r\n this.activeBccContacts = map(this.contract.ContractContacts)\r\n .filter(c => !c.IsInactive && c.ContactTypeId === contactTypeIds.bccContact);\r\n\r\n this.contractContactsFormArray = new UntypedFormArray(this.activeCompanyContacts.map(c => this.createFormGroup(c)));\r\n\r\n this.contractContactsFormArray.valueChanges.subscribe(contactValues => {\r\n this.contractContactsChanged = this.formValuesChanged(\r\n contactValues,\r\n this.scheduledReportsIntervalFormControl.value\r\n );\r\n });\r\n\r\n const scheduledReportsInterval = this.activeCompanyContacts.length\r\n ? this.activeCompanyContacts[0].ScheduleType\r\n : ScheduleTypeEnum.Weekly;\r\n this.scheduledReportsIntervalFormControl = new UntypedFormControl(scheduledReportsInterval);\r\n\r\n this.scheduledReportsIntervalFormControl.valueChanges.subscribe(interval => {\r\n this.contractContactsChanged = this.formValuesChanged(this.contractContactsFormArray.value, interval);\r\n });\r\n\r\n this.contractContactsForm = new UntypedFormGroup({\r\n contractContacts: this.contractContactsFormArray,\r\n scheduledReportsInterval: this.scheduledReportsIntervalFormControl\r\n });\r\n }\r\n\r\n createFormGroup(contact: ContractContactData): UntypedFormGroup {\r\n return new UntypedFormGroup({\r\n handoverCertificates: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.HandoverCertificate)\r\n ),\r\n variationInstructions: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.VariationInstructions)\r\n ),\r\n inspectionsCompleted: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.InspectionsCompleted)\r\n ),\r\n inspectionStatuses: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.InspectionStatuses)\r\n ),\r\n subContractorInspections: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.SubContractorInspections)\r\n ),\r\n detailedInspection: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.SiteInspectionsCompleted)\r\n )\r\n });\r\n }\r\n\r\n addEditContractContact(editMode: boolean, contractContact?: ContractContactData): void {\r\n const context: AddEditCompanyContactModalContext = Object.assign(new AddEditCompanyContactModalContext(), {\r\n editMode: editMode,\r\n chooseContractMode: false,\r\n site: this.site,\r\n contract: this.contract,\r\n customers: this.customers,\r\n configuration: this.configuration,\r\n contractContact: contractContact\r\n });\r\n this.modalService.show(AddEditCompanyContactModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n onEditContractContact(contractContact: ContractContactData): void {\r\n this.addEditContractContact(true, contractContact);\r\n }\r\n\r\n onAddContractContact(): void {\r\n this.addEditContractContact(false);\r\n }\r\n\r\n onSaveContractContacts(formValues: any): void {\r\n this.updateInProgress = true;\r\n\r\n const results: Observable[] = formValues.contractContacts.map((contactControl, i) => {\r\n const reportSubscriptionTypes = this.getReportSubscriptionType(contactControl);\r\n\r\n const command = {\r\n ContractContactId: this.activeCompanyContacts[i].ContractContactId,\r\n ContactName: this.activeCompanyContacts[i].ContactName,\r\n EmailAddress: this.activeCompanyContacts[i].EmailAddress,\r\n PhoneNumber: this.activeCompanyContacts[i].PhoneNumber,\r\n ContractId: this.contract.ContractId,\r\n ReceiveInspectionReports: true,\r\n IsInactive: false,\r\n ScheduleType: formValues.scheduledReportsInterval,\r\n ScheduledReportStartDate: this.scheduledReportsStartGeneratorService.getStartDate(\r\n formValues.scheduledReportsInterval\r\n ),\r\n ReportSubscriptionTypes: reportSubscriptionTypes,\r\n ContactTypeId: this.activeCompanyContacts[i].ContactTypeId\r\n };\r\n return this.contractCommandService.EditContractContactCommand(command);\r\n });\r\n\r\n const obs$ = forkJoin([...results]);\r\n obs$.subscribe(() => {\r\n // Reload any effected data.\r\n this.siteDetailQueryService.siteDetailQuery(false, this.siteReference);\r\n this.updateInProgress = false;\r\n });\r\n }\r\n\r\n getContactTypeFor(contractContact: ContractContactData): string {\r\n let contactType;\r\n if (contractContact) {\r\n contactType = this.contactTypes[contractContact.ContactTypeId];\r\n }\r\n return contactType ? contactType.Title : '';\r\n }\r\n\r\n private getReportSubscriptionType(contactFormValue: any): ReportSubscriptionTypesEnum {\r\n return (\r\n ReportSubscriptionTypesEnum.HandoverCertificate * +contactFormValue.handoverCertificates +\r\n ReportSubscriptionTypesEnum.VariationInstructions * +contactFormValue.variationInstructions +\r\n ReportSubscriptionTypesEnum.InspectionsCompleted * +contactFormValue.inspectionsCompleted +\r\n ReportSubscriptionTypesEnum.InspectionStatuses * +contactFormValue.inspectionStatuses +\r\n ReportSubscriptionTypesEnum.SubContractorInspections * +contactFormValue.subContractorInspections +\r\n ReportSubscriptionTypesEnum.SiteInspectionsCompleted * +contactFormValue.detailedInspection\r\n );\r\n }\r\n\r\n\r\n addEditBccContact(editMode: boolean, contractContact?: ContractContactData): void {\r\n const context: AddEditBccContactModalContext = Object.assign(new AddEditBccContactModalContext(), {\r\n editMode: editMode,\r\n site: this.site,\r\n contract: this.contract,\r\n contractContact: contractContact\r\n });\r\n this.modalService.show(AddEditBccContactModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n onEditBccContact(contractContact: ContractContactData): void {\r\n this.addEditBccContact(true, contractContact);\r\n }\r\n\r\n onAddBccContact(contractContact: ContractContactData): void {\r\n this.addEditBccContact(false, contractContact);\r\n }\r\n\r\n // TODO: What is the scheduledReportInterval for???\r\n formValuesChanged(contactFormValues: any[], scheduledReportInterval: ScheduleTypeEnum): boolean {\r\n const contactsChanged = some(\r\n contactFormValues,\r\n (contact, i) => this.getReportSubscriptionType(contact) !== this.activeCompanyContacts[i].ReportSubscriptionTypes\r\n );\r\n return contactsChanged;\r\n }\r\n\r\n confirmLeave(): void {\r\n const context: SSDialogContext = {\r\n title: 'Unsaved Changes',\r\n body: 'You have unsaved changes. Carry on and lose the changes?',\r\n dialogClass: 'modal-dialog modal-lg',\r\n headerClass: 'modal-header confirm-modal-header',\r\n okBtnText: 'Yes carry on',\r\n cancelBtnText: 'No stop so I can save my changes',\r\n footerClass: 'modal-footer confirm-modal-footer'\r\n };\r\n this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n\r\n onSelectHelp(helpItem): void {\r\n this.selectedHelp = helpItem;\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n {{ companyDetails.CompanyName }}\r\n Contacts\r\n \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n

{{ helpItem.name }}

\r\n

{{ helpItem.text }}

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

These are the contacts for {{ contract.name }} on this site.

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n add contact\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n Warning:\r\n None of your staff are receiving emails for this contract.\r\n
\r\n
\r\n
\r\n \r\n \r\n Add Company Contact\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Handover Certificates\r\n
\r\n
\r\n
\r\n Variation Instructions\r\n
\r\n
\r\n
\r\n Inspection Summary\r\n
\r\n
\r\n
\r\n Detailed Inspection\r\n
\r\n
\r\n
\r\n Inspection Status\r\n
\r\n
\r\n
\r\n Sub-Contractors Inspections\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n

{{ activeCompanyContacts[i].EmailAddress }}\r\n

\r\n

{{ activeCompanyContacts[i].PhoneNumber }}

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

{{ activeCompanyContacts[i].ContactName}}

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

{{ activeCompanyContacts[i].ContactName}}

\r\n

{{ getContactTypeFor(activeCompanyContacts[i]) }}

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

{{ activeCompanyContacts[i].EmailAddress }}

\r\n

{{ activeCompanyContacts[i].PhoneNumber }}

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Edit\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n

\r\n {{ activeBccContacts[0].EmailAddress }}\r\n

\r\n

Send a copy of all customer emails to this address

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

BCC email address

\r\n
\r\n

BCC email address

\r\n

Send a copy of all customer emails to this address

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

{{ activeBccContacts[0].EmailAddress }}

\r\n
\r\n \r\n \r\n add bcc email\r\n address\r\n \r\n \r\n \r\n \r\n Edit\r\n \r\n \r\n
\r\n
\r\n app reports\r\n scheduled documents\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
","import { Component, OnDestroy, OnInit, Input } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { cloneDeep, map, some } from 'lodash';\r\nimport { Observable, combineLatest, forkJoin } from 'rxjs';\r\nimport {\r\n ConfigurationData,\r\n ContactTypeData,\r\n ContractCommandService,\r\n ContractContactData,\r\n ContractData,\r\n CustomerWebAppData,\r\n ReportSubscriptionTypesEnum,\r\n ScheduleTypeEnum,\r\n SiteWebAppData\r\n} from 'app/core/hub-api';\r\nimport { ConfigurationQueryService } from '../../../../../core/services/configuration-query.service';\r\nimport { CustomersQueryService } from '../../../../../core/services/customers-query.service';\r\nimport { AddEditContractContactModalContext } from '../../../../models/add-edit-contract-contact-modal-context';\r\nimport { ScheduledReportsStartGeneratorService } from '../../../../services/scheduled-reports-start-generator.service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { AddEditContractContactModalComponent } from '../add-edit-contract-contact-modal/add-edit-contract-contact-modal.component';\r\nimport { customerContactsHelpPanelData } from '../../../../values/contracts-help-panel-data';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { contactTypeIds } from '../../../../../shared/values/contact-type-ids';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSDialogContext, SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { ModalDialogComponent } from 'app/shared/components/modal-dialog/modal-dialog.component';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-site-contract-contacts',\r\n templateUrl: './site-contract-contacts.component.html',\r\n styleUrls: ['./site-contract-contacts.component.scss']\r\n})\r\nexport class SiteContractContactsComponent implements OnInit, OnDestroy {\r\n @Input()\r\n selectedContract: ContractData;\r\n\r\n contract: ContractData;\r\n activeContractContacts: ContractContactData[];\r\n site: SiteWebAppData;\r\n siteReference: string;\r\n\r\n customers: CustomerWebAppData[];\r\n configuration: ConfigurationData;\r\n\r\n contactTypes: { [key: string]: ContactTypeData };\r\n\r\n contractContactsChanged: boolean;\r\n updateInProgress: boolean;\r\n\r\n contractContactsForm: UntypedFormGroup;\r\n contractContactsFormArray: UntypedFormArray;\r\n scheduledReportsIntervalFormControl: UntypedFormControl;\r\n\r\n scheduleTypeEnum: any;\r\n\r\n contactHelpPanelData = customerContactsHelpPanelData;\r\n selectedHelp = customerContactsHelpPanelData[0];\r\n\r\n showCustomerContacts: boolean;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private scheduledReportsStartGeneratorService: ScheduledReportsStartGeneratorService,\r\n private contractCommandService: ContractCommandService,\r\n public modalService: BsModalService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.siteReference = this.route.parent.parent.snapshot.params['siteReference'];\r\n const obs$ = combineLatest(\r\n [this.siteDetailQueryService.siteDetailDataChanges(this.siteReference),\r\n this.configurationQueryService.configurationDataChanges(),\r\n this.route.params,\r\n this.customersQueryService.customersDataChanges()]\r\n );\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1], latest[2]['contractReference'], latest[3]));\r\n }\r\n\r\n refreshComponent(\r\n site: SiteWebAppData,\r\n configuration: ConfigurationData,\r\n contractReference: string,\r\n customers: CustomerWebAppData[]\r\n ): void {\r\n let contract;\r\n if (this.selectedContract && this.selectedContract.ContractReference) {\r\n contract = cloneDeep(site.Contracts.find(c => c.ContractReference === this.selectedContract.ContractReference));\r\n }\r\n // When updating the contract reference it may temporarily not match any contract.\r\n if (!contract) {\r\n return;\r\n }\r\n this.contract = contract;\r\n\r\n this.site = site;\r\n this.customers = customers;\r\n this.configuration = configuration;\r\n this.scheduleTypeEnum = ScheduleTypeEnum;\r\n (this.contract as any).name = customers.find(c => c.CustomerId === this.contract.CustomerId).CustomerName;\r\n\r\n this.activeContractContacts = map(this.contract.ContractContacts)\r\n .filter(c => !c.IsInactive && c.ContactTypeId !== contactTypeIds.companyContact && c.ContactTypeId !== contactTypeIds.bccContact)\r\n .sort((a, b) => (a.ContactName.toLowerCase() > b.ContactName.toLowerCase() ? 1 : -1));\r\n this.contactTypes = configuration.ContactTypes;\r\n this.contractContactsChanged = false;\r\n this.updateInProgress = false;\r\n\r\n\r\n\r\n this.contractContactsFormArray = new UntypedFormArray(this.activeContractContacts.map(c => this.createFormGroup(c)));\r\n\r\n this.contractContactsFormArray.valueChanges.subscribe(contactValues => {\r\n this.contractContactsChanged = this.formValuesChanged(\r\n contactValues,\r\n this.scheduledReportsIntervalFormControl.value\r\n );\r\n });\r\n\r\n const scheduledReportsInterval = this.activeContractContacts.length\r\n ? this.activeContractContacts[0].ScheduleType\r\n : ScheduleTypeEnum.Weekly;\r\n this.scheduledReportsIntervalFormControl = new UntypedFormControl(scheduledReportsInterval);\r\n\r\n this.scheduledReportsIntervalFormControl.valueChanges.subscribe(interval => {\r\n this.contractContactsChanged = this.formValuesChanged(this.contractContactsFormArray.value, interval);\r\n });\r\n\r\n this.contractContactsForm = new UntypedFormGroup({\r\n contractContacts: this.contractContactsFormArray,\r\n scheduledReportsInterval: this.scheduledReportsIntervalFormControl\r\n });\r\n }\r\n\r\n createFormGroup(contact: ContractContactData): UntypedFormGroup {\r\n return new UntypedFormGroup({\r\n handoverCertificates: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.HandoverCertificate)\r\n ),\r\n variationInstructions: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.VariationInstructions)\r\n ),\r\n inspectionsCompleted: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.InspectionsCompleted)\r\n ),\r\n inspectionStatuses: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.InspectionStatuses)\r\n ),\r\n subContractorInspections: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.SubContractorInspections)\r\n ),\r\n detailedInspection: new UntypedFormControl(\r\n !!(contact.ReportSubscriptionTypes & ReportSubscriptionTypesEnum.SiteInspectionsCompleted)\r\n )\r\n });\r\n }\r\n\r\n addEditContractContact(editMode: boolean, contractContact?: ContractContactData): void {\r\n const context: AddEditContractContactModalContext = Object.assign(new AddEditContractContactModalContext(), {\r\n editMode: editMode,\r\n chooseContractMode: false,\r\n site: this.site,\r\n contract: this.contract,\r\n customers: this.customers,\r\n configuration: this.configuration,\r\n contractContact: contractContact\r\n });\r\n const modal = this.modalService.show(AddEditContractContactModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n onEditContractContact(contractContact: ContractContactData): void {\r\n this.addEditContractContact(true, contractContact);\r\n }\r\n\r\n onAddContractContact(): void {\r\n this.addEditContractContact(false);\r\n }\r\n\r\n\r\n onSaveContractContacts(formValues: any): void {\r\n this.updateInProgress = true;\r\n\r\n const results: Observable[] = formValues.contractContacts.map((contactControl, i) => {\r\n const reportSubscriptionTypes = this.getReportSubscriptionType(contactControl);\r\n\r\n const command = {\r\n ContractContactId: this.activeContractContacts[i].ContractContactId,\r\n ContactName: this.activeContractContacts[i].ContactName,\r\n EmailAddress: this.activeContractContacts[i].EmailAddress,\r\n PhoneNumber: this.activeContractContacts[i].PhoneNumber,\r\n ContractId: this.contract.ContractId,\r\n ReceiveInspectionReports: true,\r\n IsInactive: false,\r\n ScheduleType: formValues.scheduledReportsInterval,\r\n ScheduledReportStartDate: this.scheduledReportsStartGeneratorService.getStartDate(\r\n formValues.scheduledReportsInterval\r\n ),\r\n ReportSubscriptionTypes: reportSubscriptionTypes,\r\n ContactTypeId: this.activeContractContacts[i].ContactTypeId\r\n };\r\n return this.contractCommandService.EditContractContactCommand(command);\r\n });\r\n\r\n const obs$ = forkJoin([...results]);\r\n obs$.subscribe(() => {\r\n // Reload any effected data.\r\n this.siteDetailQueryService.siteDetailQuery(false, this.siteReference);\r\n this.updateInProgress = false;\r\n });\r\n }\r\n\r\n getContactTypeFor(contractContact: ContractContactData): string {\r\n let contactType;\r\n if (contractContact) {\r\n contactType = this.contactTypes[contractContact.ContactTypeId];\r\n }\r\n return contactType ? contactType.Title : '';\r\n }\r\n\r\n private getReportSubscriptionType(contactFormValue: any): ReportSubscriptionTypesEnum {\r\n return (\r\n ReportSubscriptionTypesEnum.HandoverCertificate * +contactFormValue.handoverCertificates +\r\n ReportSubscriptionTypesEnum.VariationInstructions * +contactFormValue.variationInstructions +\r\n ReportSubscriptionTypesEnum.InspectionsCompleted * +contactFormValue.inspectionsCompleted +\r\n ReportSubscriptionTypesEnum.InspectionStatuses * +contactFormValue.inspectionStatuses +\r\n ReportSubscriptionTypesEnum.SubContractorInspections * +contactFormValue.subContractorInspections +\r\n ReportSubscriptionTypesEnum.SiteInspectionsCompleted * +contactFormValue.detailedInspection\r\n );\r\n }\r\n\r\n // TODO: What is the scheduledReportInterval for???\r\n formValuesChanged(contactFormValues: any[], scheduledReportInterval: ScheduleTypeEnum): boolean {\r\n const contactsChanged = some(\r\n contactFormValues,\r\n (contact, i) => this.getReportSubscriptionType(contact) !== this.activeContractContacts[i].ReportSubscriptionTypes\r\n );\r\n return contactsChanged;\r\n }\r\n\r\n confirmLeave(): Promise {\r\n return new Promise(resolve => {\r\n const context: SSDialogContext = {\r\n title: 'Unsaved Changes',\r\n body: `You have unsaved changes. Carry on and lose the changes?`,\r\n okBtnText: 'Yes carry on',\r\n cancelBtnText: 'No stop so I can save my changes',\r\n };\r\n const modal = this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context));\r\n return modal.content.onClose.subscribe(\r\n result => {\r\n if (result === null || result === false) return;\r\n resolve(result);\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n });\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n\r\n onSelectHelp(helpItem): void {\r\n this.selectedHelp = helpItem;\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n Customer Contacts\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n Warning: You will need\r\n to\r\n add at least one contact for this customer's scaffolds to appear in SMART Inspector and\r\n SMART Handover.\r\n
\r\n
\r\n
\r\n \r\n \r\n Add Customer Contact\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n

{{ helpItem.name }}

\r\n

{{ helpItem.text }}

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

These are the contacts for {{ contract.name }} on this site.

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n add contact\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Handover Certificates\r\n
\r\n
\r\n
\r\n Variation Instructions\r\n
\r\n
\r\n
\r\n Inspection Summary\r\n
\r\n
\r\n
\r\n Detailed Inspection\r\n
\r\n
\r\n
\r\n Inspection Status\r\n
\r\n
\r\n
\r\n Sub-Contractors Inspections\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n

{{ activeContractContacts[i].EmailAddress\r\n }}

\r\n

{{ activeContractContacts[i].PhoneNumber }}\r\n

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

{{ activeContractContacts[i].ContactName}}

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

{{ activeContractContacts[i].ContactName}}

\r\n

{{ getContactTypeFor(activeContractContacts[i]) }}

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

{{ activeContractContacts[i].EmailAddress }}

\r\n

{{ activeContractContacts[i].PhoneNumber }}

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Edit\r\n \r\n
\r\n
\r\n app reports\r\n scheduled documents\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { cloneDeep, map } from 'lodash';\r\nimport { Subscription, combineLatest } from 'rxjs';\r\nimport { mergeMap, startWith } from 'rxjs/operators';\r\nimport {\r\n ConfigurationData,\r\n ContractData,\r\n ContractInspectionStatus,\r\n CustomerWebAppData,\r\n InspectionStatusEnumEnum,\r\n SiteWebAppData,\r\n StaffDetailsWebAppData\r\n} from 'app/core/hub-api';\r\nimport { ConfigurationQueryService } from '../../../../../core/services/configuration-query.service';\r\nimport { CustomersQueryService } from '../../../../../core/services/customers-query.service';\r\nimport { LoggedInStaffService } from '../../../../../core/services/logged-in-staff-service';\r\nimport { contractStatusIds } from '../../../../../shared/values/contract-status-ids';\r\nimport { customerStatusIds } from '../../../../../shared/values/customer-status-ids';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { siteStatusIds } from '../../../../../shared/values/site-status-ids';\r\nimport { InspectionStatusModalContext } from '../../../../models/inspection-status-modal-context';\r\nimport { OpenCloseContractModalContext } from '../../../../models/open-close-contract-modal-context';\r\nimport { ContractInspectionStatusQueryService } from '../../../../services/contract-inspection-status-query.service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { AddEditContractModalComponent } from '../add-edit-contract-modal/add-edit-contract-modal.component';\r\nimport { InspectionStatusModalComponent } from '../inspection-status-modal/inspection-status-modal.component';\r\nimport { OpenCloseContractModalComponent } from '../open-close-contract-modal/open-close-contract-modal.component';\r\nimport { SiteContractContactsComponent } from '../site-contract-contacts/site-contract-contacts.component';\r\nimport { ConfirmLeaveComponent } from '../../../../../shared/models/confirm-leave';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSDialogContext, SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { ModalDialogComponent } from 'app/shared/components/modal-dialog/modal-dialog.component';\r\nimport { CustomerDetailQueryService } from 'app/core/services/customer-detail-query.service';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-site-contract',\r\n templateUrl: './site-contract.component.html',\r\n styleUrls: ['./site-contract.component.scss']\r\n})\r\nexport class SiteContractComponent implements OnInit, OnDestroy, ConfirmLeaveComponent {\r\n @ViewChild('contacts') contractContactsComponent: SiteContractContactsComponent;\r\n\r\n\r\n disposing: false;\r\n site: SiteWebAppData;\r\n customerReference: string;\r\n customers: CustomerWebAppData[];\r\n loggedInStaff: StaffDetailsWebAppData;\r\n configuration: ConfigurationData;\r\n selectedCustomer: any;\r\n\r\n allContracts: ContractData[];\r\n allCustomers: any;\r\n selectedContract: ContractData;\r\n selectedCustomerContracts: any;\r\n\r\n contractInspectionStatus: ContractInspectionStatus;\r\n inspectionStatusEnum: any;\r\n\r\n contractInspectionStatusesSubscription: Subscription;\r\n\r\n showAdvanced: boolean;\r\n showWeeklyInspections: boolean;\r\n contractInspectionStatuses: any;\r\n\r\n isLoading = false;\r\n\r\n constructor(\r\n public modalService: BsModalService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private contractInspectionStatusQueryService: ContractInspectionStatusQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private loggedInStaffService: LoggedInStaffService,\r\n private customerDetailQueryService: CustomerDetailQueryService,\r\n ) {\r\n // https://stackoverflow.com/questions/39533291/angular2-router-2-0-0-not-reloading-components-when-same-url-loaded-with-differe/39533351#39533351\r\n // since after editing contract the route does not change the url but only query string added.So the site is not getting updated,results in error.\r\n // hence the routeResuseStratgy is false to delete and re-render component even if query strig is updated\r\n this.router.routeReuseStrategy.shouldReuseRoute = function (): any {\r\n return false;\r\n };\r\n }\r\n\r\n /** Initialises the component */\r\n ngOnInit(): void {\r\n this.isLoading = true;\r\n const siteReference = this.route.parent.parent.snapshot.params['siteReference'];\r\n\r\n this.showAdvanced = false;\r\n\r\n const siteDetailChanges = this.siteDetailQueryService.siteDetailDataChanges(siteReference);\r\n const contractInspectionStatusChanges = siteDetailChanges.pipe(\r\n mergeMap(site =>\r\n // emit undefined until the data arrives, so we can display everything apart from the contract inspection status straight away.\r\n this.contractInspectionStatusQueryService.contractInspectionStatusDataChanges(site.SiteId).pipe(\r\n startWith(undefined)\r\n )\r\n )\r\n );\r\n const obs$ = combineLatest(\r\n [\r\n siteDetailChanges,\r\n this.route.params,\r\n this.customersQueryService.customersDataChanges(),\r\n contractInspectionStatusChanges,\r\n this.configurationQueryService.configurationDataChanges(),\r\n this.loggedInStaffService.loggedInStaffChanges()]\r\n );\r\n obs$.subscribe(latest => {\r\n const site = latest[0];\r\n const routeParams = latest[1];\r\n const customers = latest[2];\r\n const contractInspectionStatuses = latest[3];\r\n const configuration = latest[4];\r\n const loggedInStaff = latest[5];\r\n \r\n this.refreshComponent(\r\n site,\r\n routeParams.customerReference,\r\n customers,\r\n contractInspectionStatuses,\r\n configuration,\r\n loggedInStaff\r\n );\r\n });\r\n }\r\n\r\n /** Sets all initial values for displaying data on the UI */\r\n refreshComponent(site: SiteWebAppData, customerReference: string, customers: CustomerWebAppData[],\r\n contractInspectionStatuses: any, configuration: ConfigurationData,\r\n loggedInStaff: StaffDetailsWebAppData): void {\r\n\r\n this.loggedInStaff = loggedInStaff;\r\n this.configuration = configuration;\r\n const allContracts = site.Contracts.map((contract: any) => {\r\n // Don't modify the cached data object, clone it.\r\n contract = cloneDeep(contract);\r\n contract.name = customers.find(c => c.CustomerId === contract.CustomerId).CustomerName;\r\n return contract;\r\n });\r\n\r\n this.site = site;\r\n this.customers = customers;\r\n\r\n this.customerReference = customerReference ? customerReference : customers.find(c => c.CustomerId === this.site.Contracts[0].CustomerId).CustomerReference;\r\n this.allContracts = allContracts.sort((a, b) => (a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1));\r\n const allCustomerIds = this.allContracts.map(c => c.CustomerId);\r\n this.allCustomers = customers.filter(c => allCustomerIds.includes(c.CustomerId));\r\n\r\n this.selectedCustomer = this.allCustomers.find(c => c.CustomerReference === customerReference);\r\n this.selectedCustomerContracts = this.allContracts.filter(c => c.CustomerId === this.selectedCustomer.CustomerId);\r\n\r\n this.contractInspectionStatuses = contractInspectionStatuses;\r\n\r\n this.inspectionStatusEnum = InspectionStatusEnumEnum;\r\n this.isLoading = false;\r\n }\r\n\r\n\r\n /** \r\n * Returns the contract inspection statuses for a selected contract.\r\n * The contract inspection statuses are available only after the data arrives.\r\n */\r\n contractInspStatuses(selectedContract): any {\r\n // Ignore contractInspectionStatuses until the data arrives.\r\n if (this.contractInspectionStatuses) {\r\n const contractWithInspectionStatus = this.contractInspectionStatuses.find(\r\n c => c.ContractId === selectedContract.ContractId\r\n );\r\n if (!contractWithInspectionStatus) {\r\n return;\r\n }\r\n return contractWithInspectionStatus.InspectionStatus;\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * Determines whether a contract can be opened.\r\n * @param selectedContract The contract to be opened.\r\n * @returns True if the contract can be opened.\r\n */\r\n openValid(selectedContract: ContractData): boolean {\r\n const openContracts = map(this.site.Contracts).some(\r\n c =>\r\n c.ContractId !== selectedContract.ContractId &&\r\n c.ContractStatusId === contractStatusIds.open &&\r\n c.CustomerId === selectedContract.CustomerId\r\n );\r\n\r\n const customerDeleted =\r\n this.customers.find(c => c.CustomerId === selectedContract.CustomerId).CustomerStatusId ===\r\n customerStatusIds.inactive;\r\n\r\n const siteClosed = this.site.SiteStatusId === siteStatusIds.closed;\r\n\r\n return !openContracts && !customerDeleted && !siteClosed;\r\n }\r\n\r\n /** Returns a customer deleted error */\r\n customerDeletedError(selectedContract: ContractData): any {\r\n const customerDeleted = this.customers.find(c => c.CustomerId === selectedContract.CustomerId).CustomerStatusId === customerStatusIds.inactive;\r\n return customerDeleted ? errorMessages.cannotOpenContractForDeletedCustomer : '';\r\n }\r\n\r\n /** Returns a closed site error in case the site is closed */\r\n siteClosedError(selectedContract: ContractData): string {\r\n const siteClosed = this.site.SiteStatusId === siteStatusIds.closed;\r\n return siteClosed ? errorMessages.cannotOpenContractForClosedSite : '';\r\n }\r\n\r\n /** Opens the add edit contract modal */\r\n addEditContract(editMode: boolean, contract?: ContractData): void {\r\n const context = {\r\n editMode: editMode,\r\n customers: this.customers,\r\n site: this.site,\r\n contract: contract,\r\n configuration: this.configuration\r\n };\r\n\r\n const modal = this.modalService.show(AddEditContractModalComponent, SSModalConfig.generate(context));\r\n modal.onHidden.subscribe(\r\n customerReference => {\r\n if (customerReference && typeof customerReference === 'string') {\r\n this.customerDetailQueryService.customerDetailQuery(false, customerReference).subscribe(customer => {\r\n var customerContract = this.site.Contracts.find(c => c.CustomerId === customer.CustomerId);\r\n if (customerContract) this.router.navigate([`../${customerReference}`], { relativeTo: this.route });\r\n });\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n\r\n /** Opens the add contract modal */\r\n onAddContract(): void {\r\n this.addEditContract(false);\r\n }\r\n\r\n /** Opens the add edit contract modal */\r\n onEditContract(selectedContract: ContractData): void {\r\n this.addEditContract(true, selectedContract);\r\n }\r\n\r\n /** Detects if the given contract is closed */\r\n contractIsClosed(contract: ContractData): boolean {\r\n return contract && contract.ContractStatusId === contractStatusIds.closed;\r\n }\r\n\r\n /** Detects if the given contract has contacts */\r\n hasContacts(contract: ContractData): number {\r\n return contract && map(contract.ContractContacts).length;\r\n }\r\n\r\n /** Detects of the given contract contains at least one active contract contact */\r\n hasAtLeastOneActiveContractContact(contract: ContractData): boolean {\r\n return contract && map(contract.ContractContacts).some(c => c.IsInactive === false);\r\n }\r\n\r\n /** Stops the inspections for the given contract */\r\n stopInspections(selectedContract: ContractData): void {\r\n this.editInspectionStatus(false, true, false, selectedContract);\r\n }\r\n\r\n /** Pauses the inspections for the given contract */\r\n pauseInspections(selectedContract: ContractData): void {\r\n this.editInspectionStatus(true, false, false, selectedContract);\r\n }\r\n\r\n /** Resumes the inspections for the given contract */\r\n resumeInspections(selectedContract: ContractData): void {\r\n this.editInspectionStatus(false, false, true, selectedContract);\r\n }\r\n\r\n /** Opens the inspection status modal */\r\n editInspectionStatus(pauseMode: boolean, stopMode: boolean, resumeMode: boolean, selectedContract: ContractData): void {\r\n const context: InspectionStatusModalContext = Object.assign(new InspectionStatusModalContext(), {\r\n site: this.site,\r\n contract: selectedContract,\r\n customers: this.customers,\r\n pauseMode: pauseMode,\r\n stopMode: stopMode,\r\n resumeMode: resumeMode,\r\n loggedInStaff: this.loggedInStaff\r\n });\r\n const modal = this.modalService.show(InspectionStatusModalComponent, SSModalConfig.generate(context));\r\n modal.onHidden.subscribe({\r\n next: result => {\r\n this.contractInspectionStatusQueryService.contractInspectionStatusQuery(false, this.site.SiteId).subscribe({\r\n next: contractInspectionStatuses => {\r\n this.contractInspectionStatuses = contractInspectionStatuses;\r\n },\r\n error: error => {\r\n console.error(error);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n /** Opens openCloseContract modal with openMode false */\r\n onCloseContract(selectedContract: ContractData): void {\r\n this.openCloseContract(false, selectedContract);\r\n }\r\n\r\n /** Opens openCloseContract modal with openMode true */\r\n onOpenContract(selectedContract: ContractData): void {\r\n if (!this.customerDeletedError(selectedContract)) {\r\n this.openCloseContract(true, selectedContract);\r\n }\r\n }\r\n\r\n /** Opens the close the contract modal */\r\n openCloseContract(openMode: boolean, selectedContract: ContractData): void {\r\n const context: OpenCloseContractModalContext = Object.assign(new OpenCloseContractModalContext(), {\r\n openMode: openMode,\r\n site: this.site,\r\n contract: selectedContract,\r\n customers: this.customers\r\n });\r\n this.modalService.show(OpenCloseContractModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n /** Confirms if the user wants to leave the page with unsaved changes */\r\n shouldConfirmLeave(): boolean {\r\n return !!(this.contractContactsComponent && this.contractContactsComponent.contractContactsChanged);\r\n }\r\n\r\n /** Displays the confirm leave modal */\r\n displayConfirmLeaveModal(): Promise {\r\n return new Promise(resolve => {\r\n const context: SSDialogContext = {\r\n title: 'Unsaved Changes',\r\n body: 'You have unsaved changes. Carry on and lose the changes?',\r\n dialogClass: 'modal-dialog modal-lg',\r\n headerClass: 'modal-header confirm-modal-header',\r\n okBtnText: 'Yes carry on',\r\n cancelBtnText: 'No stop so I can save my changes',\r\n footerClass: 'modal-footer confirm-modal-footer'\r\n };\r\n const modal = this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context));\r\n modal.content.onClose.subscribe(result => {\r\n if (result === true) {\r\n resolve(result);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /** Displays the confirm delete modal */\r\n onSelectCustomer(customerReference): void {\r\n this.router.navigate([`../${customerReference}`], { relativeTo: this.route });\r\n }\r\n\r\n /**\r\n * Returns if there is an error with the contract\r\n * This shows a warning icon next to the contract name so the user knows that there is a contract contact missing\r\n */\r\n contractValueError(selectedContract: ContractData): boolean {\r\n return (!this.hasContacts(selectedContract) && !this.contractIsClosed(selectedContract)) || !this.hasAtLeastOneActiveContractContact(selectedContract)\r\n }\r\n\r\n\r\n /** Required by the AutoUnsubscribe */\r\n ngOnDestroy(): void { }\r\n}\r\n","\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n

Contracts

\r\n \r\n \r\n New Contract\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

{{selectedContract.ContractName}} ({{selectedContract.ContractReference}})

\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n {{ selectedContract.CreationDate | datetime: 'll' }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n

Description:\r\n {{selectedContract.Description}}

\r\n

Type: {{selectedContract.ContractType}}\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n edit contract\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n Contract Closed\r\n

This contract has been closed. If you would like to open it again then\r\n please press the 'Open Contract' button below.

\r\n
\r\n
\r\n
\r\n \r\n \r\n Open Contract\r\n \r\n
\r\n
\r\n
\r\n

\r\n \r\n {{ customerDeletedError(selectedContract) }}\r\n

\r\n

\r\n \r\n {{ siteClosedError(selectedContract) }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n Weekly\r\n Inspections\r\n \r\n\r\n
\r\n
\r\n \r\n

Loading Weekly Inspection Data...

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

Weekly inspections are currently\r\n active for {{selectedContract.ContractName}} on this site.\r\n \r\n

\r\n \r\n Pause\r\n \r\n Stop\r\n
\r\n
\r\n

Weekly inspections are currently\r\n not contracted for {{selectedContract.ContractName}} on this site.\r\n \r\n

\r\n \r\n Resume\r\n
\r\n
\r\n

Weekly inspections are currently\r\n paused for {{selectedContract.ContractName}} on this site and will resume on\r\n {{contractInspStatuses(selectedContract).ResumeDate\r\n | datetime: 'll' }}\r\n \r\n

\r\n

Weekly inspections are currently\r\n paused for {{selectedContract.ContractName}} on this site\r\n \r\n

\r\n \r\n Resume\r\n \r\n Stop\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Advanced options\r\n \r\n \r\n Close Contract\r\n \r\n
\r\n
\r\n \r\n\r\n\r\n\r\n
\r\n
","import { combineLatest } from 'rxjs';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ConfigurationData, CustomerWebAppData, SiteWebAppData } from 'app/core/hub-api';\r\nimport { ConfigurationQueryService } from '../../../../../core/services/configuration-query.service';\r\nimport { CustomersQueryService } from '../../../../../core/services/customers-query.service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { AddEditContractModalComponent } from '../add-edit-contract-modal/add-edit-contract-modal.component';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\n\r\n@Component({\r\n selector: 'hub-site-contracts-welcome',\r\n templateUrl: './site-contracts-welcome.component.html',\r\n styleUrls: ['./site-contracts-welcome.component.scss']\r\n})\r\nexport class SiteContractsWelcomeComponent implements OnInit, OnDestroy {\r\n customers: CustomerWebAppData[];\r\n site: SiteWebAppData;\r\n configuration: ConfigurationData;\r\n\r\n constructor(\r\n public modalService: BsModalService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private configurationQueryService: ConfigurationQueryService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n const siteReference = this.route.parent.parent.snapshot.params.siteReference;\r\n const obs$ = combineLatest(\r\n [this.siteDetailQueryService.siteDetailDataChanges(siteReference),\r\n this.customersQueryService.customersDataChanges(),\r\n this.configurationQueryService.configurationDataChanges()]\r\n );\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1], latest[2]));\r\n }\r\n refreshComponent(site: SiteWebAppData, customers: CustomerWebAppData[], configuration: ConfigurationData): void {\r\n this.site = site;\r\n this.customers = customers;\r\n this.configuration = configuration;\r\n }\r\n\r\n onAddContract(): void {\r\n const context = {\r\n editMode: false,\r\n customers: this.customers,\r\n site: this.site,\r\n configuration: this.configuration\r\n };\r\n var modal = this.modalService.show(AddEditContractModalComponent, SSModalConfig.generate(context))\r\n modal.onHidden.subscribe(\r\n customerReference => {\r\n if (customerReference && typeof customerReference === 'string') {\r\n this.router.navigate([`./${customerReference}`], { relativeTo: this.route });\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","\r\n
\r\n
\r\n \r\n

Welcome to the site contracts area

\r\n

It looks like you haven't added any customers to the site yet.\r\n Click the 'New Contract' button to add a customer to the site and start a new contract.

\r\n \r\n \r\n New\r\n Contract\r\n \r\n \r\n

Before creating a contract you need to add at least one customer\r\n to the system. You can do that here!

\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-site-contracts',\r\n templateUrl: './site-contracts.component.html',\r\n styleUrls: ['./site-contracts.component.scss']\r\n})\r\nexport class SiteContractsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription, combineLatest } from 'rxjs';\r\nimport {\r\n HandoverStatisticsData, ScaffoldStatisticsData,\r\n SiteDashBoardScaffoldInspectionData, SiteWebAppData, ContractData, ScaffoldStatisticsQuery, HandoverStatisticsQuery\r\n} from 'app/core/hub-api';\r\n\r\nimport { HandoverStatisticsQueryService } from '../../../../../core/services/handover-statistics-query-service';\r\nimport { ScaffoldInspectionQueryService } from '../../../../../core/services/scaffold-inspection-query-service';\r\nimport { ScaffoldStatisticsQueryService } from '../../../../../core/services/scaffold-statistics-query-service';\r\nimport { dates } from '../../../../../shared/values/dates';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { CustomersQueryService } from 'app/core/services/customers-query.service';\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-site-dashboard-contract',\r\n templateUrl: './site-dashboard-contract.component.html',\r\n styleUrls: ['./site-dashboard-contract.component.scss']\r\n})\r\nexport class SiteDashboardContractComponent implements OnInit, OnDestroy {\r\n contractId: string;\r\n site: SiteWebAppData;\r\n inspectionData: SiteDashBoardScaffoldInspectionData[];\r\n scaffoldStatisticsData: ScaffoldStatisticsData;\r\n handoverStatisticsData: HandoverStatisticsData;\r\n\r\n readonly sixDaysAgo = dates.sixDaysAgo;\r\n readonly elevenMonthsAgo = dates.elevenMonthsAgo;\r\n readonly today = dates.today;\r\n readonly tomorrow = dates.tomorrow;\r\n\r\n private scaffoldStatisticsSubscription: Subscription;\r\n private handoverStatisticsSubscription: Subscription;\r\n\r\n contracts: ContractData[];\r\n customers: any;\r\n selectedCustomer: any;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private scaffoldInspectionQueryService: ScaffoldInspectionQueryService,\r\n private scaffoldStatisticsQueryService: ScaffoldStatisticsQueryService,\r\n private handoverStatisticsQueryService: HandoverStatisticsQueryService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n const siteReference = this.route.parent.parent.snapshot.params['siteReference'];\r\n\r\n const siteDetailChanges = this.siteDetailQueryService.siteDetailQuery(false, siteReference);\r\n const siteDetailChanges$ = siteDetailChanges.pipe(\r\n mergeMap(site => this.scaffoldInspectionQueryService.scaffoldInspectionDataChanges(site.SiteId))\r\n );\r\n siteDetailChanges$.subscribe(inspectionData => (this.inspectionData = inspectionData));\r\n\r\n siteDetailChanges.subscribe(site => (this.site = site));\r\n const obs$ = combineLatest([\r\n siteDetailChanges,\r\n this.route.params,\r\n this.customersQueryService.customersDataChanges()\r\n ]);\r\n obs$.subscribe(latest => {\r\n const site = latest[0];\r\n const params = latest[1];\r\n this.customers = latest[2];\r\n\r\n const customerReference = params['customerReference'];\r\n\r\n this.selectedCustomer = this.customers.find(c => c.CustomerReference === customerReference);\r\n // Query new statistics data when the contract id changes.\r\n const query: ScaffoldStatisticsQuery | HandoverStatisticsQuery = new HandoverStatisticsQuery();\r\n\r\n this.scaffoldStatisticsData = undefined;\r\n this.handoverStatisticsData = undefined;\r\n\r\n // Unsubscribe from previous query result in case the data hasn't arrived yet.\r\n if (this.scaffoldStatisticsSubscription) {\r\n this.scaffoldStatisticsSubscription.unsubscribe();\r\n }\r\n if (this.handoverStatisticsSubscription) {\r\n this.handoverStatisticsSubscription.unsubscribe();\r\n }\r\n\r\n query.DepotId = this.site.SiteDepotId;\r\n query.SiteId = this.site.SiteId;\r\n query.AdminAssignedSitesOnly = false;\r\n\r\n if (this.selectedCustomer && this.selectedCustomer.CustomerId) {\r\n query.CustomerId = this.selectedCustomer.CustomerId;\r\n }\r\n\r\n this.scaffoldStatisticsSubscription = this.scaffoldStatisticsQueryService\r\n .scaffoldStatisticsQuery(true, query)\r\n .subscribe(scaffoldStatisticsData => (this.scaffoldStatisticsData = scaffoldStatisticsData[0]));\r\n this.handoverStatisticsSubscription = this.handoverStatisticsQueryService\r\n .handoverStatisticsQuery(true, query)\r\n .subscribe(handoverStatisticsData => (this.handoverStatisticsData = handoverStatisticsData));\r\n });\r\n\r\n }\r\n\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n

\r\n Current Scaffold Status

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

\r\n Scaffolds in Extra Hire

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

\r\n Handovers Last 7 days

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

\r\n Inspections Last 7 Days

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

\r\n Monthly Inspection Results

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

\r\n Inspections Today

\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
","import { Subscription, Observable, combineLatest } from 'rxjs';\r\n\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { cloneDeep } from 'lodash';\r\nimport { CustomerWebAppData, HandoverStatisticsQuery, ScaffoldStatisticsQuery, SiteWebAppData } from 'app/core/hub-api';\r\nimport { ContractData } from 'app/core/hub-api';\r\n\r\nimport { CustomersQueryService } from '../../../../../core/services/customers-query.service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { ScaffoldInspectionQueryService } from 'app/core/services/scaffold-inspection-query-service';\r\nimport { ScaffoldStatisticsQueryService } from 'app/core/services/scaffold-statistics-query-service';\r\nimport { HandoverStatisticsQueryService } from 'app/core/services/handover-statistics-query-service';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-site-dashboard',\r\n templateUrl: './site-dashboard.component.html',\r\n styleUrls: ['./site-dashboard.component.scss']\r\n})\r\nexport class SiteDashboardComponent implements OnInit, OnDestroy {\r\n contracts: ContractData[];\r\n customers: any;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private scaffoldInspectionQueryService: ScaffoldInspectionQueryService,\r\n private scaffoldStatisticsQueryService: ScaffoldStatisticsQueryService,\r\n private handoverStatisticsQueryService: HandoverStatisticsQueryService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n const siteReference = this.route.parent.snapshot.params['siteReference'];\r\n const obs$ = combineLatest(\r\n [this.siteDetailQueryService.siteDetailDataChanges(siteReference),\r\n this.customersQueryService.customersDataChanges()]\r\n );\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1]));\r\n }\r\n\r\n refreshComponent(site: SiteWebAppData, customers: CustomerWebAppData[]): void {\r\n // Dashboard data.\r\n this.scaffoldInspectionQueryService.scaffoldInspectionQuery(true, site.SiteId);\r\n this.scaffoldStatisticsQueryService\r\n .scaffoldStatisticsQuery(true, Object.assign(new ScaffoldStatisticsQuery(), { SiteId: site.SiteId }));\r\n this.handoverStatisticsQueryService\r\n .handoverStatisticsQuery(true, Object.assign(new HandoverStatisticsQuery(), { SiteId: site.SiteId }));\r\n\r\n this.contracts = site.Contracts.map(contract => {\r\n // Don't modify the cached data, clone it.\r\n contract = cloneDeep(contract);\r\n (contract as any).name = customers.find(customer => customer.CustomerId === contract.CustomerId).CustomerName;\r\n (contract as any).customerReference = customers.find(customer => customer.CustomerId === contract.CustomerId).CustomerReference;\r\n (contract as any).customerName = customers.find(customer => customer.CustomerId === contract.CustomerId).CustomerName;\r\n\r\n return contract as any;\r\n }).sort((a, b) => (a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1));\r\n const customerIds = this.contracts.map(c => c.CustomerId);\r\n this.customers = customers.filter(c => customerIds.includes(c.CustomerId));\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Dashboard

\r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { map, cloneDeep } from 'lodash';\r\nimport { SiteAreaData, SiteCommandService, SiteWebAppData, UpdateAreasCommand, SiteAreaDetails } from 'app/core/hub-api';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { AddEditAreaModalContext } from '../../../../models/add-edit-area-modal-context';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { mustNotExistValidator } from '../../../../../shared/validators/must-not-exist.validator';\r\nimport { forkJoin } from 'rxjs';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-add-edit-area-modal',\r\n templateUrl: './add-edit-area-modal.component.html',\r\n styleUrls: ['./add-edit-area-modal.component.scss']\r\n})\r\nexport class AddEditAreaModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n\r\n editMode: boolean;\r\n\r\n site: SiteWebAppData;\r\n\r\n area: SiteAreaData;\r\n\r\n form: UntypedFormGroup;\r\n areaNameFormControl: UntypedFormControl;\r\n\r\n deleteValidationMessage: string;\r\n\r\n validationMessages = {\r\n areaName: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.areaNameMustBeUnique,\r\n },\r\n };\r\n\r\n areaWasDeleted: boolean;\r\n\r\n @Output() closeAreaModalEvent = new EventEmitter();\r\n\r\n constructor(\r\n private bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private siteCommandService: SiteCommandService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService,\r\n public modalService: BsModalService,\r\n ) { super(); }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.editMode = this.context.editMode;\r\n this.site = this.context.site;\r\n this.area = cloneDeep(this.context.area) || this.getNewArea();\r\n const areaNames = map(this.site.SiteAreas).map(a => a.AreaName);\r\n const areaValidation = this.editMode ? [Validators.required] : [Validators.required, mustNotExistValidator(areaNames)];\r\n this.areaNameFormControl = new UntypedFormControl(this.area.AreaName, areaValidation);\r\n this.form = new UntypedFormGroup({\r\n areaName: this.areaNameFormControl\r\n });\r\n this.deleteValidationMessage = '';\r\n this.areaWasDeleted = this.area.Deleted;\r\n super.ngOnInit();\r\n }\r\n\r\n getNewArea(): SiteAreaData {\r\n return Object.assign(new SiteAreaData(), {\r\n SiteAreaId: UUID.UUID(),\r\n AreaName: '',\r\n Deleted: false\r\n });\r\n }\r\n\r\n onSubmit(formValues: any): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n const area: SiteAreaDetails = this.area;\r\n area.AreaName = formValues.areaName;\r\n\r\n const areas = map(this.site.SiteAreas).filter(a => a.SiteAreaId !== this.area.SiteAreaId) as SiteAreaDetails[];\r\n areas.push(area);\r\n\r\n const updateAreasCommand: UpdateAreasCommand = {\r\n SiteId: this.site.SiteId,\r\n Areas: areas\r\n };\r\n\r\n if (!this.context.doNotCommitToServer) {\r\n this.siteCommandService.UpdateAreasCommand(updateAreasCommand)\r\n .subscribe(() => {\r\n // Here we must reload any data that this add/edit affects from the server.\r\n forkJoin([this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n this.siteScaffoldQueryService.siteScaffoldQuery(false, this.site.SiteId)]).subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(this.area.SiteAreaId);\r\n this.emitCloseEvent();\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n } else {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(this.area.SiteAreaId);\r\n this.emitCloseEvent();\r\n this.bsModalRef.hide();\r\n }\r\n }\r\n }\r\n\r\n // emit the full list of areas to the parent component\r\n emitCloseEvent(): void {\r\n var areas = map(this.site.SiteAreas).filter(a => a.SiteAreaId !== this.area.SiteAreaId)\r\n areas.push(this.area);\r\n // this.site.SiteAreas = areas;\r\n this.closeAreaModalEvent.emit(areas);\r\n }\r\n\r\n deleteArea(): void {\r\n const isOnlyActiveArea = map(this.site.SiteAreas).every(a => a.Deleted || a.SiteAreaId === this.area.SiteAreaId);\r\n if (isOnlyActiveArea) {\r\n this.deleteValidationMessage = errorMessages.AreaCannotBeDeletedIfThereAreNoOtherActiveAreas;\r\n } else if (this.area.NumberOfScaffolds > 0) {\r\n this.deleteValidationMessage = errorMessages.areaCannotBeDeletedIfItHasActiveScaffolds;\r\n } else {\r\n this.area.Deleted = true;\r\n }\r\n }\r\n\r\n activateArea(): void {\r\n this.area.Deleted = false;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Delete area\r\n \r\n This area will be deleted. Click undo if this was a mistake!\r\n
\r\n\r\n
\r\n \r\n Reopen area\r\n \r\n The area will be reactivated. Click undo if this was a mistake!\r\n
\r\n
{{deleteValidationMessage}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormBuilder, AbstractControl, UntypedFormArray } from '@angular/forms';\r\nimport { forkJoin } from 'rxjs';\r\nimport { SetSiteStaffPermissionsCommand, SiteWebAppData, StaffData, SiteCommandService } from 'app/core/hub-api';\r\nimport { StaffDetailQueryService } from '../../../../../core/services/staff-detail-query.service';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { AddEditSiteStaffModalContext } from '../../../../models/add-edit-site-staff-modal-context';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { forEach } from 'lodash';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-add-edit-site-staff-modal',\r\n templateUrl: './add-edit-site-staff-modal.component.html',\r\n styleUrls: ['./add-edit-site-staff-modal.component.scss']\r\n})\r\nexport class AddEditSiteStaffModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n\r\n form: UntypedFormGroup;\r\n\r\n site: SiteWebAppData;\r\n staffList: StaffData[];\r\n\r\n validationMessages = {\r\n staffId: {\r\n required: errorMessages.required\r\n }\r\n };\r\n\r\n constructor(\r\n private bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private staffDetailQueryService: StaffDetailQueryService,\r\n private formBuilder: UntypedFormBuilder,\r\n private siteCommandService: SiteCommandService,\r\n public modalService: BsModalService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.site = this.context.site;\r\n this.staffList = this.context.staffs\r\n .filter(s => !s.Deleted)\r\n .sort((a, b) => (a.ContactName.toLocaleLowerCase() > b.ContactName.toLocaleLowerCase() ? 1 : -1));\r\n\r\n this.form = this.formBuilder.group({\r\n staffControls: this.buildStaffControls()\r\n });\r\n super.ngOnInit();\r\n }\r\n\r\n get staffControls(): AbstractControl {\r\n return this.form.get('staffControls');\r\n }\r\n\r\n private buildStaffControls(): UntypedFormArray {\r\n const arr = this.staffList.map(staff => {\r\n return this.formBuilder.control((staff as any).selected);\r\n });\r\n return this.formBuilder.array(arr);\r\n }\r\n\r\n onSubmit(): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n\r\n const formValue = Object.assign(this.form.value, {\r\n staffIds: this.form.value.staffControls.map((selected, i) => {\r\n return {\r\n id: this.staffList[i].StaffId,\r\n selected\r\n };\r\n })\r\n });\r\n\r\n const setSiteStaffPermissionsCommand = Object.assign(new SetSiteStaffPermissionsCommand(), {\r\n StaffIds: formValue.staffIds.filter(staff => staff.selected).map(val => val.id),\r\n IsInactive: false,\r\n SiteId: this.site.SiteId\r\n });\r\n\r\n if (setSiteStaffPermissionsCommand.StaffIds.length) {\r\n const obs$ = forkJoin([\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n forEach(setSiteStaffPermissionsCommand.StaffIds, staffId => this.staffDetailQueryService.staffDetailQuery(false, staffId))\r\n ]);\r\n\r\n this.siteCommandService.SetSiteStaffPermissionsCommand(setSiteStaffPermissionsCommand).subscribe(() => {\r\n // Here we must reload any data that this add/edit affects from the server.\r\n const obs2$ = forkJoin([\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n forEach(setSiteStaffPermissionsCommand.StaffIds, staffId => this.staffDetailQueryService.staffDetailQuery(false, staffId))\r\n ]);\r\n obs2$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(setSiteStaffPermissionsCommand.StaffIds);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n } else {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(setSiteStaffPermissionsCommand.StaffIds);\r\n this.bsModalRef.hide();\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
    \r\n
  • \r\n \r\n
  • \r\n
\r\n \r\n
\r\n
","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { map, some } from 'lodash';\r\nimport { SiteAreaData, SiteWebAppData } from 'app/core/hub-api';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { AddEditAreaModalComponent } from '../add-edit-area-modal/add-edit-area-modal.component';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-site-detail-areas',\r\n templateUrl: './site-detail-areas.component.html',\r\n styleUrls: ['./site-detail-areas.component.scss']\r\n})\r\nexport class SiteDetailAreasComponent implements OnInit, OnDestroy {\r\n site: SiteWebAppData;\r\n allAreas: SiteAreaData[];\r\n filteredAreas: SiteAreaData[];\r\n\r\n anyDeletedAreas: boolean;\r\n errorMessage: string;\r\n\r\n filtersForm: UntypedFormGroup;\r\n showDeletedAreasFormControl: UntypedFormControl;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private bsModalService: BsModalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n const siteReference = this.route.parent.snapshot.params['siteReference'];\r\n this.siteDetailQueryService.siteDetailDataChanges(siteReference).subscribe(newSite => this.refreshComponent(newSite));\r\n }\r\n\r\n private filterAreas(showDeletedSites: boolean): void {\r\n this.filteredAreas = showDeletedSites ? this.allAreas : this.allAreas.filter(a => !a.Deleted);\r\n }\r\n\r\n refreshComponent(site: SiteWebAppData): void {\r\n this.site = site;\r\n this.allAreas = (map(site.SiteAreas) as any).sortAlphaNumeric('AreaName');\r\n\r\n const showDeletedAreas = false;\r\n this.filterAreas(showDeletedAreas);\r\n\r\n this.errorMessage = some(this.allAreas, a => a.Deleted && a.NumberOfScaffolds > 0) ? 'A deleted area contains one or more active scaffolds' : '';\r\n this.anyDeletedAreas = some(this.allAreas, a => a.Deleted);\r\n\r\n this.showDeletedAreasFormControl = new UntypedFormControl(showDeletedAreas);\r\n this.filtersForm = new UntypedFormGroup({\r\n showDeletedAreas: this.showDeletedAreasFormControl\r\n });\r\n\r\n this.showDeletedAreasFormControl.valueChanges.subscribe(value => this.filterAreas(value));\r\n }\r\n\r\n onAddArea(): void {\r\n const context = {\r\n editMode: false,\r\n site: this.site\r\n };\r\n this.bsModalService.show(AddEditAreaModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n onEditArea(area: SiteAreaData): void {\r\n const context = {\r\n editMode: true,\r\n site: this.site,\r\n area: area\r\n };\r\n this.bsModalService.show(AddEditAreaModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{filteredAreas.length}}Areas

\r\n

{{site.NumberOfNonDismantledScaffolds}}Scaffolds

\r\n
\r\n
\r\n \r\n \r\n
\r\n Show deleted areas\r\n
\r\n
\r\n \r\n add\r\n area\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \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\">{{area.AreaName}}\r\n {{area.NumberOfScaffolds}} Scaffolds\r\n \r\n
{{ errorMessage\r\n }}
\r\n
\r\n
\r\n
\r\n
\r\n
","import { LoggedInStaffService } from '../../../../../core/services/logged-in-staff-service';\r\nimport { combineLatest } from 'rxjs';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { StaffsQueryService } from '../../../../../core/services/staffs-query.service';\r\nimport { CustomersQueryService } from '../../../../../core/services/customers-query.service';\r\nimport { AddEditScaffoldModalComponent } from '../../scaffolds/add-edit-scaffold-modal/add-edit-scaffold-modal.component';\r\nimport { AddEditContractContactModalContext } from '../../../../models/add-edit-contract-contact-modal-context';\r\nimport { AddMeAsContactModalComponent } from '../../contracts/add-me-as-contact-modal/add-me-as-contact-modal.component';\r\nimport { AddEditAreaModalComponent } from '../add-edit-area-modal/add-edit-area-modal.component';\r\nimport { AddEditSiteStaffModalComponent } from '../add-edit-site-staff-modal/add-edit-site-staff-modal.component';\r\nimport { AddEditContractModalComponent } from '../../contracts/add-edit-contract-modal/add-edit-contract-modal.component';\r\nimport { DepotsQueryService } from '../../../../../core/services/depots-query.service';\r\nimport { ConfigurationQueryService } from '../../../../../core/services/configuration-query.service';\r\nimport { contractStatusIds } from '../../../../../shared/values/contract-status-ids';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { AddEditSiteModalComponent } from '../../../sites-list/add-edit-site-modal/add-edit-site-modal.component';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport {\r\n SiteWebAppData,\r\n DepotData,\r\n SiteStatusData,\r\n ConfigurationData,\r\n StaffData,\r\n CustomerWebAppData,\r\n ScaffoldWebAppData,\r\n StaffDetailsWebAppData,\r\n} from 'app/core/hub-api';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { map, flatMap } from 'lodash';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { siteStatusIds } from 'app/shared/values/site-status-ids';\r\nimport { CompanySettingsService } from 'app/shared/services/company-setting.service';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { AddEditContractContactModalComponent } from '../../contracts/add-edit-contract-contact-modal/add-edit-contract-contact-modal.component';\r\n\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-site-detail-overview',\r\n templateUrl: './site-detail-overview.component.html',\r\n styleUrls: ['./site-detail-overview.component.scss']\r\n})\r\nexport class SiteDetailOverviewComponent implements OnInit, OnDestroy {\r\n site: SiteWebAppData;\r\n configuration: ConfigurationData;\r\n depots: DepotData[];\r\n sitesStatuses: SiteStatusData[];\r\n staffs: StaffData[];\r\n customers: CustomerWebAppData[];\r\n scaffolds: ScaffoldWebAppData[] = [];\r\n loggedInStaff: StaffDetailsWebAppData;\r\n\r\n siteSetupPercentage: number;\r\n siteSetupComplete: boolean;\r\n progressWidth: string;\r\n\r\n totalAreas: number;\r\n totalContracts: number;\r\n totalContractContacts: number;\r\n openContracts: number;\r\n activeContractContacts: number;\r\n activeStaff: number;\r\n\r\n siteDepotName: string;\r\n sitesLimit: number;\r\n isStockControlAllowed: boolean;\r\n maxSupportedOpensites: number;\r\n isStatusVisible: boolean;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private depotsQueryService: DepotsQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private staffsQueryService: StaffsQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private siteScaffoldsQueryService: SiteScaffoldQueryService,\r\n private loggedInStaffService: LoggedInStaffService,\r\n private CompanySettingsService: CompanySettingsService,\r\n private bsModalService: BsModalService,\r\n private router: Router,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n const siteReference = this.route.parent.snapshot.params['siteReference'];\r\n const siteDetailChanges = this.siteDetailQueryService.siteDetailDataChanges(siteReference)\r\n siteDetailChanges.subscribe(\r\n (siteData: SiteWebAppData | null) => {\r\n if (siteData) {\r\n const scaffoldsChanges = siteDetailChanges.pipe(mergeMap(site => this.siteScaffoldsQueryService.siteScaffoldDataChanges(site.SiteId)));\r\n // Scaffolds will load in the background.\r\n scaffoldsChanges.subscribe(scaffolds => (this.scaffolds = scaffolds));\r\n const obs$ = combineLatest([\r\n siteDetailChanges,\r\n this.depotsQueryService.depotsDataChanges(),\r\n this.configurationQueryService.configurationDataChanges(),\r\n this.customersQueryService.customersDataChanges(),\r\n this.staffsQueryService.staffsDataChanges(),\r\n this.loggedInStaffService.loggedInStaffChanges()\r\n ]);\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1], latest[2], latest[3], latest[4], latest[5]));\r\n } else {\r\n // Redirect to \"site not found\" page\r\n this.router.navigate(['/error'], { queryParams: { errorCode: 404, errorMessage: 'Site not found. Please check the site reference and try again.' } });\r\n }\r\n },\r\n (error) => {\r\n console.error('Error fetching site details:', error);\r\n this.router.navigate(['/error'], { queryParams: { errorCode: error.status, errorMessage: error.message } });\r\n }\r\n );\r\n\r\n }\r\n\r\n refreshComponent(\r\n site: SiteWebAppData,\r\n depots: DepotData[],\r\n configuration: ConfigurationData,\r\n customers: CustomerWebAppData[],\r\n staffs: StaffData[],\r\n loggedInStaff: StaffDetailsWebAppData\r\n ): void {\r\n this.loggedInStaff = loggedInStaff;\r\n this.staffs = staffs;\r\n this.customers = customers;\r\n this.site = site;\r\n this.depots = depots;\r\n // siteDepotName was created for the case when the depot name is edited in the settings screen it takes the depot instead of the sites depot name.\r\n this.siteDepotName = this.depots.find(c => c.SiteDepotId === this.site.SiteDepotId).DepotName;\r\n this.configuration = configuration;\r\n this.sitesStatuses = map(configuration.SiteStatuses);\r\n this.totalAreas = map(site.SiteAreas).length;\r\n this.totalContracts = site.Contracts.length;\r\n this.totalContractContacts = flatMap(site.Contracts, c => map(c.ContractContacts)).length;\r\n this.openContracts = site.Contracts.filter(c => c.ContractStatusId === contractStatusIds.open).length;\r\n this.activeContractContacts = flatMap(site.Contracts, c => map(c.ContractContacts)).filter(c => !c.IsInactive).length;\r\n this.activeStaff = site.Staff.filter(s => !s.Deleted).length;\r\n\r\n this.siteSetupPercentage = (() => {\r\n const noOfSteps = 4;\r\n const noOfStepsCompleted = +(this.totalContracts > 0) + +(this.totalContractContacts > 0) + +(this.activeStaff > 0) + +this.site.HasScaffolds;\r\n return (100 / noOfSteps) * noOfStepsCompleted;\r\n })();\r\n\r\n this.siteSetupComplete = this.siteSetupPercentage === 100;\r\n this.progressWidth = `${this.siteSetupPercentage}%`;\r\n\r\n this.CompanySettingsService.getCompanyDetailsFromServer().subscribe(clientSettings => {\r\n this.isStatusVisible = clientSettings.FeatureFlags.stockControl;\r\n this.maxSupportedOpensites = clientSettings.MaxOpenSites;\r\n if (this.isStatusVisible) {\r\n if (this.site.IsManageStockControl) {\r\n this.isStockControlAllowed = this.site.IsManageStockControl;\r\n } else {\r\n this.isStockControlAllowed = this.site.IsManageStockControl;\r\n }\r\n }\r\n });\r\n }\r\n\r\n onEditSite(): void {\r\n // A bit of a hack in order to get type checking while also not having to define all the base class properties for our context.\r\n const isStockControl = this.isStockControlAllowed;\r\n this.sitesLimit = this.maxSupportedOpensites;\r\n this.configurationQueryService.configurationQueryFromServer().subscribe(configuration => {\r\n const noOfSites = configuration.CompanyStatisticData.NoOfOpenSite;\r\n\r\n if (this.site.SiteStatusId !== siteStatusIds.closed || noOfSites < this.sitesLimit) {\r\n const context = {\r\n editMode: true,\r\n configuration: configuration,\r\n depots: this.depots,\r\n loggedInStaff: this.loggedInStaff,\r\n site: this.site,\r\n stockControl: isStockControl\r\n };\r\n\r\n this.bsModalService.show(AddEditSiteModalComponent, SSModalConfig.generate(context));\r\n } else {\r\n const context = {\r\n editMode: true,\r\n NoOfOpenSites: noOfSites,\r\n ClientMaxSitesLimit: this.sitesLimit,\r\n configuration: configuration,\r\n depots: this.depots,\r\n loggedInStaff: this.loggedInStaff,\r\n type: 'site'\r\n };\r\n this.bsModalService.show(AddEditContractModalComponent, SSModalConfig.generate(context));\r\n }\r\n });\r\n }\r\n\r\n onAddContract(): void {\r\n const context = {\r\n editMode: false,\r\n customers: this.customers,\r\n site: this.site,\r\n configuration: this.configuration\r\n };\r\n\r\n this.bsModalService.show(AddEditContractModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n onAddStaff(): void {\r\n const context = {\r\n site: this.site,\r\n staffs: this.staffs.filter(s => s.SiteDepotIds.includes(this.site.SiteDepotId))\r\n };\r\n this.bsModalService.show(AddEditSiteStaffModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n onAddArea(): void {\r\n const context = {\r\n editMode: false,\r\n site: this.site\r\n };\r\n this.bsModalService.show(AddEditAreaModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n onAddScaffold(): void {\r\n const context = {\r\n editMode: false,\r\n configuration: this.configuration,\r\n site: this.site,\r\n customers: this.customers,\r\n scaffolds: this.scaffolds,\r\n loggedInStaff: this.loggedInStaff,\r\n };\r\n this.bsModalService.show(AddEditScaffoldModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n onAddContractContact(): void {\r\n const context: AddEditContractContactModalContext = Object.assign(new AddEditContractContactModalContext(), {\r\n contract: this.site.Contracts.find(c => !c.ContractContacts.length),\r\n editMode: false,\r\n chooseContractMode: true,\r\n site: this.site,\r\n customers: this.customers,\r\n configuration: this.configuration\r\n });\r\n var modal = this.bsModalService.show(AddEditContractContactModalComponent, SSModalConfig.generate(context));\r\n modal.onHide.subscribe(\r\n (contractId) => {\r\n if (contractId === null || typeof contractId !== 'string') return;\r\n this.onAddMeAsContact(contractId as string);\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n /**\r\n * Add the current logged in user as a contact to the contract\r\n * @param contractId \r\n */\r\n onAddMeAsContact(contractId: string): void {\r\n const context = {\r\n contractId: contractId,\r\n editMode: false,\r\n loggedInStaff: this.loggedInStaff,\r\n site: this.site,\r\n contract: this.site.Contracts.find(c => !c.ContractContacts.length),\r\n };\r\n this.bsModalService.show(AddMeAsContactModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n
\r\n

Site Details

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

{{site.SiteName}} ({{site.SiteReference}})\r\n

\r\n

{{site.SiteAddress}}

\r\n
\r\n
\r\n
\r\n
Status:
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
1\">\r\n
Depot:
\r\n
{{siteDepotName}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n edit site\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Site Setup {{siteSetupPercentage}}% Complete

\r\n
\r\n
\r\n
\r\n
\r\n
Steps
\r\n
    \r\n
  • 0 ? 'fa-check text-positive': 'fa-times text-assertive'\">Add\r\n a customer
  • \r\n
  • 0 ? 'fa-check text-positive': 'fa-times text-assertive'\">Add\r\n a customer contact
  • \r\n
  • 0 ? 'fa-check text-positive': 'fa-times text-assertive'\">Add\r\n a staff member
  • \r\n
  • Add\r\n a scaffold
  • \r\n
\r\n
\r\n
\r\n
Next Step
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{openContracts}}

\r\n

Customer 1\">s

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

{{activeStaff}}

\r\n

Staff

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

{{activeContractContacts}}

\r\n

Contact 1\">s

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { StaffDetailQueryService } from '../../../../../core/services/staff-detail-query.service';\r\nimport { combineLatest, forkJoin } from 'rxjs';\r\nimport { StaffsQueryService } from '../../../../../core/services/staffs-query.service';\r\nimport { ConfigurationQueryService } from '../../../../../core/services/configuration-query.service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { AddEditSiteStaffModalComponent } from '../add-edit-site-staff-modal/add-edit-site-staff-modal.component';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { map } from 'lodash';\r\nimport {\r\n ConfigurationData,\r\n RolesData,\r\n SiteWebAppData,\r\n StaffData,\r\n SetSiteStaffPermissionsCommand,\r\n SiteCommandService\r\n} from 'app/core/hub-api';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig, SSDialogContext } from 'app/shared/models/ss-modal-config';\r\nimport { ModalDialogComponent } from 'app/shared/components/modal-dialog/modal-dialog.component';\r\nimport { LoadingBarService } from '@ngx-loading-bar/core';\r\nimport { ToasterService } from 'angular2-toaster';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-site-detail-staff',\r\n templateUrl: './site-detail-staff.component.html',\r\n styleUrls: ['./site-detail-staff.component.scss']\r\n})\r\nexport class SiteDetailStaffComponent implements OnInit, OnDestroy {\r\n site: SiteWebAppData;\r\n siteStaffs: StaffData[];\r\n allStaffs: StaffData[];\r\n roles: RolesData[];\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private bsModalService: BsModalService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private staffsQueryService: StaffsQueryService,\r\n private staffDetailQueryService: StaffDetailQueryService,\r\n private siteCommandService: SiteCommandService,\r\n private loadingBar: LoadingBarService,\r\n private toasterService: ToasterService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n const siteReference = this.route.parent.snapshot.params['siteReference'];\r\n const obs$ = combineLatest(\r\n [this.siteDetailQueryService.siteDetailDataChanges(siteReference),\r\n this.configurationQueryService.configurationDataChanges(),\r\n this.staffsQueryService.staffsDataChanges()]\r\n );\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1], latest[2]));\r\n }\r\n\r\n refreshComponent(site: SiteWebAppData, configuration: ConfigurationData, staffs: StaffData[]): void {\r\n this.site = site;\r\n this.siteStaffs = staffs.filter(staff => this.site.Staff.map(s => s.StaffId).includes(staff.StaffId));\r\n this.allStaffs = staffs;\r\n this.roles = map(configuration.Roles);\r\n }\r\n\r\n onAddStaff(): void {\r\n const allDepotStaffs = this.allStaffs.filter(s => s.SiteDepotIds.includes(this.site.SiteDepotId));\r\n const siteStaffIds = this.site.Staff.map(s => s.StaffId);\r\n const staffList = allDepotStaffs\r\n .filter(s => !siteStaffIds.includes(s.StaffId))\r\n .map(s => Object.assign(s, { selected: false }));\r\n if (!staffList.length) {\r\n const data: SSDialogContext = {\r\n title: 'No Staff To Add',\r\n body: ' There are no more staff associated with this site.',\r\n okBtnClass: 'btn button-primary',\r\n okBtnText: 'Ok got it',\r\n cancelBtnClass: 'hide',\r\n cancelBtnText: 'No keep it',\r\n showHeaderClose: true,\r\n showOnlyCloseBtn: false,\r\n dialogClass: 'modal-dialog modal-warning',\r\n headerClass: 'modal-header confirm-modal-header modal-header-warning',\r\n footerClass: 'modal-footer confirm-modal-footer'\r\n };\r\n this.bsModalService.show(ModalDialogComponent, SSModalConfig.generate(data));\r\n }\r\n\r\n const context = {\r\n site: this.site,\r\n staffs: staffList\r\n };\r\n this.bsModalService.show(AddEditSiteStaffModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n onDeleteStaff(staff: StaffData): void {\r\n const _loading = this.loadingBar.useRef('global');\r\n _loading.start();\r\n const setSiteStaffPermissionsCommand = Object.assign(new SetSiteStaffPermissionsCommand(), {\r\n StaffIds: [staff.StaffId],\r\n IsInactive: true,\r\n SiteId: this.site.SiteId\r\n });\r\n this.siteCommandService.SetSiteStaffPermissionsCommand(setSiteStaffPermissionsCommand).subscribe({\r\n next: () => {\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference)\r\n\r\n this.staffDetailQueryService.staffDetailQuery(false, staff.StaffId)\r\n },\r\n error: (error) => {\r\n console.debug('Site Staff Not Removed', error);\r\n this.toasterService.pop('error', 'Unable to remove staff', `There was a problem removing ${staff.ContactName} from the list.`);\r\n _loading.stop();\r\n },\r\n complete: () => {\r\n this.siteStaffs = this.siteStaffs.filter(s => s.StaffId !== staff.StaffId);\r\n this.toasterService.pop('success', 'Site Staff Removed', `${staff.ContactName} is now removed from the list.`);\r\n _loading.stop();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n add staff\r\n \r\n \r\n
\r\n

{{siteStaffs.length}}Staff

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

Welcome to the Site Staff area

\r\n

It looks like you haven't added any staff to the site yet. Click the 'Add Staff' button to add a new staff\r\n member\r\n to the site.

\r\n \r\n Add Staff\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

{{staff.ContactName}}

\r\n

{{staff.PhoneNumber}}

\r\n
\r\n
\r\n
{{staff.EmailAddress}}{{staff.RoleId | idToTitle : roles : \"RoleName\"}}
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-site-detail',\r\n templateUrl: './site-detail.component.html',\r\n styleUrls: ['./site-detail.component.scss']\r\n})\r\nexport class SiteDetailComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { SiteScaffoldDiaryQueryService } from 'app/core/services/site-scaffold-diary-query.service';\r\nimport { AddScaffoldDiaryMediaModalContext } from 'app/sites/models/add-scaffold-diary-media-modal-context';\r\nimport { forkJoin } from 'rxjs';\r\nimport {\r\n CreateScaffoldDiaryMediaCommand, ExternalMedia, ScaffoldCommandService,\r\n DiaryData, DiaryDataTypeEnum, SiteCommandService, CreateSiteDiaryMediaCommand, DiaryQuery\r\n} from 'app/core/hub-api';\r\nimport { ImageUploadService } from '../../../../../core/services/image-upload.service';\r\nimport { uploadMinAllowedContentLength, uploadMaxAllowedContentLength } from '../../../../../shared/values/file-values';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { fileExtensionRegex } from 'app/shared/regex/file-extension.regex';\r\nimport { DiaryQueryService } from 'app/sites/services/diary-query-service';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\n\r\n/**\r\n * Add Scaffold Diary Media Modal\r\n * Shows a modal with an input to upload scaffold diaries\r\n *\r\n * @export\r\n * @class AddScaffoldDiaryMediaModalComponent\r\n * @extends FormComponent\r\n * @implements {OnInit}\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-diary-media-modal',\r\n templateUrl: './add-diary-media-modal.component.html',\r\n styleUrls: ['./add-diary-media-modal.component.scss']\r\n})\r\nexport class AddScaffoldDiaryMediaModalComponent extends FormComponent implements OnInit, OnDestroy {\r\n /** Stores all parameters sent to this modal */\r\n context: Partial;\r\n /** Form Group */\r\n form: UntypedFormGroup;\r\n /** validation messages structure required by the ModalFormComponent */\r\n validationMessages: { [key: string]: { [key: string]: string } };\r\n /** Diary data */\r\n scaffoldDiary: DiaryData;\r\n /** Site Reference of the selected site (e.g. 00001) */\r\n siteReference: string;\r\n /** Selected filefrom input */\r\n file: File;\r\n /** Detects if the form is being saved and triggers the spinning icon on the save button */\r\n saveInProgress: boolean;\r\n /** Gets the file error message */\r\n fileErrorMessage: string;\r\n /** Stores the media name without extension */\r\n mediaName: string;\r\n /** gets the scaffold id from modal parameters */\r\n scaffoldId: string;\r\n /** Controls the ngModel for the input file uploader */\r\n sizeRestrictedFile: any;\r\n /** Gets all Diary Types */\r\n diaryType: DiaryDataTypeEnum;\r\n /** Stores the maximum and minimum file size */\r\n public sizeRestrictions: { min: number; max: number; } = {\r\n min: uploadMinAllowedContentLength,\r\n max: uploadMaxAllowedContentLength\r\n };\r\n /** Stores if the file is over the required size */\r\n oversizeFile: boolean;\r\n /** Stores if the file has the wrong format */\r\n wrongFormatFile: boolean;\r\n /** List of all allowed file formats */\r\n allowedFileFormats = ['.jpg', '.jpeg', '.png', '.exif', '.tiff', '.gif', '.bmp', '.pdf', 'mpeg', '.mp4', '.avi', '.wmv', '.mov'];\r\n /** Decides if the save button is locked */\r\n lockSaveButton = true;\r\n\r\n constructor(\r\n private bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private scaffoldCommandService: ScaffoldCommandService,\r\n private siteCommandService: SiteCommandService,\r\n private scaffoldDiaryQueryService: SiteScaffoldDiaryQueryService,\r\n private siteScaffoldDiaryQueryService: SiteScaffoldDiaryQueryService,\r\n private imageUploadService: ImageUploadService,\r\n private diaryQueryService: DiaryQueryService,\r\n public modalService: BsModalService,\r\n ) {\r\n super();\r\n }\r\n\r\n /**\r\n * Component initialization\r\n *\r\n * @memberof AddScaffoldDiaryMediaModalComponent\r\n */\r\n public ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.scaffoldDiary = this.context.diary;\r\n this.siteReference = this.context.siteReference;\r\n this.scaffoldId = this.context.scaffoldId;\r\n this.diaryType = this.context.diaryType;\r\n }\r\n\r\n /**\r\n * Submit addition of media data to diary\r\n *\r\n * @returns {void}\r\n * @memberof AddScaffoldDiaryMediaModalComponent\r\n */\r\n public onSubmit(): void {\r\n const formValid = !!this.file;\r\n if (formValid) {\r\n this.saveInProgress = true;\r\n (this.diaryType === DiaryDataTypeEnum.ScaffoldDiary) ? this.uploadScaffoldMedia() : this._uploadSiteMedia();\r\n } else {\r\n this.fileErrorMessage = 'Please select a file to upload.';\r\n }\r\n }\r\n\r\n /**\r\n * Uploads media to scaffold's blob\r\n * Location: Scaffold/Id/ScaffoldDiary/DiaryId/FileName\r\n *\r\n * @private\r\n * @memberof AddScaffoldDiaryMediaModalComponent\r\n */\r\n private uploadScaffoldMedia(): void {\r\n const path = `Scaffold/${this.scaffoldId}/ScaffoldDiary/${this.scaffoldDiary.DiaryId}/${this.file.name}`;\r\n const command: CreateScaffoldDiaryMediaCommand = {\r\n ScaffoldId: this.scaffoldId,\r\n ScaffoldDiaryId: this.scaffoldDiary.DiaryId,\r\n Media: {\r\n MimeType: this.file.type,\r\n Path: path,\r\n Title: this.mediaName\r\n } as ExternalMedia\r\n };\r\n const diaryQuery = new DiaryQuery();\r\n diaryQuery.DiaryId = this.scaffoldDiary.DiaryId;\r\n diaryQuery.DiaryType = this.diaryType;\r\n\r\n const observableImageUpload$ = forkJoin([\r\n this.imageUploadService.uploadImage(this.file, path),\r\n this.scaffoldCommandService.CreateScaffoldDiaryMediaCommand(command)\r\n ]);\r\n observableImageUpload$.subscribe(() => {\r\n const observableDiaryQuery$ = forkJoin([\r\n this.scaffoldDiaryQueryService.siteScaffoldDiaryQuery(false, this.scaffoldDiary.DiaryId),\r\n this.siteScaffoldDiaryQueryService.siteScaffoldDiaryQuery(false, this.siteReference),\r\n this.diaryQueryService.getDiaryData(diaryQuery)\r\n ]);\r\n observableDiaryQuery$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(this.file as any);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n\r\n }\r\n\r\n /**\r\n * Uploads media to site's blob\r\n * Location: Site/Id/SiteDiary/DiaryId/FileName\r\n *\r\n * @private\r\n * @memberof AddScaffoldDiaryMediaModalComponent\r\n */\r\n private _uploadSiteMedia(): void {\r\n const path = `Site/${this.scaffoldId}/SiteDiary/${this.scaffoldDiary.DiaryId}/${this.file.name}`;\r\n const command: CreateSiteDiaryMediaCommand = {\r\n DiaryId: this.scaffoldDiary.DiaryId,\r\n Media: [{\r\n MimeType: this.file.type,\r\n Path: path,\r\n Title: this.mediaName\r\n } as ExternalMedia]\r\n };\r\n\r\n const diaryQuery = new DiaryQuery();\r\n diaryQuery.DiaryId = this.scaffoldDiary.DiaryId;\r\n diaryQuery.DiaryType = this.diaryType;\r\n\r\n const observableImageUpload$ = forkJoin([\r\n this.imageUploadService.uploadImage(this.file, path),\r\n this.siteCommandService.CreateSiteDiaryMediaCommand(command)\r\n ]);\r\n\r\n observableImageUpload$.subscribe(() => {\r\n const observableDiaryQuery$ = forkJoin([\r\n this.scaffoldDiaryQueryService.siteScaffoldDiaryQuery(false, this.scaffoldId),\r\n this.siteScaffoldDiaryQueryService.siteScaffoldDiaryQuery(false, this.siteReference),\r\n this.diaryQueryService.getDiaryData(diaryQuery)\r\n\r\n ]);\r\n observableDiaryQuery$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(this.file as any);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n\r\n }\r\n\r\n /**\r\n * Checks if the file is valid (size and format)\r\n *\r\n * @param {File} file\r\n * @returns {boolean}\r\n * @memberof AddScaffoldDiaryMediaModalComponent\r\n */\r\n private _isFileValid(file: File): boolean {\r\n // Remove the file extension.\r\n const fileExtension = file.name.split('.').pop().toLowerCase();\r\n // in case the file format is not accepted it will add it to the error list\r\n this.wrongFormatFile = !this.allowedFileFormats.includes(`.${fileExtension}`);\r\n this.oversizeFile = file.size > this.sizeRestrictions.max;\r\n // Validates if file format is accepted\r\n if (this.wrongFormatFile) {\r\n this.fileErrorMessage = `The file format is not accepted.`;\r\n this.saveInProgress = false;\r\n this.lockSaveButton = true;\r\n return false;\r\n }\r\n // Validates if file is oversize\r\n if (this.oversizeFile) {\r\n this.fileErrorMessage = errorMessages.fileSizeErrorMsg;\r\n this.saveInProgress = false;\r\n this.lockSaveButton = true;\r\n return false;\r\n }\r\n this.wrongFormatFile = false;\r\n this.oversizeFile = false;\r\n return true;\r\n }\r\n\r\n\r\n /**\r\n * Gets the file from the user's device\r\n *\r\n * @param {Event} event\r\n * @memberof AddScaffoldDiaryMediaModalComponent\r\n */\r\n public onFileSelected(event: Event): void {\r\n this.fileErrorMessage = undefined;\r\n this.lockSaveButton = false;\r\n const file = (event.target as any).files[0];\r\n this.mediaName = file.name.replace(fileExtensionRegex, '');\r\n this.file = file;\r\n this._isFileValid(file);\r\n }\r\n\r\n /**\r\n * Required by the AutoUnsubscribe\r\n *\r\n * @memberof AddScaffoldDiaryMediaModalComponent\r\n */\r\n public ngOnDestroy(): void { }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n No file selected\r\n {{file.name}}\r\n
\r\n

\r\n {{fileErrorMessage}}\r\n

\r\n\r\n

\r\n {{serverError}}\r\n

\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { ImageUploadService } from 'app/core/services/image-upload.service';\r\nimport { LoggedInStaffService } from 'app/core/services/logged-in-staff-service';\r\nimport { fileExtensionRegex } from 'app/shared/regex/file-extension.regex';\r\nimport { diaryCategoryIds } from 'app/shared/values/diary-category-ids';\r\nimport { errorMessages } from 'app/shared/values/error-messages';\r\nimport { uploadMaxAllowedContentLength, uploadMinAllowedContentLength } from 'app/shared/values/file-values';\r\nimport { DiaryQueryService } from 'app/sites/services/diary-query-service';\r\nimport * as moment from 'moment';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { forkJoin } from 'rxjs';\r\nimport { CreateSiteDiaryWebConsoleCommand, SiteCommandService, SiteWebAppData, StaffDetailsWebAppData } from 'app/core/hub-api';\r\nimport { AddSiteDiaryModalComponentContext } from './add-site-diary-modal-context';\r\nimport { SiteScaffoldDiaryQueryService } from 'app/core/services/site-scaffold-diary-query.service';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n/**\r\n * Add Site Diary Modal\r\n * Shows a modal with a form to create a site diary\r\n *\r\n * @export\r\n * @class AddSiteDiaryModalComponent\r\n * @extends {FormComponent}\r\n * @implements {OnInit}\r\n * @implements {OnDestroy}\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-site-diary-modal',\r\n templateUrl: './add-site-diary-modal.component.html',\r\n styleUrls: ['./add-site-diary-modal.component.scss']\r\n})\r\nexport class AddSiteDiaryModalComponent extends FormComponent implements OnInit, OnDestroy {\r\n /** Stores all the parameters for this modal */\r\n context: Partial;\r\n /** Form group */\r\n form: UntypedFormGroup;\r\n /** Category form control */\r\n categoryFormControl: UntypedFormControl;\r\n /** Notes form control */\r\n notesFormControl: UntypedFormControl;\r\n /** Stores all selected files from input */\r\n files = [];\r\n /** Shows the error message for file size */\r\n fileSizeErrMsg: string;\r\n /** File input ngModel */\r\n sizeRestrictedFile: any;\r\n /** Gets the file size restrictions */\r\n public sizeRestrictions: { min: number; max: number; } = {\r\n min: uploadMinAllowedContentLength,\r\n max: uploadMaxAllowedContentLength,\r\n };\r\n /** Stores the maximum files upload limit */\r\n maxFilesLimit = 5;\r\n /** Stores all diary categories */\r\n diaryCategories: any[];\r\n /** Stores the selected site reference (e.g. 00001) */\r\n siteReference: string;\r\n /** Contains all validation messages for the reactive forms */\r\n validationMessages = {\r\n category: {\r\n required: errorMessages.required\r\n },\r\n };\r\n /** Gets all error messages from errorMessages class */\r\n errorMessages = errorMessages;\r\n /** Detects if the form is being saved and triggers the spinning icon on the save button */\r\n saveInProgress: boolean;\r\n /** Stores all files that are over the limit size */\r\n oversizeFiles = [];\r\n /** Stores all files that have a wrong format */\r\n wrongFormatFiles = [];\r\n /** Stores the selected site */\r\n site: SiteWebAppData;\r\n /** Generates a new site diary id */\r\n siteDiaryId = UUID.UUID();\r\n /** Stores the logged in user details */\r\n loggedInStaff: StaffDetailsWebAppData;\r\n /** List of allowed file formats */\r\n allowedFileFormats = ['.jpg', '.jpeg', '.png', '.exif', '.tiff', '.gif', '.bmp', '.pdf'];\r\n\r\n /**\r\n * gets the length of errors in the file upload section\r\n *\r\n * @readonly\r\n * @type {String}\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public get errorLength(): String {\r\n return this.oversizeFiles.length ? ', ' + this.oversizeFiles.length + ' error' + ((this.oversizeFiles.length === 1) ? '' : 's') : '';\r\n }\r\n\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n private bsModalService: BsModalService,\r\n public loggedInStaffService: LoggedInStaffService,\r\n public imageUploadService: ImageUploadService,\r\n public diaryQueryService: DiaryQueryService,\r\n public siteDiaryQueryService: SiteScaffoldDiaryQueryService,\r\n public siteCommandService: SiteCommandService,\r\n public modalService: BsModalService,\r\n ) { super(); }\r\n\r\n /**\r\n * Component initialisation\r\n *\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n // gets the values passed to the modal context\r\n this.diaryCategories = this.context.diaryCategories;\r\n this.siteReference = this.context.siteReference;\r\n this.site = this.context.site;\r\n\r\n // gets the current user login\r\n this.loggedInStaffService.loggedInStaffChanges().subscribe(lg => {\r\n this.loggedInStaff = lg;\r\n });\r\n\r\n this.createForm();\r\n super.ngOnInit();\r\n }\r\n\r\n /**\r\n * Generates the form with default values\r\n *\r\n * @private\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n private createForm(): void {\r\n // defaults the category to uncategorised\r\n const uncategorised = this.diaryCategories.find((d) => d.DiaryCategoryId === diaryCategoryIds.uncategorised);\r\n this.categoryFormControl = new UntypedFormControl(uncategorised.DiaryCategoryId, Validators.required);\r\n this.notesFormControl = new UntypedFormControl(null);\r\n this.form = new UntypedFormGroup({\r\n categories: this.categoryFormControl,\r\n notes: this.notesFormControl,\r\n });\r\n }\r\n\r\n /**\r\n * Gets the file extension from a file\r\n *\r\n * @param {File} file selected input file\r\n * @returns {String}\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public getFileExtensionFromFile(file: File): String {\r\n return file.name.split('.').pop().toLowerCase();\r\n }\r\n\r\n /**\r\n * Generates the error messages for each file\r\n *\r\n * @param {File} file selected input file\r\n * @returns {{ messages: any[]; }}\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public getFileErrorMessage(file: File): { messages: string[]; } {\r\n const isFileOversize = this.oversizeFiles.includes(file.name);\r\n const isFileWrongFormat = this.wrongFormatFiles.includes(file.name);\r\n const messages = [];\r\n\r\n if (isFileOversize) messages.push(this.errorMessages.fileSizeErrorMsg);\r\n if (isFileWrongFormat) messages.push(this.errorMessages.wrongFormat);\r\n\r\n return { messages };\r\n }\r\n\r\n /**\r\n * When a file is selected it checks the validation and adds it to the list\r\n * NOTE: Used on html only\r\n *\r\n * @param {Event} event input DOM\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public onFileSelected(event: Event): void {\r\n const files = (event.target as any).files;\r\n const selectedFiles = Array.from(files);\r\n selectedFiles.forEach((f: File) => {\r\n // ignore if already exists on the array\r\n if (this.files.find((fl) => fl.name === f.name)) return;\r\n const fileExtension = this.getFileExtensionFromFile(f);\r\n // in case the file format is not accepted it will add it to the error list\r\n if (!this.allowedFileFormats.includes(`.${fileExtension}`)) this.wrongFormatFiles.push(f.name);\r\n if (f.size > this.sizeRestrictions.max) this.oversizeFiles.push(f.name);\r\n // Remove the file extension.\r\n const mediaName = f.name.replace(fileExtensionRegex, '');\r\n (f as any).mediaName = mediaName;\r\n this.files.push(f);\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Removes the file form the error logger (presented to user)\r\n *\r\n * @private\r\n * @param {File} file input selected file\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n private removeFileFromErrorLog(file: File): void {\r\n // if the file is in oversize error list\r\n if (this.oversizeFiles.includes(file.name)) {\r\n const index = this.oversizeFiles.indexOf(file.name);\r\n if (index != null) this.oversizeFiles.splice(index, 1);\r\n }\r\n // if the file is in wrong format error list\r\n if (this.wrongFormatFiles.includes(file.name)) {\r\n const index = this.wrongFormatFiles.indexOf(file.name);\r\n if (index != null) this.wrongFormatFiles.splice(index, 1);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * When user removes file\r\n * NOTE: used on html only\r\n *\r\n * @param {File} file selected input file\r\n * @param {number} i index of the files array\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public onRemoveFile(file: File, i: number): void {\r\n this.removeFileFromErrorLog(file);\r\n this.files.splice(i, 1);\r\n }\r\n\r\n /**\r\n * Detects if the file has errors\r\n * NOTE: used on html only\r\n *\r\n * @param {File} file selected input file\r\n * @returns {boolean}\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public onFileError(file: File): boolean {\r\n return file.size > this.sizeRestrictions.max || this.isFileWrongFormat(file);\r\n }\r\n\r\n /**\r\n * Detects if the file has a wrong format\r\n *\r\n * @param {File} file selected input file\r\n * @returns {boolean}\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public isFileWrongFormat(file: File): boolean {\r\n const fileExtension = this.getFileExtensionFromFile(file);\r\n return !this.allowedFileFormats.includes(`.${fileExtension}`);\r\n }\r\n\r\n\r\n /**\r\n * Checks the form validation by checking the format and size limit\r\n *\r\n * @returns\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public formValidation(): boolean {\r\n // file error validation checker\r\n if (this.wrongFormatFiles.length || this.oversizeFiles.length) {\r\n const sumErrors = this.oversizeFiles.length + this.wrongFormatFiles.length;\r\n this.serverError = `${sumErrors.toString()} errors found, please review the files to upload.`;\r\n this.saveInProgress = false;\r\n return false;\r\n }\r\n // file limit validation checker\r\n if (this.files.length > this.maxFilesLimit) {\r\n this.serverError = `Please select a maximum of ${this.maxFilesLimit.toString()} files. More files can be added later when reviewing the Site Diary entry.`;\r\n this.saveInProgress = false;\r\n return false;\r\n }\r\n // default form validation checker\r\n if (this.validateForm()) { return true; }\r\n }\r\n\r\n /**\r\n * Sends the new site diary to api\r\n * All images will be individually uploaded to blob\r\n * Will throw a server error in case the http request is not successfull\r\n *\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public onSubmit(): void {\r\n\r\n if (this.formValidation()) {\r\n this.saveInProgress = true;\r\n const mediaFiles = [];\r\n const filePath = `Site/${this.site.SiteId}/SiteDiary/${this.siteDiaryId}/`;\r\n\r\n // creates the media files structure to be added to the command\r\n this.files.forEach(file => {\r\n mediaFiles.push({\r\n MimeType: file.type,\r\n Path: filePath + file.name,\r\n Title: file.mediaName\r\n });\r\n });\r\n\r\n // sends the files to blob with the correct file path, in case it fails it will display an error message to the user\r\n this.files.forEach((file) => {\r\n this.imageUploadService.uploadImage(file, filePath + file.name).subscribe(() => {\r\n console.log('File Uploaded', file);\r\n }, this.serverErrorCallback);\r\n });\r\n\r\n // gets the selected category (dropdown)\r\n const selectedCategory = this.diaryCategories.find(dc => dc.DiaryCategoryId === this.form.value.categories);\r\n\r\n const command: CreateSiteDiaryWebConsoleCommand = {\r\n DiaryId: this.siteDiaryId,\r\n By: this.loggedInStaff.StaffId,\r\n Media: mediaFiles,\r\n SiteId: this.site.SiteId,\r\n When: moment().toISOString(),\r\n OffsetFromUtc: moment().utcOffset(),\r\n Category: selectedCategory,\r\n Notes: this.form.value.notes,\r\n CommandVersion: '',\r\n SourceApp: 'WebConsole',\r\n SourceAppVersion: ''\r\n };\r\n // sends the command to create a new site diary, in case it fails it will display an error message to the user\r\n this.siteCommandService.CreateSiteDiaryWebConsoleCommand(command).subscribe(() => {\r\n forkJoin([\r\n this.diaryQueryService.diaryQuery(false, command.DiaryId),\r\n this.siteDiaryQueryService.siteScaffoldDiaryQuery(false, this.siteReference)\r\n ]).subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(command as any);\r\n this.bsModalRef.hide();\r\n }, this.serverErrorCallback);\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n\r\n /**\r\n * Required by the AutoUnsubscriber\r\n *\r\n * @memberof AddSiteDiaryModalComponent\r\n */\r\n public ngOnDestroy(): void { }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{item.Title}}\r\n \r\n \r\n \r\n
\r\n \r\n {{item.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 No files selected\r\n {{files.length}} file{{ (files.length > 1) ? 's':'' }}\r\n selected{{errorLength}}\r\n {{file.name}}\r\n \r\n \r\n

sizeRestrictions.max\">\r\n {{errorMessages.fileSizeErrorMsg}}

\r\n

\r\n {{errorMessages.wrongFormat}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { mediaTypes } from 'app/sites/values/media-types';\r\nimport {\r\n DiaryData,\r\n EditScaffoldMediaCommand,\r\n EditScaffoldMediaTranscriptionCommand,\r\n MediaBaseData,\r\n MediaTranscriptionData,\r\n ScaffoldCommandService,\r\n SiteCommandService,\r\n EditSiteDiaryMediaCommand,\r\n DiaryQuery,\r\n} from 'app/core/hub-api';\r\nimport { DeleteDiaryMediaModalContext } from '../../../../models/delete-diary-media-modal-context';\r\nimport { Observable } from 'rxjs';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-scaffold-diary-media-modal',\r\n templateUrl: './delete-diary-media-modal.component.html',\r\n styleUrls: ['./delete-diary-media-modal.component.scss']\r\n})\r\nexport class DeleteScaffoldDiaryMediaModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n form: UntypedFormGroup;\r\n validationMessages: { [key: string]: { [key: string]: string; }; };\r\n media: MediaBaseData;\r\n scaffoldDiary: DiaryData;\r\n saveInProgress = false;\r\n\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n private bsModalService: BsModalService,\r\n private scaffoldCommandService: ScaffoldCommandService,\r\n private siteCommandService: SiteCommandService,\r\n public modalService: BsModalService,\r\n ) { super(); }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.media = this.context.media;\r\n this.scaffoldDiary = this.context.diary;\r\n }\r\n\r\n onSubmit(): void {\r\n this.saveInProgress = true;\r\n const commandResponse = (this.context.diary.DiaryType === 0) ? this.editSiteDiary() : this.editScaffoldDiary();\r\n\r\n const diaryQuery = new DiaryQuery();\r\n diaryQuery.DiaryId = this.scaffoldDiary.DiaryId;\r\n diaryQuery.DiaryType = this.scaffoldDiary.DiaryType;\r\n\r\n commandResponse.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(this.media.MediaReferenceId);\r\n this.bsModalRef.hide();\r\n\r\n });\r\n }\r\n\r\n editScaffoldDiary(): Observable {\r\n const editScaffoldMediaCommand: EditScaffoldMediaCommand | EditScaffoldMediaTranscriptionCommand = {\r\n ScaffoldId: this.context.id,\r\n MediaReferenceId: this.media.MediaReferenceId,\r\n Title: this.media.Title,\r\n Transcription: (this.media as MediaTranscriptionData).Transcription,\r\n Deleted: true,\r\n };\r\n\r\n const commandResponse = this.media.Type === mediaTypes.transcription\r\n ? this.scaffoldCommandService.EditScaffoldMediaTranscriptionCommand(editScaffoldMediaCommand)\r\n : this.scaffoldCommandService.EditScaffoldMediaCommand(editScaffoldMediaCommand);\r\n return commandResponse;\r\n }\r\n\r\n editSiteDiary(): Observable {\r\n const editSiteMediaCommand: EditSiteDiaryMediaCommand = {\r\n SiteId: this.context.id,\r\n MediaReferenceId: this.media.MediaReferenceId,\r\n Title: this.media.Title,\r\n Deleted: true,\r\n };\r\n\r\n return this.siteCommandService.EditSiteDiaryMediaCommand(editSiteMediaCommand);\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n

Are you sure you wish to delete {{media.Title}}?

\r\n \r\n \r\n
","import { ActivatedRoute } from '@angular/router';\r\nimport { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { SiteScaffoldDiaryQueryService } from 'app/core/services/site-scaffold-diary-query.service';\r\nimport { errorMessages } from 'app/shared/values/error-messages';\r\nimport { each, map } from 'lodash';\r\nimport { combineLatest, forkJoin } from 'rxjs';\r\nimport {\r\n ConfigurationCommandService,\r\n ConfigurationData,\r\n CreateDiaryCategoryCommand,\r\n DeleteDiaryCategoryCommand,\r\n EditDiaryCategoryCommand\r\n} from 'app/core/hub-api';\r\nimport { diaryCategoryIds } from 'app/shared/values/diary-category-ids';\r\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\r\nimport { SSDialogContext, SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { ModalDialogComponent } from 'app/shared/components/modal-dialog/modal-dialog.component';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-diary-categories',\r\n templateUrl: './diary-categories.component.html',\r\n styleUrls: ['./diary-categories.component.scss']\r\n})\r\nexport class ScaffoldDiaryCategoriesComponent implements OnInit, OnDestroy {\r\n siteReference: string;\r\n\r\n configuration: ConfigurationData;\r\n diaryCategories: any[];\r\n\r\n addCategoryForm: UntypedFormGroup;\r\n addCategoryTitleFormControl: UntypedFormControl;\r\n addCategoryError: string;\r\n addingCategory: boolean;\r\n\r\n editCategoryForm: UntypedFormGroup;\r\n editCategoryFormArray: UntypedFormArray;\r\n editCategoryValidationErrors: string[];\r\n\r\n @ViewChild(BsDropdownDirective)\r\n bsDropdown: BsDropdownDirective;\r\n\r\n constructor(\r\n private sitediaryQueryService: SiteScaffoldDiaryQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private configurationCommandService: ConfigurationCommandService,\r\n private route: ActivatedRoute,\r\n public modalService: BsModalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.siteReference = this.route.parent.parent.snapshot.params['siteReference'];\r\n const obs$ = combineLatest([this.configurationQueryService.configurationDataChanges()]);\r\n obs$.subscribe(latest => {\r\n this.refreshComponent(latest[0]);\r\n });\r\n }\r\n\r\n refreshComponent(configuration: ConfigurationData): void {\r\n this.configuration = configuration;\r\n // Don't allow the user to edit the uncategorised category.\r\n this.diaryCategories = map(configuration.DiaryCategories)\r\n .sort((a, b) => (a.Title.toLowerCase() > b.Title.toLowerCase() ? 1 : -1))\r\n .filter(c => c.DiaryCategoryId !== diaryCategoryIds.uncategorised);\r\n\r\n // Initialise the add categories form.\r\n this.addCategoryTitleFormControl = new UntypedFormControl();\r\n this.addCategoryForm = new UntypedFormGroup({\r\n title: this.addCategoryTitleFormControl\r\n });\r\n\r\n this.addCategoryTitleFormControl.valueChanges.subscribe(() => {\r\n this.validateAddCategory();\r\n });\r\n\r\n // Initialise the edit categories form.\r\n this.editCategoryFormArray = new UntypedFormArray(\r\n this.diaryCategories.map((category, index) => {\r\n const titleFormControl = new UntypedFormControl(category.Title);\r\n titleFormControl.valueChanges.subscribe(title => {\r\n this.validateEditCategory(index);\r\n });\r\n return new UntypedFormGroup({\r\n title: titleFormControl\r\n });\r\n })\r\n );\r\n this.editCategoryForm = new UntypedFormGroup({\r\n categories: this.editCategoryFormArray\r\n });\r\n\r\n // Initialise edit categories validation errors.\r\n this.editCategoryValidationErrors = [];\r\n each(this.diaryCategories, () => this.editCategoryValidationErrors.push(''));\r\n }\r\n\r\n onDeleteCategory(field: any, index: number): void {\r\n const context: SSDialogContext = {\r\n title: 'Delete Category?',\r\n body: `Please note that this will delete \"${this.diaryCategories[index].Title\r\n }\" from the category list and all assigned entries will become \"Uncategorised\"`,\r\n okBtnClass: 'btn button-assertive',\r\n okBtnText: 'Delete',\r\n cancelBtnClass: 'btn btn-default',\r\n cancelBtnText: 'Cancel',\r\n showHeaderClose: true,\r\n showOnlyCloseBtn: false,\r\n dialogClass: 'modal-dialog',\r\n headerClass: 'confirm-modal-header',\r\n footerClass: 'confirm-modal-footer'\r\n };\r\n const config: ModalOptions = {\r\n animated: true,\r\n class: 'modal-md modal-danger',\r\n ignoreBackdropClick: true, // Required\r\n keyboard: false, // Required\r\n initialState: {\r\n // context: context\r\n }\r\n };\r\n const modal = this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context, config))\r\n modal.content.onClose.subscribe(\r\n result => {\r\n if (result !== null && result !== false) {\r\n this.deleteCategory(field, index);\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n\r\n deleteCategory(field: any, index: number): void {\r\n const deleteDiaryCategoryCommand: DeleteDiaryCategoryCommand = {\r\n DiaryCategoryId: this.diaryCategories[index].DiaryCategoryId\r\n };\r\n\r\n field.updating = true;\r\n this.configurationCommandService.DeleteDiaryCategoryCommand(deleteDiaryCategoryCommand).subscribe(() => {\r\n const obs$ = forkJoin([\r\n this.sitediaryQueryService.siteScaffoldDiaryQuery(false, this.siteReference),\r\n this.configurationQueryService.configurationQuery(false)\r\n ]);\r\n obs$.subscribe(() => {\r\n field.updating = false;\r\n },\r\n error => {\r\n field.updating = false;\r\n console.error(error);\r\n });\r\n }, error => {\r\n field.updating = false;\r\n console.error(error);\r\n });\r\n }\r\n\r\n onAddCategory(): void {\r\n if (!this.validateAddCategory()) {\r\n return;\r\n }\r\n\r\n this.addingCategory = true;\r\n const createDiaryCategoryCommand: CreateDiaryCategoryCommand = {\r\n DiaryCategoryId: UUID.UUID(),\r\n Title: this.addCategoryTitleFormControl.value\r\n };\r\n\r\n this.configurationCommandService.CreateDiaryCategoryCommand(createDiaryCategoryCommand).subscribe(() => {\r\n this.configurationQueryService.configurationQuery(false).subscribe(() => {\r\n this.addingCategory = false;\r\n this.addCategoryTitleFormControl.reset('');\r\n });\r\n });\r\n }\r\n\r\n validateAddCategory(): boolean {\r\n if (this.addCategoryTitleFormControl.pristine) {\r\n return;\r\n }\r\n this.addCategoryTitleFormControl.markAsTouched();\r\n const title = this.addCategoryTitleFormControl.value;\r\n let error = '';\r\n if (!title) {\r\n error = errorMessages.required;\r\n }\r\n this.addCategoryError = error;\r\n return !error;\r\n }\r\n\r\n onEditCategory(field: any, index: number): void {\r\n const editDiaryCategoryCommand: EditDiaryCategoryCommand = {\r\n DiaryCategoryId: this.diaryCategories[index].DiaryCategoryId,\r\n Title: (this.editCategoryFormArray.controls[index] as UntypedFormGroup).controls.title.value\r\n };\r\n\r\n if (!this.validateEditCategory(index)) {\r\n return;\r\n }\r\n\r\n field.updating = true;\r\n this.configurationCommandService.EditDiaryCategoryCommand(editDiaryCategoryCommand).subscribe(() => {\r\n const obs$ = forkJoin([\r\n this.sitediaryQueryService.siteScaffoldDiaryQuery(false, this.siteReference),\r\n this.configurationQueryService.configurationQuery(false)\r\n ]);\r\n obs$.subscribe(() => {\r\n field.editing = false;\r\n field.updating = false;\r\n });\r\n });\r\n }\r\n\r\n validateEditCategory(index: number): boolean {\r\n const title = (this.editCategoryFormArray.controls[index] as UntypedFormGroup).controls.title.value;\r\n let error = '';\r\n if (!title) {\r\n error = errorMessages.required;\r\n }\r\n this.editCategoryValidationErrors[index] = error;\r\n return !error;\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n \r\n Categories\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ diaryCategories[i].Title }}\r\n \r\n

{{ editCategoryValidationErrors[i] }}

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

\r\n {{ addCategoryError }}

\r\n
\r\n
\r\n\r\n
\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { colors } from 'app/shared/values/colours';\r\nimport { AddScaffoldDiaryMediaModalComponent } from 'app/sites/components/site-detail/diary/add-diary-media-modal/add-diary-media-modal.component';\r\nimport { DeleteScaffoldDiaryMediaModalComponent } from 'app/sites/components/site-detail/diary/delete-diary-media-modal/delete-diary-media-modal.component';\r\nimport { AddScaffoldDiaryMediaModalContext } from 'app/sites/models/add-scaffold-diary-media-modal-context';\r\nimport { DeleteDiaryMediaModalContext } from 'app/sites/models/delete-diary-media-modal-context';\r\nimport { RenameDiaryMediaModalContext } from 'app/sites/models/rename-diary-media-modal-context';\r\nimport { DiaryQueryService } from 'app/sites/services/diary-query-service';\r\nimport { mediaTypes } from 'app/sites/values/media-types';\r\nimport { saveAs } from 'file-saver';\r\nimport { Observable, combineLatest } from 'rxjs';\r\nimport {\r\n ConfigurationData,\r\n DiaryCategoryData,\r\n MediaBaseData,\r\n MediaData,\r\n MediaTranscriptionData,\r\n ScaffoldCommandService,\r\n DiaryData,\r\n ScaffoldWebAppData,\r\n TranscribeMediaCommand,\r\n DiaryDataTypeEnum,\r\n DiaryQuery,\r\n SiteCommandService,\r\n SiteDiaryTranscribeMediaCommand\r\n} from 'app/core/hub-api';\r\nimport { RenameScaffoldMediaModalComponent } from '../rename-diary-media-modal/rename-diary-media-modal.component';\r\nimport { InsightBaseComponent } from 'app/core/components/insight/insight-base.component';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { MediaDataTranscription } from 'app/sites/models/media-data-transcription';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSDialogContext, SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { ModalDialogComponent } from 'app/shared/components/modal-dialog/modal-dialog.component';\r\nimport { ToasterService } from 'angular2-toaster';\r\n\r\n/**\r\n * Diary Detail Page\r\n * This page allows the user to view all the information for a selected diary\r\n * A media section is displayed where all media can be viewed, downloaded, renamed or transcribed\r\n *\r\n * @export\r\n * @class DiaryDetailComponent\r\n * @extends {InsightBaseComponent}\r\n * @implements {OnInit}\r\n * @implements {OnDestroy}\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-diary-detail',\r\n templateUrl: './diary-detail.component.html',\r\n styleUrls: ['./diary-detail.component.scss']\r\n})\r\nexport class DiaryDetailComponent extends InsightBaseComponent implements OnInit, OnDestroy {\r\n /** Stores all media types */\r\n mediaTypes = mediaTypes;\r\n /** Stores the selected site reference (e.g. 00001) */\r\n siteReference: string;\r\n /** Stores the scaffold diary */\r\n scaffoldDiary: DiaryData;\r\n /** Stores all media data for the diary, contains Audio, Video, Images and PDF */\r\n mediaData: MediaData[];\r\n /** Stores the selected scaffold */\r\n scaffold: ScaffoldWebAppData;\r\n /** Stores the selected diary category */\r\n diaryCategory: DiaryCategoryData;\r\n /** Stores the modal title (e.g. Scaffold Diary or Site Diary) */\r\n title: string;\r\n /** Detects if the current is a Site Diary, if not then it is a Scaffold Diary */\r\n isSiteDiary: boolean;\r\n /** Detects if the data has loaded so the view can be loaded */\r\n loaded: boolean;\r\n /** Stores all the icons for the media types */\r\n mediaTypeIcons = {\r\n [mediaTypes.video]: 'fa-video-camera',\r\n [mediaTypes.audio]: 'fa-headphones',\r\n [mediaTypes.image]: 'fa-image',\r\n [mediaTypes.transcription]: 'fa-file-text',\r\n [mediaTypes.pdf]: 'fa-file-pdf'\r\n };\r\n /** Stores the percentage standing data (e.g. 90) */\r\n percentageStandingData: number[];\r\n /** Stores the percentage standing list of colors */\r\n percentageStandingColors: string[];\r\n /** Stores the selected scaffoldId or siteId */\r\n id: string;\r\n /** Stores the selected diary type */\r\n diaryType: DiaryDataTypeEnum;\r\n\r\n constructor(\r\n private diaryQueryService: DiaryQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private scaffoldCommandService: ScaffoldCommandService,\r\n private siteCommandService: SiteCommandService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private toasterService: ToasterService,\r\n private bsModalService: BsModalService\r\n\r\n ) {\r\n super();\r\n }\r\n\r\n /**\r\n * Component Initialisation\r\n *\r\n * @memberof DiaryDetailComponent\r\n */\r\n public ngOnInit(): void {\r\n this.loaded = false;\r\n const diaryId = this.route.snapshot.params['diaryId'];\r\n const diaryTypeParam = this.route.snapshot.params['diaryType'];\r\n this.diaryType = diaryTypeParam === '0' ? DiaryDataTypeEnum.SiteDiary : DiaryDataTypeEnum.ScaffoldDiary;\r\n\r\n this.id = this.route.snapshot.params['id'];\r\n\r\n this.siteReference = this.route.parent.parent.snapshot.params['siteReference'];\r\n\r\n const diaryQuery = new DiaryQuery();\r\n diaryQuery.DiaryId = diaryId;\r\n diaryQuery.DiaryType = this.diaryType;\r\n\r\n const scaffoldDiaryChanges = this.diaryQueryService.getDiaryData(diaryQuery);\r\n combineLatest([scaffoldDiaryChanges,\r\n this.configurationQueryService.configurationDataChanges()]).subscribe(latest => {\r\n this.refreshComponent(latest[0], latest[1]);\r\n });\r\n }\r\n\r\n /**\r\n * Refreshes the diary details page with new/cached data\r\n *\r\n * @param {DiaryData[]} diaries\r\n * @param {ConfigurationData} configuration\r\n * @memberof DiaryDetailComponent\r\n */\r\n public refreshComponent(diaries: DiaryData[], configuration: ConfigurationData): void {\r\n\r\n if (diaries == null) {\r\n throw (new Error('null value obtained'));\r\n }\r\n if (diaries.length === 0) {\r\n throw (new Error('no diaries found'));\r\n }\r\n if (diaries.length > 1) {\r\n throw (new Error('duplicate diaries found'));\r\n }\r\n const diary = diaries[0];\r\n this.diaryCategory = configuration.DiaryCategories[diary.DiaryCategoryId];\r\n this.scaffoldDiary = diary;\r\n this.isSiteDiary = diary.DiaryType === DiaryDataTypeEnum.SiteDiary;\r\n this.title = this.isSiteDiary ? 'Site Diary' : `Scaffold ${diary.ScaffoldNumber}`;\r\n this.percentageStandingData = [this.scaffoldDiary.PercentageStanding, 100 - this.scaffoldDiary.PercentageStanding];\r\n this.percentageStandingColors = [colors.positive, colors.lightGrey];\r\n const mediaData = this.scaffoldDiary.Images.concat(this.scaffoldDiary.Audios, this.scaffoldDiary.Videos, this.scaffoldDiary.Transcriptions as any, this.scaffoldDiary.PDFs);\r\n this.mediaData = mediaData.filter(d => d.Title = !d.Title ? 'Untitled' : d.Title)\r\n .sort((a, b) => (a.Title.toLowerCase() > b.Title.toLowerCase() ? 1 : -1));\r\n this.loaded = true;\r\n }\r\n\r\n /**\r\n * Will open the respective selected file\r\n * The file will be opened on the DiaryMediaViewerComponent\r\n *\r\n * @param {MediaBaseData} media selected media from the side list\r\n * @memberof DiaryDetailComponent\r\n */\r\n onMediaClicked(media: MediaBaseData): void {\r\n this.router.navigate([media.Type, media.MediaReferenceId], { relativeTo: this.route, state: { selectedMedia: media } });\r\n }\r\n\r\n /**\r\n * Allows to download the transcription as a word format document\r\n *\r\n * @param {MediaTranscriptionData} transcription selected media file data\r\n * @memberof DiaryDetailComponent\r\n */\r\n public onDownloadClicked(transcription: MediaTranscriptionData): void {\r\n const transcriptionBlob = new Blob([`${transcription.Transcription}`], { type: 'text/html' });\r\n const filename = `${transcription.Title}.doc`;\r\n saveAs(transcriptionBlob, filename);\r\n }\r\n\r\n\r\n /**\r\n * Dialog to confirm if user wants to transcribe the selected media\r\n *\r\n * @param {MediaDataTranscription} media selected media file\r\n * @memberof DiaryDetailComponent\r\n */\r\n public onTranscribeClicked(media: MediaDataTranscription): void {\r\n const context: SSDialogContext = {\r\n title: 'Transcribe Media?',\r\n body: `This operation might take a while depending on the audio duration. You will be notified when the transcription file is completed.`,\r\n okBtnText: 'Transcribe Media',\r\n cancelBtnText: 'Cancel',\r\n };\r\n const modal = this.bsModalService.show(ModalDialogComponent, SSModalConfig.generate(context));\r\n modal.onHidden.subscribe(\r\n result => {\r\n if (result !== null) {\r\n return this.transcribeMedia(media);\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n },\r\n () => { }\r\n );\r\n }\r\n\r\n\r\n /**\r\n * Transcribes the selected media\r\n * In case of success or failure it will show a toaster message\r\n *\r\n * @param {MediaDataTranscription} media selected media file\r\n * @public was made public so we can do unit testing\r\n * @memberof DiaryDetailComponent\r\n */\r\n public transcribeMedia(media: MediaDataTranscription): void {\r\n media.transcribing = true;\r\n const transcribeObservable = this.isSiteDiary ? this.transcribeSiteMedia(media) : this.transcribeScaffoldMedia(media);\r\n transcribeObservable.subscribe(\r\n () => {\r\n this.toasterService.pop('success', 'Transcription Complete', `Transcription of \"${media.Title}\" is complete.`);\r\n media.transcribing = false;\r\n const diaryQuery = new DiaryQuery();\r\n diaryQuery.DiaryId = this.scaffoldDiary.DiaryId;\r\n diaryQuery.DiaryType = this.diaryType;\r\n\r\n const scaffoldDiaryChanges = this.diaryQueryService.getDiaryData(diaryQuery);\r\n combineLatest([scaffoldDiaryChanges,\r\n this.configurationQueryService.configurationDataChanges()]).subscribe(latest => {\r\n this.refreshComponent(latest[0], latest[1]);\r\n });\r\n },\r\n () => {\r\n this.toasterService.pop('error', 'Transcription Failed', `Transcription of \"${media.Title}\" failed.`);\r\n media.transcribing = false;\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Transcribes the media when it is a Site Diary\r\n *\r\n * @private\r\n * @param {MediaData} media selected media file\r\n * @returns {Observable}\r\n * @memberof DiaryDetailComponent\r\n */\r\n private transcribeSiteMedia(media: MediaData): Observable {\r\n const transcribeMediaCommand: SiteDiaryTranscribeMediaCommand = {\r\n SiteId: this.id,\r\n MediaReferenceId: media.MediaReferenceId\r\n };\r\n return this.siteCommandService\r\n .SiteDiaryTranscribeMediaCommand(transcribeMediaCommand);\r\n }\r\n\r\n /**\r\n * Transcribes the media when it is a Scaffold Diary\r\n *\r\n * @private\r\n * @param {MediaData} media selected media file\r\n * @returns {Observable}\r\n * @memberof DiaryDetailComponent\r\n */\r\n private transcribeScaffoldMedia(media: MediaData): Observable {\r\n const transcribeMediaCommand: TranscribeMediaCommand = {\r\n ScaffoldId: this.id,\r\n MediaReferenceId: media.MediaReferenceId\r\n };\r\n return this.scaffoldCommandService.TranscribeMediaCommand(transcribeMediaCommand);\r\n }\r\n\r\n\r\n\r\n /**\r\n * Detects if the selected media file can be transcribed\r\n * NOTE: This is used on UI\r\n *\r\n * @param {MediaDataTranscription} media selected media file\r\n * @returns {boolean}\r\n * @memberof DiaryDetailComponent\r\n */\r\n public canBeTranscribed(media: MediaDataTranscription): boolean {\r\n // The markup is commented\r\n return !media.transcribing && (media.Type === mediaTypes.audio || media.Type === mediaTypes.video);\r\n }\r\n\r\n /**\r\n * User triggered action to rename the selected media file\r\n *\r\n * @param {MediaBaseData} media selected media file\r\n * @memberof DiaryDetailComponent\r\n */\r\n public onRename(media: MediaBaseData): void {\r\n const context: RenameDiaryMediaModalContext = {\r\n transcriptionMode: media.Type === mediaTypes.transcription,\r\n scaffoldDiary: this.scaffoldDiary,\r\n media: media,\r\n id: this.id\r\n };\r\n this.bsModalService.show(RenameScaffoldMediaModalComponent, SSModalConfig.generate(context));\r\n this.bsModalService.onHide.subscribe(\r\n (newName) => {\r\n context.media.Title = newName;\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * User triggered action to deleted the selected media file\r\n *\r\n * @param {MediaBaseData} media selected media file\r\n * @memberof DiaryDetailComponent\r\n */\r\n public onDelete(media: MediaBaseData): void {\r\n const context: DeleteDiaryMediaModalContext = {\r\n diary: this.scaffoldDiary,\r\n media: media,\r\n id: this.id\r\n };\r\n this.bsModalService.show(DeleteScaffoldDiaryMediaModalComponent, SSModalConfig.generate(context));\r\n this.bsModalService.onHide.subscribe(\r\n (mediaReferenceId) => {\r\n this.mediaData = this.mediaData.filter(a => a.MediaReferenceId !== mediaReferenceId);\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * User triggered option opens the upload media modal\r\n *\r\n * @memberof DiaryDetailComponent\r\n */\r\n public onUploadMedia(): void {\r\n const context: AddScaffoldDiaryMediaModalContext = {\r\n siteReference: this.siteReference,\r\n diary: this.scaffoldDiary,\r\n scaffoldId: this.id,\r\n diaryType: this.diaryType\r\n };\r\n this.bsModalService.show(AddScaffoldDiaryMediaModalComponent, SSModalConfig.generate(context));\r\n this.bsModalService.onHide.subscribe(\r\n () => {\r\n const diaryQuery = new DiaryQuery();\r\n diaryQuery.DiaryId = this.scaffoldDiary.DiaryId;\r\n diaryQuery.DiaryType = this.diaryType;\r\n const scaffoldDiaryChanges = this.diaryQueryService.getDiaryData(diaryQuery);\r\n const obs$ = combineLatest([scaffoldDiaryChanges,\r\n this.configurationQueryService.configurationDataChanges()]);\r\n obs$.subscribe(latest => {\r\n this.refreshComponent(latest[0], latest[1]);\r\n });\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Required by the AutoUnsubscribe\r\n *\r\n * @memberof DiaryDetailComponent\r\n */\r\n public ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{title}}

\r\n \r\n

{{ scaffoldDiary.SiteAreaName }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ scaffoldDiary.When | date : 'MMM d, y, HH:mm' }}\r\n {{ scaffoldDiary.OwnerName }}\r\n \r\n \r\n \r\n \r\n \r\n

{{ scaffoldDiary.Notes }}

\r\n
\r\n \r\n
\r\n
Standing Tonnage
\r\n

{{ scaffoldDiary.StandingTonnage | number:'.1-2'}}

\r\n
\r\n \r\n
\r\n
Scaffold Standing
\r\n \r\n \r\n

{{ scaffoldDiary.PercentageStanding }}%

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

\r\n Media\r\n

\r\n \r\n \r\n Upload Media\r\n \r\n
\r\n
\r\n \r\n

Welcome to the {{isSiteDiary?'site': 'scaffold'}} diary media area

\r\n

It doesn't look like you have added any media for this {{isSiteDiary?'site': 'scaffold'}} diary.

\r\n \r\n Upload Media\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {{ media.Title }}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { SiteScaffoldDiaryQueryService } from 'app/core/services/site-scaffold-diary-query.service';\r\nimport { each, map } from 'lodash';\r\nimport { combineLatest } from 'rxjs';\r\nimport { ConfigurationData, DiaryDataTypeEnum, ScaffoldWebAppData, SiteScaffoldDiaryData, SiteWebAppData } from 'app/core/hub-api';\r\nimport { InsightBaseComponent } from 'app/core/components/insight/insight-base.component';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { AddSiteDiaryModalComponentContext } from '../add-site-diary-modal/add-site-diary-modal-context';\r\nimport { AddSiteDiaryModalComponent } from '../add-site-diary-modal/add-site-diary-modal.component';\r\nimport { SiteDetailQueryService } from 'app/sites/services/site-detail-query.service';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { SiteScaffoldQueryService } from 'app/sites/services/site-scaffolds-query.service';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-scaffold-diary-list',\r\n templateUrl: './diary-list.component.html',\r\n styleUrls: ['./diary-list.component.scss']\r\n})\r\nexport class DiaryListComponent extends InsightBaseComponent implements OnInit, OnDestroy {\r\n siteReference: string;\r\n\r\n siteScaffoldDiaries: SiteScaffoldDiaryData[];\r\n filteredScaffoldDiaries: SiteScaffoldDiaryData[];\r\n diaryDataTypes = DiaryDataTypeEnum;\r\n diaryCategories: any[];\r\n allScaffolds: ScaffoldWebAppData[];\r\n\r\n filtersForm: UntypedFormGroup;\r\n searchTermFormControl: UntypedFormControl;\r\n\r\n currentSite: SiteWebAppData;\r\n\r\n constructor(\r\n private sitediaryQueryService: SiteScaffoldDiaryQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService,\r\n private bsModalService: BsModalService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.searchTermFormControl = new UntypedFormControl();\r\n\r\n this.filtersForm = new UntypedFormGroup({\r\n searchTerm: this.searchTermFormControl\r\n });\r\n\r\n this.searchTermFormControl.valueChanges.subscribe(() => {\r\n this.setFilteredScaffoldDiaries();\r\n });\r\n this.siteReference = this.route.parent.parent.snapshot.params['siteReference'];\r\n\r\n const siteDetailChanges = this.siteDetailQueryService.siteDetailDataChanges(this.siteReference);\r\n const scaffoldsChanges = siteDetailChanges.pipe(mergeMap(site => this.siteScaffoldQueryService.siteScaffoldDataChanges(site.SiteId)));\r\n\r\n const obs$ = combineLatest([\r\n this.sitediaryQueryService.siteScaffoldDiaryDataChanges(this.siteReference),\r\n this.configurationQueryService.configurationDataChanges(),\r\n this.siteDetailQueryService.siteDetailQuery(false, this.siteReference),\r\n scaffoldsChanges,\r\n ]);\r\n obs$.subscribe(latest => {\r\n this.refreshComponent(latest[0], latest[1], latest[2], latest[3]);\r\n });\r\n }\r\n\r\n refreshComponent(_siteScaffoldDiaries: SiteScaffoldDiaryData[], configuration: ConfigurationData, site: SiteWebAppData, scaffolds: ScaffoldWebAppData[]): void {\r\n this.allScaffolds = scaffolds;\r\n this.currentSite = site;\r\n this.siteScaffoldDiaries = _siteScaffoldDiaries;\r\n\r\n this.diaryCategories = map(configuration.DiaryCategories).sort((a, b) => (a.Title.toLowerCase() > b.Title.toLowerCase() ? 1 : -1));\r\n\r\n // Show diaries belonging to any category to begin with.\r\n each(this.diaryCategories, c => (c.selected = true));\r\n this.setFilteredScaffoldDiaries();\r\n }\r\n\r\n private setFilteredScaffoldDiaries(): void {\r\n if (!this.siteScaffoldDiaries) {\r\n return;\r\n }\r\n\r\n let filteredScaffoldDiaries = this.siteScaffoldDiaries;\r\n\r\n // Filter by search term.\r\n if (this.searchTermFormControl.value) {\r\n filteredScaffoldDiaries = filteredScaffoldDiaries.filter(d => {\r\n const keys = Object.keys(d);\r\n return keys.some(key =>\r\n (d[key] || '')\r\n .toString()\r\n .toLowerCase()\r\n .includes(this.searchTermFormControl.value.toLowerCase())\r\n );\r\n });\r\n }\r\n\r\n // Filter by category\r\n const selectedCategoryIds = this.diaryCategories.filter(c => c.selected).map(c => c.DiaryCategoryId);\r\n filteredScaffoldDiaries = filteredScaffoldDiaries.filter(d => selectedCategoryIds.includes(d.DiaryCategoryId));\r\n\r\n this.filteredScaffoldDiaries = filteredScaffoldDiaries;\r\n }\r\n\r\n toggleCategory(category: any): void {\r\n category.selected = !category.selected;\r\n this.setFilteredScaffoldDiaries();\r\n }\r\n\r\n /**\r\n * Navigates to the diary details page\r\n *\r\n * @param {*} event\r\n * @memberof ScaffoldDiaryListComponent\r\n */\r\n navigateTo(event): void {\r\n if (event.type === 'click') {\r\n const id = this.getId(event);\r\n this.router.navigate([`${event.row.DiaryId}/${event.row.Type}/${id}`], { relativeTo: this.route });\r\n }\r\n }\r\n\r\n /**\r\n * Gets the site ID or scaffold ID depending on the type\r\n *\r\n * @param {*} event\r\n * @returns {string}\r\n * @memberof ScaffoldDiaryListComponent\r\n */\r\n getId(event): string {\r\n if (event.row.Type === 0) {\r\n return this.currentSite.SiteId;\r\n }\r\n return this.allScaffolds[0].ScaffoldId;\r\n }\r\n\r\n /**\r\n * When user clicks add site diary this will open the add site diary modal\r\n *\r\n * @memberof ScaffoldDiaryListComponent\r\n */\r\n onAddSiteDiary(): void {\r\n const context: AddSiteDiaryModalComponentContext = {\r\n siteReference: this.currentSite.SiteReference,\r\n diaryCategories: this.diaryCategories,\r\n site: this.currentSite\r\n };\r\n this.bsModalService.show(AddSiteDiaryModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Welcome to the site and scaffold diary area

\r\n

It doesn't look like any site or scaffold diaries have been completed yet!

\r\n \r\n Add site diary entry\r\n
\r\n \r\n
\r\n \r\n \r\n

Loading Diary Data...

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

Diary Entries

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\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.Label }}

\r\n

{{ row.Label }}

\r\n
\r\n
\r\n \r\n \r\n \r\n {{ row.DiaryCategoryName }}\r\n \r\n \r\n \r\n \r\n {{ row.Notes }}\r\n \r\n \r\n \r\n \r\n \r\n {{row.ImageCount}}\r\n \r\n {{row.AudioCount}}\r\n \r\n {{row.VideoCount}}\r\n \r\n {{row.TranscriptionCount}}\r\n \r\n {{row.PDFCount}}\r\n \r\n \r\n \r\n \r\n {{ row.OwnerName }}\r\n \r\n \r\n \r\n \r\n {{ row.When | date : 'MMM d, y, HH:mm' }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n// Placeholder view, will only be seen when there is no diary media.\r\n@Component({\r\n selector: 'hub-diary-media-viewer-placeholder',\r\n templateUrl: './diary-media-viewer-placeholder.component.html',\r\n styleUrls: ['./diary-media-viewer-placeholder.component.scss']\r\n})\r\nexport class DiaryMediaViewerPlaceholderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ConfirmLeaveComponent } from 'app/shared/models/confirm-leave';\r\nimport { DiaryQueryService } from 'app/sites/services/diary-query-service';\r\nimport { cloneDeep, concat } from 'lodash';\r\nimport { combineLatest } from 'rxjs';\r\nimport { environment } from '../../../../../../environments/environment';\r\nimport {\r\n EditScaffoldMediaTranscriptionCommand,\r\n MediaData,\r\n MediaTranscriptionData,\r\n ScaffoldCommandService,\r\n DiaryData,\r\n DiaryQuery\r\n} from 'app/core/hub-api';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { ModalDialogComponent } from 'app/shared/components/modal-dialog/modal-dialog.component';\r\nimport { SSDialogContext, SSModalConfig } from 'app/shared/models/ss-modal-config';\r\n\r\n/**\r\n * Diary Media Viewer component\r\n * Component for viewing diary media - media transcription is also edited here, but could potentially be a separate component.\r\n *\r\n * @export\r\n * @class DiaryMediaViewerComponent\r\n * @implements {OnInit}\r\n * @implements {OnDestroy}\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-diary-media-viewer',\r\n templateUrl: './diary-media-viewer.component.html',\r\n styleUrls: ['./diary-media-viewer.component.scss']\r\n})\r\nexport class DiaryMediaViewerComponent implements OnInit, OnDestroy, ConfirmLeaveComponent {\r\n /** Stores the selected diary */\r\n diary: DiaryData;\r\n /** Stores the selected diary ScaffoldId/SiteId */\r\n id: string;\r\n /** Stores the file transcription */\r\n transcription: MediaTranscriptionData;\r\n /** Used for checking if the user has unsaved changes. */\r\n originalTranscription: string;\r\n /** Stores the selected media file */\r\n media: MediaData;\r\n /** Stores all the supported media types */\r\n mediaType: 'audio' | 'video' | 'image' | 'transcription';\r\n /** required by the ConfirmLeaveComponent */\r\n disposing: boolean;\r\n /** Froala editor settings */\r\n editorOptions: Object = {\r\n key: (environment as any).froalaKey,\r\n height: 375,\r\n attribution: false,\r\n toolbarButtons: [\r\n 'fullscreen',\r\n 'bold',\r\n 'italic',\r\n 'underline',\r\n 'strikeThrough',\r\n 'subscript',\r\n 'superscript',\r\n '|',\r\n 'fontFamily',\r\n 'fontSize',\r\n 'color',\r\n '|',\r\n 'align',\r\n 'outdent',\r\n 'indent',\r\n '-',\r\n '|',\r\n 'selectAll',\r\n 'clearFormatting',\r\n '|',\r\n 'print',\r\n 'spellChecker',\r\n 'help',\r\n '|',\r\n 'undo',\r\n 'redo'\r\n ],\r\n quickInsertTags: [],\r\n // TODO: This needs to be removed in 5.1 as we have a fix with slickgrid\r\n events: {\r\n 'froalaEditor.click': function (e: any, editor: any): void {\r\n editor.el.focus();\r\n }\r\n }\r\n };\r\n /** Detects is the transcription is being saved */\r\n savingMedia: boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private diaryQueryService: DiaryQueryService,\r\n private scaffoldCommandService: ScaffoldCommandService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private bsModalService: BsModalService\r\n ) { }\r\n\r\n /**\r\n * Component Initialisation\r\n *\r\n * @memberof DiaryMediaViewerComponent\r\n */\r\n public ngOnInit(): void {\r\n const diaryId = this.route.parent.snapshot.params['diaryId'];\r\n const diaryType = this.route.parent.snapshot.params['diaryType'];\r\n this.id = this.route.parent.snapshot.params['id'];\r\n\r\n const diaryQuery = new DiaryQuery();\r\n diaryQuery.DiaryId = diaryId;\r\n diaryQuery.DiaryType = diaryType;\r\n\r\n const obs$ = combineLatest(\r\n [this.diaryQueryService.getDiaryData(diaryQuery),\r\n this.route.params]\r\n );\r\n obs$.subscribe(latest => {\r\n this.refreshComponent(latest[0], latest[1]['mediaReferenceId'], latest[1]['mediaType']);\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Refreshes the view with new/cached data\r\n *\r\n * @param {DiaryData} scaffoldDiary\r\n * @param {string} mediaReferenceId\r\n * @param {string} mediaType\r\n * @memberof DiaryMediaViewerComponent\r\n */\r\n public refreshComponent(scaffoldDiary: DiaryData, mediaReferenceId: string, mediaType: string): void {\r\n // There seems to be a bug where dynamically changing a HTML5 audio/video src attribute does not result in loading the new video (Chrome 65).\r\n // Here we briefly remove the video from the dom and rerender it.\r\n this.mediaType = undefined;\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.diary = scaffoldDiary[0];\r\n const mediaData = concat(this.diary.Audios, this.diary.Videos, this.diary.Images, this.diary.PDFs);\r\n\r\n // Check if recently added media is shown on the mediaData array\r\n const currentNav = this.router.getCurrentNavigation();\r\n const selectedMediaFile = currentNav ? currentNav.extras.state.selectedMedia : null;\r\n if (selectedMediaFile) {\r\n const containsSelectedMedia = !!mediaData.find(s => s.MediaReferenceId === selectedMediaFile.MediaReferenceId);\r\n if (!containsSelectedMedia) mediaData.push(selectedMediaFile);\r\n }\r\n\r\n this.media = mediaData.find(d => d.MediaReferenceId === mediaReferenceId);\r\n this.mediaType = mediaType as any;\r\n\r\n this.transcription = cloneDeep(\r\n this.diary.Transcriptions.find(t => t.MediaReferenceId === mediaReferenceId)\r\n );\r\n this.originalTranscription = this.transcription ? this.transcription.Transcription : undefined;\r\n }\r\n\r\n /**\r\n * User triggered action to save the transcription from the froala editor\r\n *\r\n * @memberof DiaryMediaViewerComponent\r\n */\r\n public onSaveTranscription(): void {\r\n this.savingMedia = true;\r\n const editScaffoldMediaTranscriptionCommand: EditScaffoldMediaTranscriptionCommand = {\r\n ScaffoldId: this.id,\r\n MediaReferenceId: this.transcription.MediaReferenceId,\r\n Title: this.transcription.Title,\r\n Transcription: this.transcription.Transcription,\r\n Deleted: false\r\n };\r\n this.scaffoldCommandService\r\n .EditScaffoldMediaTranscriptionCommand(editScaffoldMediaTranscriptionCommand)\r\n .subscribe(() => {\r\n this.diaryQueryService.diaryQuery(false, this.diary.DiaryId).subscribe(() => {\r\n this.savingMedia = false;\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Required by the ConfirmLeaveComponent, triggers the transcription changed function\r\n *\r\n * @returns {boolean}\r\n * @memberof DiaryMediaViewerComponent\r\n */\r\n public shouldConfirmLeave(): boolean {\r\n return this.transcriptionChanged();\r\n }\r\n\r\n /**\r\n * Detects if the transcription has changed\r\n *\r\n * @returns {boolean}\r\n * @memberof DiaryMediaViewerComponent\r\n */\r\n transcriptionChanged(): boolean {\r\n return !!(this.transcription && this.transcription.Transcription !== this.originalTranscription);\r\n }\r\n\r\n /**\r\n * Dialog to confirm that the user has unsaved changes\r\n *\r\n * @returns {DialogRef}\r\n * @memberof DiaryMediaViewerComponent\r\n */\r\n displayConfirmLeaveModal(): Promise {\r\n return new Promise(resolve => {\r\n const context: SSDialogContext = {\r\n title: 'Unsaved Changes',\r\n body: 'You have unsaved changes. Carry on and lose the changes?',\r\n dialogClass: 'modal-dialog modal-lg',\r\n headerClass: 'modal-header confirm-modal-header',\r\n okBtnText: 'Yes carry on',\r\n cancelBtnText: 'No stop so I can save my changes',\r\n footerClass: 'modal-footer confirm-modal-footer'\r\n };\r\n const modal = this.bsModalService.show(ModalDialogComponent, SSModalConfig.generate(context));\r\n modal.content.onClose.subscribe(result => {\r\n if (result === true) {\r\n resolve(result);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Required by the AutoUnsubscribe\r\n *\r\n * @memberof DiaryMediaViewerComponent\r\n */\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n \r\n

{{ media.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
","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { fileNameRegex } from 'app/shared/regex/file-name.regex';\r\nimport { RenameDiaryMediaModalContext } from 'app/sites/models/rename-diary-media-modal-context';\r\nimport {\r\n DiaryData,\r\n EditScaffoldMediaCommand,\r\n EditScaffoldMediaTranscriptionCommand,\r\n EditSiteDiaryMediaCommand,\r\n MediaBaseData,\r\n MediaTranscriptionData,\r\n ScaffoldCommandService,\r\n SiteCommandService,\r\n} from 'app/core/hub-api';\r\n\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { DiaryQueryService } from '../../../../services/diary-query-service';\r\nimport { Observable } from 'rxjs';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-rename-diary-media-modal',\r\n templateUrl: './rename-diary-media-modal.component.html',\r\n styleUrls: ['./rename-diary-media-modal.component.scss']\r\n})\r\nexport class RenameScaffoldMediaModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n form: UntypedFormGroup;\r\n mediaTitleFormControl: UntypedFormControl;\r\n\r\n transcriptionMode: boolean;\r\n media: MediaBaseData;\r\n diary: DiaryData;\r\n\r\n validationMessages = {\r\n mediaTitle: {\r\n required: errorMessages.required,\r\n pattern: errorMessages.fileName,\r\n }\r\n };\r\n\r\n constructor(\r\n private bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private scaffoldCommandService: ScaffoldCommandService,\r\n private siteCommandService: SiteCommandService,\r\n private diaryQueryService: DiaryQueryService,\r\n public modalService: BsModalService,\r\n ) {\r\n super();\r\n }\r\n\r\n //\r\n // initialization\r\n //\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.media = this.context.media;\r\n this.diary = this.context.scaffoldDiary;\r\n this.transcriptionMode = this.context.transcriptionMode;\r\n\r\n this.mediaTitleFormControl = new UntypedFormControl(this.media.Title, [Validators.required, Validators.pattern(fileNameRegex)]);\r\n\r\n this.form = new UntypedFormGroup({\r\n mediaTitle: this.mediaTitleFormControl,\r\n });\r\n\r\n super.ngOnInit();\r\n }\r\n\r\n //\r\n // submit Edit diary media based on the formvaluues\r\n //\r\n onSubmit(formValues): void {\r\n if (!this.validateForm()) {\r\n return;\r\n }\r\n\r\n this.saveInProgress = true;\r\n\r\n const commandResponse = (this.context.scaffoldDiary.DiaryType === 0) ? this.editSiteMedia(formValues) : this.editScaffoldMedia(formValues);\r\n\r\n commandResponse.subscribe(() => {\r\n this.diaryQueryService.diaryQuery(false, this.diary.DiaryId).subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(formValues.mediaTitle);\r\n this.bsModalRef.hide();\r\n });\r\n });\r\n }\r\n\r\n //\r\n // Edit site media based on the formvalues\r\n //\r\n editSiteMedia(formValues): Observable {\r\n\r\n const editSiteDiaryMediaCommand: EditSiteDiaryMediaCommand = {\r\n SiteId: this.context.id,\r\n MediaReferenceId: this.media.MediaReferenceId,\r\n Title: formValues.mediaTitle,\r\n Deleted: false,\r\n };\r\n\r\n return this.siteCommandService.EditSiteDiaryMediaCommand(editSiteDiaryMediaCommand);\r\n }\r\n\r\n //\r\n // Edit scaffold media based on the formvalues\r\n //\r\n editScaffoldMedia(formValues): Observable {\r\n\r\n const editScaffoldMediaCommand: EditScaffoldMediaCommand | EditScaffoldMediaTranscriptionCommand = {\r\n ScaffoldId: this.context.id,\r\n MediaReferenceId: this.media.MediaReferenceId,\r\n Title: formValues.mediaTitle,\r\n Transcription: (this.media as MediaTranscriptionData).Transcription,\r\n Deleted: false,\r\n };\r\n\r\n const commandResponse = this.transcriptionMode\r\n ? this.scaffoldCommandService.EditScaffoldMediaTranscriptionCommand(editScaffoldMediaCommand)\r\n : this.scaffoldCommandService.EditScaffoldMediaCommand(editScaffoldMediaCommand);\r\n\r\n return commandResponse;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { ActivityModalService } from 'app/shared/services/activity-modal.service';\r\nimport { HandoverTypeService } from 'app/sites/services/handover-type-service';\r\nimport { cloneDeep } from 'lodash';\r\nimport { combineLatest } from 'rxjs';\r\nimport {\r\n ContractData,\r\n CustomerWebAppData,\r\n HandoverHistoryWebAppData,\r\n SiteWebAppData,\r\n ScaffoldTimelineData,\r\n DiaryTypeEnum,\r\n HandoverHistoryTypeEnum\r\n} from 'app/core/hub-api';\r\nimport { CustomersQueryService } from '../../../../../core/services/customers-query.service';\r\nimport { HandoverHistoryQueryService } from '../../../../../core/services/handover-history-query-service';\r\nimport { contractStatusIds } from '../../../../../shared/values/contract-status-ids';\r\nimport { HandoverTypeOption } from '../../../../models/handover-type-option';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-handovers-list',\r\n templateUrl: './handovers-list.component.html',\r\n styleUrls: ['./handovers-list.component.scss']\r\n})\r\nexport class HandoversListComponent implements OnInit, OnDestroy {\r\n /** Stores the selected site */\r\n site: SiteWebAppData;\r\n /** Stores all contracts */\r\n contracts: ContractData[];\r\n /** contains the selected filters */\r\n filters: any;\r\n /** List of all customers */\r\n customers: CustomerWebAppData[];\r\n /** List of all the site handovers */\r\n siteHandovers: HandoverHistoryWebAppData[];\r\n /** Stores all filtered handovers */\r\n filteredHandovers: HandoverHistoryWebAppData[];\r\n /** Filter form group control */\r\n filtersForm: UntypedFormGroup;\r\n /** Search input form control */\r\n searchTermFormControl: UntypedFormControl;\r\n /** Handover types dropdown form control */\r\n handoverTypesFormControl: UntypedFormControl;\r\n /** Contracts dropdown form control */\r\n contractListFormControl: UntypedFormControl;\r\n /** Stores all handover type options */\r\n handoverTypeOptions: HandoverTypeOption[];\r\n /** Stores all customers for the selected site */\r\n siteCustomers: any;\r\n /** Stores the contracts to be added to the filter */\r\n contractNames: any = [];\r\n /** Stores all contract names */\r\n allContractNames: any;\r\n /** Stores the selected handovers for a the current selected customer */\r\n selectedHandovers: any;\r\n /** Specific for the ngx-datatable to be able to do changes */\r\n @ViewChild(DatatableComponent) handoversTable: DatatableComponent;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private handoverHistoryQueryService: HandoverHistoryQueryService,\r\n private handoverTypeService: HandoverTypeService,\r\n private activityModal: ActivityModalService,\r\n ) { }\r\n\r\n /**\r\n * Component Initialisation\r\n *\r\n * @memberof HandoversListComponent\r\n */\r\n public ngOnInit(): void {\r\n\r\n this.handoverTypeOptions = this.handoverTypeService.getHandoverTypes();\r\n\r\n this.handoverTypeOptions.filter(t => t.display);\r\n\r\n this.generateForm();\r\n\r\n this.searchTermFormControl.valueChanges.subscribe(searchTerm => {\r\n this.setContractIds();\r\n });\r\n\r\n const siteReference = this.route.parent.snapshot.params['siteReference'];\r\n const siteDetailChanges = this.siteDetailQueryService.siteDetailDataChanges(siteReference);\r\n const siteDetailChanges$ = siteDetailChanges.pipe(mergeMap(site => this.handoverHistoryQueryService.handoverHistoryQuery(true, [site.SiteId])));\r\n\r\n siteDetailChanges$.subscribe(handovers => {\r\n this.siteHandovers = handovers;\r\n this.setFilteredHandovers();\r\n });\r\n const obs$ = combineLatest([siteDetailChanges, this.customersQueryService.customersDataChanges()]);\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1]));\r\n }\r\n\r\n /**\r\n * Generates the search and filter form that supports the handovers list\r\n *\r\n * @private\r\n * @memberof HandoversListComponent\r\n */\r\n private generateForm(): void {\r\n this.contractListFormControl = new UntypedFormControl('');\r\n this.searchTermFormControl = new UntypedFormControl('');\r\n this.handoverTypesFormControl = new UntypedFormControl(this.handoverTypeOptions.map(o => o.type));\r\n\r\n this.filtersForm = new UntypedFormGroup({\r\n searchTerm: this.searchTermFormControl,\r\n handoverTypes: this.handoverTypesFormControl,\r\n contractList: this.contractListFormControl,\r\n });\r\n }\r\n\r\n /**\r\n * Refreshes the screen with all data\r\n *\r\n * @param {SiteWebAppData} site the selected site data\r\n * @param {CustomerWebAppData[]} customers all customers data\r\n * @memberof HandoversListComponent\r\n */\r\n public refreshComponent(site: SiteWebAppData, customers: CustomerWebAppData[]): void {\r\n this.site = site;\r\n this.customers = customers;\r\n this.contracts = this.site.Contracts.filter(contract => contract.ContractStatusId === contractStatusIds.open)\r\n .map(contract => {\r\n contract = cloneDeep(contract);\r\n (contract as any).name = this.customers.find(c => c.CustomerId === contract.CustomerId).CustomerName;\r\n return contract as any;\r\n })\r\n .sort((a, b) => (a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1));\r\n this.filters = {\r\n selectedCustomer: undefined,\r\n };\r\n\r\n // Adds the contract name filters\r\n this.contractNames = [];\r\n this.contracts.map(c => {\r\n this.contractNames.push({ name: c.ContractName, type: c.ContractId });\r\n });\r\n this.allContractNames = this.contractNames;\r\n\r\n // Checks all contract names as default\r\n this.filtersForm.controls.contractList.setValue(this.contractNames.map(c => c.type));\r\n\r\n // Sets all the customers the site has\r\n const customerIds = this.site.Contracts.map(c => c.CustomerId);\r\n this.siteCustomers = this.customers.filter(c => customerIds.includes(c.CustomerId));\r\n this.setFilteredHandovers();\r\n }\r\n\r\n /**\r\n * in the case there isn't a customer selected it will set all contract ids\r\n * this makes the list to show all contracts\r\n *\r\n * @private\r\n * @returns {void}\r\n * @memberof HandoversListComponent\r\n */\r\n private setContractIds(): void {\r\n if (!this.filters.selectedCustomer) {\r\n this.setFilteredHandovers();\r\n return;\r\n }\r\n const contractIds = this.contracts.filter(c => c.CustomerId === this.filters.selectedCustomer.CustomerId).map(c => c.ContractId);\r\n this.setFilteredHandovers(contractIds);\r\n }\r\n\r\n /**\r\n * Function that sets the filtered handovers based on the user's search/filters\r\n * This function is not private so we can run tests against it\r\n *\r\n * @param {string[]} [contractIds] list of contract ids\r\n * @returns {void}\r\n * @memberof HandoversListComponent\r\n */\r\n public setFilteredHandovers(contractIds?: string[]): void {\r\n if (!this.siteHandovers || !this.contracts) {\r\n return;\r\n }\r\n\r\n let filteredHandovers = this.siteHandovers;\r\n // Filters the customers to the ones that have handovers\r\n const handoverCustomers = this.siteHandovers.map(h => h.CustomerId);\r\n if (this.siteCustomers) {\r\n this.siteCustomers = this.siteCustomers.filter(c => handoverCustomers.includes(c.CustomerId));\r\n }\r\n\r\n // Filter out scaffolds from closed contracts.\r\n filteredHandovers = filteredHandovers.filter(handover => {\r\n const contract = this.contracts.find(c => c.ContractId === handover.ContractId) || new ContractData();\r\n return contract.ContractStatusId === contractStatusIds.open;\r\n });\r\n\r\n // Filter by search term.\r\n if (this.searchTermFormControl.value) {\r\n filteredHandovers = filteredHandovers.filter(handover => {\r\n const keys = Object.keys(handover);\r\n return keys.some(key =>\r\n (handover[key] || '')\r\n .toString()\r\n .toLowerCase()\r\n .includes(this.searchTermFormControl.value.toLowerCase())\r\n );\r\n });\r\n }\r\n\r\n // Filter by selected contract.\r\n if (contractIds) {\r\n filteredHandovers = filteredHandovers.filter(h => contractIds.includes(h.ContractId));\r\n }\r\n\r\n // Filter by selected handover types.\r\n if (this.handoverTypesFormControl.value) {\r\n filteredHandovers = filteredHandovers.filter(handover => this.handoverTypesFormControl.value.includes(handover.Type));\r\n }\r\n\r\n // Set the handovers table back to the first page.\r\n if (this.handoversTable) {\r\n this.handoversTable.offset = 0;\r\n }\r\n\r\n this.filteredHandovers = filteredHandovers;\r\n }\r\n\r\n /**\r\n * Gets tje selected customer from the UI, enables the contracts dropdown\r\n *\r\n * @param {*} selectedCustomer the selected customer object\r\n * @returns {void}\r\n * @memberof HandoversListComponent\r\n */\r\n public selectCustomer(selectedCustomer): void {\r\n this.filters.selectedCustomer = selectedCustomer;\r\n\r\n if (selectedCustomer === undefined) {\r\n this.setFilteredHandovers();\r\n return;\r\n }\r\n\r\n this.contractNames = [];\r\n this.contracts.map(c => {\r\n if (c.CustomerId === selectedCustomer.CustomerId) {\r\n this.contractNames.push({ name: c.ContractName, type: c.ContractId });\r\n }\r\n });\r\n const customerContractIds = this.contractNames.map(c => c.type);\r\n this.filtersForm.controls.contractList.setValue(customerContractIds);\r\n this.contractFiltering();\r\n this.setFilteredHandovers(customerContractIds);\r\n }\r\n\r\n /**\r\n * Detects if user has selected a specific customer and sets the contracts accordingly\r\n *\r\n * @private\r\n * @memberof HandoversListComponent\r\n */\r\n private contractFiltering(): void {\r\n if (this.filters.selectedCustomer) {\r\n this.selectedHandovers = this.filteredHandovers.filter(h => h.CustomerId === this.filters.selectedCustomer.CustomerId);\r\n\r\n if (this.selectedHandovers) {\r\n const handoverContractIds = this.selectedHandovers.map(s => s.ContractId);\r\n this.contractNames = this.allContractNames.filter(cn => handoverContractIds.includes(cn.type));\r\n }\r\n } else {\r\n this.contractNames = this.allContractNames;\r\n }\r\n }\r\n\r\n /**\r\n * Detects when the user clicks on a handover and opens the activity modal for that same handover\r\n *\r\n * @param {*} event\r\n * @memberof HandoversListComponent\r\n */\r\n public onHandoverSelect(event): void {\r\n const diary: ScaffoldTimelineData = event.selected[0];\r\n const type: number = event.selected[0].Type;\r\n this.activityModal.openActivityModal(this.typeSwitch(type), diary.ScaffoldDiaryId, this.site.SiteReference);\r\n }\r\n\r\n /**\r\n * Detects the type of modal to be opened\r\n *\r\n * @private\r\n * @param {number} type\r\n * @returns {*}\r\n * @memberof HandoversListComponent\r\n */\r\n private typeSwitch(type: number): any {\r\n switch (type) {\r\n case HandoverHistoryTypeEnum.Adaption:\r\n return DiaryTypeEnum.Adaption;\r\n case HandoverHistoryTypeEnum.Variation:\r\n return DiaryTypeEnum.Variation;\r\n case HandoverHistoryTypeEnum.FullHandover:\r\n return DiaryTypeEnum.FullHandover;\r\n case HandoverHistoryTypeEnum.PartialHandover:\r\n return DiaryTypeEnum.PartialHandover;\r\n case HandoverHistoryTypeEnum.FullOffHire:\r\n return DiaryTypeEnum.FullOffHire;\r\n case HandoverHistoryTypeEnum.PartialOffHire:\r\n return DiaryTypeEnum.PartialOffHire;\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Detects when the user changes the contracts dropdown\r\n *\r\n * @param {string[]} contractIds\r\n * @memberof HandoversListComponent\r\n */\r\n public onSelectedContractChanged(contractIds: string[]): void {\r\n this.filtersForm.controls.contractList.setValue(contractIds);\r\n this.setFilteredHandovers(contractIds);\r\n }\r\n\r\n /**\r\n * Detects when the user changes the handover types dropdown\r\n *\r\n * @param {number[]} handoverTypeIds all selected handover enums\r\n * @memberof HandoversListComponent\r\n */\r\n public onSelectedHandoverTypeChanged(handoverTypeIds: number[]): void {\r\n this.filtersForm.controls.handoverTypes.setValue(handoverTypeIds);\r\n this.setContractIds();\r\n\r\n }\r\n\r\n\r\n /**\r\n * Required by the AutoUnsubscribe()\r\n *\r\n * @memberof HandoversListComponent\r\n */\r\n public ngOnDestroy(): void { }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n

Welcome to the site handovers area

\r\n

It doesn't look like any handovers have been completed yet!

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

Loading Handover Data...

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

Handovers

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\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.Reference }}\r\n \r\n \r\n \r\n \r\n {{ row.Scaffolds.join(', ') }}\r\n \r\n \r\n \r\n \r\n {{ row.Comments }}\r\n \r\n \r\n \r\n \r\n {{ row.Staff }}\r\n \r\n \r\n \r\n \r\n {{ row.When | datetime: 'DD/MM/YY [at] HH:mm' }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport * as moment from 'moment';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport {\r\n ConfigurationData,\r\n ContractData,\r\n CustomerWebAppData,\r\n ScaffoldWebAppData,\r\n StaffDetailsWebAppData,\r\n SiteAreaData,\r\n QuoteData\r\n} from 'app/core/hub-api';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { cloneDeep, map, uniq } from 'lodash';\r\nimport { AddEditScaffoldModalContext } from '../../../../models/add-edit-scaffold-modal-context';\r\n\r\nimport { MultiStepModalFormComponent } from '../../../../../shared/components/multi-step-modal-form/multi-step-modal-form.component';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { contractStatusIds } from '../../../../../shared/values/contract-status-ids';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { mustNotExistValidator } from '../../../../../shared/validators/must-not-exist.validator';\r\nimport { scaffoldNumberIncrementalValidator } from '../../../../../shared/validators/scaffold-number-incremental.validator';\r\nimport { scaffoldNumberSuffixValidator } from '../../../../../shared/validators/scaffold-number-suffix.validator';\r\nimport { scaffoldStatusIds } from '../../../../../shared/values/scaffold-status-ids';\r\nimport { QuotesQueryService } from '../../../../../core/services/quotes-query-service';\r\nimport { first } from 'rxjs/operators';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { DatePickerSelectData } from '../../../../../shared/models/date-picker-select-data';\r\nimport { ReferenceGeneratorService } from 'app/core/utility';\r\nimport { DatePickerOptions } from 'app/reports/models/date-picker-options';\r\nimport dayjs from 'dayjs/esm';\r\nimport { scaffoldWithQuickIdMustNotExistValidator } from 'app/shared/validators/scaffold-must-not-exist-validator';\r\n/**\r\n * Add Edit Scaffold (Details page)\r\n * Displays a form to edit the scaffold details\r\n * when next is pressed will show specification page\r\n *\r\n * @export\r\n * @class AddEditScaffoldDetailComponent\r\n * @extends {MultiStepModalFormComponent}\r\n * @implements {OnInit}\r\n * @implements {OnDestroy}\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-edit-scaffold-detail',\r\n templateUrl: './add-edit-scaffold-detail.component.html',\r\n styleUrls: ['./add-edit-scaffold-detail.component.scss']\r\n})\r\nexport class AddEditScaffoldDetailComponent extends MultiStepModalFormComponent implements OnInit, OnDestroy {\r\n /** Store all quotes */\r\n quotes: QuoteData[];\r\n /** Store all data that is shared across both modals */\r\n data: any;\r\n /** Store the modal dialog */\r\n context: Partial;\r\n /** Detects if the form is edit or add */\r\n editMode: boolean;\r\n /** Detects if the form is edit or add */\r\n scaffold: ScaffoldWebAppData;\r\n /** Stores the current logged in user */\r\n loggedInStaff: StaffDetailsWebAppData;\r\n /** Stores all scaffolds */\r\n allScaffolds: ScaffoldWebAppData[];\r\n /** Stores all customers */\r\n customers: CustomerWebAppData[];\r\n /** Stores all configuration */\r\n configuration: ConfigurationData;\r\n /** Stores all active areas */\r\n activeAreas: SiteAreaData[];\r\n /** Stores all open contracts */\r\n openContracts: ContractData[];\r\n /** Stores the current scaffold quickId */\r\n quickId: string;\r\n /** Stores all scaffold numbers */\r\n scaffoldNumbers: string[];\r\n /** Stores all incremental scaffold numbers */\r\n incrementalScaffoldNumbers: string[];\r\n /** Form Group control */\r\n form: UntypedFormGroup;\r\n /** Scaffold number input controller */\r\n autoScaffoldNumberFormControl: UntypedFormControl;\r\n /** Name input controller */\r\n nameFormControl: UntypedFormControl;\r\n /** Contract dropdown controller */\r\n contractIdFormControl: UntypedFormControl;\r\n /** Area dropdown controller */\r\n areaIdFormControl: UntypedFormControl;\r\n /** OnHire radio controller */\r\n onHireFormControl: UntypedFormControl;\r\n /** Next Inspection date picker controller */\r\n nextInspectionFormControl: UntypedFormControl;\r\n /** OnHire date picker controller */\r\n onHireDateFormControl: UntypedFormControl;\r\n /** Contract dropdown controller */\r\n contractPeriodFormControl: UntypedFormControl;\r\n /** Adverse weather input controller */\r\n adverseWeatherFormControl: UntypedFormControl;\r\n /** Is this Scaffold a variation radio controller */\r\n isVariationFormControl: UntypedFormControl;\r\n /** Date picker configuration */\r\n datePickerOptions: DatePickerOptions;\r\n /** All validation messages for the respective form fields */\r\n validationMessages = {\r\n scaffoldNumber: {\r\n incremental: errorMessages.scaffoldNumberIncremental,\r\n suffix: errorMessages.scaffoldNumberSuffix,\r\n mustNotExist: errorMessages.scaffoldReferenceMustBeUnique\r\n },\r\n customScaffoldNumber: {\r\n required: errorMessages.scaffoldNumberRequired,\r\n scaffoldWithQuickIdMustNotExist: errorMessages.scaffoldReferenceMustBeUnique\r\n },\r\n contractId: {\r\n required: errorMessages.required\r\n },\r\n areaId: {\r\n required: errorMessages.required\r\n },\r\n contractPeriod: {\r\n min: errorMessages.minimumContractPeriod\r\n },\r\n name: {\r\n required: errorMessages.required\r\n },\r\n suffix: {\r\n required: errorMessages.suffixRequired,\r\n pattern: errorMessages.scaffoldNumberSuffix\r\n }\r\n };\r\n /** List of scaffold numbers */\r\n scaffoldNumbersList = [];\r\n /** Stores the form for the scaffold number */\r\n scaffoldNumberForm: UntypedFormGroup;\r\n /** group scaffold toggle form control */\r\n groupScaffoldsFormControl: UntypedFormControl;\r\n /** custom scaffold number form control */\r\n customScaffoldNumberFormControl: UntypedFormControl;\r\n /** suffix form control */\r\n suffixFormControl: UntypedFormControl;\r\n /** Stores suffix validation */\r\n suffixValidation = [Validators.required, Validators.pattern(/^[A-Z0-9]{1,3}$/)];\r\n\r\n constructor(\r\n private referenceGeneratorService: ReferenceGeneratorService,\r\n private quotesQueryService: QuotesQueryService,\r\n public modalService: BsModalService,\r\n ) {\r\n super();\r\n }\r\n\r\n /**\r\n * Initialises the Component\r\n *\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.datePickerOptions = {\r\n alwaysShowCalendars: false,\r\n ranges: {},\r\n showCustomRangeLabel: false,\r\n };\r\n this.editMode = this.context.editMode;\r\n this.allScaffolds = this.context.scaffolds;\r\n this.configuration = this.context.configuration;\r\n this.loggedInStaff = this.context.loggedInStaff;\r\n\r\n const currentScaffoldId = this.context.scaffold ? this.context.scaffold.ScaffoldId : undefined;\r\n this.scaffoldNumbers = this.allScaffolds.filter(s => s.ScaffoldId !== currentScaffoldId).map(s => s.ScaffoldNumber);\r\n this.incrementalScaffoldNumbers = uniq(this.scaffoldNumbers.map(n => n.slice(0, 5)));\r\n\r\n this.customers = this.context.customers;\r\n this.openContracts = this.context.site.Contracts.filter(c => c.ContractStatusId === contractStatusIds.open).map(contract => {\r\n contract = cloneDeep(contract);\r\n (contract as any).optionName = `${contract.ContractName} (${contract.ContractReference})`;\r\n return contract;\r\n });\r\n this.activeAreas = (map(this.context.site.SiteAreas)\r\n .filter(a => !a.Deleted) as any)\r\n .sortAlphaNumeric('AreaName');\r\n\r\n this.quickId = this.context.loggedInStaff.QuickId ? this.context.loggedInStaff.QuickId : '';\r\n this.context.scaffoldSuffix = this.context.scaffoldSuffix || this.quickId;\r\n this.data.scaffold = this.data.scaffold || cloneDeep(this.context.scaffold) || this.getNewScaffold();\r\n\r\n this.generateForm();\r\n\r\n this.quotesQueryService.quotesQuery(false, this.form.value.contractId).subscribe(q => (this.quotes = q)),\r\n this.contractIdFormControl.valueChanges.subscribe(id => this.onSelectedContractChange(id));\r\n super.ngOnInit();\r\n }\r\n\r\n /**\r\n * Creates the form fields, sets the values and validation\r\n *\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n public generateForm(): void {\r\n this.autoScaffoldNumberFormControl = new UntypedFormControl(this.context.autoScaffoldNumber ? this.context.autoScaffoldNumber : this.data.scaffold.ScaffoldNumber.toUpperCase(), [\r\n scaffoldNumberSuffixValidator,\r\n scaffoldNumberIncrementalValidator,\r\n mustNotExistValidator(this.scaffoldNumbers)\r\n ]);\r\n // To handle null scaffold specification for existing scaffolds.\r\n if (!this.data.scaffold.ScaffoldSpecification) {\r\n this.data.scaffold.ScaffoldSpecification = {};\r\n }\r\n this.nameFormControl = new UntypedFormControl(this.data.scaffold.SpecificLocationDetails, [Validators.required]);\r\n this.contractIdFormControl = new UntypedFormControl(this.data.scaffold.ContractId, Validators.required);\r\n this.areaIdFormControl = new UntypedFormControl(this.data.scaffold.SiteAreaId, Validators.required);\r\n this.onHireFormControl = new UntypedFormControl(this.data.scaffold.ScaffoldStatusId === scaffoldStatusIds.onHire);\r\n this.nextInspectionFormControl = new UntypedFormControl();\r\n this.onHireDateFormControl = new UntypedFormControl();\r\n this.contractPeriodFormControl = new UntypedFormControl(this.data.scaffold.ScaffoldSpecification.HirePeriod, Validators.min(0));\r\n this.adverseWeatherFormControl = new UntypedFormControl(this.data.scaffold.AdverseWeatherIndicator);\r\n this.isVariationFormControl = new UntypedFormControl(this.data.scaffold.IsVariation ?? false);\r\n\r\n this.groupScaffoldsFormControl = new UntypedFormControl(this.context.groupedScaffoldNumbers ?? false);\r\n this.customScaffoldNumberFormControl = new UntypedFormControl(\r\n this.context.customScaffoldNumber, this.editMode || !this.groupScaffoldsFormControl.value\r\n ? []\r\n : [Validators.required, scaffoldWithQuickIdMustNotExistValidator(this.scaffoldNumbers, this.context.scaffoldSuffix)]);\r\n this.suffixFormControl = new UntypedFormControl(this.context.scaffoldSuffix ?? this.quickId, this.editMode ? [] : [Validators.required, Validators.pattern(/^[A-Z0-9]{1,3}$/)]);\r\n\r\n this.scaffoldNumberForm = new UntypedFormGroup({\r\n groupScaffolds: this.groupScaffoldsFormControl,\r\n customScaffoldNumber: this.customScaffoldNumberFormControl,\r\n suffix: this.suffixFormControl,\r\n autoScaffoldNumber: this.autoScaffoldNumberFormControl\r\n });\r\n\r\n this.form = new UntypedFormGroup({\r\n scaffoldNumber: this.scaffoldNumberForm,\r\n name: this.nameFormControl,\r\n contractId: this.contractIdFormControl,\r\n areaId: this.areaIdFormControl,\r\n nextInspectionDate: this.nextInspectionFormControl,\r\n onHire: this.onHireFormControl,\r\n onHireDate: this.onHireDateFormControl,\r\n contractPeriod: this.contractPeriodFormControl,\r\n adverseWeather: this.adverseWeatherFormControl,\r\n isVariation: this.isVariationFormControl,\r\n });\r\n\r\n const nextInspectionDate = this.data.scaffold.DateOfNextInspection;\r\n this.form.controls.nextInspectionDate.setValue(nextInspectionDate ? this.generateStartAndEndDate(nextInspectionDate) : undefined);\r\n const onHireDate = this.data.scaffold.OnHireDate;\r\n this.form.controls.onHireDate.setValue(onHireDate ? this.generateStartAndEndDate(onHireDate) : undefined);\r\n this.incrementalScaffoldNumbers.forEach(sn => { this.scaffoldNumbersList.push({ number: sn }) });\r\n\r\n this.groupScaffoldsFormControl.valueChanges.subscribe(areGrouped => {\r\n if (!areGrouped) {\r\n this.autoScaffoldNumberFormControl.setValue(this.context.autoScaffoldNumber);\r\n this.customScaffoldNumberFormControl.clearValidators();\r\n this.customScaffoldNumberFormControl.updateValueAndValidity();\r\n this.suffixFormControl.clearValidators();\r\n this.suffixFormControl.updateValueAndValidity();\r\n }\r\n\r\n });\r\n\r\n /// removes the validation for the suffix if the scaffold is not grouped\r\n if (!this.groupScaffoldsFormControl.value) {\r\n this.suffixFormControl.setValidators([]);\r\n this.suffixFormControl.updateValueAndValidity();\r\n }\r\n }\r\n\r\n /**\r\n * Creates a data range object for the date picker\r\n *\r\n * @private\r\n * @param {*} date\r\n * @returns {DatePickerSelectData}\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n private generateStartAndEndDate(date): DatePickerSelectData {\r\n const dateRange: DatePickerSelectData = { startDate: dayjs(date), endDate: dayjs(date) };\r\n return dateRange;\r\n }\r\n\r\n /**\r\n * Detects when the contract is changed\r\n *\r\n * @private\r\n * @param {string} contractId\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n private onSelectedContractChange(contractId: string): void {\r\n this.quotesQueryService\r\n .quotesDataChanges(contractId)\r\n .pipe(first())\r\n .subscribe(q => (this.quotes = q));\r\n this.form.controls.contractId.setValue(contractId);\r\n }\r\n\r\n /**\r\n * Detects when the next inspection is changed and applies that change to the form\r\n *\r\n * @param {*} dateRange selected date\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n public onNextInspectionDateChanged(dateRange: DatePickerSelectData) {\r\n const value = dateRange.startDate ? this.generateStartAndEndDate(dateRange.startDate) : undefined;\r\n this.form.controls.nextInspectionDate.setValue(value);\r\n }\r\n\r\n /**\r\n * Detects when the on hire date has changed and applies that change to the form\r\n *\r\n * @param {DatePickerSelectData} dateRange\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n public onHireDateChanged(dateRange: DatePickerSelectData): void {\r\n const value = dateRange.startDate ? this.generateStartAndEndDate(dateRange.startDate) : undefined;\r\n this.form.controls.onHireDate.setValue(value);\r\n }\r\n\r\n /**\r\n * Adds a quickId to the scaffoldNumber if it doesn't already contain one.\r\n * \r\n * @param scaffoldNumber - The scaffold number to which the quickId will be added.\r\n * @param quickId - The quickId to be appended to the scaffoldNumber.\r\n * @returns The scaffoldNumber with the quickId appended, if quickId is provided. Otherwise, returns the scaffoldNumber as is.\r\n */\r\n private addQuickId(scaffoldNumber, quickId) {\r\n // Check if scaffoldNumber already contains a quickId\r\n if (scaffoldNumber.includes('-')) {\r\n return scaffoldNumber;\r\n }\r\n // If quickId is provided, append it to scaffoldNumber\r\n if (quickId) {\r\n return `${scaffoldNumber}-${quickId}`;\r\n }\r\n // If quickId is not provided, return scaffoldNumber as is\r\n return scaffoldNumber;\r\n }\r\n\r\n /**\r\n * Creates a new scaffold object\r\n *\r\n * @private\r\n * @returns {ScaffoldWebAppData}\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n private getNewScaffold(): ScaffoldWebAppData {\r\n const scaffoldNumbers = this.allScaffolds.map(s => s.ScaffoldNumber);\r\n const newScaffoldReference = this.addQuickId(this.referenceGeneratorService.incrementalReference(scaffoldNumbers, this.configuration.ScaffoldReferenceLength), this.quickId);\r\n this.context.autoScaffoldNumber = newScaffoldReference;\r\n return Object.assign(new ScaffoldWebAppData(), {\r\n ScaffoldId: UUID.UUID(),\r\n ScaffoldNumber: newScaffoldReference,\r\n SpecificLocationDetails: '',\r\n ContractId: this.openContracts.length ? this.openContracts[0].ContractId : '',\r\n SiteAreaId: this.activeAreas.length ? this.activeAreas[0].SiteAreaId : '',\r\n ScaffoldStatusId: scaffoldStatusIds.incomplete,\r\n AdverseWeatherIndicator: true,\r\n IsVariation: false,\r\n ScaffoldSpecification: {\r\n Description: '',\r\n ScaffoldTypeId: '',\r\n ScaffoldTypeFurtherInformation: '',\r\n QuoteNumber: '',\r\n QuoteItemNumber: '',\r\n DesignTypeId: '',\r\n DesignTypeFurtherInformation: '',\r\n LoadingLimitId: '',\r\n LoadingLimitFurtherInformation: '',\r\n MethodOfTyingId: '',\r\n MethodOfTyingFurtherInformation: '',\r\n MethodOfCladdingId: '',\r\n MethodOfCladdingFurtherInformation: ''\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Sets the context scaffold number based on the provided form values or default values.\r\n * If the scaffolds are grouped, the scaffold number, suffix, and scaffold reference are set in the context.\r\n * If the scaffolds are not grouped, the scaffold number, suffix, and scaffold reference are set to null in the context.\r\n * \r\n * @param {any} formValues - The form values containing the scaffold number, suffix, and groupScaffolds flag.\r\n */\r\n private _saveParametersScaffoldNumber(formValues?: any) {\r\n this.context.groupedScaffoldNumbers = formValues ? formValues?.groupScaffolds : this.context.groupedScaffoldNumbers;\r\n var areGrouped = this.context.groupedScaffoldNumbers;\r\n this.context.customScaffoldNumber = formValues.customScaffoldNumber;\r\n this.context.autoScaffoldNumber = formValues.autoScaffoldNumber;\r\n this.context.scaffoldSuffix = areGrouped ? formValues.suffix : null;\r\n }\r\n\r\n /**\r\n * Determines the user-defined scaffold number based on the provided form values and context.\r\n * If the scaffolds are grouped, the user-defined scaffold number is constructed by combining the custom scaffold number and the suffix.\r\n * If the scaffolds are not grouped, the user-defined scaffold number is set to the auto scaffold number.\r\n * \r\n * @param {any} formValues - The form values containing the suffix, custom scaffold number, and groupScaffolds flag.\r\n * @returns {string} - The user-defined scaffold number.\r\n */\r\n private _userDefinedScaffoldNumber(scaffoldNumberFormValues: any): string {\r\n let userDefinedScaffoldNumber: string;\r\n if (this.context.groupedScaffoldNumbers) {\r\n userDefinedScaffoldNumber = !scaffoldNumberFormValues.suffix ? this.context.customScaffoldNumber : `${this.context.customScaffoldNumber}-${scaffoldNumberFormValues.suffix}`;\r\n } else {\r\n userDefinedScaffoldNumber = this.context.autoScaffoldNumber;\r\n }\r\n return userDefinedScaffoldNumber;\r\n }\r\n\r\n /**\r\n * Opens the Scaffold Specification screen if all validation passes\r\n *\r\n * @param {*} formValues\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n public onNext(formValues: any): void {\r\n this._saveParametersScaffoldNumber(formValues.scaffoldNumber);\r\n if (this.validateForm()) {\r\n this.data.quotes = this.quotes;\r\n this.data.scaffold.ScaffoldNumber = this._userDefinedScaffoldNumber(formValues.scaffoldNumber);\r\n this.data.scaffold.SpecificLocationDetails = formValues.name;\r\n this.data.scaffold.ContractId = formValues.contractId;\r\n this.data.scaffold.SiteAreaId = formValues.areaId;\r\n this.data.scaffold.ScaffoldStatusId = formValues.onHire ? scaffoldStatusIds.onHire : this.data.scaffold.ScaffoldStatusId;\r\n this.data.scaffold.IsVariation = formValues.isVariation;\r\n\r\n const nextInspectionStartDate = formValues.nextInspectionDate && formValues.nextInspectionDate.startDate ? formValues.nextInspectionDate.startDate : null;\r\n const onHireStartDate = formValues.onHireDate && formValues.onHireDate.startDate ? formValues.onHireDate.startDate : null;\r\n this.data.scaffold.DateOfNextInspection = nextInspectionStartDate\r\n ? nextInspectionStartDate\r\n .utc()\r\n .add(moment(nextInspectionStartDate).utcOffset(), 'm')\r\n .toISOString()\r\n : undefined;\r\n this.data.scaffold.OnHireDate = onHireStartDate\r\n ? onHireStartDate\r\n .utc()\r\n .add(moment(onHireStartDate).utcOffset(), 'm')\r\n .toISOString()\r\n : undefined;\r\n this.data.scaffold.ScaffoldSpecification.HirePeriod = formValues.contractPeriod;\r\n this.data.scaffold.AdverseWeatherIndicator = formValues.adverseWeather;\r\n this.nextStep();\r\n }\r\n }\r\n\r\n /**\r\n * Checks if the scaffold status is incomplete\r\n *\r\n * @returns {boolean}\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n public scaffoldWasIncomplete(): boolean {\r\n return this.data.scaffold.ScaffoldStatusId === scaffoldStatusIds.incomplete;\r\n }\r\n\r\n /**\r\n * Detect when the selected area changes and sets it to the form\r\n *\r\n * @param {string} areaId\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n public onSelectedAreaChanged(areaId: string): void {\r\n this.form.controls.areaId.setValue(areaId);\r\n }\r\n\r\n\r\n /**\r\n * Required by the AutoUnsubscribe()\r\n *\r\n * @memberof AddEditScaffoldDetailComponent\r\n */\r\n public ngOnDestroy(): void { }\r\n\r\n /**\r\n * Sets the value of the customScaffoldNumber control to the selected scaffold number.\r\n * \r\n * @param {any} scaffoldNumber - The selected scaffold number.\r\n */\r\n onSelectedNumber(scaffoldNumber) {\r\n this.scaffoldNumberForm.controls.customScaffoldNumber.setValue(scaffoldNumber);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
0 && !editMode\">\r\n Group with another scaffold\r\n
\r\n \r\n \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\" class=\"inline-block\">\r\n - \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{ validationMessages.customScaffoldNumber.scaffoldWithQuickIdMustNotExist }}\r\n
\r\n
\r\n \r\n {{ validationMessages.customScaffoldNumber.required }}\r\n
\r\n
\r\n \r\n {{ validationMessages.suffix.required }}\r\n
\r\n
\r\n \r\n {{ validationMessages.suffix.pattern }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n * Denotes a required field\r\n
\r\n \r\n
\r\n
\r\n
","import { ScaffoldWebAppData } from 'app/core/hub-api';\r\nimport { MultiStepFormStep } from '../../../../../shared/models/multi-step-form-step';\r\nimport { AddEditScaffoldModalContext } from '../../../../models/add-edit-scaffold-modal-context';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { AddEditScaffoldDetailComponent } from '../add-edit-scaffold-detail/add-edit-scaffold-detail.component';\r\nimport {\r\n AddEditScaffoldSpecificationComponent,\r\n} from '../add-edit-scaffold-specification/add-edit-scaffold-specification.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-add-edit-scaffold-modal',\r\n templateUrl: './add-edit-scaffold-modal.component.html',\r\n styleUrls: ['./add-edit-scaffold-modal.component.scss']\r\n})\r\nexport class AddEditScaffoldModalComponent implements OnInit {\r\n context: Partial;\r\n\r\n data: { scaffold: ScaffoldWebAppData };\r\n steps: MultiStepFormStep[] | any;\r\n\r\n constructor(public bsModalRef: BsModalRef, public modalService: BsModalService) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.steps = [\r\n {\r\n title: 'Details',\r\n component: AddEditScaffoldDetailComponent,\r\n },\r\n {\r\n title: 'Specification',\r\n component: AddEditScaffoldSpecificationComponent\r\n }\r\n ];\r\n this.context.dialogClass = 'modal-dialog modal-lg';\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
","/**\r\n * @license\r\n * Copyright © Computer and Design Services Ltd.\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n * electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n */\r\nimport * as moment from 'moment';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport {\r\n CreateScaffoldWebConsoleCommand,\r\n DesignTypedata,\r\n EditScaffoldWebConsoleCommand,\r\n LoadingLimitData,\r\n MethodOfTyingData,\r\n MethodsOfCladdingdata,\r\n ScaffoldTypeData,\r\n SiteWebAppData,\r\n QuoteData,\r\n ItemData,\r\n ItemStatusEnum,\r\n ContractCommandService,\r\n ItemTypeEnum,\r\n ScaffoldingSystemdata\r\n} from 'app/core/hub-api';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { AddEditScaffoldModalContext } from '../../../../models/add-edit-scaffold-modal-context';\r\nimport { MultiStepModalFormComponent } from '../../../../../shared/components/multi-step-modal-form/multi-step-modal-form.component';\r\nimport { forkJoin } from 'rxjs';\r\nimport { ScaffoldCommandService } from 'app/core/hub-api';\r\nimport { ScaffoldDetailQueryService } from '../../../../services/scaffold-detail-query-service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { map } from 'lodash';\r\nimport { QuotesQueryService } from 'app/core/services/quotes-query-service';\r\nimport { ItemDetailsQueryService } from 'app/core/services/item-details-query.service';\r\nimport { GenerateDefaultsService } from 'app/core/services/generateDefaults.service';\r\nimport { mustNotExistValidator } from 'app/shared/validators/must-not-exist.validator';\r\nimport { errorMessages } from 'app/shared/values/error-messages';\r\nimport { environment } from 'environments/environment';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { CustomValidator } from 'app/shared/validators/custom-validators';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { ScaffoldTimelineQueryService } from 'app/sites/services/scaffold-timeline-query-service';\r\nimport { QuoteAndItemValidationStatus } from 'app/sites/values/quote-and-item-validation-status.enum';\r\nimport { UUID } from 'angular2-uuid';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-edit-scaffold-specification',\r\n templateUrl: './add-edit-scaffold-specification.component.html',\r\n styleUrls: ['./add-edit-scaffold-specification.component.scss']\r\n})\r\n/**\r\n * Component for adding or editing a scaffold specification.\r\n * @extends MultiStepModalFormComponent\r\n */\r\n/**\r\n * Component for adding or editing a scaffold specification.\r\n * @extends MultiStepModalFormComponent\r\n */\r\nexport class AddEditScaffoldSpecificationComponent extends MultiStepModalFormComponent implements OnInit, OnDestroy {\r\n /** Data passed to the component */\r\n data: any;\r\n /** Stores if the user is editing a scaffold or creating */\r\n editMode: boolean;\r\n /** Contains data from the modal */\r\n context: Partial;\r\n /** Stores the form */\r\n form: UntypedFormGroup;\r\n /** Stores the current selected site data */\r\n site: SiteWebAppData;\r\n /** Stores all quotes */\r\n quotes: QuoteData[];\r\n /** Stores all items for the selected quote */\r\n quoteItems: ItemData[] = [];\r\n /** Stores the value of add to existing quote question */\r\n addToExistingQuoteQuestionFormControl: UntypedFormControl;\r\n /** Stores the value of add to existing item question */\r\n addToExistingItemQuestionFormControl: UntypedFormControl;\r\n /** Stores the dropdown form control */\r\n quoteDropdownFormControl: UntypedFormControl;\r\n /** Stores the quote number form control */\r\n quoteNumberFormControl: UntypedFormControl;\r\n /** Stores the item dropdown form control */\r\n itemDropdownFormControl: UntypedFormControl;\r\n /** Stores the item number form control */\r\n itemNumberFormControl: UntypedFormControl;\r\n /** Stores the item name form control */\r\n itemNameFormControl: UntypedFormControl;\r\n /** Validation for quote items */\r\n quoteItemsValidation: any;\r\n /** Validation for item number */\r\n itemNumberValidation: any;\r\n /** Stores the selected item and quote */\r\n itemAndQuote: any = [];\r\n /** Stores the selected item in the dropdown */\r\n itemDropdownSelected: any;\r\n /** Stores the selected quote in the dropdown */\r\n quoteDropdownSelected: any;\r\n /** Required message for item */\r\n itemRequiredMessage: string;\r\n /** Options for scaffold type */\r\n scaffoldTypeOptions: ScaffoldTypeData[];\r\n /** Options for design type */\r\n designTypeOptions: DesignTypedata[];\r\n /** Options for loading limit */\r\n loadingLimitOptions: LoadingLimitData[];\r\n /** Options for method of tying */\r\n methodOfTyingOptions: MethodOfTyingData[];\r\n /** Options for method of cladding */\r\n methodOfCladdingOptions: MethodsOfCladdingdata[];\r\n /** Options for scaffolding system */\r\n scaffoldingSystemOptions: ScaffoldingSystemdata[];\r\n /** Stores the scaffold type form control */\r\n scaffoldTypeFormControl: UntypedFormControl;\r\n /** Stores the description form control */\r\n descriptionFormControl: UntypedFormControl;\r\n /** Stores the maximum tonnage form control */\r\n maximumTonnageFormControl: UntypedFormControl;\r\n /** Stores the standing tonnage form control */\r\n standingTonnageFormControl: UntypedFormControl;\r\n /** Stores the design type form control */\r\n designTypeFormControl: UntypedFormControl;\r\n /** Stores the loading limit form control */\r\n loadingLimitFormControl: UntypedFormControl;\r\n /** Stores the method of tying form control */\r\n methodOfTyingFormControl: UntypedFormControl;\r\n /** Stores the method of cladding form control */\r\n methodOfCladdingFormControl: UntypedFormControl;\r\n /** Stores the scaffolding system form control */\r\n scaffoldingSystemFormControl: UntypedFormControl;\r\n /** Required message for scaffolding system */\r\n scaffoldingSystemRequiredMessage: string;\r\n /** Validation messages for form controls */\r\n validationMessages = {\r\n quoteDropdown: {\r\n required: errorMessages.required\r\n },\r\n itemDropdown: {\r\n required: errorMessages.required\r\n },\r\n quoteNumber: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.quoteNumberMustBeUnique\r\n },\r\n itemNumber: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.itemNumberMustBeUnique\r\n },\r\n itemName: {\r\n required: errorMessages.required\r\n },\r\n scaffoldingSystem: {\r\n required: errorMessages.required\r\n },\r\n maximumTonnage: {\r\n required: errorMessages.required,\r\n invalidValue: errorMessages.invalidValue\r\n },\r\n standingTonnage: {\r\n required: errorMessages.required,\r\n invalidValue: errorMessages.invalidValue\r\n }\r\n };\r\n /** Represents the validation status of a quote and its associated items. */\r\n quoteAndItemValidationStatus: QuoteAndItemValidationStatus;\r\n isLoading = true;\r\n constructor(\r\n private scaffoldCommandService: ScaffoldCommandService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private scaffoldDetailQueryService: ScaffoldDetailQueryService,\r\n private contractCommandService: ContractCommandService,\r\n private quotesQueryService: QuotesQueryService,\r\n private itemDetailsQueryService: ItemDetailsQueryService,\r\n private generateDefaultsService: GenerateDefaultsService,\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService,\r\n public scaffoldTimelineQueryService: ScaffoldTimelineQueryService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.quotes = this.data.quotes;\r\n this.editMode = this.context.editMode;\r\n this.site = this.context.site;\r\n this.scaffoldTypeOptions = map(this.context.configuration.ScaffoldTypes);\r\n this.designTypeOptions = map(this.context.configuration.DesignTypes);\r\n this.loadingLimitOptions = map(this.context.configuration.LoadingLimits);\r\n this.methodOfTyingOptions = map(this.context.configuration.MethodOfTyings);\r\n this.methodOfCladdingOptions = map(this.context.configuration.MethodOfCladdings);\r\n this.scaffoldingSystemOptions = map(this.context.configuration.ScaffoldingSystems);\r\n\r\n if (this.data.scaffold.ScaffoldSpecification.ScaffoldingSystemData && this.data.scaffold.ScaffoldSpecification.ScaffoldingSystemData.Deleted) {\r\n this.scaffoldingSystemOptions.push(this.data.scaffold.ScaffoldSpecification.ScaffoldingSystemData);\r\n }\r\n\r\n const defaultScaffoldingSystem = this.scaffoldingSystemOptions.find((scaffoldingsystem) => {\r\n return scaffoldingsystem.IsDefault;\r\n });\r\n\r\n // Set the quote and item question is switch on/ off on specification page load on add,\r\n // edit scaffold and on navigate to next and previous page vise versa and retain the edited data until submit button is clicked\r\n var existingQuoteQuestionEnabled = this.getExistingQuoteQuestionEnabled();\r\n var existingItemQuestionEnabled = this.getExistingQuoteItemQuestionEnabled();\r\n this.addToExistingQuoteQuestionFormControl = new UntypedFormControl(existingQuoteQuestionEnabled);\r\n this.addToExistingItemQuestionFormControl = new UntypedFormControl(existingItemQuestionEnabled);\r\n\r\n const allQuoteNumbersValidation = this.quotes.length ? Object.assign(this.quotes.map(q => q.QuoteNumber)) : [];\r\n\r\n this.itemNumberFormControl = new UntypedFormControl();\r\n this.quoteNumberFormControl = new UntypedFormControl('', [mustNotExistValidator(allQuoteNumbersValidation)]);\r\n this.itemNameFormControl = new UntypedFormControl();\r\n\r\n if (!this.editMode && !this.quotes.length) {\r\n this.addToExistingQuoteQuestionFormControl.setValue(false);\r\n }\r\n\r\n // Set the new quote number with value during add, edit scaffold and on\r\n // navigate to next and previous page vise versa and retain the edited data until submit button is clicked\r\n if (!existingQuoteQuestionEnabled) {\r\n this.quoteNumberFormControl.setValue(this.data.scaffold.QuoteNumber);\r\n }\r\n // Set the new item number and item name with value during add, edit scaffold and on\r\n // navigate to next and previous page vise versa and retain the edited data until submit button is clicked\r\n if (!existingItemQuestionEnabled) {\r\n this.itemNumberFormControl.setValue(this.data.scaffold.ItemNumber);\r\n this.itemNameFormControl.setValue(this.data.scaffold.ItemName);\r\n }\r\n\r\n this.scaffoldTypeFormControl = new UntypedFormControl({\r\n id: this.data.scaffold.ScaffoldSpecification.ScaffoldTypeId || null,\r\n furtherInfo: this.data.scaffold.ScaffoldSpecification.ScaffoldTypeFurtherInformation || null\r\n });\r\n this.descriptionFormControl = new UntypedFormControl(this.data.scaffold.ScaffoldSpecification.Description);\r\n\r\n let maximumTonnage = this.data.scaffold.ScaffoldSpecification.MaximumTonnage;\r\n if (!maximumTonnage || maximumTonnage === 0) {\r\n maximumTonnage = (0.00).toFixed(2);\r\n }\r\n\r\n let standingTonnage = this.data.scaffold.ScaffoldSpecification.StandingTonnage;\r\n if (!standingTonnage || standingTonnage === 0) {\r\n standingTonnage = (0.00).toFixed(2);\r\n }\r\n\r\n this.maximumTonnageFormControl = new UntypedFormControl(maximumTonnage, [CustomValidator.negativeDecimalValidator]);\r\n this.standingTonnageFormControl = new UntypedFormControl(standingTonnage, [CustomValidator.negativeDecimalValidator]);\r\n this.designTypeFormControl = new UntypedFormControl({\r\n id: this.data.scaffold.ScaffoldSpecification.DesignTypeId || null,\r\n furtherInfo: this.data.scaffold.ScaffoldSpecification.DesignTypeFurtherInformation\r\n });\r\n this.loadingLimitFormControl = new UntypedFormControl({\r\n id: this.data.scaffold.ScaffoldSpecification.LoadingLimitId || null,\r\n furtherInfo: this.data.scaffold.ScaffoldSpecification.LoadingLimitFurtherInformation\r\n });\r\n this.methodOfTyingFormControl = new UntypedFormControl({\r\n id: this.data.scaffold.ScaffoldSpecification.MethodOfTyingId || null,\r\n furtherInfo: this.data.scaffold.ScaffoldSpecification.MethodOfTyingFurtherInformation\r\n });\r\n this.methodOfCladdingFormControl = new UntypedFormControl({\r\n id: this.data.scaffold.ScaffoldSpecification.MethodOfCladdingId || null,\r\n furtherInfo: this.data.scaffold.ScaffoldSpecification.MethodOfCladdingFurtherInformation\r\n });\r\n this.scaffoldingSystemFormControl = new UntypedFormControl({\r\n id: this.data.scaffold.ScaffoldSpecification.ScaffoldingSystemId || (!this.editMode && defaultScaffoldingSystem && defaultScaffoldingSystem.ScaffoldingSystemId) || null,\r\n furtherInfo: this.data.scaffold.ScaffoldSpecification.ScaffoldingSystemFurtherInformation\r\n }, Validators.required);\r\n\r\n this.quoteDropdownFormControl = new UntypedFormControl(null, Validators.required);\r\n this.itemDropdownFormControl = new UntypedFormControl(null, Validators.required);\r\n\r\n if (this.quotes.length && this.data.scaffold.QuoteId && this.editMode) {\r\n // if in edit mode and there is an existing quote, then set the quote drop down selected value\r\n this.onQuoteDropdownValueChanged(this.data.scaffold.QuoteId);\r\n\r\n // If it is on edit mode and there is an existing item, then set the item drop down selected value\r\n this.onItemDropdownValueChanged(existingItemQuestionEnabled ? this.data.scaffold.ItemId : null);\r\n } else {\r\n // If there are no quotes then its the 1st scaffold of the site or the site has no quotes\r\n this.removeExistingQuoteValidation();\r\n this.removeExistingItemValidation();\r\n }\r\n\r\n this.form = new UntypedFormGroup({\r\n scaffoldType: this.scaffoldTypeFormControl,\r\n description: this.descriptionFormControl,\r\n quoteDropdown: this.quoteDropdownFormControl,\r\n itemDropdown: this.itemDropdownFormControl,\r\n designType: this.designTypeFormControl,\r\n loadingLimit: this.loadingLimitFormControl,\r\n methodOfTying: this.methodOfTyingFormControl,\r\n methodOfCladding: this.methodOfCladdingFormControl,\r\n addToExistingQuoteQuestion: this.addToExistingQuoteQuestionFormControl,\r\n quoteNumber: this.quoteNumberFormControl,\r\n itemNumber: this.itemNumberFormControl,\r\n itemName: this.itemNameFormControl,\r\n addToExistingItemQuestion: this.addToExistingItemQuestionFormControl,\r\n scaffoldingSystem: this.scaffoldingSystemFormControl,\r\n maximumTonnage: this.maximumTonnageFormControl,\r\n standingTonnage: this.standingTonnageFormControl\r\n });\r\n\r\n this.form.controls.scaffoldingSystem.valueChanges.subscribe(() => {\r\n this.scaffoldingSystemRequiredMessage = null;\r\n this.form.controls.scaffoldingSystem.setErrors(null);\r\n });\r\n\r\n this.itemNumberFormControl.valueChanges.subscribe(() => {\r\n if (this.addToExistingItemQuestionFormControl.value) return;\r\n this.itemAndQuote.itemId = null;\r\n this.itemAndQuote.itemNumber = this.itemNumberFormControl.value;\r\n });\r\n\r\n this.itemNameFormControl.valueChanges.subscribe(() => {\r\n if (this.addToExistingItemQuestionFormControl.value) return;\r\n this.itemAndQuote.itemId = null;\r\n this.itemAndQuote.itemName = this.itemNameFormControl.value;\r\n });\r\n\r\n this.quoteNumberFormControl.valueChanges.subscribe(() => {\r\n if (this.addToExistingQuoteQuestionFormControl.value) return;\r\n this.itemAndQuote.quoteNumber = this.quoteNumberFormControl.value;\r\n });\r\n\r\n this.addToExistingQuoteQuestionFormControl.valueChanges.subscribe(addExistingQuoteOption => {\r\n // clears the quote dropdown and input depending on add to existing quote true or false\r\n if (addExistingQuoteOption) {\r\n // Add Existing Quote - YES\r\n this.removeNewQuoteValidation();\r\n this.removeNewItemValidation();\r\n this.updateExistingQuoteValidation();\r\n if (this.addToExistingItemQuestionFormControl.value) {\r\n this.updateExistingItemValidation();\r\n } else {\r\n this.updateNewItemValidation();\r\n }\r\n } else {\r\n // Add Existing Quote - NO\r\n this.removeExistingQuoteValidation();\r\n this.updateNewItemValidation();\r\n this.removeNewItemValidation();\r\n this.removeExistingItemValidation();\r\n }\r\n });\r\n\r\n this.addToExistingItemQuestionFormControl.valueChanges.subscribe(addExistingItemOption => {\r\n // clears the item dropdown and input depending on add to existing item true or false\r\n if (addExistingItemOption) {\r\n // Add Existing Item - YES\r\n this.onItemDropdownValueChanged(\r\n this.itemDropdownSelected && this.itemDropdownSelected.ItemId // 1st checks if the user has selected a value\r\n ? this.itemDropdownSelected.ItemId // gets selected value\r\n : this.data.scaffold.ItemId // else gets the existing value\r\n ? this.quoteItems.find(qi => qi.ItemId === this.data.scaffold.ItemId) // if not - checks if existing scaff already has a value\r\n : null // else will reset.\r\n );\r\n this.removeNewItemValidation();\r\n this.updateExistingItemValidation();\r\n } else {\r\n // Add Existing Item - NO\r\n this.removeExistingItemValidation();\r\n this.updateNewItemValidation();\r\n }\r\n });\r\n this.isLoading = false;\r\n super.ngOnInit();\r\n }\r\n\r\n onPrevious(formValues): void {\r\n // Save the specification data before navigation\r\n this.saveSpecificationData(this.getRevisedSpecificationData(formValues));\r\n this.previousStep();\r\n }\r\n\r\n\r\n /**\r\n * Updates the quote dropdown selection and its associated items based on the selected quote ID.\r\n * @param selectedQuoteId The ID of the selected quote.\r\n */\r\n public onQuoteDropdownValueChanged(selectedQuoteId) {\r\n this.removeNewQuoteValidation();\r\n this.itemDropdownFormControl.setValue([]);\r\n this.quoteDropdownSelected = selectedQuoteId;\r\n const selectedQuote = this.quotes.find(q => q.QuoteId === selectedQuoteId);\r\n this.quoteItems = selectedQuote ? selectedQuote.Items.map(i => i) : [];\r\n this.quoteDropdownFormControl.setValue(selectedQuoteId);\r\n this.itemAndQuote.quoteNumber = selectedQuote ? selectedQuote.QuoteNumber : null;\r\n this.itemAndQuote.quoteId = selectedQuote ? selectedQuote.QuoteId : null;\r\n }\r\n\r\n /**\r\n * Handles the change event of the item dropdown.\r\n * @param selectedItemId The ID of the selected item.\r\n */\r\n public onItemDropdownValueChanged(selectedItemId) {\r\n this.removeNewItemValidation();\r\n var item = this.quotes.find(q => q.QuoteId === this.quoteDropdownFormControl.value).Items.find(i => i.ItemId === selectedItemId);\r\n this.itemDropdownSelected = item;\r\n this.itemAndQuote.itemId = item.ItemId;\r\n this.itemAndQuote.itemNumber = item.ItemNumber;\r\n this.itemAndQuote.itemName = item.ItemName;\r\n this.itemDropdownFormControl.setValue(selectedItemId);\r\n }\r\n\r\n // Get the existing quote question is switch on/off on inital load\r\n private getExistingQuoteQuestionEnabled(): boolean {\r\n if (this.data.scaffold.QuoteId ||\r\n (!this.data.scaffold.QuoteNumber && this.quotes.length)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /** Get the existing quote item question is switch on/off on inital load */\r\n private getExistingQuoteItemQuestionEnabled(): boolean {\r\n if (this.data.scaffold.ItemId ||\r\n (!this.data.scaffold.ItemNumber && this.quotes.length)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Returns the quote number for a given quote ID.\r\n * @param quoteId The ID of the quote to retrieve the number for.\r\n * @returns The quote number for the given quote ID, or undefined if the quote is not found.\r\n */\r\n getQuoteNumber(quoteId): any {\r\n if (quoteId) return this.quotes.find(q => q.QuoteId === quoteId).QuoteNumber;\r\n }\r\n\r\n /**\r\n * To check whether the stock control is enabled for this company\r\n */\r\n isManageStockControlEnabled(): boolean {\r\n const featureFlags = environment.featureFlags as any;\r\n return !featureFlags.stockControl ? false : this.site.IsManageStockControl;\r\n }\r\n\r\n /**\r\n * Updates the validation rules for the quote number form control based on the current list of quotes.\r\n * If there are any quotes, the form control must not have a value that already exists in the list of quotes.\r\n * The form control is also required.\r\n */\r\n private updateNewQuoteValidation(): void {\r\n const allQuoteNumbersValidation = this.quotes.length ? Object.assign(this.quotes.map(q => q.QuoteNumber)) : [];\r\n this.quoteNumberFormControl.setValidators([mustNotExistValidator(allQuoteNumbersValidation), Validators.required]);\r\n this.quoteNumberFormControl.updateValueAndValidity();\r\n }\r\n\r\n /**\r\n * Removes the validators from the quote number form control and updates its value and validity.\r\n * This is used to clear validation errors when a new quote is added.\r\n * @returns void\r\n */\r\n private removeNewQuoteValidation(): void {\r\n this.quoteNumberFormControl.clearValidators();\r\n this.quoteNumberFormControl.updateValueAndValidity();\r\n }\r\n\r\n /**\r\n * Removes the validators from the quote dropdown form control and updates its value and validity.\r\n * @returns void\r\n */\r\n private removeExistingQuoteValidation(): void {\r\n this.quoteDropdownFormControl.clearValidators();\r\n this.quoteDropdownFormControl.updateValueAndValidity();\r\n }\r\n\r\n /** Removes validators and updates the value and validity of the item number and item name form controls. */\r\n private removeNewItemValidation(): void {\r\n this.itemNumberFormControl.clearValidators();\r\n this.itemNumberFormControl.updateValueAndValidity();\r\n this.itemNameFormControl.clearValidators();\r\n this.itemNameFormControl.updateValueAndValidity();\r\n }\r\n\r\n /** Removes validators and updates the value and validity of the item dropdown form control. */\r\n private removeExistingItemValidation(): void {\r\n this.itemDropdownFormControl.clearValidators();\r\n this.itemDropdownFormControl.updateValueAndValidity();\r\n }\r\n\r\n /**\r\n * Updates the validation rules for the item number and item name form controls.\r\n * The item number form control is set to be required and must not exist in the list of quote items.\r\n * The item name form control is set to be required.\r\n */\r\n updateNewItemValidation(): void {\r\n var selectedQuote = this.quotes.find(q => q.QuoteId === this.itemAndQuote.quoteId);\r\n if (selectedQuote && this.addToExistingQuoteQuestionFormControl.value) {\r\n this.itemNumberFormControl.setValidators([\r\n Validators.required,\r\n mustNotExistValidator(Object.assign(selectedQuote.Items.map(i => i.ItemNumber))),\r\n Validators.required\r\n ]);\r\n } else {\r\n this.itemNumberFormControl.setValidators([Validators.required]);\r\n }\r\n this.itemNumberFormControl.updateValueAndValidity();\r\n this.itemNameFormControl.setValidators([Validators.required]);\r\n this.itemNameFormControl.updateValueAndValidity();\r\n }\r\n\r\n /**\r\n * Updates the validation for the item dropdown form control to make it required.\r\n * Also updates the error message to prompt the user to select an item.\r\n */\r\n updateExistingItemValidation(): void {\r\n this.itemDropdownFormControl.setValidators([Validators.required]);\r\n if (this.itemDropdownFormControl.value === null || this.itemDropdownFormControl.value === undefined || this.itemDropdownFormControl.value === '') {\r\n this.itemRequiredMessage = 'Please select an item';\r\n }\r\n this.itemDropdownFormControl.updateValueAndValidity();\r\n }\r\n\r\n /**\r\n * Updates the validation for the quote dropdown form control to make it required.\r\n */\r\n updateExistingQuoteValidation(): void {\r\n this.quoteDropdownFormControl.setValidators([Validators.required]);\r\n this.quoteDropdownFormControl.updateValueAndValidity();\r\n }\r\n\r\n\r\n validateScaffoldingSystem(): void {\r\n if (this.scaffoldingSystemFormControl.value.id === null) {\r\n this.form.controls.scaffoldingSystem.setErrors({ required: true });\r\n this.scaffoldingSystemRequiredMessage = 'This field is required';\r\n } else {\r\n this.scaffoldingSystemRequiredMessage = null;\r\n this.form.controls.scaffoldingSystem.setErrors(null);\r\n }\r\n }\r\n\r\n /**\r\n * Returns an object containing the revised scaffold specification data based on the provided form values.\r\n * @param formValues - The form values to use for generating the revised specification data.\r\n * @returns An object containing the revised scaffold specification data.\r\n */\r\n private getRevisedSpecificationData(formValues): any {\r\n const selectedItem = this.itemDropdownFormControl.value;\r\n const item = {\r\n ActualHours: selectedItem && selectedItem?.ActualHours ? selectedItem?.ActualHours : null,\r\n AllocatedHours: selectedItem && selectedItem.AllocatedHours ? selectedItem.AllocatedHours : null,\r\n ContractId: this.data.scaffold.ContractId,\r\n Estimator: selectedItem && selectedItem.Estimator ? selectedItem.Estimator : null,\r\n ItemId: this.itemAndQuote.itemId,\r\n ItemName: this.itemAndQuote.itemName,\r\n ItemNumber: this.itemAndQuote.itemNumber,\r\n ItemStatus: formValues.ItemStatus ? formValues.ItemStatus : ItemStatusEnum.Open,\r\n QuoteId: this.itemAndQuote.quoteId,\r\n QuoteNumber: this.itemAndQuote.quoteNumber\r\n };\r\n\r\n const revisedValues = {\r\n scaffoldType: formValues.scaffoldType,\r\n description: formValues.description,\r\n quoteId: this.itemAndQuote.quoteId,\r\n item: item,\r\n designType: formValues.designType,\r\n loadingLimit: formValues.loadingLimit,\r\n methodOfTying: formValues.methodOfTying,\r\n methodOfCladding: formValues.methodOfCladding,\r\n scaffoldingSystem: formValues.scaffoldingSystem,\r\n maximumTonnage: formValues.maximumTonnage,\r\n standingTonnage: formValues.standingTonnage\r\n };\r\n\r\n return revisedValues;\r\n }\r\n\r\n /**\r\n * Sets the quote and item properties of the `itemAndQuote` object to null.\r\n * This is used to clear the quote and item fields when the user selects \"No Quote\" and \"No Item\".\r\n */\r\n private setNoQuoteNoItem(): void {\r\n this.itemAndQuote.quoteId = null;\r\n this.itemAndQuote.quoteNumber = null;\r\n this.itemAndQuote.itemId = null;\r\n this.itemAndQuote.itemNumber = null;\r\n this.itemAndQuote.itemName = null;\r\n }\r\n\r\n /**\r\n * Validates the quote and item fields based on whether the user wants to add to an existing quote, an existing item, or create a new quote and item.\r\n */\r\n private validateQuoteAndItem(): void {\r\n var existingQuote = this.addToExistingQuoteQuestionFormControl.value;\r\n var quoteDropdown = this.quoteDropdownFormControl.value;\r\n var itemDropdown = this.itemDropdownFormControl.value;\r\n var existingItem = this.addToExistingItemQuestionFormControl.value && (existingQuote && this.quoteItems.find(x => x.QuoteId == quoteDropdown)) && itemDropdown.length > 0;\r\n\r\n var quoteNumber = this.quoteNumberFormControl.value;\r\n var itemNumber = this.itemNumberFormControl.value;\r\n var itemName = this.itemNameFormControl.value;\r\n\r\n // make sure the quote and item are correct considering the conditional use of existing quote or item\r\n if (!existingQuote) {\r\n // clear out the quoteId\r\n this.itemAndQuote.quoteId = null;\r\n }\r\n if (!existingItem) {\r\n this.itemAndQuote.itemNumber = itemNumber;\r\n this.itemAndQuote.itemName = itemName;\r\n this.itemAndQuote.itemId = null;\r\n }\r\n\r\n if (existingQuote && existingItem) {\r\n // quote and item can be empty\r\n if (!quoteDropdown && !itemDropdown) {\r\n this.quoteAndItemValidationStatus = QuoteAndItemValidationStatus.NoQuoteNoItem;\r\n this.removeExistingQuoteValidation();\r\n this.removeExistingItemValidation();\r\n this.removeNewItemValidation();\r\n this.removeNewQuoteValidation();\r\n this.setNoQuoteNoItem();\r\n return;\r\n }\r\n this.quoteAndItemValidationStatus = QuoteAndItemValidationStatus.ExistingQuoteExistingItem;\r\n this.updateExistingQuoteValidation();\r\n this.updateExistingItemValidation();\r\n this.removeNewQuoteValidation();\r\n this.removeNewItemValidation();\r\n }\r\n else if (existingQuote && !existingItem) {\r\n this.quoteAndItemValidationStatus = QuoteAndItemValidationStatus.ExistingQuoteNewItem;\r\n this.removeNewQuoteValidation();\r\n this.updateExistingQuoteValidation();\r\n this.updateNewItemValidation();\r\n this.removeExistingItemValidation();\r\n }\r\n else {\r\n // new quote and new item can be empty\r\n if (!quoteNumber && !itemNumber && !itemName) {\r\n this.quoteAndItemValidationStatus = QuoteAndItemValidationStatus.NoQuoteNoItem;\r\n this.removeNewQuoteValidation();\r\n this.removeNewItemValidation();\r\n this.removeExistingItemValidation();\r\n this.removeExistingQuoteValidation();\r\n this.setNoQuoteNoItem();\r\n return;\r\n }\r\n this.quoteAndItemValidationStatus = QuoteAndItemValidationStatus.NewQuoteNewItem;\r\n this.updateNewQuoteValidation();\r\n this.updateNewItemValidation();\r\n this.removeExistingQuoteValidation();\r\n this.removeExistingItemValidation();\r\n }\r\n }\r\n\r\n /**\r\n * Handles the form submission for adding or editing a scaffold specification.\r\n * Validates the form data and saves the specification data.\r\n * If editing a scaffold and a new item is being added, creates the new item.\r\n * Updates various queries and closes the modal.\r\n * @param formValues The form data to be submitted.\r\n * @returns A Promise that resolves when the submission is complete.\r\n */\r\n async onSubmit(formValues): Promise {\r\n // ensures data is not changed during the save process\r\n const _data = this.data;\r\n this.validateQuoteAndItem();\r\n this.validateScaffoldingSystem();\r\n try {\r\n\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n\r\n var revisedValues = this.getRevisedSpecificationData(formValues);\r\n this.saveSpecificationData(revisedValues);\r\n const command: CreateScaffoldWebConsoleCommand | EditScaffoldWebConsoleCommand = Object.assign(_data.scaffold, {\r\n OffsetFromUtc: moment().utcOffset(),\r\n ItemId: this.itemAndQuote.itemId,\r\n ItemNumber: this.itemAndQuote.itemNumber,\r\n ItemName: this.itemAndQuote.itemName,\r\n QuoteId: this.itemAndQuote.quoteId,\r\n QuoteNumber: this.itemAndQuote.quoteNumber,\r\n });\r\n\r\n const commandFunction = this.editMode\r\n ? this.scaffoldCommandService.EditScaffoldWebConsoleCommand\r\n : this.scaffoldCommandService.CreateScaffoldWebConsoleCommand;\r\n\r\n // it should create the item in case it is a new item\r\n if (this.quoteAndItemValidationStatus === QuoteAndItemValidationStatus.NewQuoteNewItem\r\n || this.quoteAndItemValidationStatus === QuoteAndItemValidationStatus.ExistingQuoteNewItem) {\r\n await this.createItem(revisedValues);\r\n const newQuote = this.quotes.find(quote => quote.QuoteId === this.itemAndQuote.quoteId);\r\n if (newQuote) {\r\n const newItem = newQuote.Items.find(item => item.ItemNumber === this.itemAndQuote.itemNumber);\r\n if (newItem) {\r\n const newItemId = newItem.ItemId;\r\n command.ItemId = newItemId;\r\n }\r\n }\r\n }\r\n\r\n commandFunction.call(this.scaffoldCommandService, command).subscribe(() => {\r\n const obs$ = forkJoin([\r\n this.siteScaffoldQueryService.siteScaffoldQuery(false, this.site.SiteId),\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n this.scaffoldTimelineQueryService.scaffoldTimelineQuery(false, _data.scaffold.ScaffoldId),\r\n\r\n ]);\r\n obs$.subscribe(async () => {\r\n this.saveInProgress = false;\r\n this.modalService.setDismissReason(_data.scaffold.ScaffoldId);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n } catch (error) {\r\n this.saveInProgress = false;\r\n this.serverError = error.toString();\r\n }\r\n }\r\n\r\n /**\r\n * Creates a new item with the given form values and adds it to the contract.\r\n * @param formValues The form values for the new item.\r\n * @returns A Promise that resolves when the item has been created and added to the contract.\r\n * The Promise rejects if there was an error creating the item.\r\n */\r\n async createItem(formValues): Promise {\r\n const featureFlags = environment.featureFlags as any;\r\n\r\n // need to derive the quote number from an existing quote or the new quote number\r\n\r\n const createItemCommand = {\r\n ItemId: UUID.UUID(),\r\n QuoteNumber: this.itemAndQuote.quoteNumber,\r\n QuoteId: this.itemAndQuote.quoteId,\r\n ItemNumber: this.itemAndQuote.itemNumber,\r\n ItemName: this.itemAndQuote.itemName,\r\n AllocatedHours: formValues.item.AllocatedHours,\r\n ContractId: this.data.scaffold.ContractId,\r\n ScaffoldIds: this.editMode ? [this.data.scaffold.ScaffoldId] : [],\r\n Tasks: featureFlags.timesheet ? this.generateDefaultsService.generateDefaultTasks() : null,\r\n ItemStatus: ItemStatusEnum.Open,\r\n Estimator: '',\r\n ItemType: ItemTypeEnum.Quoted\r\n };\r\n const commandResult = this.contractCommandService.CreateItemWebConsoleCommand(createItemCommand);\r\n\r\n const obs$ = forkJoin([\r\n this.quotesQueryService.quotesQuery(false, createItemCommand.ContractId),\r\n this.scaffoldDetailQueryService.scaffoldDetailQuery(false, this.data.scaffold.ScaffoldId)\r\n ]);\r\n\r\n return new Promise((resolve, reject) => {\r\n commandResult.subscribe({\r\n next: (val) => {\r\n obs$.subscribe({\r\n next: (result) => {\r\n const quotes = result[0];\r\n const newItem = new ItemData();\r\n newItem.ContractId = this.data.scaffold.ContractId;\r\n newItem.QuoteId = this.itemAndQuote.quoteId;\r\n newItem.QuoteNumber = this.itemAndQuote.quoteNumber;\r\n newItem.ItemId = createItemCommand.ItemId;\r\n newItem.ActualHours = createItemCommand.AllocatedHours;\r\n newItem.AllocatedHours = createItemCommand.AllocatedHours;\r\n newItem.ItemName = this.itemAndQuote.itemName;\r\n newItem.ItemNumber = this.itemAndQuote.itemNumber;\r\n newItem.ItemStatus = ItemStatusEnum.Open;\r\n newItem.Estimator = createItemCommand.Estimator;\r\n\r\n const quoteToUpdate = quotes.find(quote => quote.QuoteId === newItem.QuoteId);\r\n if (quoteToUpdate) {\r\n const existingItemIndex = quoteToUpdate.Items.findIndex(item => item.ItemId === newItem.ItemId);\r\n if (existingItemIndex === -1) {\r\n // if the new item is not already in the quote's Items array, add it\r\n quoteToUpdate.Items.push(newItem);\r\n } else {\r\n // if the new item is already in the quote's Items array, update it\r\n quoteToUpdate.Items[existingItemIndex] = newItem;\r\n }\r\n } else {\r\n // if the quote is not in the quotes array, create a new quote with the new item\r\n const newQuote = new QuoteData();\r\n newQuote.ContractId = this.data.scaffold.ContractId;\r\n newQuote.QuoteId = this.itemAndQuote.quoteId;\r\n newQuote.QuoteNumber = this.itemAndQuote.quoteNumber;\r\n newQuote.Items = [newItem];\r\n quotes.push(newQuote);\r\n }\r\n this.quotes = quotes;\r\n resolve();\r\n },\r\n error: (error) => {\r\n this.serverErrorCallback(error);\r\n reject(error);\r\n }\r\n });\r\n },\r\n error: (error) => {\r\n this.serverErrorCallback(error);\r\n reject(error);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Updates the scaffold specification data with the provided form values.\r\n * @param formValues - The form values to update the scaffold specification with.\r\n * @returns void\r\n */\r\n saveSpecificationData(formValues): void {\r\n this.data.scaffold.ScaffoldSpecification = Object.assign(this.data.scaffold.ScaffoldSpecification, {\r\n ScaffoldTypeId: formValues.scaffoldType.id,\r\n ScaffoldTypeFurtherInformation: formValues.scaffoldType.furtherInfo,\r\n Description: formValues.description,\r\n DesignTypeId: formValues.designType.id,\r\n DesignTypeFurtherInformation: formValues.designType.furtherInfo,\r\n LoadingLimitId: formValues.loadingLimit.id,\r\n LoadingLimitFurtherInformation: formValues.loadingLimit.furtherInfo,\r\n MethodOfTyingId: formValues.methodOfTying.id,\r\n MethodOfTyingFurtherInformation: formValues.methodOfTying.furtherInfo,\r\n MethodOfCladdingId: formValues.methodOfCladding.id,\r\n MethodOfCladdingFurtherInformation: formValues.methodOfCladding.furtherInfo,\r\n ScaffoldingSystemId: formValues.scaffoldingSystem.id,\r\n MaximumTonnage: formValues.maximumTonnage,\r\n StandingTonnage: formValues.standingTonnage\r\n\r\n });\r\n this.data.scaffold.QuoteId = this.itemAndQuote.quoteId;\r\n this.data.scaffold.QuoteNumber = this.itemAndQuote.quoteNumber;\r\n this.data.scaffold.ItemId = this.itemAndQuote.itemId;\r\n this.data.scaffold.ItemNumber = this.itemAndQuote.itemNumber;\r\n this.data.scaffold.ItemName = this.itemAndQuote.itemName;\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n This field is required
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {{ itemRequiredMessage }}
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n {{ serverError }}\r\n
\r\n * Denotes a required field\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-defect-result',\r\n templateUrl: './defect-result.component.html',\r\n styleUrls: ['./defect-result.component.scss']\r\n})\r\nexport class DefectResultComponent implements OnInit {\r\n\r\n @Input()\r\n status: number;\r\n @Input()\r\n showOnlyTitle?: boolean;\r\n @Input()\r\n showOnlyIcon?: boolean;\r\n\r\n icon: string;\r\n title: string;\r\n\r\n inspectionDefectStatusIds = {\r\n remains: 2,\r\n unsafe: 1,\r\n fixed: 0,\r\n };\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n switch (this.status) {\r\n case this.inspectionDefectStatusIds.fixed:\r\n this.icon = 'fa-exclamation-circle text-orange';\r\n this.title = 'Fixed by inspector';\r\n break;\r\n case this.inspectionDefectStatusIds.remains:\r\n this.icon = 'fa-exclamation-circle text-amber';\r\n this.title = 'Minor defects remain';\r\n break;\r\n case this.inspectionDefectStatusIds.unsafe:\r\n this.icon = 'fa-exclamation-circle text-assertive';\r\n this.title = 'Unsafe';\r\n break;\r\n default:\r\n this.icon = 'fa-question-circle text-gray-50';\r\n this.title = 'Unknown';\r\n }\r\n }\r\n}\r\n","\r\n \r\n {{title}}\r\n \r\n \r\n {{title}}\r\n \r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { DismantleData } from 'app/core/hub-api';\r\n@Component({\r\n selector: 'hub-dismantle-card',\r\n templateUrl: './dismantle-card.component.html',\r\n styleUrls: ['./dismantle-card.component.scss']\r\n})\r\nexport class DismantleCardComponent implements OnInit {\r\n@Input()\r\ndismantleData: DismantleData;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

\r\n Scaffold Dismantled\r\n \r\n \r\n \r\n {{dismantleData.OwnerName}}\r\n \r\n \r\n {{ dismantleData.When | datetime: 'lll' }}\r\n \r\n \r\n

\r\n
\r\n

\r\n \r\n {{dismantleData.Notes}}\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { ScaffoldDetailQueryService } from '../../../../services/scaffold-detail-query-service';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\r\nimport { cloneDeep } from 'lodash';\r\nimport * as moment from 'moment';\r\nimport {\r\n ScaffoldWebAppData,\r\n SiteWebAppData,\r\n CreateDismantleWebConsoleCommand,\r\n DismantleCommandService,\r\n} from 'app/core/hub-api';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { ScaffoldTimelineQueryService } from '../../../../services/scaffold-timeline-query-service';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { DismantleScaffoldModalContext } from '../../../../models/dismantle-scaffold-modal-context';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { DatePickerOptions } from 'app/reports/models/date-picker-options';\r\nimport { dates, datesDayjs } from 'app/shared/values/dates';\r\nimport { Moment } from 'moment';\r\nimport { UserIdentityService } from 'app/core/authentication';\r\nimport { DatePickerSelectData } from 'app/shared/models/date-picker-select-data';\r\n\r\n@Component({\r\n selector: 'hub-dismantle-scaffold-modal',\r\n templateUrl: './dismantle-scaffold-modal.component.html',\r\n styleUrls: ['./dismantle-scaffold-modal.component.scss']\r\n})\r\nexport class DismantleScaffoldModalComponent extends FormComponent implements OnInit {\r\n datePickerOptions: DatePickerOptions;\r\n notesFormControl: UntypedFormControl;\r\n dismantleDateFormControl: UntypedFormControl;\r\n scaffold: ScaffoldWebAppData;\r\n site: SiteWebAppData;\r\n title: string;\r\n context: Partial;\r\n\r\n form: UntypedFormGroup;\r\n\r\n validationMessages = {\r\n dismantleDate: {\r\n required: errorMessages.required\r\n }\r\n };\r\n\r\n constructor(\r\n public modalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private dismantleCommandService: DismantleCommandService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private userIdentityService: UserIdentityService,\r\n private scaffoldTimelineQueryService: ScaffoldTimelineQueryService,\r\n private scaffoldDetailQueryService: ScaffoldDetailQueryService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.datePickerOptions = {\r\n alwaysShowCalendars: false,\r\n ranges: {},\r\n showCustomRangeLabel: false,\r\n };\r\n const dates = {\r\n startDate: datesDayjs.now,\r\n };\r\n this.notesFormControl = new UntypedFormControl('');\r\n this.dismantleDateFormControl = new UntypedFormControl(dates, Validators.required);\r\n\r\n this.form = new UntypedFormGroup({\r\n notes: this.notesFormControl,\r\n dismantleDate: this.dismantleDateFormControl\r\n });\r\n\r\n this.scaffold = cloneDeep(this.context.scaffold);\r\n this.site = this.context.site;\r\n\r\n this.title = `Dismantle Scaffold ${this.scaffold.ScaffoldNumber}`;\r\n this.dismantleDateFormControl.setValue(dates.startDate);\r\n super.ngOnInit();\r\n }\r\n\r\n /**\r\n * Detects the selected date range\r\n *\r\n * @param {*} dateRange date range selected by the user\r\n * @memberof ApplicationForPaymentFiltersComponent\r\n */\r\n public onDateRangeSelected(dateRange: any): void {\r\n this.dismantleDateFormControl.setValue(dateRange.startDate);\r\n }\r\n\r\n onSubmit(): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n let dismantleDate = new Date(this.form.value.dismantleDate);\r\n let now = new Date();\r\n let actualDateTimeDismantled = new Date(dismantleDate.getFullYear(), dismantleDate.getMonth(), dismantleDate.getDate(), now.getHours(), now.getMinutes(), now.getSeconds(), now.getMilliseconds());\r\n const command: CreateDismantleWebConsoleCommand = {\r\n DismantleId: UUID.UUID(),\r\n Scaffolds: [this.scaffold.ScaffoldId],\r\n Notes: this.form.value.notes ? this.form.value.notes : '',\r\n OffsetFromUtc: moment().utcOffset(),\r\n OwnerId: this.userIdentityService.currentUser().userId,\r\n When: actualDateTimeDismantled.toISOString(),\r\n };\r\n\r\n this.dismantleCommandService.CreateDismantleWebConsoleCommand(command).subscribe(() => {\r\n const obs$ = forkJoin([\r\n this.siteScaffoldQueryService.siteScaffoldQuery(false, this.site.SiteId),\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n this.scaffoldDetailQueryService.scaffoldDetailQuery(false, this.scaffold.ScaffoldId),\r\n this.scaffoldTimelineQueryService.scaffoldTimelineQuery(false, this.scaffold.ScaffoldId)\r\n ]);\r\n obs$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.modalService.setDismissReason(this.scaffold.ScaffoldId);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { scaffoldNumberComparator } from '../../../../../shared/comparators/scaffold-number-comparator';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { cloneDeep, sortBy } from 'lodash';\r\nimport {\r\n ScaffoldWebAppData,\r\n SiteCommandService,\r\n SiteWebAppData,\r\n UpdateScaffoldNumbersCommand,\r\n} from 'app/core/hub-api';\r\nimport { FixScaffoldNumbersModalContext } from '../../../../models/fix-scaffold-numbers-modal-context';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { ReferenceGeneratorService } from 'app/core/utility';\r\n\r\n@Component({\r\n selector: 'hub-fix-scaffold-numbers-modal',\r\n templateUrl: './fix-scaffold-numbers-modal.component.html',\r\n styleUrls: ['./fix-scaffold-numbers-modal.component.scss']\r\n})\r\nexport class FixScaffoldNumbersModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n\r\n form: UntypedFormGroup;\r\n validationMessages = {};\r\n\r\n site: SiteWebAppData;\r\n\r\n duplicateScaffolds: ScaffoldWebAppData[];\r\n\r\n scaffoldNumberComparator = scaffoldNumberComparator;\r\n\r\n constructor(\r\n private bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private siteCommandService: SiteCommandService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService,\r\n private referenceGeneratorService: ReferenceGeneratorService,\r\n public modalService: BsModalService,\r\n ) { super(); }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.form = new UntypedFormGroup({});\r\n\r\n this.site = this.context.site;\r\n const allScaffolds = this.context.allScaffolds;\r\n const duplicateScaffolds = sortBy(this.context.duplicateScaffolds, 'ScaffoldNumber');\r\n const configuration = this.context.configuration;\r\n\r\n const scaffoldList = allScaffolds.slice(0);\r\n this.duplicateScaffolds = duplicateScaffolds.map(scaffold => {\r\n scaffold = cloneDeep(scaffold);\r\n\r\n (scaffold as any).oldScaffoldNumber = scaffold.ScaffoldNumber;\r\n scaffold.ScaffoldNumber = this.referenceGeneratorService\r\n .incrementalReference(scaffoldList.map(s => s.ScaffoldNumber), configuration.ScaffoldReferenceLength);\r\n scaffoldList.push(scaffold);\r\n return scaffold;\r\n });\r\n super.ngOnInit();\r\n }\r\n\r\n onSubmit(formValues: any): void {\r\n this.saveInProgress = true;\r\n\r\n const command: UpdateScaffoldNumbersCommand = {\r\n SiteId: this.site.SiteId,\r\n Scaffolds: this.duplicateScaffolds,\r\n };\r\n\r\n this.siteCommandService.UpdateScaffoldNumbersCommand(command)\r\n .subscribe(() => {\r\n this.siteScaffoldQueryService.siteScaffoldQuery(false, this.site.SiteId)\r\n .subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(this.site.SiteReference);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n \r\n {{row.oldScaffoldNumber}}\r\n ({{row.SpecificLocationDetails}})\r\n \r\n \r\n \r\n \r\n {{row.ScaffoldNumber}}\r\n \r\n \r\n \r\n \r\n
\r\n
","import { scaffoldComparator, scaffoldNumberComparator } from '../../../../../shared/comparators/scaffold-number-comparator';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { cloneDeep } from 'lodash';\r\nimport {\r\n ConfigurationData,\r\n ScaffoldWebAppData,\r\n SiteCommandService,\r\n SiteWebAppData,\r\n UpdateScaffoldNumbersCommand,\r\n} from 'app/core/hub-api';\r\nimport { GroupScaffoldsModalContext } from '../../../../models/group-scaffolds-modal-context';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { forkJoin } from 'rxjs';\r\nimport { SiteDetailQueryService } from 'app/sites/services/site-detail-query.service';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-group-scaffolds-modal',\r\n templateUrl: './group-scaffolds-modal.component.html',\r\n styleUrls: ['./group-scaffolds-modal.component.scss']\r\n})\r\nexport class GroupScaffoldsModalComponent extends FormComponent implements OnInit, OnDestroy {\r\n context: Partial;\r\n\r\n form: UntypedFormGroup;\r\n baseScaffoldIdFormControl: UntypedFormControl;\r\n\r\n configuration: ConfigurationData;\r\n site: SiteWebAppData;\r\n\r\n selectedScaffolds: ScaffoldWebAppData[];\r\n\r\n validationMessages = {};\r\n\r\n scaffoldNumberComparator = scaffoldNumberComparator;\r\n\r\n\r\n constructor(\r\n public bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private siteCommandService: SiteCommandService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService,\r\n public modalService: BsModalService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n ) { super(); }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.configuration = this.context.configuration;\r\n this.site = this.context.site;\r\n this.selectedScaffolds = this.context.scaffolds\r\n .sort(scaffoldComparator)\r\n .map(scaffold => {\r\n scaffold = cloneDeep(scaffold);\r\n (scaffold as any).oldScaffoldNumber = scaffold.ScaffoldNumber;\r\n return scaffold;\r\n });\r\n\r\n this.baseScaffoldIdFormControl = new UntypedFormControl();\r\n\r\n this.baseScaffoldIdFormControl.valueChanges.subscribe((baseScaffoldId) => {\r\n const baseScaffold = this.selectedScaffolds.find(s => s.ScaffoldId === baseScaffoldId);\r\n let suffix = 1;\r\n this.selectedScaffolds.map((scaffold) => {\r\n const baseScaffoldIncremental = (baseScaffold as any).oldScaffoldNumber\r\n .slice(0, this.configuration.ScaffoldReferenceLength);\r\n scaffold.ScaffoldNumber = `${baseScaffoldIncremental}-${suffix}`;\r\n suffix++;\r\n return scaffold;\r\n });\r\n });\r\n\r\n this.baseScaffoldIdFormControl.setValue(this.selectedScaffolds[0].ScaffoldId);\r\n\r\n this.form = new UntypedFormGroup({\r\n baseScaffoldId: this.baseScaffoldIdFormControl\r\n });\r\n super.ngOnInit();\r\n }\r\n\r\n onSubmit(formValues: any): void {\r\n this.saveInProgress = true;\r\n\r\n const command: UpdateScaffoldNumbersCommand = {\r\n SiteId: this.site.SiteId,\r\n Scaffolds: this.selectedScaffolds,\r\n };\r\n\r\n this.siteCommandService.UpdateScaffoldNumbersCommand(command)\r\n .subscribe(() => {\r\n // Once the groups have been saved we need to refresh the cache\r\n forkJoin(\r\n [ \r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n this.siteScaffoldQueryService.siteScaffoldQuery(false, this.site.SiteId)\r\n ]\r\n ).subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(this.site.SiteReference);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n\r\n}\r\n","
\r\n \r\n
\r\n

Grouping scaffolds allows a number of scaffolds to share the same scaffold reference, each with an individual suffix.

\r\n

For example 0001-1, 0001-2, 0001-3 and 0001-4.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{row.oldScaffoldNumber}}\r\n ({{row.SpecificLocationDetails}})\r\n \r\n \r\n \r\n \r\n {{row.ScaffoldNumber}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ConfigurationData } from 'app/core/hub-api';\r\nimport { inspectionOutcomeStatusIds } from '../../../../../shared/values/inspection-outcome-status-ids';\r\nimport { icons } from '../../../../../shared/values/icons';\r\n\r\n@Component({\r\n selector: 'hub-last-inspection',\r\n templateUrl: './last-inspection.component.html',\r\n styleUrls: ['./last-inspection.component.scss']\r\n})\r\nexport class LastInspectionComponent implements OnInit {\r\n passedOrFailedTitle: string;\r\n passedOrFailedImageUrl: string;\r\n inspectionTypeTitle: string;\r\n inspectionTypeIcon: string;\r\n inspectionOutcomeStatusIds = inspectionOutcomeStatusIds;\r\n icon: string;\r\n @Input()\r\n scaffold: any;\r\n @Input()\r\n config: ConfigurationData;\r\n\r\n passed: boolean;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.passed = this.scaffold.LastInspection.InspectionOutcomeId !== this.inspectionOutcomeStatusIds.unsafeScaffold;\r\n this.passedOrFailed();\r\n this.scaffold.MostRecentInspectionIsHandover ? this.setIconAndTitle(icons.handoverInspection, 'Handover Inspection') : this.inspectionType();\r\n }\r\n\r\n private passedOrFailed(): void {\r\n this.passedOrFailedImageUrl = this.passed ? 'assets/icons/timeline/tag-safe.svg' : 'assets/icons/timeline/tag-unsafe.svg';\r\n this.passedOrFailedTitle = this.passed ? 'Scaffold Safe' : 'Scaffold Unsafe';\r\n }\r\n\r\n private setIconAndTitle(icon, title): void {\r\n this.inspectionTypeIcon = icon;\r\n this.inspectionTypeTitle = title;\r\n }\r\n\r\n private inspectionType(): any {\r\n const inspectionType = this.config.InspectionTypes[this.scaffold.LastInspection.InspectionTypeId];\r\n\r\n if (!inspectionType) {\r\n this.setIconAndTitle(icons.unknown, 'Unknown');\r\n return;\r\n }\r\n\r\n switch (inspectionType.GroupTitle) {\r\n case 'Adverse Weather':\r\n this.setIconAndTitle(icons.adverseWeather, 'Adverse Weather');\r\n break;\r\n case 'Full Inspection':\r\n this.setIconAndTitle(icons.sevenDay, 'Full Inspection');\r\n break;\r\n case 'Management':\r\n this.setIconAndTitle(icons.management, 'Minor Defects Remain');\r\n break;\r\n case 'Other':\r\n this.setIconAndTitle(icons.inspection, 'Other');\r\n break;\r\n default:\r\n this.setIconAndTitle(icons.unknown, 'Unknown');\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Last Inspection\r\n \r\n \r\n \r\n {{ scaffold.LastInspection.Inspector }}\r\n \r\n \r\n {{ scaffold.LastInspection.DateOfInspection | datetime: 'lll' }}\r\n \r\n \r\n

\r\n
\r\n
0, 'col-md-12': scaffold.LastInspection.InspectionDefects.length === 0}\">\r\n\r\n
\r\n\r\n \r\n \r\n {{ inspectionTypeTitle }}\r\n \r\n\r\n \r\n\r\n \r\n \r\n {{ passedOrFailedTitle }}\r\n \r\n\r\n
\r\n\r\n
\r\n

\r\n \r\n {{scaffold.LastInspection.Comments}}\r\n

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

Defects

\r\n
    \r\n
  • \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n {{ defect.DefectName }}\r\n ({{ defect.DefectTypeFurtherInformation }})\r\n

    \r\n \r\n Comments: {{ defect.Comments }}\r\n \r\n \r\n Status: \r\n \r\n \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { OffHireScaffoldModalContext } from '../../../../models/off-hire-scaffold-modal-context';\r\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\r\nimport { cloneDeep, map } from 'lodash';\r\nimport {\r\n SiteWebAppData,\r\n ScaffoldWebAppData,\r\n ContractContactData,\r\n OffHireTypeEnum,\r\n CreateOffhireWebConsoleCommand,\r\n CustomerWebAppData,\r\n OffHireCommandService\r\n} from 'app/core/hub-api';\r\nimport { datePickerSettings } from '../../../../../shared/values/date-picker-settings';\r\nimport { UUID } from 'angular2-uuid';\r\nimport * as moment from 'moment';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { ScaffoldTimelineQueryService } from '../../../../services/scaffold-timeline-query-service';\r\nimport { ScaffoldDetailQueryService } from '../../../../services/scaffold-detail-query-service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { errorMessages } from '../../../../../shared/values/error-messages';\r\nimport { UtilityService } from '../../../../../core/services/utility-service';\r\nimport { HandoverHistoryQueryService } from '../../../../../core/services/handover-history-query-service';\r\nimport { contactTypeIds } from 'app/shared/values/contact-type-ids';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { Moment } from 'moment';\r\nimport { dates, datesDayjs } from '../../../../../shared/values/dates';\r\nimport { UserIdentityService } from 'app/core/authentication';\r\n\r\n@Component({\r\n selector: 'hub-off-hire-scaffold',\r\n templateUrl: './off-hire-scaffold-modal.component.html',\r\n styleUrls: ['./off-hire-scaffold-modal.component.scss']\r\n})\r\nexport class OffHireScaffoldModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n customer: CustomerWebAppData;\r\n offHireTypeEnum: typeof OffHireTypeEnum;\r\n activeContractContacts: ContractContactData[];\r\n site: SiteWebAppData;\r\n scaffold: ScaffoldWebAppData;\r\n datePickerOptions: any;\r\n offHireDateFormControl: UntypedFormControl;\r\n offHireTypeFormControl: UntypedFormControl;\r\n requestedByFormControl: UntypedFormControl;\r\n commentsFormControl: UntypedFormControl;\r\n form: UntypedFormGroup;\r\n validationMessages = {\r\n offHireDate: {\r\n required: errorMessages.required\r\n },\r\n offHireType: {\r\n required: errorMessages.required\r\n },\r\n requestedBy: {\r\n required: errorMessages.required\r\n }\r\n };\r\n\r\n constructor(\r\n private bsModalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private userIdentityService: UserIdentityService,\r\n private offHireCommandService: OffHireCommandService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private scaffoldTimelineQueryService: ScaffoldTimelineQueryService,\r\n private scaffoldDetailQueryService: ScaffoldDetailQueryService,\r\n private handoverHistoryQueryService: HandoverHistoryQueryService,\r\n private utilityService: UtilityService,\r\n public modalService: BsModalService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.site = this.context.site;\r\n this.scaffold = this.context.scaffold;\r\n this.customer = this.context.customer;\r\n\r\n const contract = cloneDeep(this.site.Contracts.find(c => c.ContractId === this.scaffold.ContractId));\r\n this.activeContractContacts = map(contract.ContractContacts).filter(c => !c.IsInactive &&\r\n (c.ContactTypeId === contactTypeIds.siteContact ||\r\n c.ContactTypeId === contactTypeIds.officeContact));\r\n\r\n const onHireDate = this.scaffold.OnHireDate;\r\n\r\n this.datePickerOptions = {\r\n alwaysShowCalendars: false,\r\n ranges: {},\r\n showCustomRangeLabel: false,\r\n disableUntil: {\r\n year: moment(onHireDate).year(),\r\n month: moment(onHireDate).month() + 1,\r\n day: moment(onHireDate).date() - 1\r\n }\r\n };\r\n const dates = {\r\n startDate: datesDayjs.now,\r\n };\r\n\r\n this.offHireTypeEnum = OffHireTypeEnum;\r\n this.offHireDateFormControl = new UntypedFormControl(dates, Validators.required);\r\n this.offHireTypeFormControl = new UntypedFormControl(this.offHireTypeEnum.Full, Validators.required);\r\n this.requestedByFormControl = new UntypedFormControl(\r\n this.activeContractContacts.length ? this.activeContractContacts[0].ContractContactId : '',\r\n Validators.required\r\n );\r\n this.commentsFormControl = new UntypedFormControl();\r\n\r\n this.form = new UntypedFormGroup({\r\n offHireDate: this.offHireDateFormControl,\r\n offHireType: this.offHireTypeFormControl,\r\n requestedBy: this.requestedByFormControl,\r\n comments: this.commentsFormControl\r\n });\r\n\r\n this.offHireDateFormControl.setValue(dates.startDate);\r\n super.ngOnInit();\r\n }\r\n\r\n /**\r\n * Detects the selected date range\r\n *\r\n * @param {*} dateRange date range selected by the user\r\n * @memberof ApplicationForPaymentFiltersComponent\r\n */\r\n public onDateRangeSelected(dateRange: any): void {\r\n this.offHireDateFormControl.setValue(dateRange.startDate);\r\n }\r\n\r\n onSubmit(): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n const command: CreateOffhireWebConsoleCommand = {\r\n OffHireId: UUID.UUID(),\r\n SiteId: this.site.SiteId,\r\n CustomerId: this.customer.CustomerId,\r\n ScaffoldId: this.scaffold.ScaffoldId,\r\n OffhiredOn: this.form.value.offHireDate.toISOString(),\r\n SubmittedBy: this.userIdentityService.currentUser().userId,\r\n RequestedBy: this.form.value.requestedBy,\r\n Comments: this.form.value.comments,\r\n OffHireType: this.form.value.offHireType,\r\n OffsetFromUtc: moment().utcOffset()\r\n };\r\n\r\n this.offHireCommandService.CreateOffhireWebConsoleCommand(command).subscribe(() => {\r\n const obs$ = forkJoin([\r\n this.siteScaffoldQueryService.siteScaffoldQuery(false, this.site.SiteId),\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n this.scaffoldDetailQueryService.scaffoldDetailQuery(false, this.scaffold.ScaffoldId),\r\n this.scaffoldTimelineQueryService.scaffoldTimelineQuery(false, this.scaffold.ScaffoldId),\r\n this.handoverHistoryQueryService.handoverHistoryQuery(false, [this.site.SiteId])\r\n ]);\r\n obs$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.bsModalService.setDismissReason(this.scaffold.ScaffoldId);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { map } from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { combineLatest } from 'rxjs';\r\nimport {\r\n ContractData,\r\n CustomerWebAppData,\r\n ScaffoldItemData,\r\n ScaffoldTimelineData,\r\n SiteWebAppData,\r\n ConfigurationData,\r\n ScaffoldWebAppData,\r\n StaffDetailsWebAppData\r\n} from 'app/core/hub-api';\r\nimport { DiaryTypeEnum } from 'app/core/hub-api';\r\n\r\nimport { ConfigurationQueryService } from '../../../../../core/services/configuration-query.service';\r\nimport { CustomersQueryService } from '../../../../../core/services/customers-query.service';\r\nimport { ImageModalContext } from '../../../../../shared/components/image-modal/image-modal-context';\r\nimport { ImageModalComponent } from '../../../../../shared/components/image-modal/image-modal.component';\r\nimport { IdToTitlePipe } from '../../../../../shared/pipes/id-to-title.pipe';\r\nimport { inspectionOutcomeStatusIds } from '../../../../../shared/values/inspection-outcome-status-ids';\r\nimport { scaffoldStatusIds } from '../../../../../shared/values/scaffold-status-ids';\r\nimport { AddEditScaffoldModalContext } from '../../../../models/add-edit-scaffold-modal-context';\r\nimport { DismantleScaffoldModalContext } from '../../../../models/dismantle-scaffold-modal-context';\r\nimport { ScaffoldDetailQueryService } from '../../../../services/scaffold-detail-query-service';\r\nimport { ScaffoldTimelineQueryService } from '../../../../services/scaffold-timeline-query-service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { AddEditScaffoldModalComponent } from '../add-edit-scaffold-modal/add-edit-scaffold-modal.component';\r\nimport { DismantleScaffoldModalComponent } from '../dismantle-scaffold-modal/dismantle-scaffold-modal.component';\r\nimport { UndismantleScaffoldModalComponent } from '../undismantle-scaffold-modal/undismantle-scaffold-modal.component';\r\nimport { OffHireScaffoldModalComponent } from '../off-hire-scaffold-modal/off-hire-scaffold-modal.component';\r\nimport { ActivityModalService } from 'app/shared/services/activity-modal.service';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { LoggedInStaffService } from '../../../../../core/services/logged-in-staff-service';\r\nimport { BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\r\nimport { SSDialogContext, SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { ModalDialogComponent } from 'app/shared/components/modal-dialog/modal-dialog.component';\r\nimport { icons } from 'app/shared/values/icons';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-scaffold-detail',\r\n templateUrl: './scaffold-detail.component.html',\r\n styleUrls: ['./scaffold-detail.component.scss']\r\n})\r\nexport class ScaffoldDetailComponent implements OnInit, OnDestroy {\r\n customer: CustomerWebAppData;\r\n site: SiteWebAppData;\r\n scaffolds: ScaffoldWebAppData[] = [];\r\n customers: CustomerWebAppData[];\r\n scaffold: ScaffoldWebAppData;\r\n scaffoldStatusIds = scaffoldStatusIds;\r\n contract: ContractData;\r\n specificationProperties: any[];\r\n configuration: ConfigurationData;\r\n timelineEvents: ScaffoldTimelineData[];\r\n loggedInStaff: StaffDetailsWebAppData;\r\n icons = icons;\r\n\r\n diaryTypes = DiaryTypeEnum;\r\n\r\n customerName: string;\r\n areaName: string;\r\n nextInspection: string;\r\n status: string;\r\n hirePeriod: number;\r\n weeksOnHire: number;\r\n currentExtraHire: number;\r\n overdue: boolean;\r\n inspectionsCompleted: number;\r\n inspectionsPassed: number;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private scaffoldDetailQueryService: ScaffoldDetailQueryService,\r\n private scaffoldTimelineQueryService: ScaffoldTimelineQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService,\r\n private idToTitlePipe: IdToTitlePipe,\r\n private router: Router,\r\n public activityModal: ActivityModalService,\r\n private loggedInStaffService: LoggedInStaffService,\r\n public modalService: BsModalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n const siteReference = this.route.parent.parent.snapshot.params['siteReference'];\r\n const scaffoldId = this.route.snapshot.params['scaffoldId'];\r\n\r\n this.loggedInStaffService.loggedInStaffChanges().subscribe(loggedInStaff => this.loggedInStaff = loggedInStaff);\r\n const siteDetailChanges = this.siteDetailQueryService.siteDetailDataChanges(siteReference);\r\n const scaffoldsChanges = siteDetailChanges.pipe(\r\n mergeMap(site =>\r\n this.siteScaffoldQueryService.siteScaffoldDataChanges(site.SiteId)\r\n ));\r\n const obs$ = combineLatest(\r\n [siteDetailChanges,\r\n this.scaffoldDetailQueryService.scaffoldDetailDataChanges(scaffoldId),\r\n scaffoldsChanges,\r\n this.scaffoldTimelineQueryService.scaffoldTimelineDataChanges(scaffoldId),\r\n this.configurationQueryService.configurationDataChanges(),\r\n this.customersQueryService.customersDataChanges()]\r\n );\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1], latest[2], latest[3], latest[4], latest[5]));\r\n }\r\n\r\n refreshComponent(\r\n site: SiteWebAppData,\r\n scaffold: ScaffoldWebAppData,\r\n scaffolds: ScaffoldWebAppData[],\r\n timelineEvents: ScaffoldTimelineData[],\r\n configuration: ConfigurationData,\r\n customers: CustomerWebAppData[]\r\n ): void {\r\n this.site = site;\r\n this.scaffolds = scaffolds;\r\n this.customers = customers;\r\n this.timelineEvents = timelineEvents;\r\n this.scaffold = scaffold;\r\n this.contract = site.Contracts.find(c => c.ContractId === this.scaffold.ContractId);\r\n this.customer = customers.find(c => c.CustomerId === this.contract.CustomerId);\r\n this.customerName = this.customer.CustomerName;\r\n this.areaName = map(site.SiteAreas).find(a => a.SiteAreaId === this.scaffold.SiteAreaId).AreaName;\r\n this.configuration = configuration;\r\n this.nextInspection = this.scaffold.DateOfNextInspection;\r\n this.status = configuration.ScaffoldStatuses[this.scaffold.ScaffoldStatusId].Title;\r\n this.hirePeriod = scaffold.HirePeriod || 0;\r\n this.weeksOnHire = scaffold.WeeksOnHire || 0;\r\n this.currentExtraHire = scaffold.CurrentExtraHire > 0 ? scaffold.CurrentExtraHire : 0;\r\n this.overdue = moment(scaffold.DateOfNextInspection).isBefore();\r\n const inspections = timelineEvents.filter(e => e.DiaryType === DiaryTypeEnum.Inspection);\r\n this.inspectionsCompleted = inspections.length;\r\n this.inspectionsPassed = inspections.filter(\r\n i =>\r\n i.InspectionOutcomeId === inspectionOutcomeStatusIds.noDefects ||\r\n i.InspectionOutcomeId === inspectionOutcomeStatusIds.defectsFixed\r\n ).length;\r\n\r\n this.specificationProperties = this.getSpecificationProperties();\r\n }\r\n\r\n getSpecificationProperties(): any {\r\n const specification = this.scaffold.ScaffoldSpecification || new ScaffoldItemData();\r\n return [\r\n {\r\n label: 'Scaffold Type',\r\n value: specification.ScaffoldTypeId\r\n ? this.idToTitlePipe.transform(specification.ScaffoldTypeId, this.configuration.ScaffoldTypes)\r\n : '-',\r\n furtherInfo: specification.ScaffoldTypeFurtherInformation\r\n },\r\n {\r\n label: 'Quote Number',\r\n value: this.scaffold.QuoteNumber ? this.scaffold.QuoteNumber : '-'\r\n },\r\n {\r\n label: 'Item Number',\r\n value: this.scaffold.ItemNumber ? this.scaffold.ItemNumber : '-'\r\n },\r\n {\r\n label: 'Item Name',\r\n value: this.scaffold.ItemName ? this.scaffold.ItemName : '-'\r\n },\r\n {\r\n label: 'Design Number',\r\n value: specification.DesignTypeId\r\n ? this.idToTitlePipe.transform(specification.DesignTypeId, this.configuration.DesignTypes)\r\n : '-',\r\n furtherInfo: specification.DesignTypeFurtherInformation\r\n },\r\n {\r\n label: 'Ties',\r\n value: specification.MethodOfTyingId\r\n ? this.idToTitlePipe.transform(specification.MethodOfTyingId, this.configuration.MethodOfTyings)\r\n : '-',\r\n furtherInfo: specification.MethodOfTyingFurtherInformation\r\n },\r\n {\r\n label: 'Cladding',\r\n value: specification.MethodOfCladdingId\r\n ? this.idToTitlePipe.transform(specification.MethodOfCladdingId, this.configuration.MethodOfCladdings)\r\n : '-',\r\n furtherInfo: specification.MethodOfCladdingFurtherInformation\r\n },\r\n {\r\n label: 'Loading Limit',\r\n value: specification.LoadingLimitId\r\n ? this.idToTitlePipe.transform(specification.LoadingLimitId, this.configuration.LoadingLimits)\r\n : '-',\r\n furtherInfo: specification.LoadingLimitFurtherInformation\r\n },\r\n {\r\n label: 'Adverse Weather',\r\n value: this.scaffold.AdverseWeatherIndicator ? 'Affected' : 'Not affected'\r\n }\r\n ];\r\n }\r\n\r\n onEditScaffold(): void {\r\n const context: AddEditScaffoldModalContext = {\r\n editMode: true,\r\n configuration: this.configuration,\r\n site: this.site,\r\n customers: this.customers,\r\n scaffolds: this.scaffolds,\r\n scaffold: this.scaffold,\r\n loggedInStaff: this.loggedInStaff\r\n };\r\n const modal = this.modalService.show(AddEditScaffoldModalComponent, SSModalConfig.generate(context));\r\n modal.onHide.subscribe(() => {\r\n // refreshes the scaffold detail\r\n this.scaffoldDetailQueryService.scaffoldDetailQuery(false, this.scaffold.ScaffoldId);\r\n });\r\n }\r\n\r\n private getContext(): DismantleScaffoldModalContext {\r\n return {\r\n site: this.site,\r\n scaffold: this.scaffold\r\n };\r\n }\r\n\r\n getCurrentContract(contractId: string): ContractData {\r\n return this.site.Contracts.find(x => x.ContractId === contractId);\r\n }\r\n\r\n onDismantleScaffold(): Promise {\r\n const currentContract = this.getCurrentContract(this.scaffold.ContractId);\r\n\r\n if (this.scaffold.ScaffoldStatusId === scaffoldStatusIds.onHire && !currentContract.AllowDismantleWithoutOffhire) {\r\n const context: SSDialogContext = {\r\n title: 'Unable to dismantle scaffold', // Required\r\n body: ' You must fully off-hire the scaffold before dismantling it.',\r\n okBtnClass: 'btn button-primary',\r\n okBtnText: 'Ok got it',\r\n cancelBtnClass: 'btn btn-default',\r\n cancelBtnText: 'No keep it',\r\n showHeaderClose: true,\r\n showOnlyCloseBtn: false,\r\n dialogClass: 'modal-dialog',\r\n headerClass: 'confirm-modal-header',\r\n footerClass: 'confirm-modal-footer'\r\n };\r\n const config: ModalOptions = {\r\n animated: true,\r\n class: 'modal-warning',\r\n ignoreBackdropClick: true, // Required\r\n keyboard: false, // Required\r\n initialState: {\r\n // context: context\r\n }\r\n };\r\n this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context, config));\r\n return;\r\n }\r\n this.modalService.show(DismantleScaffoldModalComponent, SSModalConfig.generate(this.getContext()));\r\n }\r\n\r\n onUndismantleScaffold(): void {\r\n this.modalService.show(UndismantleScaffoldModalComponent, SSModalConfig.generate(this.getContext()));\r\n }\r\n\r\n offHireScaffold(): void {\r\n const context = {\r\n site: this.site,\r\n scaffold: this.scaffold,\r\n customer: this.customer\r\n }\r\n const modal = this.modalService.show(OffHireScaffoldModalComponent, SSModalConfig.generate(context));\r\n modal.onHidden.subscribe(() => {\r\n // refreshes the scaffold data\r\n this.scaffoldDetailQueryService.scaffoldDetailQuery(false, this.scaffold.ScaffoldId).subscribe();\r\n });\r\n }\r\n\r\n onImageClick(): void {\r\n const context: ImageModalContext = {\r\n imageUrl: [this.scaffold.ScaffoldImageUrl]\r\n };\r\n this.modalService.show(ImageModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n onDiarySelected(event): void {\r\n const diary: ScaffoldTimelineData = event.selected[0];\r\n const diaryType: number = event.selected[0].DiaryType;\r\n const disallowedModals = [\r\n DiaryTypeEnum.PauseInspections,\r\n DiaryTypeEnum.ResumeInspections,\r\n DiaryTypeEnum.StopInspections\r\n ];\r\n if (disallowedModals.includes(diaryType)) {\r\n return;\r\n }\r\n this.activityModal.openActivityModal(diaryType, diary.ScaffoldDiaryId, this.site.SiteReference);\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Scaffold {{scaffold.ScaffoldNumber}}

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n edit scaffold\r\n \r\n \r\n \r\n \r\n \r\n \r\n off hire\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n dismantle\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n undismantle\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n {{scaffold.ScaffoldNumber}}\r\n

\r\n

\r\n {{scaffold.ScaffoldSpecification.Description}}

\r\n

No description added!\r\n

\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n {{status}}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n On Hire Date\r\n

{{ scaffold.OnHireDate | datetime: 'll'}}

\r\n

Unknown

\r\n
\r\n \r\n
\r\n Date Off Hired\r\n

{{ scaffold.OffHireDate | datetime: 'll' }}

\r\n
\r\n
\r\n
\r\n Customer\r\n

{{ customerName }}

\r\n
\r\n \r\n
\r\n Next Inspection\r\n

{{ nextInspection | datetime: 'll' }}

\r\n
\r\n
\r\n
\r\n Area\r\n

{{ areaName }}

\r\n
\r\n
\r\n Scaffold Name\r\n

{{ scaffold.SpecificLocationDetails }}

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

\r\n {{hirePeriod}}wks\r\n

\r\n

Hire Period

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

\r\n {{weeksOnHire}}wks\r\n

\r\n

Weeks On Hire

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

\r\n {{currentExtraHire}}wks\r\n

\r\n

Current Extra Hire

\r\n
\r\n
End of contract:\r\n {{scaffold.EndOfContractDate | datetime: 'll'}}\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{inspectionsCompleted}}\r\n

\r\n

Inspection Summary

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

\r\n {{inspectionsPassed}}\r\n

\r\n

Inspections Passed

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

\r\n {{inspectionsCompleted - inspectionsPassed}}\r\n

\r\n

Inspections Failed

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{prop.label}}\r\n {{prop.value}}\r\n ({{prop.furtherInfo}})\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n

Scaffold History

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ row.OwnerName }}\r\n \r\n \r\n \r\n \r\n {{ row.When | datetime : 'lll' }}\r\n \r\n \r\n \r\n \r\n {{ row.Notes }}\r\n \r\n \r\n \r\n \r\n Click to view details\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport {\r\n SiteAreaData,\r\n UpdateAreasCommand,\r\n ImportEndpointService,\r\n ItemTypeEnum\r\n} from 'app/core/hub-api';\r\nimport { ScaffoldImportModalContext } from '../scaffold-import-modal-context';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { ConfigurationQueryService } from 'app/core/services/configuration-query.service';\r\nimport { UUID } from 'angular2-uuid';\r\nimport * as moment from 'moment';\r\nimport { scaffoldStatusIds } from 'app/shared/values/scaffold-status-ids';\r\nimport { GenerateDefaultsService } from 'app/core/services/generateDefaults.service';\r\nimport { SiteDetailQueryService } from 'app/sites/services/site-detail-query.service';\r\nimport { SiteScaffoldQueryService } from 'app/sites/services/site-scaffolds-query.service';\r\nimport {\r\n flatMap as _flatMap,\r\n sortBy as _sortBy,\r\n map as _map,\r\n uniq as _uniq,\r\n uniqWith as _uniqWith,\r\n isEqual as _isEqual,\r\n uniqBy as _uniqBy\r\n} from 'lodash';\r\nimport { TableHeadersEnum } from 'app/sites/values/table-headers.enum';\r\nimport { environment } from 'environments/environment';\r\nimport { MultiStepModalFormComponent } from 'app/shared/components/multi-step-modal-form/multi-step-modal-form.component';\r\nimport { ImportColumnIndexes } from 'app/sites/components/site-detail/scaffolds/scaffold-import-modal/values/import-column-indexes.enum';\r\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\r\nimport { SSDialogContext, SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { ModalDialogComponent } from 'app/shared/components/modal-dialog/modal-dialog.component';\r\nimport { AngularGridInstance, Column, EditorArguments, Editors, EditorValidator, FieldType, Formatters, GridOption, OnEventArgs } from 'angular-slickgrid';\r\nimport { ReferenceGeneratorService } from 'app/core/utility';\r\n\r\n// using external non-typed js libraries - required SlickGrid\r\ndeclare var Slick: any;\r\n\r\n@Component({\r\n selector: 'hub-import-spreadsheet',\r\n templateUrl: './import-spreadsheet.html',\r\n styleUrls: ['./import-spreadsheet.scss']\r\n})\r\nexport class ImportSpreadsheetComponent extends MultiStepModalFormComponent implements OnInit, AfterViewInit {\r\n context: Partial;\r\n // SlickGrid\r\n private _commandQueue = [];\r\n angularGrid: AngularGridInstance;\r\n columnDefinitions: Column[];\r\n gridOptions: GridOption;\r\n dataset;\r\n gridObj: any;\r\n isAutoEdit = false;\r\n alertWarning: any;\r\n updatedObject: any;\r\n selectedLanguage = 'en';\r\n defaultAreaName = 'Default area';\r\n defaultArea: any;\r\n\r\n // MultiStep\r\n data: ScaffoldImportModalContext;\r\n form: UntypedFormGroup;\r\n validationMessages = {};\r\n\r\n areaNames: any;\r\n scaffoldTypesNames: string[];\r\n designTypesNames: string[];\r\n loadingLimitsNames: string[];\r\n methodCladdingsNames: string[];\r\n methodTyingsNames: string[];\r\n scaffoldingSystemNames: string[];\r\n scaffoldTypes;\r\n designTypes;\r\n loadingLimits;\r\n methodCladdings;\r\n methodTyings;\r\n quotes;\r\n allScaffolds;\r\n scaffoldingSystems;\r\n invalidForm: string;\r\n areas: SiteAreaData[];\r\n newAreas: any = [];\r\n newAndExistingAreas: any = [];\r\n dataView: any;\r\n deletedRows = [];\r\n disableSaveBtn = true;\r\n errorValidation: any = [];\r\n momentDateFormat = 'DD/MM/YYYY';\r\n flatPickerFormat = 'YYYY-MM-DD HH:mm:ss';\r\n filteredItems: any;\r\n\r\n titleTooltips = {\r\n required: 'This field is required',\r\n max100: 'This field maximum length is 100 characters',\r\n number: 'This field only accepts numbers'\r\n };\r\n\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private referenceGeneratorService: ReferenceGeneratorService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private importEndpointService: ImportEndpointService,\r\n private generateDefaultsService: GenerateDefaultsService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService\r\n ) {\r\n super(); // Required due to stepper structure\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n if (!this.context) this.context = this.modalService.config.initialState;\r\n this.initialisationData();\r\n this.prepareGrid();\r\n this.checkForSavedData();\r\n this.form = new UntypedFormGroup({}); // Required due to stepper structure\r\n this.context.dialogClass = 'modal-dialog modal-xl';\r\n super.ngOnInit(); // Required due to stepper structure\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.dataset && !this.dataset.length && !this.data.savedScaffolds) {\r\n this.clearAllRows(1, true);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n if (this.filteredItems) {\r\n this.filteredItems.valueChanges.subscribe(i => {\r\n this.changeDetectorRef.detectChanges();\r\n this.filteredItems = i;\r\n });\r\n }\r\n }\r\n\r\n initialisationData(): void {\r\n const areas = _sortBy(_map(this.context.site.SiteAreas), 'AreaName');\r\n this.areaNames = areas.map(a => a.AreaName);\r\n this.areas = areas;\r\n this.quotes = this.data.quotes;\r\n this.configurationQueryService.configurationQuery(true).subscribe(res => {\r\n this.scaffoldTypes = _map(res.ScaffoldTypes);\r\n this.scaffoldTypes.push({\r\n Code: '',\r\n Deleted: false,\r\n ScaffoldTypeId: '',\r\n Title: ''\r\n });\r\n this.designTypes = _map(res.DesignTypes);\r\n this.designTypes.push({\r\n Code: '',\r\n Deleted: false,\r\n DesignTypeId: '',\r\n Title: ''\r\n });\r\n this.loadingLimits = _map(res.LoadingLimits);\r\n this.loadingLimits.push({\r\n Code: '',\r\n Deleted: false,\r\n LoadingLimitId: '',\r\n Title: ''\r\n });\r\n this.methodCladdings = _map(res.MethodOfCladdings);\r\n this.methodCladdings.push({\r\n Code: '',\r\n Deleted: false,\r\n MethodOfCladdingId: '',\r\n Title: ''\r\n });\r\n this.methodTyings = _map(res.MethodOfTyings);\r\n this.methodTyings.push({\r\n Code: '',\r\n Deleted: false,\r\n MethodOfTyingId: '',\r\n Title: ''\r\n });\r\n this.scaffoldingSystems = _map(res.ScaffoldingSystems);\r\n this.scaffoldingSystems.push({\r\n Code: '',\r\n Deleted: false,\r\n ScaffoldginSystemId: '',\r\n Title: ''\r\n });\r\n });\r\n this.areas = _map(this.context.site.SiteAreas);\r\n }\r\n\r\n checkForSavedData(): void {\r\n this.errorValidation = this.data.validationErrors && this.data.validationErrors.length ? this.data.validationErrors : [];\r\n this.dataset = this.data.savedScaffolds ? this.data.savedScaffolds : !this.data.copyPaste ? this.generateData() : [];\r\n const deletedRow = this.data.deletedRows ? this.data.deletedRows : [];\r\n this.data.deletedRows = deletedRow;\r\n }\r\n\r\n angularGridReady(angularGrid: AngularGridInstance): void {\r\n this.angularGrid = angularGrid;\r\n this.gridObj = angularGrid.slickGrid;\r\n this.dataView = angularGrid.dataView;\r\n this.verifyGrid();\r\n }\r\n\r\n highlightCell(row, colId, cssClass: string = 'invalid'): void {\r\n if (row >= 0) {\r\n const cssCellStyle = {};\r\n (cssCellStyle[row] = {})[colId] = cssClass;\r\n (this.angularGrid.gridService as any)._grid.setCellCssStyles(`${cssClass}.${colId}.${row}`, cssCellStyle);\r\n }\r\n }\r\n\r\n removeQuoteAndItemVal(rowIndex): any {\r\n this.removeCellHighlight(rowIndex, 'quoteNumber', 'invalid');\r\n this.removeCellHighlight(rowIndex, 'itemNumber', 'invalid');\r\n this.removeCellHighlight(rowIndex, 'itemName', 'invalid');\r\n if (this.errorValidation.length) {\r\n this.errorValidation.filter(v => {\r\n if (\r\n v.cell !== ImportColumnIndexes.quoteNumber &&\r\n v.header !== this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.quoteNumber] &&\r\n v.cell !== ImportColumnIndexes.itemNumber &&\r\n v.header !== this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.itemNumber] &&\r\n v.cell !== ImportColumnIndexes.itemName &&\r\n v.header !== this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.itemName]\r\n ) {\r\n return v;\r\n }\r\n });\r\n }\r\n }\r\n\r\n verifyGrid(): void {\r\n this.dataset.forEach(row => {\r\n const rowIndex = this.dataset.indexOf(row);\r\n\r\n // Deleted Validation\r\n if (this.data.deletedRows.includes(rowIndex)) {\r\n this.removeAllRowHighlights(rowIndex, true);\r\n this.removeRowHighlight(rowIndex);\r\n this.errorValidation = this.errorValidation.filter(v => v.row !== rowIndex);\r\n return;\r\n }\r\n // SCAFFOLD NAME CHECKING\r\n if (row.scaffoldName.trim() !== '') {\r\n this.removeCellHighlight(rowIndex, 'scaffoldName', 'invalid');\r\n if (this.errorValidation.length) {\r\n this.errorValidation = this.errorValidation.filter(v => v.row !== rowIndex && v.header !== 'scaffoldName');\r\n }\r\n }\r\n if (row.scaffoldName.trim() === '') {\r\n this.highlightCell(rowIndex, 'scaffoldName', 'invalid');\r\n const scaffoldName = { row: rowIndex, cell: ImportColumnIndexes.scaffoldName, header: this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.scaffoldName] };\r\n this.addUniqueValidation(scaffoldName);\r\n }\r\n // AREA CHECKING\r\n if (row.area.trim() !== '') {\r\n this.highlightCell(rowIndex, 'area', ' ');\r\n this.removeCellHighlight(rowIndex, 'area', 'slickgrid-autoFill');\r\n }\r\n if (row.area.trim() === '') {\r\n this.dataset[rowIndex].area = row.area.trim() === '' ? this.defaultAreaName : row.area;\r\n this.highlightCell(rowIndex, 'area', 'slickgrid-autoFill');\r\n }\r\n // QUOTE AND ITEM CHECKING\r\n if ((row.quoteNumber.trim() === '' && row.itemNumber.trim() === '' && row.itemName.trim() === '') || (row.quoteNumber.trim() && row.itemNumber.trim() && row.itemName.trim())) {\r\n this.removeQuoteAndItemVal(rowIndex);\r\n } else {\r\n const quoteNumberObj = { row: rowIndex, cell: ImportColumnIndexes.quoteNumber, header: this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.quoteNumber] };\r\n const itemNameObj = { row: rowIndex, cell: ImportColumnIndexes.itemNumber, header: this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.itemNumber] };\r\n const itemNumberObj = { row: rowIndex, cell: ImportColumnIndexes.itemName, header: this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.itemName] };\r\n this.highlightCell(rowIndex, 'quoteNumber', 'invalid');\r\n this.addUniqueValidation(quoteNumberObj);\r\n this.highlightCell(rowIndex, 'itemNumber', 'invalid');\r\n this.addUniqueValidation(itemNameObj);\r\n this.highlightCell(rowIndex, 'itemName', 'invalid');\r\n this.addUniqueValidation(itemNumberObj);\r\n }\r\n\r\n // MAXIMUM TONNAGE CHECKING\r\n if (Number(row.maximumTonnage) < 0) {\r\n this.highlightCell(rowIndex, 'maximumTonnage', 'invalid');\r\n const maximumTonnageObj = { row: rowIndex, cell: ImportColumnIndexes.maximumTonnage, header: this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.maximumTonnage] };\r\n this.errorValidation.push(maximumTonnageObj);\r\n }\r\n if (Number(row.maximumTonnage) >= 0 || row.maximumTonnage === '') {\r\n this.errorValidation = this.errorValidation.filter(v => v.cell !== ImportColumnIndexes.maximumTonnage && v.header !== 'maximumTonnage');\r\n this.dataset[rowIndex].maximumTonnage = row.maximumTonnage ? row.maximumTonnage : 0.00;\r\n this.removeCellHighlight(rowIndex, 'maximumTonnage', 'invalid');\r\n }\r\n\r\n this.errorValidation = _uniqWith(this.errorValidation, _isEqual);\r\n });\r\n this.gridObj.setData(this.dataset);\r\n this.gridObj.updateRowCount();\r\n this.gridObj.render();\r\n this.disableSaveBtn = this.errorValidation.length ? true : false;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n addUniqueValidation(item): void {\r\n this.errorValidation = _uniqWith(this.errorValidation, _isEqual);\r\n if (!this.errorValidation.length) this.errorValidation.push(item);\r\n if (this.errorValidation.indexOf(item) === -1) {\r\n this.errorValidation.push(item);\r\n }\r\n }\r\n\r\n removeCellHighlight(row, colId, cssClass): any {\r\n (this.angularGrid.gridService as any)._grid.removeCellCssStyles(`${cssClass}.${colId}.${row}`);\r\n }\r\n\r\n removeAllRowHighlights(row, removeInvalid = false, removeDeleted = false): void {\r\n const headers = this.columnDefinitions.map(c => c.id);\r\n headers.forEach(colId => {\r\n this.removeCellHighlight(row, colId, 'slickgrid-autoFill');\r\n if (removeInvalid) {\r\n this.removeCellHighlight(row, colId, 'invalid');\r\n }\r\n if (removeDeleted) {\r\n this.removeCellHighlight(row, colId, 'slickgrid-deletedRow');\r\n }\r\n });\r\n }\r\n\r\n removeRowHighlight(row): void {\r\n const headers = this.columnDefinitions.map(c => c.id);\r\n headers.forEach(colId => this.highlightCell(row, colId, 'slickgrid-deletedRow'));\r\n }\r\n\r\n handleOnBeforeEditCell(e, args): boolean {\r\n // returning false or call `e.preventDefault()` should cancel the edit\r\n this.verifyGrid();\r\n if (this.data.deletedRows.includes(args.row)) {\r\n this.removeAllRowHighlights(args.row, true);\r\n this.removeRowHighlight(args.row);\r\n return false;\r\n }\r\n }\r\n\r\n prepareGrid(): void {\r\n this.columnDefinitions = [\r\n {\r\n id: 'delete',\r\n field: 'id',\r\n excludeFromHeaderMenu: true,\r\n formatter: Formatters.deleteIcon,\r\n exportWithFormatter: false,\r\n minWidth: 30,\r\n maxWidth: 30,\r\n width: 30,\r\n onCellClick: (e: Event, args: OnEventArgs) => {\r\n if (this.data.deletedRows.includes(args.row)) {\r\n this.removeAllRowHighlights(args.row, false, true);\r\n this.data.deletedRows = this.data.deletedRows.filter(d => d !== args.row);\r\n this.verifyGrid();\r\n } else {\r\n const context: SSDialogContext = {\r\n title: `Delete Row?`,\r\n body: `Are you sure you want to delete this row?`,\r\n okBtnClass: 'btn button-assertive',\r\n okBtnText: 'Yes delete the row',\r\n cancelBtnText: 'No keep it',\r\n };\r\n const config: ModalOptions = {\r\n class: 'modal-danger',\r\n };\r\n const modal = this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context, config));\r\n modal.content.onClose.subscribe(\r\n result => {\r\n if (result === true) {\r\n this.data.deletedRows.push(args.row);\r\n this.removeAllRowHighlights(args.row, true);\r\n this.removeRowHighlight(args.row);\r\n this.verifyGrid();\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n }\r\n },\r\n {\r\n id: 'scaffoldName',\r\n name: 'Scaffold Name',\r\n field: 'scaffoldName',\r\n minWidth: 100,\r\n type: FieldType.string,\r\n cssClass: 'test1',\r\n editor: {\r\n model: Editors.text,\r\n required: true,\r\n validator: this.validationChecker,\r\n title: this.titleTooltips.required,\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n this.dataset[args.row].scaffoldName = args.dataContext.scaffoldName.trim();\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'scaffoldDescription',\r\n name: 'Scaffold Description',\r\n field: 'scaffoldDescription',\r\n minWidth: 100,\r\n type: FieldType.string,\r\n editor: {\r\n model: Editors.text,\r\n required: false,\r\n validator: this.validationChecker,\r\n title: this.titleTooltips.max100,\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n this.dataset[args.row].scaffoldDescription = args.dataContext.scaffoldDescription.trim();\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'area',\r\n name: 'Area',\r\n field: 'area',\r\n minWidth: 100,\r\n filterable: false,\r\n sortable: false,\r\n type: FieldType.string,\r\n editor: {\r\n model: Editors.autocompleter,\r\n validator: this.validationChecker,\r\n title: this.titleTooltips.max100,\r\n editorOptions: {\r\n minLength: 2,\r\n forceUserInput: true,\r\n source: this.areas.map(a => a.AreaName),\r\n }\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n const area = args.dataContext.area.trim();\r\n const checker = this.areas.filter(a => area !== '' && a.AreaName === area);\r\n this.dataset[args.row].area = area === '' ? this.defaultAreaName : area;\r\n if (this.dataset[args.row].area === this.defaultAreaName) {\r\n this.highlightCell(args.row, args.columnDef.id, 'slickGrid-autoFill');\r\n }\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'scaffoldType',\r\n name: 'Scaffold Type',\r\n field: 'scaffoldType',\r\n minWidth: 100,\r\n filterable: false,\r\n sortable: false,\r\n type: FieldType.string,\r\n editor: {\r\n collection: this.scaffoldTypes.map(st => ({\r\n value: st.Title,\r\n label: st.Title,\r\n id: st.ScaffoldTypeId\r\n })),\r\n collectionSortBy: {\r\n property: 'label'\r\n },\r\n customStructure: {\r\n label: 'label',\r\n value: 'value',\r\n },\r\n model: Editors.singleSelect,\r\n required: false,\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n const matchedValue = this.matchRules(args.dataContext.scaffoldType.trim(), this.scaffoldTypes.map(s => s.Title));\r\n this.dataset[args.row].scaffoldType = matchedValue ? matchedValue : '';\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'loadingLimit',\r\n name: 'Loading Limit',\r\n field: 'loadingLimit',\r\n minWidth: 100,\r\n filterable: false,\r\n sortable: false,\r\n type: FieldType.string,\r\n editor: {\r\n collection: this.loadingLimits.map(ll => ({\r\n value: ll.Title,\r\n label: ll.Title,\r\n id: ll.LoadingLimitId\r\n })),\r\n collectionSortBy: {\r\n property: 'label'\r\n },\r\n customStructure: {\r\n label: 'label',\r\n value: 'value',\r\n },\r\n model: Editors.singleSelect,\r\n required: false\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n const matchedValue = this.matchRules(args.dataContext.loadingLimit.trim(), this.loadingLimits.map(s => s.Title));\r\n this.dataset[args.row].loadingLimit = matchedValue ? matchedValue : '';\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'methodCladding',\r\n name: 'Method of Cladding',\r\n field: 'methodCladding',\r\n minWidth: 100,\r\n filterable: false,\r\n sortable: false,\r\n type: FieldType.string,\r\n editor: {\r\n collection: this.methodCladdings.map(mc => ({\r\n value: mc.Title,\r\n label: mc.Title,\r\n id: mc.MethodOfCladdingId\r\n })),\r\n collectionSortBy: {\r\n property: 'label'\r\n },\r\n customStructure: {\r\n label: 'label',\r\n value: 'value',\r\n },\r\n model: Editors.singleSelect,\r\n required: false\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n const matchedValue = this.matchRules(args.dataContext.methodCladding.trim(), this.methodCladdings.map(s => s.Title));\r\n this.dataset[args.row].methodCladding = matchedValue ? matchedValue : '';\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'methodTying',\r\n name: 'Method of Tying',\r\n field: 'methodTying',\r\n minWidth: 100,\r\n filterable: false,\r\n sortable: false,\r\n type: FieldType.string,\r\n editor: {\r\n collection: this.methodTyings.map(mt => ({\r\n value: mt.Title,\r\n label: mt.Title,\r\n id: mt.MethodOfTyingId\r\n })),\r\n collectionSortBy: {\r\n property: 'label'\r\n },\r\n customStructure: {\r\n label: 'label',\r\n value: 'value',\r\n optionLabel: 'value'\r\n },\r\n model: Editors.singleSelect,\r\n required: false\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n const matchedValue = this.matchRules(args.dataContext.methodTying.trim(), this.methodTyings.map(s => s.Title));\r\n this.dataset[args.row].methodTying = matchedValue ? matchedValue : '';\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'quoteNumber',\r\n name: 'Quote Number',\r\n field: 'quoteNumber',\r\n minWidth: 100,\r\n type: FieldType.string,\r\n editor: {\r\n model: Editors.autocompleter,\r\n validator: this.validationChecker,\r\n title: this.titleTooltips.max100,\r\n\r\n editorOptions: {\r\n minLength: 0,\r\n forceUserInput: true,\r\n source: this.quotes.map(qt => qt.QuoteNumber),\r\n }\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n this.filteredItems = this.quotes.filter(q => q.QuoteNumber.toLowerCase() === args.dataContext.quoteNumber.trim().toLowerCase());\r\n if (this.filteredItems.length) {\r\n this.dataset[args.row].itemNumber = this.filteredItems[0].Items.map(i => i.ItemNumber)[0];\r\n this.dataset[args.row].itemName = this.filteredItems[0].Items.map(i => i.ItemName)[0];\r\n args.grid.updateCell(args.row, ImportColumnIndexes.itemNumber);\r\n args.grid.updateCell(args.row, ImportColumnIndexes.itemName);\r\n this.columnDefinitions[9].editor.editorOptions.source = this.filteredItems[0].Items.map(i => i.ItemNumber);\r\n this.highlightCell(args.row, 'itemNumber', 'slickgrid-autoFill');\r\n this.highlightCell(args.row, 'itemName', 'slickgrid-autoFill');\r\n this.verifyGrid();\r\n this.dataView.refresh();\r\n } else {\r\n this.verifyGrid();\r\n }\r\n }\r\n },\r\n {\r\n id: 'itemNumber',\r\n name: 'Item Number',\r\n field: 'itemNumber',\r\n minWidth: 100,\r\n type: FieldType.string,\r\n editor: {\r\n model: Editors.autocompleter,\r\n title: this.titleTooltips.max100,\r\n editorOptions: {\r\n minLength: 0,\r\n forceUserInput: true,\r\n source: this.filteredItems && this.filteredItems.length ? this.filteredItems[0].Items.map(i => i.ItemNumber) : '',\r\n }\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n this.removeCellHighlight(args.row, args.columnDef.field, 'slickgrid-autoFill');\r\n if (this.filteredItems && this.filteredItems.length) {\r\n const items = this.filteredItems[0];\r\n if (items.Items.map(it => it.ItemNumber).includes(this.dataset[args.row].itemNumber)) {\r\n args.columnDef.internalColumnEditor.editorOptions.source = this.filteredItems[0].Items.map(i => i.ItemNumber);\r\n const itemNameSelected = this.filteredItems[0].Items.filter(i => i.ItemNumber === this.dataset[args.row].itemNumber);\r\n this.dataset[args.row].itemName = !this.filteredItems.length && !itemNameSelected.length ? '' :\r\n itemNameSelected.length ? itemNameSelected[0].ItemName : this.filteredItems[0].Items.map(i => i.ItemName)[0];\r\n args.grid.updateCell(args.row, ImportColumnIndexes.itemName);\r\n args.grid.updateCell(args.row, args.cell);\r\n } else {\r\n this.dataset[args.row].itemName = '';\r\n }\r\n }\r\n this.verifyGrid();\r\n },\r\n onCellClick: (e: Event, args: OnEventArgs) => {\r\n if (this.filteredItems && this.filteredItems.length) {\r\n const items = this.filteredItems[0];\r\n if (items.Items.map(it => it.ItemNumber).includes(this.dataset[args.row].itemNumber)) {\r\n args.columnDef.internalColumnEditor.editorOptions.source = items.Items.map(i => i.ItemNumber);\r\n }\r\n }\r\n }\r\n },\r\n {\r\n id: 'itemName',\r\n name: 'Item Name',\r\n field: 'itemName',\r\n minWidth: 100,\r\n type: FieldType.string,\r\n editor: {\r\n title: this.titleTooltips.max100,\r\n model: Editors.text,\r\n validator: this.validationChecker\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n if (this.filteredItems && this.filteredItems.length && this.filteredItems[0].Items.map(i => i.ItemNumber).includes(this.dataset[args.row].itemNumber)) {\r\n this.dataset[args.row].itemName = this.filteredItems[0].Items.filter(i => i.ItemNumber === this.dataset[args.row].itemNumber)[0].ItemName;\r\n // defaults to the item name if an existing one\r\n args.grid.updateCell(args.row, args.cell);\r\n } else {\r\n // removes the highlight if it is a new item\r\n this.removeCellHighlight(args.row, args.columnDef.field, 'slickgrid-autoFill');\r\n }\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'scaffoldingSystem',\r\n name: 'Scaffolding System',\r\n field: 'scaffoldingSystem',\r\n minWidth: 100,\r\n filterable: false,\r\n sortable: false,\r\n type: FieldType.string,\r\n editor: {\r\n collection: this.scaffoldingSystems.map(st => ({\r\n value: st.Title,\r\n label: st.Title,\r\n id: st.ScaffoldingSystemId\r\n })),\r\n collectionSortBy: {\r\n property: 'label'\r\n },\r\n customStructure: {\r\n label: 'label',\r\n value: 'value',\r\n },\r\n model: Editors.singleSelect,\r\n required: false,\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n const matchedValue = this.matchRules(args.dataContext.scaffoldingSystem.trim(), this.scaffoldingSystems.map(s => s.Title));\r\n this.dataset[args.row].scaffoldingSystem = matchedValue ? matchedValue : '';\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'maximumTonnage',\r\n name: 'Maximum Tonnage',\r\n field: 'maximumTonnage',\r\n minWidth: 100,\r\n type: FieldType.float,\r\n editor: {\r\n title: this.titleTooltips.number,\r\n model: Editors.float,\r\n required: false,\r\n params: { decimalPlaces: 2 },\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n this.dataset[args.row].maximumTonnage = args.dataContext.maximumTonnage || Number(args.dataContext.maximumTonnage) < 0\r\n ? Number(args.dataContext.maximumTonnage).toFixed(2)\r\n : (0.00).toFixed(2);\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'hirePeriod',\r\n name: 'Hire Period',\r\n field: 'hirePeriod',\r\n minWidth: 100,\r\n type: FieldType.float,\r\n editor: {\r\n title: this.titleTooltips.number,\r\n model: Editors.float,\r\n required: false,\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n this.dataset[args.row].hirePeriod = args.dataContext.hirePeriod ? Number(Math.round(args.dataContext.hirePeriod)) : null;\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'designType',\r\n name: 'Design Type',\r\n field: 'designType',\r\n minWidth: 100,\r\n filterable: false,\r\n sortable: false,\r\n type: FieldType.string,\r\n editor: {\r\n collection: this.designTypes.map(dt => ({\r\n value: dt.Title,\r\n label: dt.Title,\r\n id: dt.DesignTypeId\r\n })),\r\n collectionSortBy: {\r\n property: 'label'\r\n },\r\n customStructure: {\r\n label: 'label',\r\n value: 'value',\r\n },\r\n model: Editors.singleSelect,\r\n required: false\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n const matchedValue = this.matchRules(args.dataContext.designType.trim(), this.designTypes.map(s => s.Title));\r\n this.dataset[args.row].designType = matchedValue ? matchedValue : '';\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'dateNextInspection',\r\n name: 'Next Inspection Date',\r\n field: 'dateNextInspection',\r\n minWidth: 100,\r\n type: FieldType.dateTimeIso,\r\n formatter: Formatters.dateIso,\r\n editor: {\r\n model: Editors.date,\r\n required: false\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n this.dataset[args.row].dateNextInspection = moment(args.dataContext.dateNextInspection, this.flatPickerFormat, true).isValid()\r\n ? args.dataContext.dateNextInspection\r\n : '';\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'onHireDate',\r\n name: 'On Hire Date',\r\n field: 'onHireDate',\r\n minWidth: 100,\r\n type: FieldType.dateTimeIso,\r\n formatter: Formatters.dateIso,\r\n editor: {\r\n model: Editors.date,\r\n required: false\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n this.dataset[args.row].onHireDate = moment(args.dataContext.onHireDate, this.flatPickerFormat, true).isValid()\r\n ? args.dataContext.onHireDate\r\n : '';\r\n args.grid.updateCell(args.row, args.cell);\r\n this.verifyGrid();\r\n }\r\n },\r\n {\r\n id: 'affectedAdverseWeather',\r\n name: 'Affected by Adverse Weather',\r\n field: 'affectedAdverseWeather',\r\n minWidth: 100,\r\n type: FieldType.boolean,\r\n formatter: Formatters.checkmark,\r\n editor: {\r\n model: Editors.checkbox,\r\n required: false\r\n },\r\n onCellChange: (e: Event, args: OnEventArgs) => {\r\n if (args.dataContext && args.dataContext.affectedAdverseWeather) {\r\n const cellValue = args.dataContext.affectedAdverseWeather.toString().trim().toLowerCase();\r\n const cellValueIsTrue = cellValue === 't' ||\r\n cellValue === 'true' ||\r\n cellValue === 'y' ||\r\n cellValue === 'yes';\r\n this.dataset[args.row].affectedAdverseWeather = cellValueIsTrue;\r\n args.grid.updateCell(args.row, args.cell);\r\n }\r\n this.verifyGrid();\r\n }\r\n }\r\n ];\r\n\r\n this.gridOptions = {\r\n forceFitColumns: true,\r\n enableAutoResize: true,\r\n autoHeight: true,\r\n enableColumnReorder: false,\r\n asyncEditorLoading: false,\r\n autoEdit: this.isAutoEdit,\r\n autoCommitEdit: false,\r\n enableGridMenu: false,\r\n enableHeaderMenu: false,\r\n autoResize: {\r\n container: 'importGrid',\r\n // sidePadding: 15\r\n },\r\n headerRowHeight: 45,\r\n rowHeight: 45,\r\n editable: true,\r\n enableCellNavigation: true,\r\n enableColumnPicker: false,\r\n enableExcelCopyBuffer: true,\r\n enableFiltering: false,\r\n\r\n\r\n editCommandHandler: (item, column, editCommand) => {\r\n this._commandQueue.push(editCommand);\r\n editCommand.execute();\r\n }\r\n };\r\n }\r\n\r\n validationChecker: EditorValidator = (value: any, args: EditorArguments) => {\r\n const maxCharacters = 100;\r\n let message = '';\r\n const requiredFieldMessage = 'This is a required field';\r\n const maxCharactersMessage = `The max length for this field is ${maxCharacters} characters.`;\r\n\r\n const colName = args.column.field;\r\n\r\n // Required\r\n if ((colName === 'scaffoldName' && value == null) || value === undefined || !value.length) {\r\n message = requiredFieldMessage;\r\n }\r\n\r\n // Max Length\r\n if (\r\n colName === 'scaffoldName' ||\r\n colName === 'scaffoldDescription' ||\r\n colName === 'area' ||\r\n colName === 'quoteNumber' ||\r\n colName === 'itemNumber' ||\r\n colName === 'itemName'\r\n ) {\r\n message = maxCharacters >= value.length ? '' : maxCharactersMessage;\r\n }\r\n\r\n return this.openValidationModal(message);\r\n }\r\n\r\n matchRules(userValue: string, arrayToCheck: any): string {\r\n let matchedValue = '';\r\n arrayToCheck.forEach(val => {\r\n const arrayVal = this.textFormatterPattern(val);\r\n const userVal = this.textFormatterPattern(userValue);\r\n if (arrayVal === userVal) {\r\n matchedValue = val;\r\n }\r\n });\r\n return matchedValue;\r\n }\r\n\r\n textFormatterPattern(value): string {\r\n // Following pattern takes out any sub/superscript from a string\r\n const convertedValue = value.replace(\r\n /[\\u006E\\u00B0\\u00B2\\u00B3\\u00B9\\u02AF\\u0670\\u0711\\u2121\\u213B\\u2207\\u29B5\\uFC5B-\\uFC5D\\uFC63\\uFC90\\uFCD9\\u2070\\u2071\\u2074-\\u208E\\u2090-\\u209C\\u0345\\u0656\\u17D2\\u1D62-\\u1D6A\\u2A27\\u2C7C]\\^+/g,\r\n ''\r\n );\r\n return convertedValue.toLowerCase();\r\n }\r\n\r\n openValidationModal(message): any {\r\n if (message) {\r\n const context: SSDialogContext = {\r\n title: `Validation Error`,\r\n body: message,\r\n cancelBtnText: 'Close',\r\n showOnlyCloseBtn: true,\r\n cancelBtnClass: 'btn button-assertive',\r\n };\r\n const config: ModalOptions = {\r\n class: 'modal-danger',\r\n };\r\n const modal = this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context, config));\r\n\r\n modal.content.onClose.subscribe(\r\n result => {\r\n if (result !== null) {\r\n return { valid: false, msg: 'This is a required field' };\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n return { valid: true, msg: '' };\r\n }\r\n }\r\n\r\n generateData(): any {\r\n const headers = TableHeadersEnum;\r\n const scaffoldData = [];\r\n this.data.scaffoldImportFile.shift();\r\n this.data.scaffoldImportFile.forEach(row => {\r\n const scaffoldTypesChecker = this.scaffoldTypes.filter(st => (row[headers.ScaffoldType] !== '' && st.Title.toLowerCase() === row[headers.ScaffoldType].toLowerCase()));\r\n const scaffoldTypesMatchedValue = this.matchRules(row[headers.ScaffoldType], this.scaffoldTypes.map(s => s.Title));\r\n\r\n const designTypeChecker = this.designTypes.filter(dt => (row[headers.DesignType] !== '' && dt.Title.toLowerCase() === row[headers.DesignType].toLowerCase()));\r\n const designTypeMatchedValue = this.matchRules(row[headers.DesignType], this.designTypes.map(s => s.Title));\r\n\r\n const loadingLimitChecker = this.loadingLimits.filter(ll => (row[headers.LoadingLimits] !== '' && ll.Title.toLowerCase() === row[headers.LoadingLimits].toLowerCase()));\r\n const loadingLimitMatchedValue = this.matchRules(row[headers.LoadingLimits], this.loadingLimits.map(s => s.Title));\r\n\r\n const methodCladdingChecker = this.methodCladdings.filter(mc => (row[headers.MethodCladding] !== '' && mc.Title.toLowerCase() === row[headers.MethodCladding].toLowerCase()));\r\n const methodCladdingMatchedValue = this.matchRules(row[headers.MethodCladding], this.methodCladdings.map(s => s.Title));\r\n\r\n const methodTyingChecker = this.methodTyings.filter(mt => (row[headers.MethodTying] !== '' && mt.Title.toLowerCase() === row[headers.MethodTying].toLowerCase()));\r\n const methodTyingMatchedValue = this.matchRules(row[headers.MethodTying], this.methodTyings.map(s => s.Title));\r\n\r\n const affectedAdverseWeatherChecker = row[headers.AdverseWeather].toLowerCase() === 't'\r\n || row[headers.AdverseWeather].toLowerCase() === 'true'\r\n || row[headers.AdverseWeather].toLowerCase() === 'y'\r\n || row[headers.AdverseWeather].toLowerCase() === 'yes'\r\n ? true : false;\r\n\r\n const dateNextInsp = row[headers.DateNextInspection] && moment(row[headers.DateNextInspection], this.momentDateFormat, true).isValid() ? row[headers.DateNextInspection] : '';\r\n const hirePeriodDate = row[headers.OnHireDate] && moment(row[headers.OnHireDate], this.momentDateFormat, true).isValid() ? row[headers.OnHireDate] : '';\r\n\r\n if (row.length > 1) {\r\n const rowIndex = this.data.scaffoldImportFile.indexOf(row);\r\n if (row[headers.QuoteNumber] !== '' && row[headers.ItemNumber] !== '' && row[headers.ItemName] !== '') {\r\n if (row[headers.QuoteNumber] === '' || row[headers.ItemNumber] === '' || row[headers.ItemName] === '') {\r\n this.highlightCell(rowIndex, 'quoteNumber', 'invalid');\r\n this.highlightCell(rowIndex, 'itemNumber', 'invalid');\r\n this.highlightCell(rowIndex, 'itemName', 'invalid');\r\n this.addUniqueValidation({ row: rowIndex + 1, cell: ImportColumnIndexes.quoteNumber, header: this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.quoteNumber] });\r\n this.addUniqueValidation({ row: rowIndex + 1, cell: ImportColumnIndexes.itemNumber, header: this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.itemNumber] });\r\n this.addUniqueValidation({ row: rowIndex + 1, cell: ImportColumnIndexes.itemName, header: this.columnDefinitions.map(t => t.name)[ImportColumnIndexes.itemName] });\r\n }\r\n }\r\n const structure = {\r\n id: rowIndex + 1,\r\n scaffoldName: row[headers.ScaffoldName],\r\n scaffoldDescription: row[headers.ScaffoldDescription],\r\n area: row[2],\r\n scaffoldType: scaffoldTypesChecker.length ? scaffoldTypesChecker[0].Title : scaffoldTypesMatchedValue,\r\n loadingLimit: loadingLimitChecker.length ? loadingLimitChecker[0].Title : loadingLimitMatchedValue,\r\n methodCladding: methodCladdingChecker.length ? methodCladdingChecker[0].Title : methodCladdingMatchedValue,\r\n methodTying: methodTyingChecker.length ? methodTyingChecker[0].Title : methodTyingMatchedValue,\r\n quoteNumber: row[headers.QuoteNumber] ? row[headers.QuoteNumber] : '',\r\n itemNumber: row[headers.ItemNumber] ? row[headers.ItemNumber] : '',\r\n itemName: row[headers.ItemName] ? row[headers.ItemName] : '',\r\n scaffoldingSystem: row[headers.ScaffoldingSystem] ? row[headers.ScaffoldingSystem] : '',\r\n maximumTonnage: Number(row[headers.MaximumTonnage]) || Number(row[headers.MaximumTonnage]) < 0 ? Number(row[headers.MaximumTonnage]).toFixed(2) : 0.00,\r\n hirePeriod: Number(Math.round(row[headers.HirePeriod])) ? Number(Math.round(row[headers.HirePeriod])) : null,\r\n designType: designTypeChecker.length ? designTypeChecker[0].Title : designTypeMatchedValue,\r\n dateNextInspection: dateNextInsp ? moment(dateNextInsp, this.momentDateFormat).format(this.flatPickerFormat) : '',\r\n onHireDate: hirePeriodDate ? moment(hirePeriodDate, this.momentDateFormat).format(this.flatPickerFormat) : '',\r\n affectedAdverseWeather: affectedAdverseWeatherChecker\r\n };\r\n scaffoldData.push(structure);\r\n }\r\n });\r\n return scaffoldData;\r\n }\r\n\r\n changeAutoCommit(): boolean {\r\n this.gridOptions.autoCommitEdit = !this.gridOptions.autoCommitEdit;\r\n this.gridObj.setOptions({\r\n autoCommitEdit: this.gridOptions.autoCommitEdit\r\n });\r\n return true;\r\n }\r\n\r\n setAutoEdit(isAutoEdit): boolean {\r\n this.isAutoEdit = isAutoEdit;\r\n this.gridObj.setOptions({ autoEdit: isAutoEdit }); // change the grid option dynamically\r\n return true;\r\n }\r\n\r\n undo(): void {\r\n const command = this._commandQueue.pop();\r\n if (command && Slick.GlobalEditorLock.cancelCurrentEdit()) {\r\n command.undo();\r\n this.gridObj.gotoCell(command.row, command.cell, false);\r\n }\r\n }\r\n\r\n onSave(): void {\r\n this.gridObj.getEditorLock().commitCurrentEdit(); // auto commits open edits\r\n\r\n this.verifyGrid();\r\n\r\n // Checks if there are errors and stops user from importing data\r\n this.disableSaveBtn = this.errorValidation.length ? true : false;\r\n if (this.errorValidation.length) return;\r\n\r\n if (!this.dataset.filter(d => !this.data.deletedRows.includes(this.dataset.indexOf(d))).length) {\r\n const message = 'Unable to find any scaffolds on the spreadsheet, please note that the scaffold name is required.';\r\n return this.openValidationModal(message);\r\n }\r\n this.saveInProgress = true;\r\n\r\n const generateAreas = this.createAreas();\r\n const generatedScaffolds = this.createScaffolds();\r\n const generateData = this.createQuotesAndItems(generatedScaffolds);\r\n\r\n const importData = {\r\n CreateAreaCommand: generateAreas,\r\n CreateQuoteCommands: generateData.quoteCommands,\r\n CreateItemCommands: generateData.itemsCommands,\r\n CreateScaffoldCommands: generateData.generatedScaffolds\r\n };\r\n this.importEndpointService.ImportScaffold({ ImportData: JSON.stringify(importData) as any }).subscribe(response => {\r\n this.siteScaffoldQueryService.siteScaffoldQuery(false, this.context.site.SiteId),\r\n this.siteDetailQueryService.siteDetailQuery(false, this.context.site.SiteReference);\r\n this.saveInProgress = false;\r\n this.bsModalRef.hide();\r\n }, this.serverErrorCallback);\r\n }\r\n\r\n createQuotesAndItems(generatedScaffolds): any {\r\n const rows = this.dataset.filter(d => !this.data.deletedRows.includes(this.dataset.indexOf(d)));\r\n if (!rows.length) return;\r\n const quoteNumbersNames = _uniqWith(rows.map(s => s.quoteNumber.toLowerCase().trim()), _isEqual);\r\n const allQuotes = this.quotes.map(qt => qt.QuoteNumber.toLowerCase());\r\n const quotesToExculde = allQuotes.filter(q => quoteNumbersNames.includes(q));\r\n let quoteCommands = [];\r\n let itemsCommands = [];\r\n\r\n rows.forEach(row => {\r\n const quoteId = UUID.UUID();\r\n if (row.quoteNumber.trim() && row.itemNumber.trim()) {\r\n const quotesDuplicatesChecker = quoteCommands.map(qc => qc.QuoteNumber.toLowerCase());\r\n if (!quotesDuplicatesChecker.includes(row.quoteNumber.toLowerCase())) {\r\n if (!quotesToExculde.includes(row.quoteNumber.toLowerCase())) {\r\n quoteCommands.push({\r\n Estimator: '',\r\n ContractId: this.data.selectedContract[0].ContractId,\r\n QuoteId: quoteId,\r\n QuoteNumber: row.quoteNumber\r\n });\r\n }\r\n }\r\n const featureFlags = environment.featureFlags as any;\r\n\r\n const existingQuote = this.quotes.filter(quote => quote.QuoteNumber.toLowerCase() === row.quoteNumber.toLowerCase());\r\n const existingItems = existingQuote.length ? existingQuote[0].Items : [];\r\n const scaffoldIds = generatedScaffolds.filter(\r\n s => s.ItemNumber.toLowerCase() === row.itemNumber.toLowerCase() && s.QuoteNumber.toLowerCase() === row.quoteNumber.toLowerCase()\r\n );\r\n if (!existingItems.map(i => i.ItemNumber.toLowerCase()).includes(row.itemNumber.toLowerCase())) {\r\n const extQuote = this.quotes.filter(q => q.QuoteNumber.toLowerCase() === row.quoteNumber.toLowerCase());\r\n const newQuotes = quoteCommands.filter(q => q.QuoteNumber.toLowerCase() === row.quoteNumber.toLowerCase());\r\n itemsCommands.push({\r\n ItemId: UUID.UUID(),\r\n ItemName: row.itemName,\r\n ItemNumber: row.itemNumber,\r\n Estimator: '',\r\n ItemType: ItemTypeEnum.None,\r\n QuoteNumber: row.quoteNumber,\r\n ContractId: this.data.selectedContract[0].ContractId,\r\n QuoteId: newQuotes.length ? newQuotes[0].QuoteId : extQuote.length ? extQuote[0].QuoteId : quoteId,\r\n AllocatedHours: 0,\r\n ScaffoldIds: scaffoldIds ? scaffoldIds.map(s => s.ScaffoldId) : [],\r\n Tasks: featureFlags.timesheet ? this.generateDefaultsService.generateDefaultTasks() : null,\r\n });\r\n }\r\n }\r\n });\r\n // Assign QuoteIds to Scaffolds\r\n generatedScaffolds.map(gs => {\r\n if (gs.QuoteId === '' && gs.QuoteNumber.trim() !== '') {\r\n const matchingQuote = quoteCommands.filter(qc => qc.QuoteNumber.toLowerCase() === gs.QuoteNumber.trim().toLowerCase());\r\n const existingQuote = this.quotes.filter(q => q.QuoteNumber.toLowerCase() === gs.QuoteNumber.trim().toLowerCase());\r\n let quoteIdToAssign = null;\r\n if (matchingQuote && matchingQuote.length) {\r\n quoteIdToAssign = matchingQuote[0].QuoteId;\r\n } else if (existingQuote && existingQuote.length) {\r\n quoteIdToAssign = existingQuote[0].QuoteId;\r\n }\r\n if (quoteIdToAssign) gs.QuoteId = quoteIdToAssign;\r\n }\r\n });\r\n\r\n quoteCommands = _uniqBy(quoteCommands, 'QuoteId');\r\n itemsCommands = _uniqBy(itemsCommands, 'ItemId');\r\n return { quoteCommands, itemsCommands, generatedScaffolds };\r\n }\r\n\r\n /**\r\n * Gets the existing default area\r\n *\r\n * @returns {SiteAreaData}\r\n * @memberof ImportSpreadsheetComponent\r\n */\r\n getExistingDefaultArea(): SiteAreaData {\r\n return this.areas.find(a => a.AreaName === this.defaultAreaName);\r\n }\r\n\r\n /**\r\n * Creates the default area and adds it to the areas array\r\n *\r\n * @memberof ImportSpreadsheetComponent\r\n */\r\n createDefaultArea(): void {\r\n if (!this.defaultArea) {\r\n const newDefaultArea = {\r\n SiteAreaId: UUID.UUID(),\r\n AreaName: this.defaultAreaName,\r\n Deleted: false\r\n };\r\n this.defaultArea = newDefaultArea;\r\n this.newAndExistingAreas = this.newAndExistingAreas.concat(this.newAreas);\r\n } else {\r\n // in case it exists it will assign to the default area variable to later be used to assign to scaffolds\r\n this.defaultArea = this.getExistingDefaultArea();\r\n }\r\n }\r\n\r\n /**\r\n * Creates all the areas from CSV file\r\n *\r\n * @returns {*}\r\n * @memberof ImportSpreadsheetComponent\r\n */\r\n createAreas(): any {\r\n this.defaultArea = this.getExistingDefaultArea();\r\n const allAreas = this.dataset.filter(d => !this.data.deletedRows.includes(this.dataset.indexOf(d))).map(sc => sc.area);\r\n const areaNames = this.areas.map(a => a.AreaName);\r\n\r\n const newAreasNames = [];\r\n\r\n allAreas.filter(a => {\r\n if (a && !areaNames.includes(a)) {\r\n newAreasNames.push(a);\r\n }\r\n });\r\n\r\n this.newAndExistingAreas = [];\r\n // adds all the existing areas to the array\r\n this.newAndExistingAreas = this.newAndExistingAreas.concat(this.areas);\r\n\r\n if (newAreasNames && newAreasNames.length) {\r\n this.newAreas = [];\r\n _uniq(newAreasNames).forEach(a =>\r\n this.newAreas.push({\r\n SiteAreaId: UUID.UUID(),\r\n AreaName: a,\r\n Deleted: false\r\n })\r\n );\r\n const updateAreasCommand: UpdateAreasCommand = {\r\n SiteId: this.context.site.SiteId,\r\n Areas: this.newAreas\r\n };\r\n // adds the new areas to the array only in case there are any\r\n this.newAndExistingAreas = this.newAndExistingAreas.concat(this.newAreas);\r\n return updateAreasCommand ? updateAreasCommand : [];\r\n }\r\n return { SiteId: this.context.site.SiteId, Areas: [] };\r\n }\r\n\r\n /**\r\n * Gets the areaId if exists else it will set the default area\r\n *\r\n * @param {*} scaffold\r\n * @returns {string}\r\n * @memberof ImportSpreadsheetComponent\r\n */\r\n getAreaId(scaffold): string {\r\n // in case the default area was not created and the scaffold is assigned to the default area it will create it\r\n if (scaffold.area.toLowerCase() === this.defaultAreaName.toLowerCase() && !this.defaultArea) this.createDefaultArea();\r\n // will return the areaId to the respective scaffold area name\r\n const areaChecker = this.newAndExistingAreas.length ? this.newAndExistingAreas.find(a => a.AreaName === scaffold.area) : null;\r\n return areaChecker === null ? this.defaultArea.SiteAreaId : areaChecker.SiteAreaId;\r\n }\r\n\r\n createScaffolds(): any {\r\n const scaffoldCommand = [];\r\n const scaffoldNumbers = this.context.allScaffolds\r\n ? this.context.allScaffolds.filter(s => s.ScaffoldId).map(s => s.ScaffoldNumber)\r\n : [];\r\n\r\n this.dataset\r\n .filter(d => !this.data.deletedRows.includes(this.dataset.indexOf(d)))\r\n .forEach(s => {\r\n const existingQuoteNumber = this.quotes.filter(q => q.QuoteNumber.toLowerCase() === s.quoteNumber.toLowerCase());\r\n\r\n const existingItemNumber =\r\n existingQuoteNumber.length && existingQuoteNumber[0].Items\r\n ? existingQuoteNumber[0].Items.filter(i => i.ItemNumber.toLowerCase() === s.itemNumber.toLowerCase())\r\n : '';\r\n\r\n const existingItemName =\r\n existingQuoteNumber.length && existingQuoteNumber[0].Items\r\n ? existingQuoteNumber[0].Items.filter(i => i.ItemName.toLowerCase() === s.itemName.toLowerCase())\r\n : '';\r\n\r\n const existingItemId =\r\n existingQuoteNumber.length && existingQuoteNumber[0].Items\r\n ? existingQuoteNumber[0].Items.filter(i => i.ItemNumber.toLowerCase() === s.itemNumber.toLowerCase())\r\n : '';\r\n\r\n const newQuoteNumber = existingQuoteNumber.length ? '' : s.quoteNumber;\r\n const newItemNumber = existingItemNumber.length ? '' : s.itemNumber;\r\n const newItemName = existingItemName ? '' : s.itemName;\r\n\r\n const scaffoldNumber = this.referenceGeneratorService.incrementalReference(\r\n scaffoldNumbers,\r\n this.context.configuration.ScaffoldReferenceLength\r\n );\r\n\r\n\r\n\r\n const contract = this.data.selectedContract[0];\r\n const nextInspDate = s.dateNextInspection ? moment(s.dateNextInspection, ['MM/DD/YYYY', 'DD/MM/YYYY', 'YYYY-MM-DD']).toISOString() : '';\r\n const scaffoldingSystem = this.scaffoldingSystems.find(ss => ss.Title === s.scaffoldingSystem);\r\n\r\n scaffoldCommand.push({\r\n SiteId: this.context.site.SiteId,\r\n ScaffoldId: UUID.UUID(),\r\n ScaffoldStatusId: s.onHireDate ? scaffoldStatusIds.onHire : scaffoldStatusIds.incomplete,\r\n SpecificLocationDetails: s.scaffoldName,\r\n AdverseWeatherIndicator: s.affectedAdverseWeather,\r\n SiteAreaId: this.getAreaId(s),\r\n ScaffoldNumber: scaffoldNumber,\r\n ContractId: contract.ContractId,\r\n DateOfNextInspection: nextInspDate,\r\n ScaffoldSpecification: {\r\n ScaffoldTypeId: s.scaffoldType ? this.scaffoldTypes.filter(st => st.Title === s.scaffoldType)[0].ScaffoldTypeId : '',\r\n ScaffoldTypeFurtherInformation: '',\r\n Description: s.scaffoldDescription,\r\n DesignTypeId: s.designType ? this.designTypes.filter(dt => dt.Title === s.designType)[0].DesignTypeId : '',\r\n DesignTypeFurtherInformation: '',\r\n LoadingLimitId: s.loadingLimit ? this.loadingLimits.filter(ll => ll.Title === s.loadingLimit)[0].LoadingLimitId : '',\r\n LoadingLimitFurtherInformation: '',\r\n MethodOfTyingId: s.methodTying ? this.methodTyings.filter(mt => mt.Title === s.methodTying)[0].MethodOfTyingId : '',\r\n MethodOfTyingFurtherInformation: '',\r\n MethodOfCladdingId: s.methodCladding ? this.methodCladdings.filter(mc => mc.Title === s.methodCladding)[0].MethodOfCladdingId : '',\r\n MethodOfCladdingFurtherInformation: '',\r\n HirePeriod: s.hirePeriod ? Number(s.hirePeriod) : null,\r\n MaximumTonnage: s.maximumTonnage,\r\n scaffoldingSystemId: scaffoldingSystem ? scaffoldingSystem.ScaffoldingSystemId : ''\r\n },\r\n OffsetFromUtc: moment().utcOffset(),\r\n OnHireDate: s.onHireDate ? moment(s.onHireDate, ['MM/DD/YYYY', 'DD/MM/YYYY', 'YYYY-MM-DD']).toISOString() : '',\r\n QuoteNumber: existingQuoteNumber.length ? existingQuoteNumber[0].QuoteNumber : newQuoteNumber,\r\n QuoteId: existingQuoteNumber.length ? existingQuoteNumber[0].QuoteId : '',\r\n ItemNumber: existingItemNumber.length ? existingItemNumber[0].ItemNumber : newItemNumber,\r\n ItemName: existingItemName.length ? existingItemName[0].ItemName : newItemName,\r\n ItemId: existingItemId.length ? existingItemId[0].ItemId : ''\r\n });\r\n scaffoldNumbers.push(scaffoldNumber);\r\n });\r\n return scaffoldCommand;\r\n }\r\n\r\n clearAllRows(rowsToCreate, bypassModalConfirm: boolean = false): void {\r\n if (bypassModalConfirm) {\r\n this.dataset = [];\r\n this.createEmptyRows(rowsToCreate);\r\n return;\r\n }\r\n const context: SSDialogContext = {\r\n title: `Delete All Rows?`,\r\n body: `Are you sure you want to delete all the rows?`,\r\n okBtnClass: 'btn button-assertive',\r\n okBtnText: 'Yes delete all rows',\r\n cancelBtnText: 'No keep it',\r\n };\r\n const config: ModalOptions = {\r\n class: 'modal-danger',\r\n };\r\n const modal = this.modalService.show(ModalDialogComponent, SSModalConfig.generate(context, config));\r\n\r\n modal.content.onClose.subscribe(\r\n result => {\r\n if (result === true) {\r\n this.dataset.forEach(row => {\r\n const rowIndex = this.dataset.indexOf(row);\r\n this.removeAllRowHighlights(rowIndex, true, true);\r\n });\r\n this.data.deletedRows = [];\r\n this.errorValidation = [];\r\n this.dataset = [];\r\n this.createEmptyRows(rowsToCreate);\r\n }\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n\r\n createEmptyRows(rowsToCreate): void {\r\n const len = rowsToCreate;\r\n for (let i = 0; i < len; i++) {\r\n this.dataset.push(this.newItem(i));\r\n }\r\n this.gridObj.setData(this.dataset);\r\n this.gridObj.updateRowCount();\r\n this.gridObj.render();\r\n this.verifyGrid();\r\n }\r\n\r\n newItem(i): any {\r\n this.highlightCell(this.dataset.length, 'scaffoldName');\r\n this.highlightCell(this.dataset.length, 'area', 'slickgrid-autoFill');\r\n this.highlightCell(this.dataset.length, 'affectedAdverseWeather', 'slickgrid-autoFill');\r\n\r\n return {\r\n id: this.dataset.length + 1,\r\n scaffoldName: '',\r\n scaffoldDescription: '',\r\n area: this.defaultAreaName,\r\n scaffoldType: '',\r\n loadingLimit: '',\r\n methodCladding: '',\r\n methodTying: '',\r\n quoteNumber: '',\r\n itemNumber: '',\r\n itemName: '',\r\n hirePeriod: null,\r\n designType: '',\r\n dateNextInspection: '',\r\n onHireDate: '',\r\n affectedAdverseWeather: true\r\n };\r\n }\r\n\r\n onPrevious(): void {\r\n this.data.savedScaffolds = this.dataset;\r\n this.data.validationErrors = this.errorValidation;\r\n this.previousStep();\r\n }\r\n\r\n onCellChanged(e, args): void {\r\n const colId = Object.keys(args.item)[args.cell];\r\n const value = args.item[colId];\r\n\r\n const maxCharacters = 100;\r\n let message = '';\r\n const requiredFieldMessage = 'This is a required field';\r\n const maxCharactersMessage = `The max length for this field is ${maxCharacters} characters.`;\r\n\r\n // Required\r\n if (\r\n (colId === 'scaffoldName' && value == null) ||\r\n (colId === 'scaffoldName' && value === undefined) ||\r\n (colId === 'scaffoldName' && !value.length)\r\n ) {\r\n message = requiredFieldMessage;\r\n }\r\n\r\n // Max Length\r\n const valueLength = value === null ? null :\r\n value === '' || value === undefined ? 0 : value.length;\r\n if (\r\n (colId === 'scaffoldName' && valueLength > maxCharacters) ||\r\n (colId === 'scaffoldDescription' && valueLength > maxCharacters) ||\r\n (colId === 'area' && valueLength > maxCharacters) ||\r\n (colId === 'quoteNumber' && valueLength > maxCharacters) ||\r\n (colId === 'itemNumber' && valueLength > maxCharacters) ||\r\n (colId === 'itemName' && valueLength > maxCharacters)\r\n ) {\r\n message = maxCharactersMessage;\r\n }\r\n if (message) {\r\n this.highlightCell(args.row, colId);\r\n return;\r\n }\r\n this.verifyGrid();\r\n }\r\n}","
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ invalidForm || serverError }}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Invalid
\r\n
\r\n
\r\n
\r\n
Default Value
\r\n
\r\n
\r\n
\r\n
Deleted
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { ScaffoldImportModalContext } from './scaffold-import-modal-context';\r\nimport { ImportSpreadsheetComponent } from './import-spreadsheet/import-spreadsheet';\r\nimport { MultiStepFormStep } from 'app/shared/models/multi-step-form-step';\r\nimport { JSONCasing } from 'json-casing';\r\nimport { SelectContractComponent } from './select-contract/select-contract';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { AngularGridInstance, Column, DelimiterType, FileType, GridOption } from 'angular-slickgrid';\r\nimport { ExcelExportService } from '@slickgrid-universal/excel-export';\r\nimport { TextExportService } from '@slickgrid-universal/text-export';\r\nenum ExportType {\r\n EXCEL,\r\n CSV\r\n}\r\n/** \r\n * This is the first page of 3 (Import, Select Contract, Slickgrid)\r\n * Here the user can import a CSV file\r\n * User can select to copy excel data\r\n * User can also download a template for importing data\r\n * \r\n*/\r\n@Component({\r\n selector: 'hub-scaffold-import-modal',\r\n templateUrl: './scaffold-import-modal.component.html',\r\n styleUrls: ['./scaffold-import-modal.component.scss']\r\n})\r\nexport class ScaffoldImportModalComponent implements OnInit {\r\n /** Modal Context */\r\n context: Partial;\r\n /** SlickGrid Template */\r\n angularGrid: AngularGridInstance;\r\n /** SlickGrid Column Definitions */\r\n columnDefinitions: Column[];\r\n /** SlickGrid Options */\r\n gridOptions: GridOption;\r\n /** SlickGrid Data */\r\n dataset: any[];\r\n /** Stores the Modal Steps */\r\n steps: MultiStepFormStep[] | any;\r\n /** Stores the data from the CSV file */\r\n data;\r\n /** Stores the exported file */\r\n file: File;\r\n /** Stores the file reader */\r\n reader: FileReader;\r\n /** Stores the error message */\r\n errorMessage: string;\r\n /** Stores the file name */\r\n showImportForm: boolean;\r\n /** UI Settings */\r\n uiSettings = {\r\n fileHeadersCount: 17\r\n };\r\n /** Error messages */\r\n errors = {\r\n problemLoadingFile: 'There has been a problem loading the file',\r\n noFileSelected: 'Please select a CSV file.',\r\n wrongFileExtension: 'The file must be a .CSV file.',\r\n tableFormat: 'The table structure is not correct.',\r\n unsupportedFileVersion: 'The selected file is corrupted or the file version is unsupported.'\r\n };\r\n /** Export Text Service */\r\n textExportService = new TextExportService();\r\n /** Export Excel Service */\r\n excelExportService = new ExcelExportService();\r\n /** Export Type */\r\n exportType = ExportType;\r\n\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService,\r\n ) { }\r\n\r\n /** Initialises the component */\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.steps = [\r\n {\r\n title: 'Select Contract',\r\n component: SelectContractComponent\r\n },\r\n {\r\n title: 'Imported Scaffold',\r\n component: ImportSpreadsheetComponent\r\n }\r\n ];\r\n\r\n this.context.dialogClass = 'modal-dialog modal-lg';\r\n\r\n this.showImportForm = false;\r\n this.reader = new FileReader();\r\n this.reader.onload = e => {\r\n try {\r\n const csvData = JSONCasing.toPascal((e.target as any).result);\r\n this.data.scaffoldImportFile = this.CSVToArray(csvData).filter(s => s[0] !== '');\r\n if (this.data.scaffoldImportFile[0].length !== this.uiSettings.fileHeadersCount) {\r\n throw new Error();\r\n }\r\n } catch (error) {\r\n this.errorMessage = this.errors.problemLoadingFile;\r\n }\r\n };\r\n\r\n this.data = {\r\n scaffoldImportFile: undefined\r\n };\r\n this.generateTemplate();\r\n }\r\n\r\n /** Generates the template for users to be able to download */\r\n generateTemplate(): void {\r\n // IMPORTANT: When the column definitions is changed please update the enum so the properties are liked correctly (TableHeadersEnum)\r\n this.columnDefinitions = [\r\n { id: 'scaffoldName', name: 'Scaffold Name', field: 'scaffoldName' },\r\n { id: 'scaffoldDescription', name: 'Scaffold Description', field: 'scaffoldDescription' },\r\n { id: 'area', name: 'Area', field: 'area' },\r\n { id: 'scaffoldType', name: 'Scaffold Type', field: 'scaffoldType' },\r\n { id: 'loadingLimit', name: 'Loading Limit', field: 'loadingLimit' },\r\n { id: 'methodCladding', name: 'Method of Cladding', field: 'methodCladding' },\r\n { id: 'methodTying', name: 'Method of Tying', field: 'methodTying' },\r\n { id: 'quoteNumber', name: 'Quote Number', field: 'quoteNumber' },\r\n { id: 'itemNumber', name: 'Item Number', field: 'itemNumber' },\r\n { id: 'itemName', name: 'Item Name', field: 'itemName' },\r\n { id: 'scaffoldingSystem', name: 'Scaffolding System', field: 'scaffoldingSystem' },\r\n { id: 'maximumTonnage', name: 'Maximum Tonnage', field: 'maximumTonnage' },\r\n { id: 'hirePeriod', name: 'Hire Period', field: 'hirePeriod' },\r\n { id: 'designType', name: 'Design Type', field: 'designType' },\r\n { id: 'dateNextInspection', name: 'Next Inspection Date', field: 'dateNextInspection' },\r\n { id: 'onHireDate', name: 'On Hire Date', field: 'onHireDate' },\r\n { id: 'affectedAdverseWeather', name: 'Affected by Adverse Weather', field: 'affectedAdverseWeather' },\r\n ];\r\n this.gridOptions = {\r\n enableColumnReorder: false,\r\n autoResize: {\r\n container: 'hidden-grid',\r\n },\r\n enableAutoResize: true,\r\n enableFiltering: true,\r\n enableTextExport: true,\r\n textExportOptions: {\r\n exportWithFormatter: true,\r\n sanitizeDataExport: true,\r\n },\r\n excelExportOptions: {\r\n exportWithFormatter: true,\r\n sanitizeDataExport: true,\r\n },\r\n registerExternalResources: [this.textExportService, this.excelExportService],\r\n gridMenu: {\r\n hideExportExcelCommand: false,\r\n }\r\n };\r\n this.dataset = [];\r\n }\r\n\r\n /** Initialises the Angular Slickgrid table */\r\n angularGridReady(angularGrid: any): void {\r\n this.angularGrid = angularGrid;\r\n }\r\n\r\n /** Handles the export defined by the user, CSV or EXCEL */\r\n exportToFile(type: ExportType): void {\r\n if (type === ExportType.EXCEL) {\r\n this.excelExportService.exportToExcel({\r\n filename: 'Scaffold Import Template',\r\n format: FileType.xls,\r\n });\r\n return;\r\n }\r\n this.textExportService.exportToFile({\r\n delimiter: DelimiterType.comma,\r\n filename: 'Scaffold Import Template',\r\n format: FileType.csv\r\n });\r\n\r\n }\r\n\r\n /** Activates the copy and paste feature */\r\n copyPasteValues(): void {\r\n this.data.copyPaste = true;\r\n this.showImportForm = true;\r\n }\r\n\r\n /** Converts the CSV file to an Array */\r\n CSVToArray(strData, strDelimiter?): Array {\r\n strDelimiter = strDelimiter || ',';\r\n const objPattern = new RegExp(`(\\\\${strDelimiter}|\\\\r?\\\\n|\\\\r|^)(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|([^\"\\\\${strDelimiter}\\\\r\\\\n]*))`, 'gi');\r\n const arrData = [[]];\r\n let arrMatches = null;\r\n while ((arrMatches = objPattern.exec(strData))) {\r\n const strMatchedDelimiter = arrMatches[1];\r\n if (strMatchedDelimiter.length && strMatchedDelimiter !== strDelimiter) {\r\n arrData.push([]);\r\n }\r\n let strMatchedValue;\r\n if (arrMatches[2]) {\r\n strMatchedValue = arrMatches[2].replace(new RegExp('\"\"', 'g'), '\"');\r\n } else {\r\n strMatchedValue = arrMatches[3];\r\n }\r\n arrData[arrData.length - 1].push(strMatchedValue);\r\n }\r\n return arrData;\r\n }\r\n\r\n /** Handles the file selected event */\r\n onFileSelected(event: Event): void {\r\n this.errorMessage = undefined;\r\n this.file = (event.target as any).files[0];\r\n this.reader.readAsText(this.file, 'ISO-8859-1');\r\n }\r\n\r\n /** Validates if the data is correct to enable the Next button */\r\n onStartImport(): void {\r\n // No file was selected.\r\n if (!this.file) {\r\n this.errorMessage = this.errors.noFileSelected;\r\n return;\r\n }\r\n // The file has the wrong extension.\r\n if (this.file.name.split('.').pop() !== 'csv') {\r\n this.errorMessage = this.errors.wrongFileExtension;\r\n return;\r\n }\r\n // There was an error while loading the file.\r\n if (this.errorMessage) {\r\n return;\r\n }\r\n this.showImportForm = true;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n\r\n
\r\n

Import a CSV file

\r\n\r\n
\r\n \r\n Browse…\r\n \r\n \r\n No file selected\r\n {{file.name}}\r\n
\r\n \r\n {{errorMessage}}\r\n
\r\n\r\n
\r\n

Type or paste values from a spreadsheet

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MultiStepModalFormComponent } from 'app/shared/components/multi-step-modal-form/multi-step-modal-form.component';\r\nimport { ScaffoldImportModalContext } from '../scaffold-import-modal-context';\r\nimport {\r\n UntypedFormGroup,\r\n UntypedFormBuilder,\r\n AbstractControl,\r\n UntypedFormArray\r\n} from '@angular/forms';\r\nimport { ContractData } from 'app/core/hub-api';\r\nimport { errorMessages } from 'app/shared/values/error-messages';\r\nimport { QuotesQueryService } from 'app/core/services/quotes-query-service';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-select-contract',\r\n templateUrl: './select-contract.html',\r\n styleUrls: ['./select-contract.scss']\r\n})\r\nexport class SelectContractComponent extends MultiStepModalFormComponent implements OnInit {\r\n data: ScaffoldImportModalContext;\r\n context: Partial;\r\n form: UntypedFormGroup;\r\n\r\n staffOptions: ContractData[];\r\n\r\n validationMessages = {\r\n ContractId: {\r\n required: errorMessages.required\r\n }\r\n };\r\n contractList: (ContractData & { selected: boolean })[];\r\n contracts;\r\n required: string;\r\n\r\n constructor(\r\n private formBuilder: UntypedFormBuilder,\r\n private quotesQueryService: QuotesQueryService,\r\n public modalService: BsModalService,\r\n ) { super(); }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n if (!this.context) this.context = this.modalService.config.initialState;\r\n this.context.dialogClass = 'modal-dialog modal-lg';\r\n this.contracts = this.context.site.Contracts;\r\n this.contractList = this.contracts\r\n .sort((a, b) => {\r\n return a.ContractName.toLocaleLowerCase() >\r\n b.ContractName.toLocaleLowerCase()\r\n ? 1\r\n : -1;\r\n })\r\n .map(s => Object.assign(s, { selected: false }));\r\n\r\n this.getContractSelected();\r\n\r\n this.form = this.formBuilder.group({\r\n staffControls: this.buildContractControls()\r\n });\r\n super.ngOnInit();\r\n }\r\n\r\n getContractSelected(): void {\r\n const contractId = this.context.selectedContract && !this.data.selectedContract\r\n ? this.context.selectedContract.ContractId\r\n : this.data.selectedContract\r\n ? this.data.selectedContract[0].ContractId\r\n : '';\r\n if (contractId) {\r\n const index = this.contractList.findIndex(s => s.ContractId === contractId);\r\n this.contractList[index].selected = true;\r\n this.context.selectedContract = this.contractList[index];\r\n }\r\n }\r\n\r\n get contractControls(): AbstractControl {\r\n return this.form.get('staffControls');\r\n }\r\n\r\n private buildContractControls(): UntypedFormArray {\r\n const arr = this.contractList.map(contract => {\r\n return this.formBuilder.control(contract.selected);\r\n });\r\n return this.formBuilder.array(arr);\r\n }\r\n\r\n private deselectAll(arr: any[]): void {\r\n arr.forEach(val => {\r\n if (val.selected) {\r\n val.selected = false;\r\n }\r\n });\r\n }\r\n\r\n updateSelection(selectedOption): void {\r\n const selected = selectedOption.selected;\r\n this.deselectAll(this.contractList);\r\n selectedOption.selected = !selected;\r\n this.required = null;\r\n }\r\n\r\n onNext(): void {\r\n this.data.selectedContract = this.contractList.filter(c => c.selected);\r\n if (!this.data.selectedContract.length) {\r\n this.required = 'Please select one of the contracts';\r\n } else {\r\n this.required = null;\r\n this.data.selectedContract = this.contractList.filter(c => c.selected);\r\n\r\n // Required to wait for the quote service to render the quote names before loading the next screen\r\n this.quotesQueryService\r\n .quotesQuery(false, this.data.selectedContract[0].ContractId)\r\n .subscribe(q => {\r\n this.data.quotes = q;\r\n this.nextStep();\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n

Select a contract where you wish to import the scaffolds:

\r\n
    \r\n
  • \r\n \r\n
  • \r\n
\r\n\r\n
\r\n
\r\n {{ required }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","export const ImportColumnIndexes = {\r\n scaffoldName: 1,\r\n scaffoldDescription: 2,\r\n area: 3,\r\n scaffoldType: 4,\r\n loadingLimit: 5,\r\n methodCladding: 6,\r\n methodTying: 7,\r\n quoteNumber: 8,\r\n itemNumber: 9,\r\n itemName: 10,\r\n scaffoldingSystem: 11,\r\n maximumTonnage: 12,\r\n hirePeriod: 13,\r\n designType: 14,\r\n dateNextInspection: 15,\r\n onHireDate: 16,\r\n affectedAdverseWeather: 17,\r\n};\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport * as moment from 'moment';\r\nimport { Component, OnDestroy, OnInit, ViewChild, ChangeDetectorRef } from '@angular/core';\r\nimport { ConfigurationData, ContractData, CustomerWebAppData, ScaffoldWebAppData, SiteWebAppData, StaffDetailsWebAppData } from 'app/core/hub-api';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { cloneDeep, some, uniq as _uniq } from 'lodash';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AddEditContractModalComponent } from '../../contracts/add-edit-contract-modal/add-edit-contract-modal.component';\r\nimport { AddEditScaffoldModalComponent } from '../add-edit-scaffold-modal/add-edit-scaffold-modal.component';\r\nimport { ConfigurationQueryService } from '../../../../../core/services/configuration-query.service';\r\nimport { CustomersQueryService } from '../../../../../core/services/customers-query.service';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { FixScaffoldNumbersModalComponent } from '../fix-scaffold-numbers-modal/fix-scaffold-numbers-modal.component';\r\nimport { GroupScaffoldsModalComponent } from '../group-scaffolds-modal/group-scaffolds-modal.component';\r\nimport { combineLatest } from 'rxjs';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { contractStatusIds } from '../../../../../shared/values/contract-status-ids';\r\nimport { scaffoldNumberComparator } from '../../../../../shared/comparators/scaffold-number-comparator';\r\nimport { scaffoldStatusIds } from '../../../../../shared/values/scaffold-status-ids';\r\nimport { ExportService } from '../../../../../core/services/export-service';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { ScaffoldImportModalComponent } from '../scaffold-import-modal/scaffold-import-modal.component';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { LoggedInStaffService } from '../../../../../core/services/logged-in-staff-service';\r\nimport { BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { icons } from 'app/shared/values/icons';\r\n/**\r\n * Scaffold List page\r\n * Shows a list of all scaffolds for the selected site\r\n * Allows users to export as CSV, group, show dismantle and fix duplicated scaffolds.\r\n *\r\n * @export\r\n * @class ScaffoldListComponent\r\n * @implements {OnInit} A lifecycle hook that is called after Angular has initialized all data-bound properties of a directive\r\n * @implements {OnDestroy} A lifecycle hook that is called when a directive, pipe, or service is destroyed\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-scaffold-list',\r\n templateUrl: './scaffold-list.component.html',\r\n styleUrls: ['./scaffold-list.component.scss']\r\n})\r\nexport class ScaffoldListComponent implements OnInit, OnDestroy {\r\n /** Stores the blob for the excel export */\r\n blobContainer: any;\r\n /** Stores all scaffolds */\r\n allScaffolds: ScaffoldWebAppData[];\r\n /** Stores all filtered scaffolds */\r\n filteredScaffolds: ScaffoldWebAppData[];\r\n /** Stores all contracts */\r\n contracts: ContractData[];\r\n /** Stores all contract names */\r\n contractNames: any = [];\r\n /** Stores all unfiltered contract names */\r\n allContractNames: any;\r\n /** Stores all customers */\r\n customers: CustomerWebAppData[];\r\n /** Stores the current selected site */\r\n site: SiteWebAppData;\r\n /** Stores SMART Manager configuration */\r\n configuration: ConfigurationData;\r\n /** Stores all customers for the selected site */\r\n siteCustomers: any;\r\n /** Stores all duplicate scaffolds */\r\n anyDuplicates: boolean;\r\n /** Stores the current logged in user */\r\n loggedInStaff: StaffDetailsWebAppData;\r\n /** Stores all filter parameters */\r\n filters: any;\r\n /** Stores if the inspection view is enabled, if false will be handover view */\r\n inspectionView: boolean;\r\n /** Stores all scaffold status ids */\r\n scaffoldStatusIds: any;\r\n /** Enables the scaffold grouping mode */\r\n groupScaffoldsMode: boolean;\r\n /** Filters Form Group control */\r\n filtersForm: UntypedFormGroup;\r\n /** Search input form control */\r\n searchTermFormControl: UntypedFormControl;\r\n /** Contracts dropdown form control */\r\n contractListFormControl: UntypedFormControl;\r\n /** Gets the scaffold number comparator function */\r\n scaffoldNumberComparator = scaffoldNumberComparator;\r\n /** Stores all selected scaffolds */\r\n selectedScaffolds: any;\r\n /** Gets the icons paths */\r\n icons = icons;\r\n /** Required to access ngx-datatable settings */\r\n @ViewChild(DatatableComponent) scaffoldsTable: DatatableComponent;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private router: Router,\r\n private bsModalService: BsModalService,\r\n private exportService: ExportService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private loggedInStaffService: LoggedInStaffService\r\n ) { }\r\n\r\n /**\r\n * Component Initialisation\r\n *\r\n * @memberof ScaffoldListComponent\r\n */\r\n public ngOnInit(): void {\r\n this.generateForm();\r\n this.searchTermFormControl.valueChanges.subscribe(searchTerm => {\r\n // Checks if the user is filtering by contract and searches on selected scaffolds\r\n const scaffolds = this.selectedScaffolds ? this.selectedScaffolds : this.allScaffolds;\r\n this.setFilteredScaffolds(scaffolds);\r\n });\r\n\r\n\r\n this.filters = {\r\n selectedContract: undefined,\r\n selectedCustomer: undefined,\r\n showOnlyDuplicates: false,\r\n showDismantled: false\r\n };\r\n this.inspectionView = true;\r\n this.scaffoldStatusIds = scaffoldStatusIds;\r\n\r\n const siteReference = this.route.parent.parent.snapshot.params['siteReference'];\r\n\r\n const siteDetailChanges = this.siteDetailQueryService.siteDetailDataChanges(siteReference);\r\n const scaffoldsChanges = siteDetailChanges.pipe(mergeMap(site => this.siteScaffoldQueryService.siteScaffoldQuery(false, site.SiteId)));\r\n const obs$ = combineLatest([\r\n siteDetailChanges,\r\n this.customersQueryService.customersDataChanges(),\r\n scaffoldsChanges,\r\n this.configurationQueryService.configurationDataChanges(),\r\n this.loggedInStaffService.loggedInStaffChanges()\r\n ]);\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1], latest[2], latest[3], latest[4]));\r\n }\r\n\r\n /**\r\n * Generates the scaffold filters form\r\n *\r\n * @private\r\n * @memberof ScaffoldListComponent\r\n */\r\n private generateForm(): void {\r\n this.searchTermFormControl = new UntypedFormControl('');\r\n this.contractListFormControl = new UntypedFormControl('');\r\n this.filtersForm = new UntypedFormGroup({\r\n searchTerm: this.searchTermFormControl,\r\n contractList: this.contractListFormControl\r\n });\r\n }\r\n\r\n /**\r\n * Initialises all data to feed the scaffold list page\r\n * It is not a private function since it is used on unit tests\r\n *\r\n * @param {SiteWebAppData} site selected site\r\n * @param {CustomerWebAppData[]} customers all customers\r\n * @param {ScaffoldWebAppData[]} scaffolds all scaffolds\r\n * @param {ConfigurationData} configuration SMART Manager configuration object\r\n * @param {StaffDetailsWebAppData} loggedInStaff current logged in user\r\n * @memberof ScaffoldListComponent\r\n */\r\n public refreshComponent(site: SiteWebAppData, customers: CustomerWebAppData[], scaffolds: ScaffoldWebAppData[], configuration: ConfigurationData, loggedInStaff: StaffDetailsWebAppData): void {\r\n this.allScaffolds = scaffolds;\r\n this.configuration = configuration;\r\n this.site = site;\r\n this.customers = customers;\r\n this.loggedInStaff = loggedInStaff;\r\n this.contracts = site.Contracts.map(contract => {\r\n // Create a clone to avoid altering cached data.\r\n contract = cloneDeep(contract);\r\n (contract as any).name = this.customers.find(c => c.CustomerId === contract.CustomerId).CustomerName;\r\n return contract as any;\r\n })\r\n .sort((a, b) => (a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1))\r\n .filter(contract => contract.ContractStatusId !== contractStatusIds.closed);\r\n this.allScaffolds = scaffolds;\r\n this.setFilteredScaffolds(this.allScaffolds);\r\n this.anyDuplicates = this.allScaffolds.some(s => s.IsDuplicate);\r\n\r\n // Adds the contract name filters\r\n this.contractNames = [];\r\n this.contracts.map(c => {\r\n this.contractNames.push({ name: c.ContractName, type: c.ContractId });\r\n });\r\n this.allContractNames = this.contractNames;\r\n\r\n // Checks all contract names as default\r\n this.filtersForm.controls.contractList.setValue(this.contractNames.map(c => c.type));\r\n\r\n // Sets all the customers the site has\r\n const customerIds = this.site.Contracts.map(c => c.CustomerId);\r\n this.siteCustomers = this.customers.filter(c => customerIds.includes(c.CustomerId));\r\n }\r\n\r\n setFilteredScaffolds(scaffolds: ScaffoldWebAppData[]): void {\r\n let filteredScaffolds = scaffolds;\r\n\r\n // Filter out scaffolds from closed contracts.\r\n filteredScaffolds = filteredScaffolds.filter(scaffold => {\r\n const contract = this.contracts.find(c => c.ContractId === scaffold.ContractId) || new ContractData();\r\n return contract.ContractStatusId === contractStatusIds.open;\r\n });\r\n\r\n // Filter by search term.\r\n if (this.searchTermFormControl.value) {\r\n filteredScaffolds = filteredScaffolds.filter(scaffold => {\r\n const keys = Object.keys(scaffold);\r\n return keys.some(key =>\r\n (scaffold[key] || '')\r\n .toString()\r\n .toLowerCase()\r\n .includes(this.searchTermFormControl.value.toLowerCase())\r\n );\r\n });\r\n }\r\n\r\n // Filter by dismantled.\r\n if (!this.filters.showDismantled) {\r\n filteredScaffolds = filteredScaffolds.filter(scaffold => scaffold.ScaffoldStatusId !== scaffoldStatusIds.dismantled);\r\n }\r\n\r\n // Filter by isDuplicate.\r\n if (this.filters.showOnlyDuplicates) {\r\n filteredScaffolds = filteredScaffolds.filter(scaffold => scaffold.IsDuplicate);\r\n }\r\n\r\n // Adds Contract Name to filteredScaffolds and assigns it to global variable\r\n this.filteredScaffolds = filteredScaffolds.map(scaffold => {\r\n scaffold = cloneDeep(scaffold);\r\n const contractName = this.site.Contracts.find(c => c.ContractId === scaffold.ContractId).ContractName;\r\n (scaffold as any).ContractName = `${contractName}`;\r\n return scaffold;\r\n });\r\n\r\n // Set the scaffolds table back to the first page.\r\n if (this.scaffoldsTable) {\r\n this.scaffoldsTable.offset = 0;\r\n }\r\n }\r\n\r\n /**\r\n * When user selects the import scaffolds button launches the importer modal\r\n *\r\n * @returns {DialogRef}\r\n * @memberof ScaffoldListComponent\r\n */\r\n public onImportScaffolds(): void {\r\n const context = {\r\n allScaffolds: this.allScaffolds,\r\n customers: this.customers,\r\n site: this.site,\r\n configuration: this.configuration,\r\n selectedContract: this.filters.selectedContract\r\n };\r\n const config: ModalOptions = {\r\n class: 'modal-xl'\r\n };\r\n this.bsModalService.show(ScaffoldImportModalComponent, SSModalConfig.generate(context, config));\r\n }\r\n\r\n /**\r\n * When user clicks the add contract button launches the add contract modal\r\n *\r\n * @returns {DialogRef}\r\n * @memberof ScaffoldListComponent\r\n */\r\n public onAddContract(): void {\r\n const context = {\r\n editMode: false,\r\n customers: this.customers,\r\n site: this.site,\r\n configuration: this.configuration\r\n };\r\n this.bsModalService.show(AddEditContractModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n /**\r\n * When user clicks the add scaffold button launches the add scaffold modal\r\n *\r\n * @memberof ScaffoldListComponent\r\n */\r\n public onAddScaffold(): void {\r\n const context = {\r\n editMode: false,\r\n configuration: this.configuration,\r\n site: this.site,\r\n customers: this.customers,\r\n scaffolds: this.allScaffolds,\r\n loggedInStaff: this.loggedInStaff,\r\n };\r\n this.bsModalService.show(AddEditScaffoldModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n /**\r\n * When the user selects a customer on the UI it filters the scaffolds accordingly\r\n *\r\n * @param {*} customer selected customer\r\n * @memberof ScaffoldListComponent\r\n */\r\n public onSelectCustomer(customer): void {\r\n const scaffolds = !customer ? this.allScaffolds : this.allScaffolds.filter(s => s.CustomerName === customer.CustomerName);\r\n const contractIds = _uniq(scaffolds.map(s => s.ContractId));\r\n\r\n this.filters.selectedContract = contractIds;\r\n this.filtersForm.controls.contractList.setValue(contractIds);\r\n\r\n this.filters.selectedCustomer = customer;\r\n this.contractFiltering();\r\n this.setFilteredScaffolds(scaffolds);\r\n }\r\n\r\n /**\r\n * Filters the scaffold list with the selected contracts\r\n *\r\n * @private\r\n * @memberof ScaffoldListComponent\r\n */\r\n private contractFiltering(): void {\r\n if (this.filters.selectedCustomer) {\r\n const filteredScaffolds = this.allScaffolds.filter(s => s.CustomerName === this.filters.selectedCustomer.CustomerName);\r\n if (filteredScaffolds) {\r\n const handoverContractIds = filteredScaffolds.map(s => s.ContractId);\r\n this.contractNames = this.allContractNames.filter(cn => handoverContractIds.includes(cn.type));\r\n }\r\n } else {\r\n this.contractNames = this.allContractNames;\r\n }\r\n }\r\n\r\n /**\r\n * Activates the `scaffoldOverdueIndicator` class for the next inspections due\r\n *\r\n * @param {*} date\r\n * @returns {boolean}\r\n * @memberof ScaffoldListComponent\r\n */\r\n public dateIsInPast(date): boolean {\r\n return moment(date).isBefore(moment().startOf('day'));\r\n }\r\n\r\n /**\r\n * Shows or hides the scaffolds that are dismantled\r\n *\r\n * @memberof ScaffoldListComponent\r\n */\r\n public toggleShowDismantled(): void {\r\n this.filters.showDismantled = !this.filters.showDismantled;\r\n this.setFilteredScaffolds(this.getFilteredScaffolds());\r\n }\r\n\r\n /**\r\n * Detects if a customer is selected and displays the scaffolds for that specific customer\r\n * If no customer is selected then it will show all scaffolds\r\n *\r\n * @private\r\n * @returns {ScaffoldWebAppData[]}\r\n * @memberof ScaffoldListComponent\r\n */\r\n private getFilteredScaffolds(): ScaffoldWebAppData[] {\r\n if (!this.filters.selectedCustomer) {\r\n return this.allScaffolds;\r\n }\r\n return this.allScaffolds.filter(s => s.CustomerName === this.filters.selectedCustomer.CustomerName);\r\n }\r\n\r\n /**\r\n * Shows or hides the duplicate scaffold numbers on the scaffold list\r\n * Gets called from the UI\r\n *\r\n * @memberof ScaffoldListComponent\r\n */\r\n public toggleShowDuplicates(): void {\r\n this.filters.showOnlyDuplicates = !this.filters.showOnlyDuplicates;\r\n this.setFilteredScaffolds(this.allScaffolds);\r\n\r\n if (!this.filters.showOnlyDuplicates) {\r\n this.searchTermFormControl.enable();\r\n this.allScaffolds.map(s => ((s as any).fixDuplicates = false));\r\n } else {\r\n this.searchTermFormControl.disable();\r\n }\r\n }\r\n\r\n /**\r\n * Activates or deactivates the scaffold group mode\r\n * Gets called from the UI\r\n *\r\n * @memberof ScaffoldListComponent\r\n */\r\n public toggleGroupScaffoldsMode(): void {\r\n this.groupScaffoldsMode = !this.groupScaffoldsMode;\r\n\r\n if (!this.groupScaffoldsMode) {\r\n this.allScaffolds.map(s => ((s as any).group = false));\r\n }\r\n }\r\n\r\n /**\r\n * Part of the duplicates feature shows the list of scaffolds to fix\r\n *\r\n * @returns {boolean}\r\n * @memberof ScaffoldListComponent\r\n */\r\n public anyScaffoldsSelectedForFix(): boolean {\r\n return this.filteredScaffolds.some(s => (s as any).fixDuplicates);\r\n }\r\n\r\n /**\r\n * Part of the group scaffolds mode, detects if there is more than one scaffold selected\r\n *\r\n * @returns {boolean}\r\n * @memberof ScaffoldListComponent\r\n */\r\n public multipleScaffoldsSelectedForGroup(): boolean {\r\n return this.filteredScaffolds.filter(s => (s as any).group).length > 1;\r\n }\r\n\r\n /**\r\n * Disables the fix duplicate scaffolds option on the UI\r\n *\r\n * @memberof ScaffoldListComponent\r\n */\r\n public disableFixDuplicates(): void {\r\n const unselectedDuplicates = (this.filteredScaffolds as any[]).filter(s => s.IsDuplicate && !s.fixDuplicates);\r\n\r\n unselectedDuplicates.map(scaffold => {\r\n scaffold.fixDuplicateDisabled = !some(unselectedDuplicates, s => {\r\n return s.ScaffoldNumber === scaffold.ScaffoldNumber && s.ScaffoldId !== scaffold.ScaffoldId;\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Opens the fix duplicates modal, gets called from UI\r\n *\r\n * @memberof ScaffoldListComponent\r\n */\r\n public onFixDuplicates(): void {\r\n const duplicateScaffolds = this.filteredScaffolds.filter(s => (s as any).fixDuplicates);\r\n const context = {\r\n site: this.site,\r\n allScaffolds: this.allScaffolds,\r\n duplicateScaffolds: duplicateScaffolds,\r\n configuration: this.configuration\r\n };\r\n this.bsModalService.show(FixScaffoldNumbersModalComponent, SSModalConfig.generate(context));\r\n }\r\n\r\n /**\r\n * Opens the Group scaffolds modal, gets called from UI\r\n *\r\n * @memberof ScaffoldListComponent\r\n */\r\n public onGroupScaffolds(): void {\r\n const groupScaffolds = this.filteredScaffolds.filter(s => (s as any).group);\r\n const context = {\r\n site: this.site,\r\n scaffolds: groupScaffolds,\r\n configuration: this.configuration\r\n };\r\n \r\n const modal = this.bsModalService.show(GroupScaffoldsModalComponent, SSModalConfig.generate(context));\r\n modal.onHidden.subscribe(() => {\r\n // Once the modal is hidden, we we call 'toggleGroupScaffoldsMode()' method, to alter the UI related to \r\n // group scaffolds in the application.\r\n this.toggleGroupScaffoldsMode();\r\n })\r\n }\r\n\r\n /**\r\n * Detects when a scaffold is selected from the scaffold list and navigates to that scaffold details page\r\n *\r\n * @param {*} event contains the selected scaffold data\r\n * @memberof ScaffoldListComponent\r\n */\r\n public onSelect(event): void {\r\n this.router.navigate([this.router.routerState.snapshot.url, event.selected[0].ScaffoldId]);\r\n }\r\n\r\n /**\r\n * Allows users to click on the checkboxes on the ngx-datatable column\r\n *\r\n * @param {*} event event of click\r\n * @memberof ScaffoldListComponent\r\n */\r\n public allowClick(event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n /**\r\n * Makes a api call to get the full scaffold export CSV file\r\n *\r\n * @memberof ScaffoldListComponent\r\n */\r\n public onExportCsv(): void {\r\n this.exportService\r\n .exportScaffolds(this.site.SiteId, this.site.SiteName)\r\n .then(result => (this.blobContainer = result), error => console.error(error));\r\n }\r\n\r\n /**\r\n * Detects when the user changes the contracts dropdown\r\n *\r\n * @param {string[]} contractIds\r\n * @memberof HandoversListComponent\r\n */\r\n public onSelectedContractChanged(contractIds: string[]): void {\r\n this.filtersForm.controls.contractList.setValue(contractIds);\r\n // Applies the contract filtering\r\n this.contractFiltering();\r\n const scaffolds = this.allScaffolds.filter(s => contractIds.includes(s.ContractId));\r\n this.selectedScaffolds = scaffolds;\r\n this.setFilteredScaffolds(scaffolds);\r\n }\r\n\r\n /**\r\n * Required by the AutoUnsubscribe()\r\n *\r\n * @memberof ScaffoldListComponent\r\n */\r\n public ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n

Loading Scaffold Data...

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

Welcome to the site scaffolds area

\r\n

No scaffolds to show here! Click the 'Add Scaffold' or 'Import Scaffolds' button to add\r\n your first scaffold.

\r\n

\r\n Before adding a scaffold you need to create at least one contract. Click the \"New Contract\" button below to begin.\r\n

\r\n

\r\n Before adding a scaffold you need to add at least one customer to the system. You can do that\r\n here!\r\n

\r\n \r\n \r\n New Contract\r\n \r\n \r\n Add Scaffold\r\n Import Scaffolds\r\n
\r\n\r\n
\r\n
\r\n
\r\n

Scaffolds

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.ScaffoldNumber }}\r\n

\r\n

{{ row.ScaffoldDescription }}

\r\n
\r\n
\r\n \r\n \r\n {{ row.SpecificLocationDetails }}\r\n \r\n \r\n \r\n \r\n {{ row.CustomerName }}\r\n \r\n \r\n \r\n \r\n {{row.ContractName}}\r\n \r\n \r\n \r\n \r\n {{ row.AreaName }}\r\n \r\n \r\n \r\n \r\n \r\n

-- n/a --

\r\n
\r\n
\r\n \r\n \r\n {{\r\n row.DateOfNextInspection | datetime: 'ddd DD/MM/YY'\r\n }}\r\n

-- n/a --

\r\n
\r\n
\r\n \r\n \r\n {{ row.ScaffoldStatusName }}\r\n \r\n \r\n \r\n \r\n {{ row.QuoteNumber ? row.QuoteNumber : '-' }}\r\n \r\n \r\n \r\n \r\n {{ row.ItemNumber ? row.ItemNumber : '-' }}\r\n \r\n \r\n \r\n \r\n {{ row.OnHireDate | datetime: 'DD/MM/YY'\r\n }}\r\n -\r\n \r\n \r\n \r\n \r\n {{ row.HirePeriod ? row.HirePeriod : '-' }}\r\n \r\n \r\n \r\n \r\n {{ row.EndOfContractDate | datetime: 'DD/MM/YY' }}-\r\n \r\n \r\n \r\n \r\n {{ row.WeeksOnHire }} wks\r\n \r\n \r\n \r\n \r\n 0\"> {{\r\n row.CurrentExtraHire }} wks\r\n -\r\n \r\n \r\n \r\n \r\n {{ row.OffHireDate | datetime:\r\n 'DD/MM/YY' }}\r\n -\r\n \r\n \r\n
\r\n
\r\n Warning: Duplicate scaffold references exist\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\r\nimport { scaffoldStatusIds } from '../../../../../shared/values/scaffold-status-ids';\r\nimport { AddEditScaffoldModalContext } from '../../../../models/add-edit-scaffold-modal-context';\r\nimport { EditScaffoldWebConsoleCommand, ScaffoldWebAppData, ScaffoldCommandService, SiteWebAppData } from 'app/core/hub-api';\r\nimport { cloneDeep } from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { ScaffoldDetailQueryService } from '../../../../services/scaffold-detail-query-service';\r\nimport { SiteScaffoldQueryService } from '../../../../services/site-scaffolds-query.service';\r\nimport { SiteDetailQueryService } from '../../../../services/site-detail-query.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-undismantle-scaffold-modal',\r\n templateUrl: './undismantle-scaffold-modal.component.html',\r\n styleUrls: ['./undismantle-scaffold-modal.component.scss']\r\n})\r\nexport class UndismantleScaffoldModalComponent extends FormComponent implements OnInit {\r\n context: Partial;\r\n site: SiteWebAppData;\r\n scaffold: ScaffoldWebAppData;\r\n validationMessages = {};\r\n scaffoldStatusIds: { [key: string]: string };\r\n form: UntypedFormGroup;\r\n undismantleFormControl: UntypedFormControl;\r\n\r\n constructor(\r\n public modalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private scaffoldCommandService: ScaffoldCommandService,\r\n private siteScaffoldQueryService: SiteScaffoldQueryService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private scaffoldDetailQueryService: ScaffoldDetailQueryService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.scaffoldStatusIds = scaffoldStatusIds;\r\n this.scaffold = cloneDeep(this.context.scaffold);\r\n this.site = this.context.site;\r\n this.undismantleFormControl = new UntypedFormControl(scaffoldStatusIds.incomplete);\r\n this.form = new UntypedFormGroup({\r\n undismantle: this.undismantleFormControl\r\n });\r\n }\r\n\r\n onSubmit(): void {\r\n this.saveInProgress = true;\r\n\r\n const command: EditScaffoldWebConsoleCommand = Object.assign(this.scaffold, {\r\n ScaffoldStatusId: scaffoldStatusIds.incomplete,\r\n OffsetFromUtc: moment().utcOffset()\r\n });\r\n\r\n this.scaffoldCommandService.EditScaffoldWebConsoleCommand(command).subscribe(() => {\r\n const obs$ = forkJoin([\r\n this.siteScaffoldQueryService.siteScaffoldQuery(false, this.site.SiteId),\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteId),\r\n this.scaffoldDetailQueryService.scaffoldDetailQuery(false, this.scaffold.ScaffoldId)\r\n ]);\r\n obs$.subscribe(() => {\r\n this.saveInProgress = false;\r\n this.modalService.setDismissReason(this.scaffold.ScaffoldId);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n

Are you sure you want to \"un-dismantle\" the scaffold?\r\n

\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SiteWebAppData } from 'app/core/hub-api';\r\nimport { ImageModalContext } from '../../../../shared/components/image-modal/image-modal-context';\r\nimport { ImageModalComponent } from '../../../../shared/components/image-modal/image-modal.component';\r\nimport { SiteDetailQueryService } from '../../../services/site-detail-query.service';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\n\r\n@Component({\r\n selector: 'hub-site-detail-container',\r\n templateUrl: './site-detail-container.component.html',\r\n styleUrls: ['./site-detail-container.component.scss']\r\n})\r\nexport class SiteDetailContainerComponent implements OnInit {\r\n\r\n site: SiteWebAppData;\r\n contractReference: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private bsModalService: BsModalService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n const siteReference = this.route.snapshot.params['siteReference'];\r\n this.siteDetailQueryService.siteDetailDataChanges(siteReference).subscribe(updatedSite => this.refreshComponent(updatedSite));\r\n }\r\n\r\n refreshComponent(site: SiteWebAppData): void {\r\n this.site = site;\r\n }\r\n\r\n openImageModal(imageUrl): void {\r\n const context: ImageModalContext = { imageUrl: [imageUrl] };\r\n this.bsModalService.show(ImageModalComponent, SSModalConfig.generate(context));\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{site.SiteName}}

\r\n

{{site.SiteAddress}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\n\r\nimport { compact, flow, join, map, partialRight, pick, sortBy } from 'lodash';\r\nimport { ContactTypeData, ContractContactData, CreateContractContactCommand } from 'app/core/hub-api';\r\n\r\nimport {\r\n MultiStepModalFormComponent,\r\n} from '../../../../shared/components/multi-step-modal-form/multi-step-modal-form.component';\r\nimport { contactTypeIds } from '../../../../shared/values/contact-type-ids';\r\nimport { errorMessages } from '../../../../shared/values/error-messages';\r\nimport { SiteImportModalContext } from '../../../models/site-import-modal-context';\r\nimport { SiteImportModalData } from '../../../models/site-import-modal-data';\r\nimport { SiteImportContactV1 } from '../../../models/site-import-v1/site-import-contact-v1';\r\nimport { emailAddressRegex } from 'app/shared/regex/email-address.regex';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'hub-site-import-contacts',\r\n templateUrl: './site-import-contacts.component.html',\r\n styleUrls: ['./site-import-contacts.component.scss']\r\n})\r\nexport class SiteImportContactsComponent extends MultiStepModalFormComponent implements OnInit {\r\n context: Partial;\r\n\r\n data: SiteImportModalData;\r\n form: UntypedFormGroup;\r\n contactsFormArray: UntypedFormArray;\r\n validationMessages = {\r\n contacts: {\r\n\r\n },\r\n contactName: {\r\n required: errorMessages.required,\r\n }\r\n };\r\n\r\n errorMessages = errorMessages;\r\n\r\n contactTypes: ContactTypeData[];\r\n\r\n contactsFromContract: CreateContractContactCommand[] = [];\r\n\r\n constructor(\r\n public modalService: BsModalService,\r\n ) { super(); }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.contactTypes = map(this.context.configuration.ContactTypes);\r\n\r\n // have we already imported the contacts?\r\n let contacts = this.data.wizard.estimateImportData.contacts ?? this.data.importData.contacts;\r\n let contactsFromContract = [];\r\n\r\n if (!contacts) {\r\n contacts = this.data.siteImportFile.CustomerAddress.Contacts\r\n .map(contact => this.processContact(contact, contactTypeIds.officeContact))\r\n .concat(this.data.siteImportFile.SiteAddress.Contacts.map(contact => this.processContact(contact, contactTypeIds.siteContact)));\r\n\r\n // remove duplicates\r\n contacts = contacts.filter((contact, index, self) => self.findIndex(c => c.ContactName === contact.ContactName) === index);\r\n }\r\n const sortedContacts = sortBy(contacts, 'ContactName');\r\n\r\n // see if we have any contacts from an existing contract\r\n let contractContacts = this.data.wizard.existingContract?.ContractContacts; //ContractContactData\r\n if (contractContacts) {\r\n for (const key in contractContacts) {\r\n if (contractContacts.hasOwnProperty(key)) {\r\n const contact: ContractContactData = contractContacts[key];\r\n if (contact) {\r\n let newContact = Object.assign(new CreateContractContactCommand(), {\r\n ContactName: contact.ContactName,\r\n ContactTypeId: contactTypeIds.officeContact,\r\n EmailAddress: contact.EmailAddress,\r\n PhoneNumber: contact.PhoneNumber,\r\n });\r\n this.contactsFromContract.push(newContact);\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.contactsFormArray = new UntypedFormArray(sortedContacts.map(c => this.createFormGroup(c)));\r\n this.form = new UntypedFormGroup({\r\n contacts: this.contactsFormArray\r\n });\r\n super.ngOnInit();\r\n }\r\n\r\n getContractTypeName(contactTypeId: string): string {\r\n return this.contactTypes.find(ct => ct.ContactTypeId === contactTypeId)?.Title;\r\n }\r\n\r\n processContact(contact: SiteImportContactV1, contactTypeId: string): CreateContractContactCommand {\r\n return Object.assign(new CreateContractContactCommand(), {\r\n ContactName: flow([\r\n pick,\r\n map,\r\n compact,\r\n partialRight(join, ' ')\r\n ])(contact, ['ForeName', 'Surname']),\r\n ContactTypeId: contactTypeId,\r\n PhoneNumber: contact.TelephoneNumber || contact.MobileNumber,\r\n EmailAddress: contact.EmailAddress,\r\n });\r\n }\r\n\r\n onNext(formValues: any): void {\r\n if (this.validateForm()) {\r\n this.saveFormValues(formValues);\r\n this.nextStep();\r\n }\r\n }\r\n\r\n onPrevious(formValues): void {\r\n this.saveFormValues(formValues);\r\n this.previousStep();\r\n }\r\n\r\n saveFormValues(formValues: any): any {\r\n this.data.wizard.estimateImportData.contacts = formValues.contacts.map(c => {\r\n // this.data.importData.contacts = formValues.contacts.map(c => {\r\n return Object.assign(new CreateContractContactCommand(), {\r\n ContactName: c.contactName,\r\n ContactTypeId: c.contactTypeId,\r\n PhoneNumber: c.phoneNumber,\r\n EmailAddress: c.emailAddress,\r\n });\r\n });\r\n }\r\n\r\n createFormGroup(c: CreateContractContactCommand): UntypedFormGroup {\r\n return new UntypedFormGroup({\r\n contactName: new UntypedFormControl(c.ContactName, [Validators.required]),\r\n contactTypeId: new UntypedFormControl(c.ContactTypeId, Validators.required),\r\n phoneNumber: new UntypedFormControl(c.PhoneNumber),\r\n emailAddress: new UntypedFormControl(c.EmailAddress, [Validators.required, Validators.pattern(emailAddressRegex)])\r\n });\r\n }\r\n\r\n onAddContact(): void {\r\n const officeContactId = '089c042b-28ca-463d-8622-ddb81d49866a';\r\n this.contactsFormArray.insert(0, new UntypedFormGroup({\r\n contactName: new UntypedFormControl('', [Validators.required]),\r\n contactTypeId: new UntypedFormControl(officeContactId, Validators.required),\r\n phoneNumber: new UntypedFormControl(''),\r\n emailAddress: new UntypedFormControl('', [Validators.required, Validators.pattern(emailAddressRegex)])\r\n }));\r\n }\r\n\r\n onDeleteContact(index: number): void {\r\n this.contactsFormArray.removeAt(index);\r\n }\r\n}\r\n","
\r\n
\r\n
CUSTOMER CONTACTS
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n

No contacts found

\r\n

Add a contact by tapping the 'add contact' button above.

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
*Name*Email AddressPhone Number*Contact Type
{{contractContact.ContactName}}{{contractContact.EmailAddress}}{{contractContact.PhoneNumber}}{{getContractTypeName(contractContact.ContactTypeId)}}
\r\n
\r\n \r\n
\r\n {{ errorMessages.required }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ errorMessages.emailInvalidShortMessage }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ errorMessages.required }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n * Denotes a required field\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { AfterViewInit, Component, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { compact, find, flow, join, map, partialRight, pick } from 'lodash';\r\nimport {\r\n ConfigurationData,\r\n CreateContractCommand,\r\n CustomerWebAppData,\r\n InspectionStatusEnumEnum,\r\n EditCustomerCommand,\r\n CustomerCommandService,\r\n ContractTypeData,\r\n SiteWebAppData,\r\n ContractData,\r\n CustomerDetailWebAppData,\r\n CreateCustomerCommand,\r\n SiteAreaData,\r\n CreateSiteCommand\r\n} from 'app/core/hub-api';\r\nimport { MultiStepModalFormComponent } from '../../../../shared/components/multi-step-modal-form/multi-step-modal-form.component';\r\nimport { customerStatusIds } from '../../../../shared/values/customer-status-ids';\r\nimport { errorMessages } from '../../../../shared/values/error-messages';\r\nimport { SiteImportModalContext } from '../../../models/site-import-modal-context';\r\nimport { SiteImportModalData } from '../../../models/site-import-modal-data';\r\nimport { CustomerDetailQueryService } from 'app/core/services/customer-detail-query.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { CustomersQueryService } from 'app/core/services/customers-query.service';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { ReferenceGeneratorService } from 'app/core/utility';\r\nimport { SimilarityService } from 'app/shared/services/similarity.service';\r\nimport { ToggleButtonPanelDirective, ToggleButtonPanelEnum } from 'app/shared/components/toggle-button-panel/toggle-button-panel.component';\r\nimport { uniq as _uniq, flatMap as _flatMap, uniqBy, sortBy as _sortBy } from 'lodash';\r\nimport { ReportSitesQueryService } from 'app/core/services/report-sites-query.service';\r\nimport { emailAddressRegex } from 'app/shared/regex/email-address.regex';\r\nimport { mustNotExistValidator } from 'app/shared/validators/must-not-exist.validator';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { SiteDetailQueryService } from 'app/sites/services/site-detail-query.service';\r\nimport { contractStatusIds } from 'app/shared/values/contract-status-ids';\r\n\r\n@Component({\r\n selector: 'hub-site-import-contract',\r\n templateUrl: './site-import-contract.component.html',\r\n styleUrls: ['./site-import-contract.component.scss']\r\n})\r\nexport class SiteImportContractComponent extends MultiStepModalFormComponent implements OnInit, AfterViewInit {\r\n context: Partial;\r\n // existingCustomer: CustomerWebAppData;\r\n // existingContract: ContractData;\r\n data: SiteImportModalData;\r\n allCustomers: CustomerWebAppData[];\r\n filteredCustomers: CustomerWebAppData[];\r\n otherCustomerReferences: string[];\r\n otherContractReferences: string[] = [];\r\n configuration: ConfigurationData;\r\n contractTypes: ContractTypeData[];\r\n\r\n form: UntypedFormGroup;\r\n customerForm: UntypedFormGroup;\r\n contractForm: UntypedFormGroup;\r\n\r\n // contract form\r\n contractNameFormControl: UntypedFormControl;\r\n contractTypeFormControl: UntypedFormControl;\r\n contractDescriptionFormControl: UntypedFormControl;\r\n customerFormControl: UntypedFormControl;\r\n contractReferenceFormControl: UntypedFormControl;\r\n mainContractorFormControl: UntypedFormControl;\r\n submitWithoutSignatureFormControl: UntypedFormControl;\r\n inspectionStatusFormControl: UntypedFormControl;\r\n\r\n // Customer form \r\n customerNameFormControl: UntypedFormControl;\r\n customer: CustomerDetailWebAppData = new CustomerDetailWebAppData();\r\n customerReferenceFormControl: UntypedFormControl;\r\n customerAddressFormControl: UntypedFormControl;\r\n telephoneFormControl: UntypedFormControl;\r\n emailFormControl: UntypedFormControl;\r\n websiteFormControl: UntypedFormControl;\r\n /** Agreed schedule of rates radio control */\r\n agreedScheduleOfRatesFormControl: UntypedFormControl;\r\n /** Cameras allowed radio control */\r\n camerasAllowedFormControl: UntypedFormControl;\r\n /** Dismantle without offhire radio control */\r\n dismantleWithoutOffhireFormControl: UntypedFormControl;\r\n\r\n showCustomerForm: boolean;\r\n customerEditMode: boolean;\r\n customerAdded: boolean;\r\n showAreYouSure: boolean;\r\n deletedCustomer: boolean;\r\n noCustomerFound: boolean;\r\n\r\n customerErrorMessages = {\r\n // customer form\r\n customerName: {\r\n required: errorMessages.required\r\n },\r\n customerReference: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.customerReferenceMustBeUnique\r\n },\r\n email: {\r\n pattern: errorMessages.emailInvalid\r\n },\r\n }\r\n\r\n contractErrorMessages = {\r\n // contract form\r\n customer: {\r\n required: errorMessages.required\r\n },\r\n contractName: {\r\n required: errorMessages.required\r\n },\r\n contractReference: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.contractReferenceMustBeUnique\r\n },\r\n mainContractor: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.oneMainContractor\r\n },\r\n submitWithoutSignature: {\r\n required: errorMessages.required\r\n },\r\n agreedScheduleOfRates: {\r\n required: errorMessages.required\r\n },\r\n inspectionStatusFormControl: {\r\n required: errorMessages.required\r\n }\r\n }\r\n\r\n validationMessages = {\r\n // customer form\r\n customerName: {\r\n required: errorMessages.required\r\n },\r\n customerReference: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.customerReferenceMustBeUnique\r\n },\r\n email: {\r\n pattern: errorMessages.emailInvalid\r\n },\r\n // contract form\r\n customer: {\r\n required: errorMessages.required\r\n },\r\n contractName: {\r\n required: errorMessages.required\r\n },\r\n contractReference: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.contractReferenceMustBeUnique\r\n },\r\n mainContractor: {\r\n required: errorMessages.required,\r\n mustNotExist: errorMessages.oneMainContractor\r\n },\r\n submitWithoutSignature: {\r\n required: errorMessages.required\r\n },\r\n agreedScheduleOfRates: {\r\n required: errorMessages.required\r\n },\r\n inspectionStatusFormControl: {\r\n required: errorMessages.required\r\n }\r\n };\r\n\r\n inspectionStatusEnum = InspectionStatusEnumEnum;\r\n customerName: string;\r\n selectedPanelCustomers: ToggleButtonPanelEnum;\r\n selectedPanelContracts: ToggleButtonPanelEnum;\r\n selectedItems: any;\r\n selectedItem: any;\r\n pageLoaded = false;\r\n /** Stores any error message of the api calls */\r\n serverError = '';\r\n /** Stores all sites */\r\n allSites: SiteWebAppData[];\r\n allContracts: ContractData[];\r\n filteredContractsForCustomer: ContractData[] = [];\r\n /** Decides if the customer panel should be shown */\r\n hideNewCustomerPanel: boolean;\r\n /** Decides if the existing customer panel should be shown */\r\n hideExistingCustomerPanel: boolean;\r\n /** Decides if the contract panel should be shown */\r\n hideExistingContractPanel: boolean;\r\n /** Decides if the contract panel should be shown */\r\n hideNewContractPanel: boolean;\r\n\r\n // required for UI usage\r\n ToggleButtonPanelEnum = ToggleButtonPanelEnum;\r\n contractsInProgress: boolean = false;\r\n customersInProgress: boolean = false;\r\n contractDirectives: ToggleButtonPanelDirective[] = [\r\n {\r\n type: 'date',\r\n property: 'CreationDate',\r\n tooltip: 'Creation Date',\r\n format: 'll'\r\n },\r\n {\r\n type: 'signatureRequired',\r\n property: 'CanSubmitDocumentsWithoutSignature'\r\n },\r\n {\r\n type: 'principalContract',\r\n property: 'IsPrincipalContract',\r\n tooltip: 'is Principal Contract?'\r\n },\r\n {\r\n type: 'dismantleRequired',\r\n property: 'AllowDismantleWithoutOffhire',\r\n tooltip: 'Can dismantle without offhire?'\r\n }\r\n ];\r\n\r\n isExistingCustomer: boolean;\r\n isExistingContract: boolean;\r\n isNewCustomer: boolean;\r\n isNewContract: boolean;\r\n isNewSite: boolean;\r\n isExistingSite: boolean;\r\n\r\n selectedCustomerItems: any;\r\n selectedContractItems: any;\r\n selectedSite: SiteWebAppData | CreateSiteCommand;\r\n\r\n constructor(\r\n public referenceGeneratorService: ReferenceGeneratorService,\r\n private readonly customerCommandService: CustomerCommandService,\r\n private readonly customerDetailQueryService: CustomerDetailQueryService,\r\n private readonly customersQueryService: CustomersQueryService,\r\n private readonly toasterService: ToasterService,\r\n public modalService: BsModalService,\r\n private readonly similarityService: SimilarityService,\r\n private readonly reportSitesQueryService: ReportSitesQueryService,\r\n private readonly siteDetailQueryService: SiteDetailQueryService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.customersInProgress = true;\r\n this.reportSitesQueryService.reportSitesQuery(false).subscribe(sites => {\r\n this.allSites = sites;\r\n this.data.allSites = sites; // we need the site area for the sites which we can get here\r\n this.selectedSite = this.data.wizard.selectedSitePanel === ToggleButtonPanelEnum.Panel1 ? this.data.wizard.existingSite : this.data.wizard.newSite;\r\n\r\n \r\n this.isExistingSite = !!(this.data.wizard.existingSite && this.data.wizard.selectedSitePanel === ToggleButtonPanelEnum.Panel1);\r\n this.isNewSite = !!(this.data.wizard.newSite && this.data.wizard.selectedSitePanel === ToggleButtonPanelEnum.Panel2);\r\n\r\n // Get the site areas from the existing site if we have one and the selected site is an existing site on panel 1\r\n if (this.isExistingSite) {\r\n // if we have an existing site then update the site data so it has areas\r\n // we have a risk that if they user navigates back and forth we will lose the areas added at a later stage of the wizard\r\n const updatedSite = find(sites, site => site.SiteId === this.data.wizard.existingSite.SiteId);\r\n this.data.wizard.existingSite.SiteAreas = updatedSite?.SiteAreas\r\n\r\n // Convert the object values to an array and map to SiteAreaDetails\r\n this.data.wizard.areas = Object.values(updatedSite?.SiteAreas).map(siteArea => {\r\n return siteArea;\r\n }).filter((area) => area.Deleted === false); // filter out deleted areas\r\n }\r\n\r\n // add a default area if there are none\r\n if ((!this.data.wizard.areas || this.data.wizard.areas.length === 0) && !this.data.wizard.areas?.find(area => area.IsDefaultArea)) {\r\n var newDefaultArea = Object.assign(new SiteAreaData(), { AreaName: 'Default Area', SiteAreaId: UUID.UUID(), IsDefaultArea: true }); // we are not adding a siteId here because we don't know - assuming new site\r\n this.data.wizard.areas = [newDefaultArea];\r\n }\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.customerAdded = !!this.data.importData.customer;\r\n this.showCustomerForm = false;\r\n this.allCustomers = this.context.customers.sort((a, b) => a.CustomerName.localeCompare(b.CustomerName));\r\n this.otherCustomerReferences = this.allCustomers?.map(c => c.CustomerReference) ?? [];\r\n this.filteredCustomers = this.allCustomers.filter(c => c.CustomerStatusId === customerStatusIds.active);\r\n\r\n let contracts = _flatMap(this.allSites.map(s => s.Contracts).filter(c => c !== undefined));\r\n contracts = contracts.filter(c => c && c.ContractStatusId === contractStatusIds.open); // only active contracts\r\n this.allContracts = _sortBy(contracts)\r\n .map(i => {\r\n (i as any).SiteName = this.getSiteName((i as any).SiteId);\r\n (i as any).CustomerName = this.allCustomers.find(c => c.CustomerId === (i as any).CustomerId).CustomerName;\r\n return i;\r\n });\r\n\r\n // get the contracts for the existing site if we have one\r\n if (this.isExistingSite) {\r\n // get the fuller site details\r\n let site = this.data.allSites.find(s => s.SiteId === this.data.wizard.existingSite.SiteId);\r\n // get the contracts for the existing site\r\n if (site)\r\n this.otherContractReferences = site.Contracts?.map(c => c.ContractReference) ?? [];\r\n }\r\n this.configuration = this.context.configuration;\r\n this.contractTypes = map(this.configuration.ContractTypes);\r\n\r\n // create new customer and contract forms using either the wizard or the import values as defaults\r\n if (!this.isExistingCustomer && !this.isNewCustomer)\r\n this.importCustomerCheck();\r\n\r\n this.createContractForm();\r\n this.createCustomerForm();\r\n \r\n // determine the state of the wizard\r\n this.isExistingCustomer = !!(this.data.wizard.existingCustomer && this.data.wizard.selectedCustomerPanel === ToggleButtonPanelEnum.Panel1);\r\n this.isNewCustomer = !!(this.data.wizard.newCustomer && this.data.wizard.selectedCustomerPanel === ToggleButtonPanelEnum.Panel2);\r\n this.isExistingContract = !!(this.data.wizard.existingContract && this.data.wizard.selectedContractPanel === ToggleButtonPanelEnum.Panel1);\r\n this.isNewContract = !!(this.data.wizard.newContract && this.data.wizard.selectedContractPanel === ToggleButtonPanelEnum.Panel2);\r\n \r\n //determine the state of the panels\r\n this.selectedPanelCustomers = this.data.wizard.selectedCustomerPanel ?? ToggleButtonPanelEnum.Panel1;\r\n this.selectedPanelContracts = this.data.wizard.selectedContractPanel ?? ToggleButtonPanelEnum.Panel1;\r\n this.hideExistingContractPanel = this.isNewSite || this.isNewCustomer;\r\n\r\n this.applyPanelLogic();\r\n this.pageLoaded = true;\r\n super.ngOnInit();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.customersInProgress = false;\r\n }\r\n\r\n /**\r\n * Gets the site name from the given siteId\r\n *\r\n * @private\r\n * @param {string} siteId\r\n * @returns {string}\r\n */\r\n private getSiteName(siteId: string): string {\r\n const site = this.allSites.find(c => c.SiteId === siteId);\r\n return site && site.SiteName ? site.SiteName : '';\r\n }\r\n\r\n onSelectedPanelCustomersChange(selectedPanel: ToggleButtonPanelEnum): void {\r\n // don't reload the data if the same panel is selected\r\n if (selectedPanel == this.selectedPanelCustomers)\r\n return;\r\n\r\n this.selectedPanelCustomers = selectedPanel;\r\n this.data.wizard.selectedCustomerPanel = selectedPanel;\r\n\r\n switch (selectedPanel) {\r\n case ToggleButtonPanelEnum.Panel1: // select existing customer panel\r\n break;\r\n case ToggleButtonPanelEnum.Panel2: // select new customer panel\r\n this.createCustomerForm();\r\n this.customerForm.patchValue(this.data.wizard.newCustomer);\r\n break;\r\n }\r\n\r\n if (this.selectedPanelCustomers == ToggleButtonPanelEnum.Panel2) {\r\n // if a new customer is selected then it can only have new contracts\r\n this.selectedPanelContracts = ToggleButtonPanelEnum.Panel2;\r\n this.hideExistingContractPanel = true;\r\n } else {\r\n // it should be possible to select an existing contract\r\n this.hideExistingContractPanel = this.isNewSite;\r\n }\r\n }\r\n\r\n onSelectedPanelContractsChange(selectedPanel: ToggleButtonPanelEnum): void {\r\n\r\n this.selectedPanelContracts = selectedPanel;\r\n this.data.wizard.selectedContractPanel = selectedPanel;\r\n\r\n // clear out wizard values if the panel is changed\r\n // this.contractForm.reset();\r\n switch (selectedPanel) {\r\n case ToggleButtonPanelEnum.Panel1: // select existing contract panel\r\n break;\r\n case ToggleButtonPanelEnum.Panel2: // select new contract panel\r\n this.createContractForm();\r\n this.contractForm.patchValue(this.data.wizard.newContract);\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Applies logic to toggle between different panels for customers and contracts.\r\n * \r\n * @param selectedPanelCustomers - The selected panel for customers, can be Panel1 or Panel2.\r\n * @param selectedPanelContracts - The selected panel for contracts, can be Panel1 or Panel2.\r\n * \r\n * This method updates the state of the selected panels and hides or shows the existing panels\r\n * based on the provided parameters. If no parameters are provided, it defaults to Panel1.\r\n */\r\n private applyPanelLogic(): void {\r\n\r\n if (this.isExistingCustomer)\r\n this.onSelectedCustomerChange(this.data.wizard.existingCustomer);\r\n\r\n if (this.isExistingContract)\r\n this.onSelectedContractChange(this.data.wizard.existingContract);\r\n\r\n // check if we have selected customer panel from the wizard\r\n if (this.data.wizard.selectedCustomerPanel) {\r\n this.onSelectedPanelCustomersChange(this.data.wizard.selectedCustomerPanel);\r\n }\r\n\r\n // check if we have selected contract panel from the wizard\r\n if (this.data.wizard.selectedContractPanel) {\r\n this.onSelectedPanelContractsChange(this.data.wizard.selectedContractPanel);\r\n }\r\n\r\n this.selectedPanelCustomers = this.data.wizard.selectedCustomerPanel ?? ToggleButtonPanelEnum.Panel1;\r\n this.selectedPanelContracts = this.data.wizard.selectedContractPanel ?? ToggleButtonPanelEnum.Panel1;\r\n\r\n // in case there is no customers\r\n if (this.allCustomers.length == 0) {\r\n this.hideExistingCustomerPanel = true;\r\n this.onSelectedPanelCustomersChange(ToggleButtonPanelEnum.Panel2);\r\n this.onSelectedPanelContractsChange(ToggleButtonPanelEnum.Panel2);\r\n } else {\r\n this.hideExistingCustomerPanel = false;\r\n this.hideNewCustomerPanel = false;\r\n }\r\n\r\n // in case the customer exists\r\n if (this.isExistingCustomer) {\r\n this.hideExistingCustomerPanel = false;\r\n this.onSelectedPanelCustomersChange(ToggleButtonPanelEnum.Panel1);\r\n this.onSelectedCustomerChange(this.data.wizard.existingCustomer);\r\n\r\n // in case there are contracts for that customer\r\n if (this.filteredContractsForCustomer) {\r\n // in case there are contracts for the customer it should enable the existing contract panel\r\n this.hideExistingContractPanel = this.filteredContractsForCustomer.length == 0 || this.isNewSite;\r\n this.hideNewContractPanel = false;\r\n let whichPanel = this.data.wizard.selectedContractPanel ?? (this.data.wizard.newContract ? ToggleButtonPanelEnum.Panel2 : ToggleButtonPanelEnum.Panel1);\r\n this.onSelectedPanelContractsChange(whichPanel);\r\n } else {\r\n this.hideExistingContractPanel = true;\r\n this.hideNewContractPanel = false;\r\n // if there are no contracts for that customer will create a new contract\r\n this.onSelectedPanelContractsChange(ToggleButtonPanelEnum.Panel2);\r\n }\r\n\r\n return;\r\n }\r\n\r\n // in case the customer does not exist\r\n if (this.isNewCustomer || (!this.isExistingCustomer && !this.isNewCustomer)) {\r\n this.hideExistingCustomerPanel = false;\r\n this.hideNewCustomerPanel = false;\r\n this.hideExistingContractPanel = true;\r\n this.hideNewContractPanel = false;\r\n this.onSelectedPanelCustomersChange(ToggleButtonPanelEnum.Panel2);\r\n this.onSelectedPanelContractsChange(ToggleButtonPanelEnum.Panel2);\r\n return;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n importCustomerCheck(selectedPanelCustomers?: ToggleButtonPanelEnum, selectedPanelContracts?: ToggleButtonPanelEnum): void {\r\n if (!this.data.importData.contract) {\r\n this.data.importData.contract = this.createNewContractCommand();\r\n }\r\n\r\n // Required for when navigating back and forth after re-activating a deleted customer\r\n if (this.data.importData.contract && !this.data.importData.contract.CustomerId) {\r\n this.data.importData.contract.CustomerId = this.tryGetCustomerId();\r\n }\r\n\r\n // if it can't find the customer then if the customer is available on the import it should create a new customer\r\n if (!this.data.wizard.existingCustomer && !this.data.wizard.newCustomer) {\r\n this.data.wizard.newCustomer = this.createNewCustomer();\r\n }\r\n // sets the selected customer\r\n this.customerFormControl = new UntypedFormControl(this.data.importData.contract?.CustomerId ?? null, Validators.required);\r\n if (this.customerAdded) {\r\n // A bit of a hack to make validation work.\r\n this.customerFormControl.setValue({});\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Creates a new customer based on the imported site file data.\r\n * \r\n * This method checks if the `CustomerAddress` is present in the `siteImportFile` data.\r\n * If it is, it maps the address fields, generates a customer reference, and assigns\r\n * the new customer data to the `importData` and `wizard` objects.\r\n * \r\n * @private\r\n * @returns {CreateCustomerCommand} The new customer data or from the import file.\r\n */\r\n private createNewCustomer(): CreateCustomerCommand {\r\n\r\n let newCustomer = new CreateCustomerCommand();\r\n newCustomer.CustomerReference = this.referenceGeneratorService.incrementalReference(this.otherCustomerReferences, this.configuration.CustomerReferenceLength);\r\n\r\n if (this.data.siteImportFile.CustomerAddress) {\r\n newCustomer = Object.assign(newCustomer, {\r\n CustomerName: this.data.siteImportFile.CustomerAddress.AddressName,\r\n CustomerAddress: flow([\r\n pick,\r\n map,\r\n compact,\r\n partialRight(join, ', ')\r\n ])(this.data.siteImportFile.CustomerAddress, ['AddressLines', 'Town', 'County', 'Country', 'Postcode']),\r\n PhoneNumber: this.data.siteImportFile.CustomerAddress.TelephoneNumber || this.data.siteImportFile.CustomerAddress.MobileNumber,\r\n EmailAddress: this.data.siteImportFile.CustomerAddress.EmailAddress,\r\n Website: this.data.siteImportFile.CustomerAddress.Website\r\n });\r\n this.data.importData.customer = newCustomer;\r\n return newCustomer;\r\n }\r\n\r\n }\r\n\r\n // consistent way to create a new contract\r\n private createNewContractCommand(): CreateContractCommand {\r\n return Object.assign(new CreateContractCommand(), {\r\n CustomerId: this.tryGetCustomerId(),\r\n IsPrincipalContract: false,\r\n CanSubmitDocumentsWithoutSignature: false,\r\n IsScheduleRatesAgreed: false,\r\n ContractInspectionStatus: InspectionStatusEnumEnum.Normal,\r\n ContractReference: this.referenceGeneratorService.incrementalReference(this.otherContractReferences, this.configuration.ContractReferenceLength),\r\n AllowDismantleWithoutOffhire: false,\r\n IsCameraAllowed: this.selectedSite?.IsCameraAllowed ?? false,\r\n });\r\n }\r\n\r\n\r\n // create a new customer form and bind it to the wizard new customer\r\n private createCustomerForm(): void {\r\n\r\n // see if we have been here already with the wizard or if we have an import customer\r\n this.data.wizard.newCustomer = this.data.wizard.newCustomer ?? this.data.importData.customer ?? new CreateCustomerCommand();\r\n\r\n // get the customer references for the other customers if this is an existing site\r\n this.customerNameFormControl = new UntypedFormControl(this.data.wizard.newCustomer?.CustomerName, [Validators.required]);\r\n\r\n this.customerReferenceFormControl = new UntypedFormControl(this.data.wizard.newCustomer?.CustomerReference, [\r\n Validators.required, mustNotExistValidator(this.otherCustomerReferences)\r\n ]);\r\n this.customerAddressFormControl = new UntypedFormControl(this.data.wizard.newCustomer?.CustomerAddress);\r\n this.telephoneFormControl = new UntypedFormControl(this.data.wizard.newCustomer?.PhoneNumber);\r\n this.emailFormControl = new UntypedFormControl(this.data.wizard.newCustomer?.EmailAddress, Validators.pattern(emailAddressRegex));\r\n this.websiteFormControl = new UntypedFormControl(this.data.wizard.newCustomer?.Website);\r\n\r\n this.customerForm = new UntypedFormGroup({\r\n customerName: this.customerNameFormControl,\r\n customerReference: this.customerReferenceFormControl,\r\n customerAddress: this.customerAddressFormControl,\r\n telephone: this.telephoneFormControl,\r\n email: this.emailFormControl,\r\n website: this.websiteFormControl\r\n });\r\n }\r\n\r\n private createContractForm(): void {\r\n if (this.contractForm)\r\n return\r\n\r\n // see if we have been here already with the wizard\r\n let contract = this.data.wizard.newContract = this.data.wizard.newContract ?? this.data.importData.contract ?? this.createNewContractCommand();\r\n\r\n this.contractNameFormControl = new UntypedFormControl(contract.ContractName, Validators.required);\r\n this.contractTypeFormControl = new UntypedFormControl(contract.ContractTypeId || '');\r\n this.contractDescriptionFormControl = new UntypedFormControl(contract.Description);\r\n this.contractReferenceFormControl = new UntypedFormControl(contract.ContractReference, Validators.required);\r\n this.mainContractorFormControl = new UntypedFormControl(contract.IsPrincipalContract);\r\n this.submitWithoutSignatureFormControl = new UntypedFormControl(contract.CanSubmitDocumentsWithoutSignature);\r\n this.inspectionStatusFormControl = new UntypedFormControl(contract.ContractInspectionStatus);\r\n this.agreedScheduleOfRatesFormControl = new UntypedFormControl(contract.IsScheduleRatesAgreed ?? false);\r\n this.camerasAllowedFormControl = new UntypedFormControl(contract.IsCameraAllowed ?? this.selectedSite?.IsCameraAllowed ?? false);\r\n this.dismantleWithoutOffhireFormControl = new UntypedFormControl(contract.AllowDismantleWithoutOffhire ?? false);\r\n\r\n this.contractForm = new UntypedFormGroup({\r\n contractName: this.contractNameFormControl,\r\n contractType: this.contractTypeFormControl,\r\n contractDescription: this.contractDescriptionFormControl,\r\n contractReference: this.contractReferenceFormControl,\r\n mainContractor: this.mainContractorFormControl,\r\n agreedScheduleOfRates: this.agreedScheduleOfRatesFormControl,\r\n submitWithoutSignature: this.submitWithoutSignatureFormControl,\r\n inspectionStatus: this.inspectionStatusFormControl,\r\n camerasAllowed: this.camerasAllowedFormControl,\r\n dismantleWithoutOffhire: this.dismantleWithoutOffhireFormControl,\r\n });\r\n }\r\n\r\n onNext(formValues: any): void {\r\n\r\n // clear any previous errors \r\n this.serverError = undefined;\r\n\r\n let passedValidation = true;\r\n\r\n // do customer form validation if required\r\n if (this.data.wizard.selectedCustomerPanel === ToggleButtonPanelEnum.Panel2) {\r\n this.validateThisForm(this.customerForm, this.customerErrorMessages)\r\n if (this.selectedPanelCustomers == ToggleButtonPanelEnum.Panel2 && !this.customerForm?.valid)\r\n passedValidation = false;\r\n }\r\n\r\n //do contract form validation if required\r\n if (this.data.wizard.selectedContractPanel === ToggleButtonPanelEnum.Panel2) {\r\n this.validateThisForm(this.contractForm, this.contractErrorMessages)\r\n if (this.selectedPanelContracts == ToggleButtonPanelEnum.Panel2 && !this.contractForm?.valid)\r\n passedValidation = false;\r\n }\r\n\r\n if (!passedValidation)\r\n return;\r\n\r\n // logic to either check that either an existing customer is selected\r\n // or a new one has been created\r\n if (this.selectedPanelCustomers == ToggleButtonPanelEnum.Panel1 && !this.data.wizard.existingCustomer) {\r\n this.serverError = 'Please either select and existing or add a new customer.';\r\n return;\r\n }\r\n\r\n // check that the selected panels on the wizard are up to date\r\n this.data.wizard.selectedCustomerPanel = this.selectedPanelCustomers;\r\n this.data.wizard.selectedContractPanel = this.selectedPanelContracts;\r\n\r\n // logic to either check that either an existing contract is selected\r\n // or a new one has been created\r\n if (this.selectedPanelContracts == ToggleButtonPanelEnum.Panel1) {\r\n if (!this.data.wizard.existingContract) {\r\n this.serverError = 'Please either select and existing or add a new contract.';\r\n return;\r\n }\r\n\r\n // get the contacts for the selected contract\r\n const siteDetailChanges = this.siteDetailQueryService.siteDetailQuery(false, this.data.wizard.existingSite.SiteReference)\r\n .subscribe((site) => {\r\n let fullSite = site;\r\n let thisContractDetails = site.Contracts.find(contract => contract.ContractId === this.data.wizard.existingContract.ContractId);\r\n this.data.wizard.existingContract = thisContractDetails;\r\n\r\n // navigate to the next step\r\n this.saveFormValues(formValues);\r\n this.nextStep();\r\n return;\r\n\r\n });\r\n // we need to return here because the above call is async\r\n return\r\n }\r\n\r\n this.saveFormValues(formValues);\r\n this.nextStep();\r\n\r\n }\r\n\r\n onPrevious(formValues): void {\r\n this.saveFormValues(formValues);\r\n this.previousStep();\r\n }\r\n\r\n saveFormValues(formValues: any): void {\r\n // the logic is that if we have existing customer or contract then we are using that\r\n // otherwise we use the form values from the customer and contract forms\r\n this.saveContractFormValues(this.contractForm.value);\r\n this.saveCustomerFormValues(this.customerForm.value);\r\n }\r\n\r\n // update the customer form values if we are on the new customer panel\r\n saveCustomerFormValues(formValues: any): CreateCustomerCommand {\r\n if (this.selectedPanelCustomers == ToggleButtonPanelEnum.Panel1) {\r\n this.data.wizard.estimateImportData.customer = Object.assign(new CreateCustomerCommand(), this.data.wizard.existingCustomer);\r\n }\r\n\r\n if (this.selectedPanelCustomers == ToggleButtonPanelEnum.Panel2) {\r\n // update wizard contract \r\n this.data.wizard.estimateImportData.customer = new CreateCustomerCommand();\r\n let wizardCustomer = this.data.wizard.newCustomer = this.data.wizard.estimateImportData.customer;\r\n wizardCustomer.CustomerName = formValues.customerName;\r\n wizardCustomer.CustomerReference = formValues.customerReference;\r\n wizardCustomer.CustomerAddress = formValues.customerAddress;\r\n wizardCustomer.PhoneNumber = formValues.telephone;\r\n wizardCustomer.EmailAddress = formValues.email;\r\n wizardCustomer.Website = formValues.website;\r\n\r\n return this.data.wizard.estimateImportData.customer;\r\n }\r\n }\r\n\r\n // update the contract form values if we are on the new contract panel\r\n saveContractFormValues(formValues: any): CreateContractCommand {\r\n\r\n if (this.selectedPanelContracts == ToggleButtonPanelEnum.Panel1) {\r\n this.data.wizard.estimateImportData.contract = Object.assign(new CreateContractCommand(), this.data.wizard.existingContract);\r\n }\r\n\r\n if (this.selectedPanelContracts == ToggleButtonPanelEnum.Panel2) {\r\n // update wizard contract\r\n this.data.wizard.estimateImportData.contract = this.createNewContractCommand(); //new CreateContractCommand();\r\n let wizardContract = this.data.wizard.newContract = this.data.wizard.estimateImportData.contract;\r\n wizardContract.ContractName = formValues.contractName;\r\n wizardContract.ContractTypeId = formValues.contractType;\r\n wizardContract.Description = formValues.contractDescription;\r\n wizardContract.CustomerId = formValues.customer ? formValues.customer : undefined;\r\n wizardContract.ContractReference = formValues.contractReference;\r\n wizardContract.IsPrincipalContract = formValues.mainContractor ?? false;\r\n wizardContract.CanSubmitDocumentsWithoutSignature = formValues.submitWithoutSignature ?? false;\r\n wizardContract.ContractInspectionStatus = formValues.inspectionStatus ?? InspectionStatusEnumEnum.Normal;\r\n wizardContract.IsScheduleRatesAgreed = formValues.agreedScheduleOfRates ?? false;\r\n wizardContract.IsCameraAllowed = formValues.camerasAllowed ?? false;\r\n wizardContract.AllowDismantleWithoutOffhire = formValues.dismantleWithoutOffhire ?? false;\r\n return this.data.wizard.estimateImportData.contract;\r\n }\r\n }\r\n\r\n /**\r\n * Tries to get the customer ID based on the site import file data.\r\n * @returns The customer ID if found, otherwise undefined.\r\n */\r\n tryGetCustomerId(): string {\r\n // if it is an existing customer then we have the customer id\r\n if (this.data.wizard.existingCustomer && !(this.data.importData.contract && !this.data.importData.contract.CustomerId && !this.data.importData.contract.CustomerId)) return;\r\n // if we have a customer reference then we can try to find the customer\r\n let thisCustomer = find(this.allCustomers, customer => {\r\n const addressName = this.data.siteImportFile.CustomerAddress?.AddressName?.toLowerCase().trim();\r\n const addressGroup = (this.data.siteImportFile.CustomerAddress as any)?.AddressGroup?.toLowerCase().trim();\r\n const customerName = customer.CustomerName.toLowerCase().trim();\r\n\r\n if (!addressGroup && !addressName) {\r\n return false;\r\n }\r\n const similarityGroup = addressGroup ? this.similarityService.calculateSimilarity(customerName, addressGroup) : 0;\r\n const similarityName = addressName ? this.similarityService.calculateSimilarity(customerName, addressName) : 0;\r\n const similarity = Math.max(similarityGroup, similarityName);\r\n return similarity >= 0.8;\r\n });\r\n\r\n if (thisCustomer && thisCustomer.CustomerStatusId === customerStatusIds.inactive) {\r\n this.deletedCustomer = true;\r\n }\r\n\r\n let customerId = thisCustomer && !this.deletedCustomer ? thisCustomer.CustomerId : undefined;\r\n\r\n if (customerId) {\r\n // if we find the existing customer then we should bring that to the top of the list\r\n if (this.data.wizard.existingCustomer)\r\n this.allCustomers = [this.data.wizard.existingCustomer, ...this.allCustomers.filter(site => site.CustomerId !== customerId)];\r\n }\r\n\r\n return customerId;\r\n }\r\n\r\n\r\n onAddCustomer(): void {\r\n this.context.customerName = this.customerName;\r\n this.customerEditMode = false;\r\n this.showCustomerForm = true;\r\n }\r\n\r\n // are we still using this ?? I don't think so GE\r\n onReactivateCustomer(): void {\r\n this.customerDetailQueryService.customerDetailQuery(true, this.data.wizard.existingCustomer.CustomerReference).subscribe(deletedCustomer => {\r\n let command = new EditCustomerCommand();\r\n command = Object.assign(deletedCustomer, command, { CustomerStatusId: customerStatusIds.active });\r\n const commandResult = this.customerCommandService.EditCustomerCommand(command);\r\n commandResult.subscribe(() => {\r\n const obs$ = forkJoin([\r\n this.customerDetailQueryService.customerDetailQuery(false, deletedCustomer.CustomerReference),\r\n this.customersQueryService.customersQuery(false)\r\n ]);\r\n obs$.subscribe(() => {\r\n this.toasterService.pop('success', 'Customer Reactivated', `${this.data.wizard.existingCustomer.CustomerName} is now active.`);\r\n this.deletedCustomer = false;\r\n this.customerFormControl.setValue(deletedCustomer.CustomerName);\r\n this.data.wizard.existingCustomer.CustomerStatusId = customerStatusIds.active;\r\n this.data.importData.contract.CustomerId = deletedCustomer.CustomerId;\r\n });\r\n }, this.serverErrorCallback);\r\n });\r\n }\r\n\r\n /**\r\n * Triggered by UI, gets the selected customer\r\n *\r\n * @param {*} customerId\r\n * @memberof SiteImportContractComponent\r\n */\r\n public onSelectedCustomer(customerId: string): void {\r\n this.contractForm.controls.customer.setValue(customerId);\r\n }\r\n\r\n // when a customer is selected from the list\r\n onSelectedCustomerChange(item: CustomerWebAppData): void {\r\n\r\n this.contractsInProgress = true;\r\n this.data.wizard.existingCustomer = item;\r\n this.selectedCustomerItems = item ? [item] : [];\r\n this.selectedContractItems = [];\r\n this.refreshContractList();\r\n setTimeout(() => {\r\n this.contractsInProgress = false;\r\n }, 500);\r\n }\r\n\r\n // when a contract is selected from the list\r\n onSelectedContractChange(item: any): void {\r\n this.selectedContractItems = item ? [item] : [];\r\n this.data.wizard.existingContract = item;\r\n }\r\n\r\n /**\r\n * Refreshes the list of contracts by filtering based on the selected customer and site.\r\n */\r\n refreshContractList(): void { \r\n if(this.isNewSite)\r\n return;\r\n\r\n this.filteredContractsForCustomer = this.allContracts.filter(c => c.CustomerId === this.data.wizard.existingCustomer?.CustomerId && c.SiteId === this.data.wizard.existingSite?.SiteId);\r\n if (!this.filteredContractsForCustomer || this.filteredContractsForCustomer.length == 0) {\r\n this.selectedPanelContracts = ToggleButtonPanelEnum.Panel2;\r\n this.hideExistingContractPanel = true;\r\n } else {\r\n // this.selectedPanelContracts = ToggleButtonPanelEnum.Panel1;\r\n this.hideExistingContractPanel = false;\r\n if(this.data.wizard.existingContract)\r\n this.onSelectedContractChange(this.data.wizard.existingContract);\r\n }\r\n }\r\n\r\n}\r\n","
\r\n Loading the customer and contract data...\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
CUSTOMER
\r\n
\r\n
\r\n
\r\n Loading customer data...\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
CONTRACT
\r\n
\r\n
\r\n
\r\n Loading contract data...\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n {{ serverError }}\r\n
\r\n * Denotes a required field\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
","import { SiteImportScaffoldsComponent } from '../site-import-scaffolds/site-import-scaffolds.component';\r\nimport { SiteImportContactsComponent } from '../site-import-contacts/site-import-contacts.component';\r\nimport { SiteImportContractComponent } from '../site-import-contract/site-import-contract.component';\r\nimport { EstimateImportData, SiteImportModalData } from '../../../models/site-import-modal-data';\r\nimport { SiteImportSiteComponent } from '../site-import-site/site-import-site.component';\r\nimport { MultiStepFormStep } from '../../../../shared/models/multi-step-form-step';\r\nimport { SiteImportModalContext } from '../../../models/site-import-modal-context';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { JSONCasing } from 'json-casing';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { ToasterService } from 'angular2-toaster';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'hub-site-import-modal',\r\n templateUrl: './site-import-modal.component.html',\r\n styleUrls: ['./site-import-modal.component.scss']\r\n})\r\n\r\nexport class SiteImportModalComponent implements OnInit {\r\n context: Partial;\r\n\r\n file: File;\r\n reader: FileReader;\r\n errorMessage: string;\r\n showImportForm: boolean;\r\n\r\n steps: MultiStepFormStep[] | any;\r\n data: SiteImportModalData;\r\n\r\n errors = {\r\n problemLoadingFile: 'There has been a problem loading the file',\r\n noFileSelected: 'Please select a SMART Scaffolder Cloud import file.',\r\n wrongFileExtension: 'The file must be a SSCloudImport file.',\r\n unsupportedFileVersion: 'The selected file is corrupted or the file version is unsupported.',\r\n };\r\n\r\n constructor(\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService,\r\n private toastService: ToasterService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n\r\n // in case the toaster has not been cleared\r\n if (this.context.toasterId) {\r\n this.toastService.clear(this.context.toasterId);\r\n }\r\n\r\n this.steps = [\r\n {\r\n icon: 'fa fa-building',\r\n title: 'Site Details',\r\n component: SiteImportSiteComponent\r\n },\r\n {\r\n icon: 'fa fa-users',\r\n title: 'Customer',\r\n component: SiteImportContractComponent\r\n },\r\n {\r\n icon: 'fa fa-address-book',\r\n title: 'Contacts',\r\n component: SiteImportContactsComponent\r\n },\r\n {\r\n icon: 'fa fa-hashtag',\r\n title: 'Scaffolds',\r\n component: SiteImportScaffoldsComponent\r\n },\r\n ];\r\n this.data = {\r\n siteImportFile: undefined,\r\n importData: new EstimateImportData(),\r\n wizard: {\r\n estimateImportData: new EstimateImportData(),\r\n loggedInStaffId: this.context.loggedInStaff.StaffId,\r\n } as any,\r\n allSites: [],\r\n // context: this.context,\r\n isFirstLoad: true\r\n };\r\n\r\n this.showImportForm = false;\r\n\r\n if (this.context.selectedEstimate) {\r\n this.startEstimateImport();\r\n } else {\r\n this.readUploadedFile();\r\n }\r\n }\r\n\r\n /** Reads the uploaded file and processes its content. */\r\n private readUploadedFile() {\r\n this.reader = new FileReader();\r\n this.reader.onload = (e) => {\r\n try {\r\n this.data.siteImportFile = JSONCasing.toPascal(JSON.parse((e.target as any).result));\r\n } catch (error) {\r\n this.errorMessage = this.errors.problemLoadingFile;\r\n }\r\n };\r\n }\r\n\r\n\r\n /**\r\n * Starts the import process for the selected estimate.\r\n * The selected estimate comes from the estimates table.\r\n */\r\n private startEstimateImport(): void {\r\n this.data.siteImportFile = this.context.selectedEstimate;\r\n this.showImportForm = true;\r\n }\r\n\r\n /**\r\n * Handles the start of the import process.\r\n * Checks if a file is selected, if it has the correct extension,\r\n * if the version is supported, and if there are any error messages.\r\n * If all conditions are met, it sets the showImportForm flag to true.\r\n */\r\n onStartImport(): void {\r\n // No file was selected.\r\n if (!this.file) {\r\n this.errorMessage = this.errors.noFileSelected;\r\n return;\r\n }\r\n // The file has the wrong extension.\r\n if ((this.file.name.split('.').pop()) !== 'SSCloudImport') {\r\n this.errorMessage = this.errors.wrongFileExtension;\r\n return;\r\n }\r\n // The version is not supported\r\n const majorVersion = this.data.siteImportFile.FileVersion.split('.')[0];\r\n if (majorVersion !== '1' && majorVersion !== '2') {\r\n this.errorMessage = this.errors.unsupportedFileVersion;\r\n return;\r\n }\r\n // There was an error while loading the file.\r\n if (this.errorMessage) {\r\n return;\r\n }\r\n this.showImportForm = true;\r\n }\r\n\r\n /**\r\n * Handles the file selection event.\r\n * \r\n * @param event - The file selection event.\r\n */\r\n onFileSelected(event: Event): void {\r\n this.errorMessage = undefined;\r\n this.file = (event.target as any).files[0];\r\n this.reader.readAsText(this.file);\r\n }\r\n\r\n /**\r\n * Closes the modal and removes the query parameters from the current URL.\r\n * \r\n * This method updates the browser's history state by removing any query parameters\r\n * from the current URL and then hides the modal.\r\n */\r\n public close() {\r\n // removes query parameters while preserving other existing ones\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: { import: null },\r\n queryParamsHandling: 'merge'\r\n }).then(() => {\r\n this.bsModalRef.hide();\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

\r\n Import Estimate From SMART Scaffolder

\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Browse…\r\n \r\n \r\n No file selected\r\n {{file.name}}\r\n
\r\n \r\n {{errorMessage}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { siteImportScaffoldIntroSteps } from '../../../values/site-import-scaffold-intro-steps';\r\nimport { ChangeDetectorRef, Component, Inject, InjectionToken, OnInit } from '@angular/core';\r\nimport { FormArray, UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { filter, find, flatten, flow, map, partialRight, times, forEach as _forEach } from 'lodash';\r\nimport { forkJoin } from 'rxjs';\r\nimport {\r\n CreateScaffoldWebConsoleCommand,\r\n ScaffoldSpecificationWebConsoleData,\r\n ItemTypeEnum,\r\n ItemStatusEnum,\r\n SiteAreaDetails,\r\n SiteWebAppData,\r\n SiteAreaData,\r\n MethodOfTyingData,\r\n} from 'app/core/hub-api';\r\nimport { ImportEndpointService } from 'app/core/hub-api';\r\nimport {\r\n ConfigurationData,\r\n DesignTypeData,\r\n LoadingLimitData,\r\n MethodsOfCladdingdata,\r\n ScaffoldTypeData\r\n} from 'app/core/hub-api';\r\nimport { CustomersQueryService } from '../../../../core/services/customers-query.service';\r\nimport { SitesQueryService } from '../../../../core/services/sites-query.service';\r\nimport { MultiStepModalFormComponent } from '../../../../shared/components/multi-step-modal-form/multi-step-modal-form.component';\r\nimport { designTypeIds } from '../../../../shared/values/design-type-ids';\r\nimport { SiteImportModalContext } from '../../../models/site-import-modal-context';\r\nimport { SiteImportModalData } from '../../../models/site-import-modal-data';\r\nimport { SiteImportScaffold } from '../../../models/site-import-scaffold';\r\nimport { SiteImportScaffoldItem } from '../../../models/site-import-scaffold-item';\r\nimport { claddings } from '../../../values/claddings';\r\nimport { loadClasses } from '../../../values/load-classes';\r\nimport { GenerateDefaultsService } from 'app/core/services/generateDefaults.service';\r\nimport { environment } from 'environments/environment';\r\nimport { CustomValidator } from 'app/shared/validators/custom-validators';\r\nimport { errorMessages } from 'app/shared/values/error-messages';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport * as introJs from 'intro.js';\r\nimport { ReferenceGeneratorService } from 'app/core/utility';\r\nimport { ImportEstimateDataService } from 'app/estimates/models/import-estimate-data.service';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { AddEditAreaModalComponent } from '../../site-detail/detail/add-edit-area-modal/add-edit-area-modal.component';\r\nimport { ToggleButtonPanelEnum } from '../../../../shared/components/toggle-button-panel/toggle-button-panel.component';\r\nimport { AddEditAreaModalContext } from 'app/sites/models/add-edit-area-modal-context';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ToasterService } from 'angular2-toaster';\r\n// import { tyings } from 'app/sites/values/tyings';\r\n\r\n@Component({\r\n selector: 'hub-site-import-scaffolds',\r\n templateUrl: './site-import-scaffolds.component.html',\r\n styleUrls: ['./site-import-scaffolds.component.scss']\r\n})\r\nexport class SiteImportScaffoldsComponent extends MultiStepModalFormComponent implements OnInit {\r\n introJS = introJs.default();\r\n\r\n context: Partial;\r\n data: SiteImportModalData;\r\n form: UntypedFormGroup;\r\n\r\n anyScaffoldsInFile: boolean;\r\n\r\n itemsFormArray: UntypedFormArray;\r\n validationMessages: {};\r\n\r\n saveInProgress: boolean;\r\n\r\n scaffoldNumbers: string[];\r\n configuration: ConfigurationData;\r\n\r\n scaffoldTypes: ScaffoldTypeData[];\r\n loadingLimits: LoadingLimitData[];\r\n methodOfCladdings: MethodsOfCladdingdata[];\r\n // methodOfTyings: MethodOfTyingData[];\r\n designTypes: DesignTypeData[];\r\n scaffoldingSystems;\r\n defaultArea: SiteAreaData;\r\n\r\n invalidValueMessage = errorMessages.invalidValue;\r\n\r\n allCollapsed = false;\r\n labelsVisible = true;\r\n\r\n selectedItemIndex: number = 0;\r\n\r\n selectedItem: UntypedFormGroup;\r\n selectedItemScaffolds: UntypedFormArray = new UntypedFormArray([]);\r\n\r\n /** Stores any error message of the api calls */\r\n serverError = '';\r\n\r\n selectedItems;\r\n isModalLoading: boolean = false;\r\n /** Stores the selection status of scaffolds for each item */\r\n scaffoldSelectionStatus: { allSelected: boolean, someSelected: boolean, selectedCount: number }[] = [];\r\n /** False means collapsed, true means expanded */\r\n globalScaffoldState: boolean = true;\r\n\r\n isItemsLoading: boolean = false;\r\n isScaffoldsLoading: boolean = false;\r\n allScaffoldsSelected: boolean = false;\r\n\r\n constructor(\r\n public modalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private referenceGeneratorService: ReferenceGeneratorService,\r\n private importEndpointService: ImportEndpointService,\r\n private customersQueryService: CustomersQueryService,\r\n private sitesQueryService: SitesQueryService,\r\n private generateDefaultsService: GenerateDefaultsService,\r\n private bsModalService: BsModalService,\r\n private cdr: ChangeDetectorRef,\r\n @Inject(DOCUMENT) private document: Document,\r\n public toasterService: ToasterService,\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.allScaffoldsSelected = true;\r\n this.scaffoldNumbers = [];\r\n\r\n this.refreshUiLoading(true); // show the loading spinner\r\n\r\n // if it is an existing site it should register the scaffold numbers so the scaffold increment works\r\n if (this.data.wizard.selectedSitePanel == ToggleButtonPanelEnum.Panel1) {\r\n const selectedSite = this.data.allSites.find(site => site.SiteId === this.data.wizard.existingSite.SiteId);\r\n if (selectedSite && selectedSite.Scaffolds) {\r\n const existingScaffoldNumbers = selectedSite.Scaffolds.map(scaffold => scaffold.ScaffoldNumber);\r\n if (existingScaffoldNumbers) {\r\n this.scaffoldNumbers = this.scaffoldNumbers.concat(existingScaffoldNumbers);\r\n }\r\n }\r\n }\r\n\r\n this.configuration = this.context.configuration;\r\n this.scaffoldTypes = map(this.configuration.ScaffoldTypes);\r\n this.loadingLimits = map(this.configuration.LoadingLimits);\r\n this.methodOfCladdings = map(this.configuration.MethodOfCladdings);\r\n // this.methodOfTyings = map(this.configuration.MethodOfTyings);\r\n this.designTypes = map(this.configuration.DesignTypes);\r\n this.scaffoldingSystems = map(this.configuration.ScaffoldingSystems);\r\n\r\n // set the default area for existing sites\r\n let newDefaultSiteArea = Object.assign(new SiteAreaData(), { AreaName: 'Default Area', SiteAreaId: UUID.UUID(), IsDefaultArea: true }); // create a new default area just in case\r\n\r\n let defaultAreasForExistingAreas = this.data.wizard.areas?.find(area => area.IsDefaultArea && area.Deleted === false)\r\n let defaultWizardArea = defaultAreasForExistingAreas ?? ((this.data.wizard.areas && this.data.wizard.areas.length > 0) ? this.data.wizard.areas[0] : newDefaultSiteArea);\r\n\r\n // get the default area for existing sites only\r\n if (this.data.wizard.existingSite && this.data.wizard.selectedSitePanel === ToggleButtonPanelEnum.Panel1) {\r\n let defaultArea = Object.values(this.data.wizard.existingSite.SiteAreas ?? []).find(area => area.IsDefaultArea && area.Deleted === false);\r\n this.defaultArea = defaultArea ?? defaultWizardArea;\r\n }\r\n // set the default area for new sites\r\n if (this.data.wizard.newSite)\r\n this.defaultArea = defaultWizardArea;\r\n\r\n if (!this.data.importData.scaffoldItems && this.data.siteImportFile.Areas.length > 0) {\r\n this.data.importData.scaffoldItems = this.data.siteImportFile.Areas[0]?.Items?.map(item => {\r\n const tasks =\r\n item.Pricing && item.Pricing.TotalTenderedPrice\r\n ? item.Pricing.TotalTenderedPrice.PreTaxTenderedPrice.TotalCost.DirectCost.Labour.OutputPay\r\n : [];\r\n const allTasks = this.generateDefaultsService.generateDefaultTasks(tasks);\r\n\r\n return {\r\n itemName: item.ItemName,\r\n itemNumber: item.ScheduleItemId ? item.ScheduleItemId : item.ItemNumber,\r\n quantity: item.Quantity,\r\n hirePeriodInWeeks: item.HirePeriodInWeeks,\r\n tenderedPrice: item.TenderedPrice,\r\n allocatedHours:\r\n item.Pricing && item.Pricing.TotalTenderedPrice\r\n ? item.Pricing.TotalTenderedPrice.PreTaxTenderedPrice.TotalCost.DirectCost.Labour.OutputPay.TenderedHours\r\n : 0,\r\n tasks: allTasks,\r\n scaffolds: flatten(\r\n item.Scaffolds.map(s => {\r\n return times(item.Quantity, () => {\r\n const scaffoldNumber = this.referenceGeneratorService.incrementalReference(\r\n this.scaffoldNumbers,\r\n this.configuration.ScaffoldReferenceLength\r\n );\r\n this.scaffoldNumbers.push(scaffoldNumber);\r\n return Object.assign(new SiteImportScaffold(), {\r\n ScaffoldNumber: scaffoldNumber,\r\n SpecificLocationDetails: s.ScaffoldName,\r\n // ScaffoldDescription: s.ScaffoldDescription,\r\n ScaffoldSpecification: {\r\n QuoteNumber: this.data.siteImportFile.QuotationNumber,\r\n QuoteItemNumber: item.ItemNumber,\r\n ScaffoldTypeId: this.getScaffoldType(s.ScaffoldType),\r\n DesignTypeId: this.getDesignType(s.ScaffoldingSystem),\r\n IsVariation: !!(this.data.wizard.selectedSitePanel === ToggleButtonPanelEnum.Panel1 && this.data.wizard.selectedContractPanel === ToggleButtonPanelEnum.Panel1),\r\n LoadingLimitId: loadClasses[s.LoadClass] || '',\r\n MethodOfCladdingId: claddings[s.CladdingList[0]] || '',\r\n // MethodOfTyingId: tyings[s.TyingList[0]] || '',\r\n HirePeriod: item.HirePeriodInWeeks,\r\n MaximumTonnage: (0.00).toFixed(2),\r\n ScaffoldingSystemId: this.getScaffoldSystemType(s.ScaffoldingSystem)\r\n },\r\n selected: true,\r\n expanded: true,\r\n });\r\n });\r\n })\r\n )\r\n };\r\n });\r\n }\r\n\r\n this.itemsFormArray = new UntypedFormArray(this.data.importData.scaffoldItems ? this.data.importData.scaffoldItems.map(i => this.createItemFormGroup(i)) : []);\r\n if (this.itemsFormArray.length > 0) (this.itemsFormArray.controls[0] as any).showRows = true;\r\n this.form = new UntypedFormGroup({\r\n items: this.itemsFormArray\r\n });\r\n\r\n // sets the validation messages for the form\r\n this.form.get('items').valueChanges.subscribe((value) => {\r\n this.setConditionalValidation();\r\n });\r\n\r\n // sets the changes of the scaffolds to update the item counts\r\n (this.form.get('items') as FormArray).controls.forEach((itemGroup: UntypedFormGroup) => {\r\n (itemGroup.get('scaffolds') as FormArray).valueChanges.subscribe((value) => {\r\n this.updateScaffoldSelectionStatus(this.itemsFormArray.controls.indexOf(itemGroup));\r\n });\r\n });\r\n\r\n if (this.itemsFormArray.length > 0) {\r\n this.selectItem(0);\r\n }\r\n\r\n // initialize the scaffold selection status for each item in the form array\r\n this.scaffoldSelectionStatus = this.itemsFormArray.controls.map((_, index) => ({\r\n allSelected: this.onAllScaffoldsSelected(index),\r\n someSelected: this.someScaffoldsSelected(index),\r\n selectedCount: this.selectedScaffoldsCount(index)\r\n }));\r\n\r\n this.refreshUiLoading(false); // show the loading spinner\r\n\r\n super.ngOnInit();\r\n }\r\n\r\n onSelectedItemChange(item): void {\r\n this.selectedItems = item;\r\n }\r\n\r\n trackByIndex(index: number, item: any): any {\r\n return index;\r\n }\r\n\r\n /**\r\n * Sets conditional validation for the form fields.\r\n * in this specific case it is setting or removing the validation for the scaffold name field.\r\n */\r\n setConditionalValidation() {\r\n const formArray = this.form.get('items') as FormArray;\r\n formArray.controls.forEach(itemGroup => {\r\n const scaffoldsArray = itemGroup.get('scaffolds') as FormArray;\r\n scaffoldsArray.controls.forEach(scaffoldGroup => {\r\n if (scaffoldGroup.value.selected === true) {\r\n scaffoldGroup.get('specificLocationDetails').setValidators([Validators.required]);\r\n scaffoldGroup.get('specificLocationDetails').updateValueAndValidity({ emitEvent: false });\r\n } else {\r\n scaffoldGroup.get('specificLocationDetails').clearValidators();\r\n scaffoldGroup.get('specificLocationDetails').updateValueAndValidity({ emitEvent: false });\r\n }\r\n });\r\n });\r\n }\r\n\r\n createItemFormGroup(item: SiteImportScaffoldItem): UntypedFormGroup {\r\n return new UntypedFormGroup({\r\n itemName: new UntypedFormControl(item.itemName),\r\n itemNumber: new UntypedFormControl(item.itemNumber),\r\n quantity: new UntypedFormControl(item.quantity),\r\n hirePeriodInWeeks: new UntypedFormControl(item.hirePeriodInWeeks),\r\n tenderedPrice: new UntypedFormControl(item.tenderedPrice),\r\n allocatedHours: new UntypedFormControl(item.allocatedHours),\r\n scaffolds: new UntypedFormArray(\r\n item.scaffolds.map(s => {\r\n s.SiteAreaId = s.SiteAreaId ?? this.defaultArea?.SiteAreaId;\r\n return this.createScaffoldFormGroup(s);\r\n })\r\n ),\r\n tasks: new UntypedFormControl(item.tasks)\r\n });\r\n }\r\n\r\n createScaffoldFormGroup(scaffold: SiteImportScaffold): UntypedFormGroup {\r\n this.anyScaffoldsInFile = true;\r\n // If the scaffold has a method of cladding, use it. Otherwise, use the default of 'None'\r\n const methodOfCladding = scaffold.ScaffoldSpecification.MethodOfCladdingId ? scaffold.ScaffoldSpecification.MethodOfCladdingId : this.methodOfCladdings.find(mc => mc.Title === 'None').MethodOfCladdingId;\r\n // const methodOfTying = scaffold.ScaffoldSpecification.MethodOfTyingId ? scaffold.ScaffoldSpecification.MethodOfTyingId : this.methodOfTyings.find(mt => mt.Title === 'None').MethodOfTyingId;\r\n return new UntypedFormGroup({\r\n scaffoldNumber: new UntypedFormControl(scaffold.ScaffoldNumber, Validators.required),\r\n specificLocationDetails: new UntypedFormControl(scaffold.SpecificLocationDetails, scaffold.selected ? Validators.required : []),\r\n // scaffoldDescription: new UntypedFormControl(scaffold.ScaffoldDescription ?? ''),\r\n // TODO: Is this required??\r\n // quoteNumber: new FormControl(scaffold.ScaffoldSpecification.QuoteNumber),\r\n // quoteItemNumber: new FormControl(scaffold.ScaffoldSpecification.QuoteItemNumber),\r\n siteAreaId: new UntypedFormControl(scaffold.SiteAreaId),\r\n scaffoldTypeId: new UntypedFormControl(scaffold.ScaffoldSpecification.ScaffoldTypeId),\r\n designTypeId: new UntypedFormControl(scaffold.ScaffoldSpecification.DesignTypeId),\r\n isVariation: new UntypedFormControl(!!(scaffold.IsVariation ?? !!(this.data.wizard.selectedSitePanel === ToggleButtonPanelEnum.Panel1 && this.data.wizard.selectedContractPanel === ToggleButtonPanelEnum.Panel1))),\r\n loadingLimitId: new UntypedFormControl(scaffold.ScaffoldSpecification.LoadingLimitId),\r\n methodOfCladdingId: new UntypedFormControl(methodOfCladding),\r\n // methodOfTyingId: new UntypedFormControl(methodOfTying),\r\n hirePeriod: new UntypedFormControl(scaffold.ScaffoldSpecification.HirePeriod),\r\n selected: new UntypedFormControl(scaffold.selected),\r\n expanded: new UntypedFormControl((scaffold as any).expanded),\r\n maximumTonnage: new UntypedFormControl(scaffold.ScaffoldSpecification.MaximumTonnage, [CustomValidator.negativeDecimalValidator]),\r\n scaffoldingSystemId: new UntypedFormControl(scaffold.ScaffoldSpecification.ScaffoldingSystemId)\r\n });\r\n }\r\n\r\n onPrevious(formValues): void {\r\n this.saveFormValues(formValues);\r\n this.previousStep();\r\n }\r\n\r\n isScaffoldCommandsValid(createScaffoldCommands): any {\r\n return _forEach(createScaffoldCommands, scaffold => {\r\n scaffold.ScaffoldSpecification.MaximumTonnage = scaffold.ScaffoldSpecification.MaximumTonnage !== '' ?\r\n scaffold.ScaffoldSpecification.MaximumTonnage : 0.00;\r\n return scaffold;\r\n });\r\n }\r\n\r\n onSubmit(formValues): void {\r\n this.saveFormValues(formValues);\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n\r\n const createScaffoldCommands = flow([partialRight(map, i => i.scaffolds), flatten, partialRight(filter, s => s.selected)])(\r\n this.data.importData.scaffoldItems\r\n );\r\n const scaffoldCommands = this.isScaffoldCommandsValid(createScaffoldCommands);\r\n\r\n // update the wizard with the new scaffold items and scaffold commands from this component\r\n this.data.wizard.estimateImportData.scaffoldItems = this.data.importData.scaffoldItems;\r\n this.data.wizard.estimateImportData.scaffoldCommands = scaffoldCommands; //this.data.importData.scaffoldCommands;\r\n const importData = ImportEstimateDataService.generateImportEstimateData(this.data);\r\n importData.EstimateId = this.context.estimateId;\r\n // get new siteId\r\n const siteId = importData.CreateSiteCommand?.SiteId ?? this.data.wizard.existingSite.SiteId;\r\n this.refreshUiLoading(true);\r\n this.importEndpointService.Import({ ImportData: JSON.stringify(importData) }).subscribe(\r\n {\r\n next: () => {\r\n const obs$ = forkJoin([this.customersQueryService.customersQuery(false), this.sitesQueryService.sitesQuery(false)]);\r\n obs$.subscribe(result => {\r\n const sites = result[1];\r\n const site = sites.find(s => s.SiteId === siteId);\r\n const siteReference = site ? site.SiteReference : undefined;\r\n\r\n this.saveInProgress = false;\r\n // the dismiss reason is set to the siteId if it is being imported from the estimates grid\r\n this.modalService.setDismissReason(siteReference);\r\n this.bsModalRef.hide();\r\n });\r\n },\r\n error: () => this.serverErrorCallback,\r\n complete: () => {\r\n this.refreshUiLoading(false);\r\n }\r\n }\r\n );\r\n } else {\r\n this.toasterService.pop(\r\n 'error',\r\n 'Validation Error',\r\n 'Validation errors have been detected in the fields to be imported. Please check the highlighted fields and correct any issues. Detailed error messages are provided next to the affected fields.'\r\n );\r\n }\r\n }\r\n\r\n saveFormValues(formValues: any): void {\r\n // this.data.wizard.scaffoldItems = formValues.items.map(item => {\r\n this.data.importData.scaffoldItems = formValues.items.map(item => {\r\n return {\r\n itemName: item.itemName,\r\n itemNumber: item.itemNumber,\r\n quantity: item.quantity,\r\n hirePeriodInWeeks: item.hirePeriodInWeeks,\r\n tenderedPrice: item.tenderedPrice,\r\n allocatedHours: item.allocatedHours,\r\n tasks: item.tasks,\r\n scaffolds: item.scaffolds.map(s => {\r\n return Object.assign(new CreateScaffoldWebConsoleCommand(), {\r\n selected: s.selected,\r\n expanded: s.expanded,\r\n ScaffoldNumber: s.scaffoldNumber,\r\n SiteAreaId: s.siteAreaId,\r\n SpecificLocationDetails: s.specificLocationDetails,\r\n IsVariation: s.isVariation != null ? s.isVariation : this.data.wizard.selectedSitePanel === ToggleButtonPanelEnum.Panel2 ? true : false,\r\n // ScaffoldDescription: s.scaffoldDescription,\r\n ScaffoldSpecification: Object.assign(new ScaffoldSpecificationWebConsoleData(), {\r\n QuoteNumber: s.quoteNumber,\r\n QuoteItemNumber: s.quoteItemNumber,\r\n ScaffoldTypeId: s.scaffoldTypeId,\r\n DesignTypeId: s.designTypeId,\r\n LoadingLimitId: s.loadingLimitId,\r\n MethodOfCladdingId: s.methodOfCladdingId,\r\n // MethodOfTyingId: s.methodOfTyingId,\r\n HirePeriod: s.hirePeriod,\r\n MaximumTonnage: s.maximumTonnage,\r\n ScaffoldingSystemId: s.scaffoldingSystemId\r\n })\r\n });\r\n })\r\n };\r\n });\r\n }\r\n\r\n getScaffoldType(type: string): string {\r\n const firstWordOfType = type\r\n .replace(/([A-Z])/g, ' $1')\r\n .trim()\r\n .split(' ')[0]\r\n .toLowerCase();\r\n const importedScaffoldType = find(this.scaffoldTypes, scaffoldType => {\r\n return scaffoldType.Title.toLowerCase().indexOf(firstWordOfType) > -1;\r\n });\r\n return importedScaffoldType ? importedScaffoldType.ScaffoldTypeId : '';\r\n }\r\n\r\n getScaffoldSystemType(type: string): string {\r\n const firstWordOfType = type\r\n .replace(/([A-Z])/g, ' $1')\r\n .trim()\r\n .split(' ')[0]\r\n .toLowerCase();\r\n const importedScaffoldSystemType = find(this.scaffoldingSystems, scaffoldingSystem => {\r\n return scaffoldingSystem.Title.toLowerCase().indexOf(firstWordOfType) > -1;\r\n });\r\n return importedScaffoldSystemType ? importedScaffoldSystemType.ScaffoldingSystemId : '';\r\n\r\n }\r\n\r\n getDesignType(type: string): string {\r\n if (type.toLowerCase() !== 'tubeandfitting') {\r\n return designTypeIds.systemScaffold;\r\n }\r\n return '';\r\n }\r\n\r\n onStartTour(): void {\r\n this.introJS.setOptions({\r\n steps: siteImportScaffoldIntroSteps\r\n });\r\n this.introJS.start();\r\n }\r\n\r\n /**\r\n * Toggles the expansion state of all scaffolds.\r\n * Updates the global scaffold state and sets the 'expanded' value\r\n * for each scaffold in the selectedItemScaffolds form controls.\r\n */\r\n toggleAllScaffolds(): void {\r\n\r\n this.isScaffoldsLoading = true;\r\n\r\n setTimeout(() => {\r\n this.cdr.detach(); // Detach change detector to prevent UI updates during form setup\r\n this.allCollapsed = !this.allCollapsed;\r\n this.globalScaffoldState = !this.allCollapsed; // Update the global state\r\n this.selectedItemScaffolds.controls.forEach((scaffold: UntypedFormGroup) => {\r\n scaffold.get('expanded').setValue(this.globalScaffoldState);\r\n });\r\n\r\n this.isScaffoldsLoading = false;\r\n this.cdr.reattach(); // Reattach and trigger single change detection\r\n this.cdr.detectChanges();\r\n }, 100);\r\n\r\n }\r\n\r\n /**\r\n * Selects an item by its index and updates the component's state.\r\n * \r\n * @param index - The index of the item to select.\r\n */\r\n selectItem(index: number): void {\r\n\r\n this.isScaffoldsLoading = true;\r\n this.selectedItemIndex = index;\r\n\r\n // Use setTimeout to allow UI to update with loading state\r\n setTimeout(() => {\r\n\r\n // Detach change detector to prevent UI updates during form setup\r\n this.cdr.detach();\r\n\r\n this.selectedItem = this.itemsFormArray.at(index) as UntypedFormGroup;\r\n this.selectedItemScaffolds = this.selectedItem.get('scaffolds') as UntypedFormArray;\r\n\r\n // set the expanded state based on the global state\r\n this.selectedItemScaffolds.controls.forEach(scaffold => {\r\n scaffold.get('expanded').setValue(this.globalScaffoldState);\r\n });\r\n\r\n // Single update after all changes\r\n this.selectedItemScaffolds.updateValueAndValidity({ emitEvent: false });\r\n\r\n this.isScaffoldsLoading = false;\r\n\r\n // Reattach and trigger single change detection\r\n this.cdr.reattach();\r\n this.cdr.detectChanges();\r\n }, 100);\r\n }\r\n\r\n toggleLabels(): void {\r\n this.labelsVisible = !this.labelsVisible;\r\n }\r\n\r\n /**\r\n * Opens a modal to add a new area. The modal is configured with the current site context.\r\n * When the modal is hidden, a callback is triggered to handle the addition of the new area to the list of areas.\r\n *\r\n * @returns {void}\r\n */\r\n onAddArea(): void {\r\n // const context = new AddEditAreaModalContext();\r\n // context.editMode = false;\r\n // context.site = this.data.wizard.existingSite || this.data.wizard.newSite as SiteWebAppData;\r\n const context = {\r\n editMode: false,\r\n site: (this.data.wizard.selectedSitePanel === ToggleButtonPanelEnum.Panel1) ? this.data.wizard.existingSite : this.data.wizard.newSite,\r\n doNotCommitToServer: true\r\n };\r\n let modal = this.bsModalService.show(AddEditAreaModalComponent, SSModalConfig.generate(context));\r\n\r\n // subscribe to the modal close event to ge the site area details\r\n modal.content.closeAreaModalEvent.subscribe((data: SiteAreaData[]) => {\r\n // ensure we have distinct areas\r\n this.data.wizard.areas = [...new Map(this.data.wizard.areas.concat(data).map(area => [area.SiteAreaId, area])).values()];\r\n \r\n if (this.data.wizard.existingSite && this.data.wizard.selectedSitePanel === ToggleButtonPanelEnum.Panel1) {\r\n const siteAreas: { [key: string]: SiteAreaData } = data.reduce((acc, siteAreaDetail, index) => {\r\n // Assuming a default key if not provided, here using the index as a key\r\n const key = `key${index}`;\r\n\r\n // get new SiteAreaData\r\n const siteAreaData = new SiteAreaData();\r\n siteAreaData.SiteAreaId = siteAreaDetail.SiteAreaId;\r\n siteAreaData.AreaName = siteAreaDetail.AreaName;\r\n siteAreaData.Deleted = siteAreaDetail.Deleted;\r\n siteAreaData.IsDefaultArea = siteAreaDetail.IsDefaultArea ?? false;\r\n acc[key] = siteAreaData;\r\n\r\n return acc;\r\n }, {});\r\n this.data.wizard.existingSite.SiteAreas = siteAreas;\r\n }\r\n });\r\n }\r\n\r\n\r\n onToggleImportAll(): void {\r\n this.isItemsLoading = true;\r\n setTimeout(() => {\r\n // Loop through all items in itemsFormArray and toggle the selected state of all scaffolds\r\n const newValue = !this.allScaffoldsSelected;\r\n for (let i = 0; i < this.itemsFormArray.length; i++) {\r\n this.toggleSelectAllScaffolds(i, newValue);\r\n }\r\n this.allScaffoldsSelected = newValue;\r\n this.isItemsLoading = false;\r\n }, 100);\r\n }\r\n\r\n /**\r\n * Toggles the selection state of all scaffolds within a specified item.\r\n * \r\n * @param itemIndex - The index of the item in the itemsFormArray.\r\n * @param newValue - The new selection state to set for all scaffolds.\r\n */\r\n toggleSelectAllScaffolds(itemIndex: number, newValue: boolean): void {\r\n const item = this.itemsFormArray.at(itemIndex) as UntypedFormGroup;\r\n const scaffolds = item.get('scaffolds') as UntypedFormArray;\r\n const scaffoldsLength = scaffolds.length;\r\n let selectedScaffoldsCount = 0;\r\n\r\n // batch update to minimize change detection cycles\r\n for (let i = 0; i < scaffoldsLength; i++) {\r\n const scaffold = scaffolds.at(i) as UntypedFormGroup;\r\n scaffold.get('selected').setValue(newValue, { emitEvent: false });\r\n if (newValue) {\r\n selectedScaffoldsCount++;\r\n }\r\n }\r\n\r\n // trigger change detection once after all updates\r\n scaffolds.updateValueAndValidity();\r\n\r\n this.scaffoldSelectionStatus[itemIndex] = {\r\n allSelected: newValue,\r\n someSelected: selectedScaffoldsCount > 0 && selectedScaffoldsCount < scaffoldsLength,\r\n selectedCount: selectedScaffoldsCount\r\n };\r\n\r\n this.allScaffoldsSelected = this.itemsFormArray.controls.every(item => {\r\n const itemScaffolds = (item as UntypedFormGroup).get('scaffolds') as UntypedFormArray;\r\n return itemScaffolds.controls.every(scaffold => scaffold.get('selected').value);\r\n });\r\n }\r\n\r\n selectedScaffoldsCount(itemIndex: number): number {\r\n const item = this.itemsFormArray.at(itemIndex);\r\n const scaffolds = item.get('scaffolds') as FormArray;\r\n return scaffolds.controls.filter(scaffold => scaffold.get('selected').value).length;\r\n }\r\n\r\n\r\n onAllScaffoldsSelected(itemIndex: number): boolean {\r\n const item = this.itemsFormArray.at(itemIndex);\r\n const scaffolds = item.get('scaffolds') as FormArray;\r\n return scaffolds.controls.every(scaffold => scaffold.get('selected').value);\r\n }\r\n\r\n someScaffoldsSelected(itemIndex: number): boolean {\r\n const item = this.itemsFormArray.at(itemIndex);\r\n const scaffolds = item.get('scaffolds') as FormArray;\r\n return scaffolds.controls.some(scaffold => scaffold.get('selected').value);\r\n }\r\n\r\n /**\r\n * Updates the selection status of a scaffold at the specified index.\r\n *\r\n * @param itemIndex - The index of the scaffold to update.\r\n * @returns void\r\n */\r\n updateScaffoldSelectionStatus(itemIndex: number): void {\r\n this.scaffoldSelectionStatus[itemIndex] = {\r\n allSelected: this.onAllScaffoldsSelected(itemIndex),\r\n someSelected: this.someScaffoldsSelected(itemIndex),\r\n selectedCount: this.selectedScaffoldsCount(itemIndex)\r\n };\r\n\r\n // Update the allScaffoldsSelected property\r\n this.allScaffoldsSelected = this.itemsFormArray.controls.every(item => {\r\n const scaffolds = item.get('scaffolds') as FormArray;\r\n return scaffolds.controls.every(scaffold => scaffold.get('selected').value);\r\n });\r\n }\r\n\r\n /**\r\n * Toggles the expansion state of a scaffold.\r\n *\r\n * @param itemIndex - Index of the item.\r\n * @param scaffoldIndex - Index of the scaffold.\r\n */\r\n toggleScaffoldExpansion(itemIndex: number, scaffoldIndex: number): void {\r\n const item = this.itemsFormArray.at(itemIndex);\r\n const scaffolds = item.get('scaffolds') as FormArray;\r\n const scaffold = scaffolds.at(scaffoldIndex);\r\n const expanded = scaffold.get('expanded');\r\n expanded.setValue(!expanded.value);\r\n\r\n // updates the global state based on the current state of the scaffold\r\n this.globalScaffoldState = expanded.value;\r\n }\r\n\r\n // toggles the loading spinner and updates the UI\r\n async refreshUiLoading(isLoading: boolean): Promise {\r\n if (isLoading) {\r\n this.document.body.classList.add('loading-overlay');\r\n } else {\r\n this.document.body.classList.remove('loading-overlay');\r\n }\r\n this.cdr.reattach();\r\n this.isModalLoading = isLoading;\r\n this.cdr.detectChanges(); // Manually trigger change detection\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n
ITEMS
\r\n\r\n
0\">\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n

Loading Items, please wait...

\r\n
\r\n\r\n
0 && isItemsLoading === false\">\r\n
    \r\n
  • \r\n
    \r\n {{ item.get('itemName').value }} (Item number {{ item.get('itemNumber').value\r\n }})\r\n
    \r\n \r\n Hire Period: {{ item.get('hirePeriodInWeeks').value }} wks\r\n \r\n
    \r\n Quantity: {{ item.get('quantity').value }}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n  \r\n
\r\n
\r\n \r\n

No items to import

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

No scaffolds for this item

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

Loading Scaffolds, please wait...

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{scaffold.value.scaffoldNumber}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Scaffold Name is required.\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n tons\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n * Denotes a required field\r\n
\r\n \r\n \r\n
\r\n
","import { CoordinatesEvent } from '../../../../shared/models/coordinates-event';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators, UntypedFormArray } from '@angular/forms';\r\nimport { compact, flow, join, map, partialRight, pick } from 'lodash';\r\nimport {\r\n CreateSiteCommand,\r\n DepotData,\r\n SiteWebAppData,\r\n StaffDetailsWebAppData,\r\n ScaffoldingSystemdata,\r\n} from 'app/core/hub-api';\r\nimport {\r\n MultiStepModalFormComponent,\r\n} from '../../../../shared/components/multi-step-modal-form/multi-step-modal-form.component';\r\nimport { errorMessages } from '../../../../shared/values/error-messages';\r\nimport { mapValues } from '../../../../shared/values/maps';\r\nimport { SiteImportModalContext } from '../../../models/site-import-modal-context';\r\nimport { SiteImportModalData } from '../../../models/site-import-modal-data';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { CustomValidator } from 'app/shared/validators/custom-validators';\r\nimport { environment } from 'environments/environment';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SimilarityService } from 'app/shared/services/similarity.service';\r\nimport { ToggleButtonPanelEnum } from 'app/shared/components/toggle-button-panel/toggle-button-panel.component';\r\nimport { siteStatusIds } from 'app/shared/values/site-status-ids';\r\n\r\n@Component({\r\n selector: 'hub-site-import-site',\r\n templateUrl: './site-import-site.component.html',\r\n styleUrls: ['./site-import-site.component.scss']\r\n})\r\nexport class SiteImportSiteComponent extends MultiStepModalFormComponent implements OnInit {\r\n context: Partial;\r\n\r\n camerasAllowedFormControl: UntypedFormControl;\r\n stockAllowedFormControl: UntypedFormControl;\r\n totalTonnageFormControl: UntypedFormControl;\r\n data: SiteImportModalData = this.data ?? {} as SiteImportModalData;\r\n loggedInStaff: StaffDetailsWebAppData;\r\n scaffoldingSystems: ScaffoldingSystemdata[];\r\n selectedScaffoldingSystemid: String;\r\n selectedScaffoldingSystem: ScaffoldingSystemdata;\r\n site: SiteWebAppData;\r\n existingSite: SiteWebAppData;\r\n\r\n depots: DepotData[];\r\n form: UntypedFormGroup;\r\n siteNameFormControl: UntypedFormControl;\r\n siteAddressFormControl: UntypedFormControl;\r\n siteDepotIdFormControl: UntypedFormControl;\r\n toggleScaffoldingSystem = {};\r\n scaffoldinSystemFormArray: UntypedFormArray = new UntypedFormArray([]);\r\n invalidValueMessage = errorMessages.invalidValue;\r\n validationMessages = {\r\n siteName: {\r\n required: errorMessages.required,\r\n },\r\n siteAddress: {\r\n required: errorMessages.required,\r\n },\r\n siteDepotId: {\r\n required: errorMessages.required\r\n }\r\n };\r\n\r\n map = {\r\n latitude: mapValues.defaultLatitude,\r\n longitude: mapValues.defaultLongitude,\r\n zoom: mapValues.defaultZoom,\r\n };\r\n allSites: SiteWebAppData[];\r\n selectedPanel: ToggleButtonPanelEnum\r\n selectedItems: any;\r\n pageLoaded = false;\r\n /** Stores any error message of the api calls */\r\n serverError = '';\r\n hideExistingSitePanel = false;\r\n hideNewSitePanel = false;\r\n siteAddressCombined: string;\r\n\r\n constructor(\r\n public modalService: BsModalService,\r\n public similarityService: SimilarityService\r\n ) { super(); }\r\n\r\n ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.loggedInStaff = this.context.loggedInStaff;\r\n this.allSites = this.context.sites.filter(s => s.SiteStatusId === siteStatusIds.open).sort((a, b) => a.SiteName.localeCompare(b.SiteName));\r\n var existingSite = this.getExistingSite();\r\n this.getNewSite();\r\n this.selectedPanel = existingSite\r\n ? (this.data?.wizard?.selectedSitePanel ?? ToggleButtonPanelEnum.Panel1)\r\n : ToggleButtonPanelEnum.Panel2;\r\n this.data.wizard.selectedSitePanel = this.selectedPanel;\r\n this.depots = this.context.depots.filter(d => this.loggedInStaff.SiteDepotIds.includes(d.SiteDepotId));\r\n this.importSiteCheck();\r\n\r\n this.pageLoaded = true;\r\n super.ngOnInit();\r\n }\r\n\r\n /** Gets the new site if exists and sets the form so the user can see it */\r\n private getNewSite(): CreateSiteCommand {\r\n if (this.data.wizard.newSite) {\r\n this.createNewSiteForm();\r\n return this.data.wizard.newSite;\r\n }\r\n }\r\n\r\n /**\r\n * Combines the site address fields into a single string and checks if a site exists based on the provided site name.\r\n *\r\n * @private\r\n * @returns {SiteWebAppData} The existing site data if found.\r\n */\r\n private getExistingSite(): SiteWebAppData {\r\n // in the case where the site is already selected\r\n if (this.data.wizard.existingSite) return this.data.wizard.existingSite;\r\n // combines the site address fields into a single string\r\n this.siteAddressCombined = flow([pick, map, compact, partialRight(join, ', ')\r\n ])(this.data.siteImportFile.SiteAddress, ['AddressLines', 'Town', 'County', 'Country', 'Postcode']);\r\n // checks if a site exists based on the provided site name\r\n var existingSite = this.checkIfSiteExists(this.siteAddressCombined);\r\n return existingSite;\r\n }\r\n\r\n /**\r\n * Checks if there is an existing site and updates the wizard data accordingly.\r\n * If an existing site is found, it sets the selected items to the existing site.\r\n * If no existing site is found, it creates a new site and updates the wizard data.\r\n * \r\n * @private\r\n * @throws Will log an error to the console if an exception occurs during the process.\r\n */\r\n private importSiteCheck(): void {\r\n try {\r\n if(this.data.wizard.existingSite)\r\n this.selectedItems = [this.data.wizard.existingSite];\r\n \r\n var existingSite = this.getExistingSite();\r\n if (existingSite && !this.data.wizard.existingSite) {\r\n this.data.wizard.existingSite = existingSite;\r\n // make the existing site the first in the allSites array\r\n this.allSites = [existingSite, ...this.allSites.filter(site => site.SiteId !== existingSite.SiteId)];\r\n this.selectedItems = [existingSite];\r\n }\r\n if (!this.data.wizard.newSite) {\r\n \r\n this.data.importData.site = this.data.wizard.newSite = Object.assign(new CreateSiteCommand(), {\r\n StaffId: this.loggedInStaff.StaffId,\r\n SiteAddress: this.siteAddressCombined,\r\n SiteName: this.data.siteImportFile.SiteAddress.AddressName,\r\n SiteDepotId: this.depots[0].SiteDepotId,\r\n Latitude: this.data.siteImportFile.SiteAddress.Latitude,\r\n Longitude: this.data.siteImportFile.SiteAddress.Longitude,\r\n IsCameraAllowed: true,\r\n IsManageStockControl: false,\r\n TotalTonnage: 0.0\r\n });\r\n }\r\n this.createNewSiteForm();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n /**\r\n * Creates a new site form with the initial values from the import data.\r\n */\r\n private createNewSiteForm(): void {\r\n try {\r\n this.siteNameFormControl = new UntypedFormControl(this.data.wizard.newSite?.SiteName ?? '', [Validators.required]);\r\n this.siteAddressFormControl = new UntypedFormControl(this.data.wizard.newSite?.SiteAddress ?? '', [Validators.required]);\r\n this.siteDepotIdFormControl = new UntypedFormControl(this.data.wizard.newSite?.SiteDepotId ?? '', Validators.required);\r\n this.camerasAllowedFormControl = new UntypedFormControl(this.data.wizard.newSite?.IsCameraAllowed ?? '');\r\n this.stockAllowedFormControl = new UntypedFormControl(this.data.wizard.newSite?.IsManageStockControl ?? '');\r\n\r\n this.form = new UntypedFormGroup({\r\n siteName: this.siteNameFormControl,\r\n siteAddress: this.siteAddressFormControl,\r\n siteDepotId: this.siteDepotIdFormControl,\r\n camerasAllowed: this.camerasAllowedFormControl,\r\n stockAllowed: this.stockAllowedFormControl,\r\n scaffoldinSystemFormArray: this.scaffoldinSystemFormArray,\r\n tonnage: new UntypedFormArray([])\r\n });\r\n this.scaffoldingSystems = map(this.context.configuration.ScaffoldingSystems);\r\n this.renderTonnage();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n /**\r\n * Checks if a site exists based on the provided site address.\r\n * @param siteAddressCombined - The combined site address.\r\n * @returns The SiteWebAppData object if a matching site is found, otherwise undefined.\r\n */\r\n private checkIfSiteExists(siteAddressCombined: string): SiteWebAppData {\r\n try {\r\n return this.allSites.find(site => {\r\n const siteNameCalculation = this.similarityService.calculateSimilarity(this.data.siteImportFile.SiteAddress.AddressName, site.SiteName);\r\n const siteAddressCalculation = this.similarityService.calculateSimilarity(siteAddressCombined, site.SiteAddress);\r\n const similarity = Math.max(siteNameCalculation, siteAddressCalculation);\r\n return similarity >= 0.8;\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Get tonnage details for each scaffolding system for the site and render it\r\n */\r\n private renderTonnage(): any {\r\n try {\r\n this.scaffoldingSystems.forEach((system) => {\r\n this.toggleScaffoldingSystem[system.ScaffoldingSystemId] = false;\r\n if (system.IsDefault) {\r\n this.selectedScaffoldingSystemid = system.ScaffoldingSystemId;\r\n this.toggleScaffoldingSystem[system.ScaffoldingSystemId] = true;\r\n }\r\n\r\n let totalTonnage = '0.00', siteTonnageId = UUID.UUID();\r\n if (this.data.importData.site?.Tonnages) {\r\n const siteTonnages = this.data.importData.site.Tonnages;\r\n const tonnagePerScaffolding = siteTonnages.find(tonnage => (tonnage as any).scaffoldingSystemId === system.ScaffoldingSystemId);\r\n if (tonnagePerScaffolding) {\r\n totalTonnage = (tonnagePerScaffolding as any).totalTonnage.toString();\r\n siteTonnageId = (tonnagePerScaffolding as any).siteTonnageId;\r\n }\r\n }\r\n\r\n (this.form.get('tonnage') as UntypedFormArray).push(new UntypedFormGroup({\r\n scaffoldingSystemId: new UntypedFormControl(system.ScaffoldingSystemId),\r\n scaffoldingSystemName: new UntypedFormControl(system.Title),\r\n totalTonnage: new UntypedFormControl(totalTonnage, [CustomValidator.negativeDecimalValidator]),\r\n siteTonnageId: new UntypedFormControl(siteTonnageId)\r\n }));\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n get tonnage(): any { return this.form.get('tonnage'); }\r\n\r\n\r\n /**\r\n * Handles the \"Next\" button click event in the site import wizard.\r\n * \r\n * Depending on the selected panel, this method either validates and processes\r\n * the existing site data or collects and processes the new site data from the form.\r\n * \r\n * @param formValues - The values from the form, containing details about the new site.\r\n * \r\n * @throws Will log an error to the console if an exception occurs during processing.\r\n */\r\n public onNext(formValues): void {\r\n try {\r\n if (this.selectedPanel === ToggleButtonPanelEnum.Panel1) {\r\n if (!this.data.wizard.existingSite) {\r\n this.serverError = 'Please select an existing site or create a new one by clicking on the \"Create New\" button.';\r\n return;\r\n }\r\n const createSiteCommand = Object.assign(new CreateSiteCommand(), this.data.wizard.existingSite);\r\n this.data.wizard.estimateImportData.site = createSiteCommand;\r\n this.nextStep();\r\n return;\r\n }\r\n\r\n if (this.selectedPanel === ToggleButtonPanelEnum.Panel2) {\r\n // If it is a new site then it needs to get the site details from the form\r\n if (this.validateForm() && this.form?.valid) {\r\n this.data.wizard.estimateImportData.site = new CreateSiteCommand();\r\n let wizardSite = this.data.wizard.newSite = this.data.wizard.estimateImportData.site;\r\n wizardSite.SiteName = formValues.siteName;\r\n wizardSite.SiteAddress = formValues.siteAddress;\r\n wizardSite.SiteDepotId = formValues.siteDepotId;\r\n wizardSite.Latitude = this.map.latitude;\r\n wizardSite.Longitude = this.map.longitude;\r\n wizardSite.IsCameraAllowed = formValues.camerasAllowed;\r\n wizardSite.IsManageStockControl = formValues.stockAllowed;\r\n\r\n if (wizardSite.IsManageStockControl) {\r\n wizardSite.Tonnages = formValues.tonnage;\r\n }\r\n } else {\r\n return;\r\n }\r\n this.nextStep();\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n /**\r\n * Sets the map marker for the given coordinates when they are moved\r\n *\r\n * @param {*} event\r\n * @memberof SiteImportSiteComponent\r\n */\r\n onMarkerMoved(event: google.maps.MapMouseEvent): void {\r\n this.map.latitude = event.latLng.lat();\r\n this.map.longitude = event.latLng.lng();\r\n }\r\n\r\n /**\r\n * Places the selected coordinates on the map\r\n * NOTE: used on the UI\r\n *\r\n * @param {CoordinatesEvent} event\r\n * @memberof SiteImportSiteComponent\r\n */\r\n public onPlaceSelected(event: CoordinatesEvent): void {\r\n this.map.latitude = event.latitude;\r\n this.map.longitude = event.longitude;\r\n }\r\n\r\n /**\r\n * Determines whether the \"Manage Stock Control\" feature should be shown.\r\n *\r\n * This method checks the feature flags in the environment configuration\r\n * to see if the stock control feature is enabled.\r\n *\r\n * NOTE: used on the UI\r\n *\r\n * @returns {boolean} True if the stock control feature is enabled, otherwise false.\r\n */\r\n public isShowManageStockControl(): boolean {\r\n const featureFlags = environment.featureFlags as any;\r\n return featureFlags.stockControl;\r\n }\r\n\r\n /**\r\n * show only clicked scaffolding system tonnage inputs\r\n * @param scaffoldingSystem\r\n */\r\n public toggle(scaffoldingSystem): void {\r\n try {\r\n this.scaffoldingSystems.forEach((system) => {\r\n this.toggleScaffoldingSystem[system.ScaffoldingSystemId] = false;\r\n if (scaffoldingSystem.ScaffoldingSystemId === system.ScaffoldingSystemId) {\r\n this.selectedScaffoldingSystemid = scaffoldingSystem.ScaffoldingSystemId;\r\n this.toggleScaffoldingSystem[system.ScaffoldingSystemId] = true;\r\n }\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n public onSelectedSiteChange(item: any): void {\r\n this.data.wizard.existingSite = item;\r\n if (this.selectedPanel === ToggleButtonPanelEnum.Panel1) return;\r\n this.importSiteCheck();\r\n this.updateFormValidity();\r\n }\r\n\r\n private updateFormValidity(): void {\r\n if (this.data.wizard.existingSite) {\r\n // If an existing site is selected, mark the form as valid\r\n this.form.setErrors(null);\r\n this.form.updateValueAndValidity();\r\n } else {\r\n // If no site is selected, mark the form as invalid\r\n this.form.setErrors({ 'noSiteSelected': true });\r\n }\r\n }\r\n\r\n onSelectedPanelChange(selectedPanel: ToggleButtonPanelEnum): void {\r\n if (this.selectedPanel !== selectedPanel) {\r\n // the panel has changed\r\n this.selectedPanel = selectedPanel;\r\n this.data.wizard.selectedSitePanel = selectedPanel;\r\n this.importSiteCheck();\r\n if (!this.form) this.createNewSiteForm();\r\n }\r\n\r\n if (this.selectedPanel === ToggleButtonPanelEnum.Panel2) {\r\n if (!this.form) this.createNewSiteForm();\r\n }\r\n\r\n // make sure we clear out downstream wizard data\r\n this.data.wizard.newContract = null;\r\n this.data.wizard.existingContract = null;\r\n this.data.wizard.newCustomer = null;\r\n this.data.wizard.existingCustomer = null;\r\n }\r\n}","
\r\n
\r\n
SITE
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n {{scaffoldingSystem.Title}}\r\n
  • \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n
    \r\n
    \r\n

    {{scaffoldingSystem.controls.scaffoldingSystemName.value}}

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {{invalidValueMessage}}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{ serverError }}\r\n
\r\n * Denotes a required field\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Input, SimpleChanges, OnChanges } from '@angular/core';\r\nimport { siteStatusIds } from 'app/shared/values/site-status-ids';\r\n\r\n@Component({\r\n selector: 'hub-site-status',\r\n templateUrl: './site-status.component.html',\r\n styleUrls: ['./site-status.component.scss']\r\n})\r\nexport class SiteStatusComponent implements OnInit, OnChanges {\r\n\r\n @Input()\r\n statusId: string;\r\n\r\n status: string;\r\n icon: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.updateSiteStatus();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['statusId']) {\r\n this.updateSiteStatus();\r\n }\r\n }\r\n\r\n updateSiteStatus(): void {\r\n if (this.statusId === siteStatusIds.closed) {\r\n this.status = 'Closed';\r\n this.icon = 'fa-times-circle';\r\n } else {\r\n this.status = 'Open';\r\n this.icon = 'fa-check-circle';\r\n }\r\n }\r\n\r\n}\r\n","\r\n {{status}}\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hub-site-stock',\r\n templateUrl: './site-stock.component.html',\r\n styleUrls: ['./site-stock.component.scss']\r\n})\r\nexport class SiteStockComponent implements OnInit {\r\n\r\n private _stockAllowed: boolean;\r\n _isVisible: boolean;\r\n tooltipMessage: string;\r\n icon: string;\r\n status: string;\r\n @Input()\r\n set stockAllowed(stockAllowed: boolean) {\r\n this._stockAllowed = stockAllowed;\r\n this.isStockAllowed();\r\n }\r\n @Input()\r\n set isVisible(isVisible: boolean) {\r\n this._isVisible = isVisible;\r\n this.isStockAllowed();\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.isStockAllowed();\r\n }\r\n\r\n isStockAllowed(): void {\r\n if (this._isVisible) {\r\n if (this._stockAllowed) {\r\n this.status = 'Stock control On';\r\n this.icon = 'fa-align-left text-positive';\r\n this.tooltipMessage = 'Scaffolding material tonnage is tracked on site, so some app tonnage fields will be mandatory.';\r\n } else {\r\n this.status = 'Stock control Off';\r\n this.icon = 'fa-align-left text-assertive';\r\n this.tooltipMessage = 'Scaffolding material tonnage is not tracked on site, so app tonnage fields will be hidden.';\r\n }\r\n }\r\n }\r\n}\r\n","\r\n {{ status }}\r\n\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport {\r\n CreateSiteCommand,\r\n DepotData,\r\n EditSiteWebConsoleCommand,\r\n SiteCommandService,\r\n SiteStatusData,\r\n SiteWebAppData,\r\n StaffDetailsWebAppData,\r\n ScaffoldingSystemdata,\r\n} from 'app/core/hub-api';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators, UntypedFormArray } from '@angular/forms';\r\nimport { cloneDeep, map } from 'lodash';\r\nimport { AddEditSiteModalContext } from '../../../models/add-edit-site-modal-context';\r\nimport { CoordinatesEvent } from '../../../../shared/models/coordinates-event';\r\nimport { Observable, forkJoin } from 'rxjs';\r\nimport { SiteDetailQueryService } from '../../../services/site-detail-query.service';\r\nimport { SitesQueryService } from '../../../../core/services/sites-query.service';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { contractStatusIds } from '../../../../shared/values/contract-status-ids';\r\nimport { errorMessages } from '../../../../shared/values/error-messages';\r\nimport { mapValues } from '../../../../shared/values/maps';\r\nimport { siteStatusIds } from '../../../../shared/values/site-status-ids';\r\nimport { FilterService } from '../../../../core/services/filter-service';\r\nimport { CustomValidator } from 'app/shared/validators/custom-validators';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { FormComponent } from 'app/shared/components/form/form.component';\r\n\r\n/**\r\n * Add Edit Site Modal\r\n * Here the user can create a new site\r\n *\r\n * @export\r\n * @class AddEditSiteModalComponent\r\n * @extends {ModalFormComponent} extends the generic modal form component\r\n * @implements {OnInit} Initialises the component\r\n * @implements {OnDestroy} Stops all subscriptions and closes the component\r\n */\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-add-edit-site-modal',\r\n templateUrl: './add-edit-site-modal.component.html',\r\n styleUrls: ['./add-edit-site-modal.component.scss']\r\n})\r\nexport class AddEditSiteModalComponent extends FormComponent implements OnInit, OnDestroy {\r\n /** Gets the parameters sent to this modal */\r\n context: Partial;\r\n /** Cameras are allowed radio button control */\r\n camerasAllowedFormControl: UntypedFormControl;\r\n /** Stock allowed radio button control */\r\n stockAllowedFormControl: UntypedFormControl;\r\n /** Detects if it is adding or editing a site */\r\n editMode = false;\r\n /** Stores the selected site */\r\n site: SiteWebAppData;\r\n /** Stores all depots */\r\n depots: DepotData[];\r\n /** Stores all site statuses that come from configuration */\r\n siteStatuses: SiteStatusData[];\r\n /** Stores the current logged in user */\r\n loggedInStaff: StaffDetailsWebAppData;\r\n /** Stores all scaffolding systems that come from configuration */\r\n scaffoldingSystems: ScaffoldingSystemdata[];\r\n /** Stores the selected scaffolding system id */\r\n selectedScaffoldingSystemid: String;\r\n /** Stores the selected scaffolding system */\r\n selectedScaffoldingSystem: ScaffoldingSystemdata;\r\n /** Form group control */\r\n form: UntypedFormGroup;\r\n /** Site name input control */\r\n siteNameFormControl: UntypedFormControl;\r\n /** Site address input control */\r\n siteAddressFormControl: UntypedFormControl;\r\n /** Depots dropdown control */\r\n siteDepotIdFormControl: UntypedFormControl;\r\n /** Scaffolding system list if stock control is activated */\r\n scaffoldinSystemFormArray: UntypedFormArray = new UntypedFormArray([]);\r\n /** Tonnage for scaffolding system list if stock control is activated */\r\n tonnageFormGroup: UntypedFormGroup;\r\n /** Stores the current site status on form launch */\r\n siteWasOpen: boolean;\r\n /** Stores if the site is valid to be closed (e.g. if all contracts are closed) */\r\n closeSiteValid = true;\r\n /** Option to toggle the Scaffolding System list */\r\n toggleScaffoldingSystem = {};\r\n /** Stores the message for invalid tonnage */\r\n invalidValueMessage = errorMessages.invalidValue;\r\n /** Form validation for all required fields */\r\n validationMessages = {\r\n siteName: {\r\n required: errorMessages.required\r\n },\r\n siteAddress: {\r\n required: errorMessages.required\r\n },\r\n siteDepotId: {\r\n required: errorMessages.required\r\n }\r\n };\r\n /** Stores the coordinates for the site location - to be used to show the google maps */\r\n map = {\r\n latitude: mapValues.defaultLatitude,\r\n longitude: mapValues.defaultLongitude,\r\n zoom: mapValues.defaultZoom\r\n };\r\n /** Stores any server errors thrown */\r\n serverError = '';\r\n /** Detects if the stock control option is enabled */\r\n isStockControlEnable: boolean;\r\n\r\n constructor(\r\n public modalService: BsModalService,\r\n public bsModalRef: BsModalRef,\r\n private siteCommandService: SiteCommandService,\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private sitesQueryService: SitesQueryService,\r\n private filterService: FilterService\r\n ) {\r\n super();\r\n }\r\n\r\n /**\r\n * Component Initialisation\r\n *\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n public ngOnInit(): void {\r\n // gets the initial values from the function that calls this modal\r\n this.context = this.modalService.config.initialState;\r\n this.siteStatuses = map(this.context.configuration.SiteStatuses);\r\n this.loggedInStaff = this.context.loggedInStaff;\r\n this.depots = this.filterService.filterDepots(this.context.depots, this.context.loggedInStaff);\r\n this.editMode = this.context.editMode;\r\n this.site = this.context.site ? cloneDeep(this.context.site) : this.getNewSite();\r\n this.isStockControlEnable = this.context.stockControl;\r\n this.siteWasOpen = this.site.SiteStatusId === siteStatusIds.open;\r\n this.scaffoldingSystems = map(this.context.configuration.ScaffoldingSystems);\r\n this.generateForm();\r\n this.renderTonnage();\r\n\r\n // set map coordinates from site\r\n if (this.editMode && this.site.Latitude && this.site.Longitude) {\r\n this.map.latitude = this.site.Latitude;\r\n this.map.longitude = this.site.Longitude;\r\n }\r\n\r\n // detects the changes on the stock control option\r\n this.stockAllowedFormControl.valueChanges.subscribe((selected: boolean) => {\r\n this.isStockControlEnable = selected;\r\n });\r\n\r\n super.ngOnInit();\r\n }\r\n\r\n /**\r\n * Generates the add site form and sets the validation and fields\r\n *\r\n * @private\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n private generateForm(): void {\r\n this.siteNameFormControl = new UntypedFormControl(this.site.SiteName, [Validators.required]);\r\n this.siteAddressFormControl = new UntypedFormControl(this.site.SiteAddress, [Validators.required]);\r\n this.siteDepotIdFormControl = new UntypedFormControl(this.site.SiteDepotId, Validators.required);\r\n this.camerasAllowedFormControl = new UntypedFormControl(this.site.IsCameraAllowed);\r\n this.stockAllowedFormControl = new UntypedFormControl(this.site.IsManageStockControl);\r\n\r\n this.form = new UntypedFormGroup({\r\n siteName: this.siteNameFormControl,\r\n siteAddress: this.siteAddressFormControl,\r\n siteDepotId: this.siteDepotIdFormControl,\r\n camerasAllowed: this.camerasAllowedFormControl,\r\n stockAllowed: this.stockAllowedFormControl,\r\n scaffoldinSystemFormArray: this.scaffoldinSystemFormArray,\r\n tonnage: new UntypedFormArray([])\r\n });\r\n }\r\n\r\n /**\r\n * Get tonnage details for each scaffolding system for the site and render it\r\n */\r\n private renderTonnage(): any {\r\n\r\n const siteTonnages = this.site.Tonnages;\r\n const deletedScafffoldingSystems = siteTonnages.filter(siteTonnage => siteTonnage.ScaffoldingSystemData.Deleted);\r\n\r\n // if a scaffolding system is deleted from setting but it has tonnage in a site show them in the tonnage list\r\n for (const system of deletedScafffoldingSystems) {\r\n this.scaffoldingSystems.push(system.ScaffoldingSystemData);\r\n }\r\n\r\n this.scaffoldingSystems.forEach((system) => {\r\n this.toggleScaffoldingSystem[system.ScaffoldingSystemId] = false;\r\n if (system.IsDefault) {\r\n this.selectedScaffoldingSystemid = system.ScaffoldingSystemId;\r\n this.toggleScaffoldingSystem[system.ScaffoldingSystemId] = true;\r\n }\r\n const tonnagePerScaffolding = siteTonnages.find(tonnage => tonnage.ScaffoldingSystemId === system.ScaffoldingSystemId);\r\n let totalTonnage = '0.00', siteTonnageId = UUID.UUID(), onHireErectedTonnage = '0.00', allocatedTonnage = '0.00', idleRackTonnage = '0.00';\r\n if (tonnagePerScaffolding) {\r\n totalTonnage = tonnagePerScaffolding.TotalTonnage.toString();\r\n siteTonnageId = tonnagePerScaffolding.SiteTonnageId == null ? siteTonnageId : tonnagePerScaffolding.SiteTonnageId;\r\n onHireErectedTonnage = tonnagePerScaffolding.OnHireErectedTonnage === 0 ? '0.00' : tonnagePerScaffolding.OnHireErectedTonnage.toFixed(2).toString();\r\n allocatedTonnage = tonnagePerScaffolding.AllocatedTonnage === 0 ? '0.00' : tonnagePerScaffolding.AllocatedTonnage.toFixed(2).toString();\r\n idleRackTonnage = (parseFloat(totalTonnage) - (parseFloat(onHireErectedTonnage) + parseFloat(allocatedTonnage))).toFixed(2);\r\n }\r\n (this.form.get('tonnage') as UntypedFormArray).push(new UntypedFormGroup({\r\n scaffoldingSystemId: new UntypedFormControl(system.ScaffoldingSystemId),\r\n scaffoldingSystemName: new UntypedFormControl(system.Title),\r\n totalTonnage: new UntypedFormControl(totalTonnage, [CustomValidator.negativeDecimalValidator]),\r\n allocatedTonnage: new UntypedFormControl(allocatedTonnage),\r\n onHireErectedTonnage: new UntypedFormControl(onHireErectedTonnage),\r\n idleRackTonnage: new UntypedFormControl(idleRackTonnage),\r\n siteTonnageId: new UntypedFormControl(siteTonnageId)\r\n }));\r\n });\r\n }\r\n\r\n /**\r\n * Return the tonnage form control\r\n *\r\n * @readonly\r\n * @type {*}\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n public get tonnage(): any { return this.form.get('tonnage'); }\r\n\r\n /**\r\n * Update the IdleRackTonnage based on OnHire and Allocated Tonnage\r\n *\r\n * @param {*} event input event\r\n * @param {*} scaffoldingSystem scaffolding system form controls\r\n * @returns {void}\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n public updateIdleRackTonnage(event, scaffoldingSystem): void {\r\n scaffoldingSystem.controls.totalTonnage.setErrors(null);\r\n let totalTonnage = parseFloat(event.target.value);\r\n if (isNaN(totalTonnage)) {\r\n totalTonnage = 0;\r\n }\r\n const controls = scaffoldingSystem.controls;\r\n const idleRackTonnage = totalTonnage - (parseFloat(controls.onHireErectedTonnage.value) + parseFloat(controls.allocatedTonnage.value));\r\n controls.idleRackTonnage.setValue(idleRackTonnage.toFixed(2));\r\n }\r\n\r\n /**\r\n * Creates a new empty site object\r\n *\r\n * @private\r\n * @returns {SiteWebAppData}\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n private getNewSite(): SiteWebAppData {\r\n const site = new SiteWebAppData();\r\n site.SiteId = UUID.UUID();\r\n site.SiteName = '';\r\n site.SiteAddress = '';\r\n site.SiteDepotId = this.depots.length ? this.depots[0].SiteDepotId : '';\r\n site.SiteStatusId = siteStatusIds.open;\r\n site.IsCameraAllowed = true;\r\n site.IsManageStockControl = false;\r\n site.Contracts = [];\r\n site.Tonnages = [];\r\n return site;\r\n }\r\n\r\n\r\n /**\r\n * Detects when the selected depots and sets them to the form\r\n * Controlled from the UI\r\n *\r\n * @param {string} depotId selected depot id\r\n * @returns {void}\r\n * @memberof AddEditStaffModalComponent\r\n */\r\n public onSelectedDepotsChanged(siteDepotId: string): void {\r\n this.form.controls.siteDepotId.setValue(siteDepotId);\r\n }\r\n\r\n /**\r\n * Submits the edited or new site to api\r\n *\r\n * @param {*} siteFormValues all form values\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n public onSubmit(siteFormValues): void {\r\n if (this.validateForm()) {\r\n this.saveInProgress = true;\r\n const commandValues = {\r\n SiteName: siteFormValues.siteName,\r\n SiteAddress: siteFormValues.siteAddress,\r\n SiteDepotId: siteFormValues.siteDepotId,\r\n Latitude: this.map.latitude,\r\n Longitude: this.map.longitude,\r\n SiteImage: undefined,\r\n StaffId: this.loggedInStaff.StaffId,\r\n DefaultSiteAreaId: undefined,\r\n IsCameraAllowed: siteFormValues.camerasAllowed,\r\n IsManageStockControl: siteFormValues.stockAllowed,\r\n };\r\n\r\n if (commandValues.IsManageStockControl) {\r\n commandValues['Tonnages'] = siteFormValues.tonnage;\r\n }\r\n\r\n let commandResult: Observable;\r\n\r\n if (!this.editMode) {\r\n const createSiteCommand: CreateSiteCommand = Object.assign(new CreateSiteCommand(), this.site, commandValues);\r\n commandResult = this.siteCommandService.CreateSiteCommand(createSiteCommand);\r\n } else if (this.editMode) {\r\n const editSiteCommand: EditSiteWebConsoleCommand = Object.assign({}, this.site, commandValues);\r\n commandResult = this.siteCommandService.EditSiteWebConsoleCommand(editSiteCommand);\r\n }\r\n\r\n commandResult.subscribe(() => {\r\n // Here we must reload any data that this add/edit affects from the server.\r\n const obs$ = forkJoin([\r\n this.siteDetailQueryService.siteDetailQuery(false, this.site.SiteReference),\r\n this.sitesQueryService.sitesQuery(false)\r\n ]);\r\n obs$.subscribe(([siteDetail, sites]) => {\r\n this.saveInProgress = false;\r\n // Find the site reference from the updated list of sites (as site reference is generated on the server).\r\n const siteReference = sites.find(s => s.SiteId === this.site.SiteId).SiteReference;\r\n this.modalService.setDismissReason(siteReference);\r\n this.bsModalRef.hide();\r\n });\r\n }, this.serverErrorCallback);\r\n }\r\n }\r\n\r\n /**\r\n * Checks if the site status is open\r\n *\r\n * @returns {boolean}\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n public siteIsOpen(): boolean {\r\n return this.site.SiteStatusId === siteStatusIds.open;\r\n }\r\n\r\n /**\r\n * Sets the site status to open\r\n *\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n public openSite(): void {\r\n this.site.SiteStatusId = siteStatusIds.open;\r\n }\r\n\r\n /**\r\n * Check is the site is valid and sets it to closed if true\r\n *\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n public closeSite(): void {\r\n this.closeSiteValid = this.site.Contracts.every(contract => contract.ContractStatusId === contractStatusIds.closed);\r\n if (this.closeSiteValid) {\r\n this.site.SiteStatusId = siteStatusIds.closed;\r\n }\r\n }\r\n\r\n /**\r\n * Sets the map marker for the given coordinates when they are moved\r\n *\r\n * @param {*} event\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n public onMarkerMoved(event: google.maps.MapMouseEvent): void {\r\n this.map.latitude = event.latLng.lat();\r\n this.map.longitude = event.latLng.lng();\r\n }\r\n\r\n /**\r\n * Places the selected coordinates on the map\r\n *\r\n * @param {CoordinatesEvent} event\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n public onPlaceSelected(event: CoordinatesEvent): void {\r\n this.map.latitude = event.latitude;\r\n this.map.longitude = event.longitude;\r\n }\r\n\r\n /**\r\n * show only clicked scaffolding system tonnage inputs\r\n * @param scaffoldingSystem\r\n */\r\n toggle(scaffoldingSystem): void {\r\n this.scaffoldingSystems.forEach((system) => {\r\n this.toggleScaffoldingSystem[system.ScaffoldingSystemId] = false;\r\n if (scaffoldingSystem.ScaffoldingSystemId === system.ScaffoldingSystemId) {\r\n this.selectedScaffoldingSystemid = scaffoldingSystem.ScaffoldingSystemId;\r\n this.toggleScaffoldingSystem[system.ScaffoldingSystemId] = true;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Closes the modal and resets the dismiss reason to null.\r\n *\r\n * @memberof AddEditSiteModalComponent\r\n * @returns {void}\r\n */\r\n closeModal(): void {\r\n this.modalService.setDismissReason(null);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n /**\r\n * Required by AutoUnsubscribe()\r\n *\r\n * @memberof AddEditSiteModalComponent\r\n */\r\n ngOnDestroy(): void { }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n \r\n {{scaffoldingSystem.Title}}\r\n
  • \r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n
    \r\n
    \r\n

    {{scaffoldingSystem.controls.scaffoldingSystemName.value}}

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {{invalidValueMessage}}\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
  • \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n

Close site

\r\n

The site will be\r\n closed. Click undo if this was a mistake!

\r\n

All\r\n contracts must be closed before closing the site\r\n

\r\n \r\n

Open site

\r\n

The site will be\r\n opened. Click undo if this was a mistake!

\r\n
\r\n \r\n
\r\n\r\n
\r\n
","import { debounceTime } from 'rxjs/operators';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport {\r\n ConfigurationData,\r\n CustomerWebAppData,\r\n DepotData,\r\n SiteWebAppData,\r\n StaffDetailsWebAppData\r\n} from 'app/core/hub-api';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { AddEditSiteModalComponent } from '../add-edit-site-modal/add-edit-site-modal.component';\r\nimport { ConfigurationQueryService } from '../../../../core/services/configuration-query.service';\r\nimport { CustomersQueryService } from '../../../../core/services/customers-query.service';\r\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\r\nimport { DepotsQueryService } from '../../../../core/services/depots-query.service';\r\nimport { LoggedInStaffService } from '../../../../core/services/logged-in-staff-service';\r\nimport { combineLatest } from 'rxjs';\r\nimport { SiteImportModalComponent } from '../../site-import/site-import-modal/site-import-modal.component';\r\nimport { SitesQueryService } from '../../../../core/services/sites-query.service';\r\nimport { SitesResolver } from '../../../../core/resolvers/sites.resolver';\r\nimport { cloneDeep } from 'lodash';\r\nimport { mapValues } from '../../../../shared/values/maps';\r\nimport { siteStatusIds } from '../../../../shared/values/site-status-ids';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe';\r\nimport { LimitReachedModalComponent } from 'app/shared/components/limit-reached-modal/limit-reached-modal.component';\r\nimport { CompanySettingsService } from 'app/shared/services/company-setting.service';\r\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\r\nimport { SSModalConfig } from 'app/shared/models/ss-modal-config';\r\nimport { MapInfoWindow, MapMarker } from '@angular/google-maps';\r\n\r\n@AutoUnsubscribe()\r\n@Component({\r\n selector: 'hub-sites-list',\r\n templateUrl: './sites-list.component.html',\r\n styleUrls: ['./sites-list.component.scss']\r\n})\r\nexport class SitesListComponent implements OnInit, OnDestroy {\r\n mapView = false;\r\n noOfSites: number;\r\n configuration: ConfigurationData;\r\n depots: DepotData[];\r\n allDepots: DepotData[];\r\n loggedInStaff: StaffDetailsWebAppData;\r\n\r\n allCustomers: CustomerWebAppData[];\r\n allSites: SiteWebAppData[];\r\n filteredSites: SiteWebAppData[];\r\n\r\n filtersForm: UntypedFormGroup;\r\n searchFormControl: UntypedFormControl;\r\n showClosedSitesFormControl: UntypedFormControl;\r\n selectedDepot: DepotData;\r\n\r\n @ViewChild(DatatableComponent) sitesTable: DatatableComponent;\r\n\r\n /** This property decorator configures a view query for the map's markers */\r\n @ViewChildren(MapInfoWindow) infoWindowsView: QueryList;\r\n\r\n map = cloneDeep(mapValues);\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private sitesResolver: SitesResolver,\r\n private router: Router,\r\n private sitesQueryService: SitesQueryService,\r\n private customersQueryService: CustomersQueryService,\r\n private configurationQueryService: ConfigurationQueryService,\r\n private depotsQueryService: DepotsQueryService,\r\n private loggedInStaffService: LoggedInStaffService,\r\n private companySettingsService: CompanySettingsService,\r\n public bsModalRef: BsModalRef,\r\n public modalService: BsModalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.searchFormControl = new UntypedFormControl('');\r\n this.showClosedSitesFormControl = new UntypedFormControl(false);\r\n\r\n this.filtersForm = new UntypedFormGroup({\r\n search: this.searchFormControl,\r\n showClosedSites: this.showClosedSitesFormControl\r\n });\r\n\r\n this.searchFormControl.valueChanges\r\n .pipe(debounceTime(200))\r\n .subscribe((searchTerm: string) => this.updateFilters(searchTerm, this.showClosedSitesFormControl.value));\r\n\r\n this.showClosedSitesFormControl.valueChanges.subscribe((showClosedSites: boolean) =>\r\n this.updateFilters(this.searchFormControl.value, showClosedSites)\r\n );\r\n const obs$ = combineLatest(\r\n [this.sitesQueryService.sitesDataChanges(),\r\n this.customersQueryService.customersDataChanges(),\r\n this.configurationQueryService.configurationDataChanges(),\r\n this.depotsQueryService.depotsDataChanges(),\r\n this.loggedInStaffService.loggedInStaffChanges()]\r\n );\r\n obs$.subscribe(latest => this.refreshComponent(latest[0], latest[1], latest[2], latest[3], latest[4]));\r\n }\r\n\r\n refreshComponent(\r\n sites: SiteWebAppData[],\r\n customers: CustomerWebAppData[],\r\n configuration: ConfigurationData,\r\n depots: DepotData[],\r\n loggedInStaff: StaffDetailsWebAppData\r\n ): void {\r\n this.allDepots = depots;\r\n // When logout the logged in staff gets cleared\r\n if (loggedInStaff == null) {\r\n return;\r\n }\r\n this.loggedInStaff = loggedInStaff;\r\n this.configuration = configuration;\r\n this.depots = depots\r\n .filter(d => this.loggedInStaff.SiteDepotIds.includes(d.SiteDepotId))\r\n .sort((a, b) => (a.DepotName.toLowerCase() > b.DepotName.toLowerCase() ? 1 : -1));\r\n this.allCustomers = customers;\r\n this.allSites = sites.map(site => {\r\n const tableSite = cloneDeep(site) as any;\r\n tableSite.depotName = this.depots.filter(d => site.SiteDepotId.includes(d.SiteDepotId)).map(d => d.DepotName);\r\n // debugger;\r\n tableSite.customerList = this.allCustomers\r\n .filter(customer => site.Customers.includes(customer.CustomerId))\r\n .map(customer => customer.CustomerName)\r\n .sort()\r\n .join(', ');\r\n return tableSite;\r\n });\r\n this.filteredSites = this.allSites;\r\n this.updateFilters(this.searchFormControl.value, this.showClosedSitesFormControl.value);\r\n }\r\n\r\n updateFilters(searchTerm: string, showClosedSites: boolean): void {\r\n this.filteredSites = this.allSites.filter(site => {\r\n const searchFilterResult = site.SiteName.toLowerCase().includes(searchTerm.toLowerCase());\r\n const showClosedSitesFilterResult = showClosedSites || site.SiteStatusId === siteStatusIds.open;\r\n return this.selectedDepot\r\n ? site.SiteDepotId === this.selectedDepot.SiteDepotId && searchFilterResult && showClosedSitesFilterResult\r\n : searchFilterResult && showClosedSitesFilterResult;\r\n });\r\n if (this.sitesTable) {\r\n this.sitesTable.offset = 0;\r\n }\r\n }\r\n\r\n onAddSite(): void {\r\n this.companySettingsService.getCompanyDetailsFromServer().subscribe(companyDetails => {\r\n const sitesLimit = companyDetails.MaxOpenSites;\r\n\r\n this.configurationQueryService.configurationQueryFromServer().subscribe(configuration => {\r\n this.noOfSites = configuration.CompanyStatisticData.NoOfOpenSite;\r\n\r\n if (this.noOfSites < sitesLimit) {\r\n const context = {\r\n editMode: false,\r\n configuration: configuration,\r\n depots: this.allDepots,\r\n loggedInStaff: this.loggedInStaff,\r\n stockControl: companyDetails.FeatureFlags.stockControl\r\n };\r\n const modal = this.modalService.show(AddEditSiteModalComponent, SSModalConfig.generate(context))\r\n modal.onHide.subscribe(\r\n siteReference => {\r\n if (siteReference === null || typeof siteReference !== 'string') return;\r\n this.router.navigate([`../${siteReference}`], { relativeTo: this.route });\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n } else {\r\n const context = {\r\n editMode: false,\r\n NoOfOpenSites: this.noOfSites,\r\n ClientMaxSitesLimit: sitesLimit,\r\n configuration: configuration,\r\n depots: this.allDepots,\r\n loggedInStaff: this.loggedInStaff,\r\n type: 'site'\r\n };\r\n const modal = this.modalService.show(LimitReachedModalComponent, SSModalConfig.generate(context))\r\n modal.onHide.subscribe(\r\n siteReference => {\r\n if (siteReference === null || typeof siteReference !== 'string') return;\r\n this.router.navigate([`../${siteReference}`], { relativeTo: this.route });\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n });\r\n });\r\n }\r\n\r\n onImportSite(): void {\r\n const context = {\r\n sites: this.allSites,\r\n customers: this.allCustomers,\r\n configuration: this.configuration,\r\n depots: this.depots,\r\n loggedInStaff: this.loggedInStaff,\r\n manualImport: true,\r\n };\r\n var configs = SSModalConfig.generate(context);\r\n configs.class = 'modal-dialog modal-full-screen';\r\n const modal = this.modalService.show(SiteImportModalComponent, configs);\r\n\r\n modal.onHide.subscribe(\r\n siteReference => {\r\n if (siteReference === null || typeof siteReference !== 'string') return;\r\n this.router.navigate([`../${siteReference}`], { relativeTo: this.route });\r\n },\r\n error => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n\r\n onSiteSelected(event: any): void {\r\n const site: SiteWebAppData = event.selected[0];\r\n this.router.navigate([`/sites/${site.SiteReference}`]);\r\n }\r\n\r\n onSelectDepot(depot?: DepotData): void {\r\n this.selectedDepot = depot;\r\n if (!this.selectedDepot) {\r\n this.filteredSites = this.allSites;\r\n }\r\n this.updateFilters(this.searchFormControl.value, this.showClosedSitesFormControl.value);\r\n }\r\n\r\n /**\r\n * Open the google maps info window when a marker is clicked\r\n *\r\n * @memberof SitesListComponent\r\n */\r\n openInfoWindow(marker: MapMarker, windowIndex: number) {\r\n let curIdx = 0;\r\n this.infoWindowsView.forEach((window: MapInfoWindow) => {\r\n if (windowIndex === curIdx) {\r\n window.open(marker);\r\n curIdx++;\r\n } else {\r\n curIdx++;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n}\r\n","
\r\n
\r\n

Sites

\r\n
\r\n \r\n import\r\n add site\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Show closed sites\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n

\r\n {{site.SiteName}}\r\n ({{site.SiteReference}})\r\n

\r\n

{{site.SiteAddress}}

\r\n

Customers: {{site.customerList}}

\r\n

Status: {{ site.SiteStatusId | siteStatus }}

\r\n
\r\n
\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.SiteName}}({{row.SiteReference}})\r\n

{{row.SiteAddress}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{row.customerList}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{row.depotName}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Welcome to the sites section

\r\n

No sites to show here!\r\n \r\n Click the 'Add Site' button to add a site.\r\n \r\n

\r\n \r\n Add Site\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n// Container for the sites section.\r\n@Component({\r\n selector: 'hub-sites-section-container',\r\n templateUrl: './sites-section-container.component.html',\r\n styleUrls: ['./sites-section-container.component.scss']\r\n})\r\nexport class SitesSectionContainerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { DiaryQueryService } from '../services/diary-query-service';\r\nimport { DiaryQuery } from 'app/core/hub-api';\r\n\r\n/**\r\n * Route guard for redirecting to first (alphabetically) scaffold/site diary media.\r\n *\r\n * @export\r\n * @class DiaryDetailGuard\r\n * @implements {CanActivate}\r\n */\r\n@Injectable()\r\nexport class DiaryDetailGuard implements CanActivate {\r\n\r\n constructor(private diaryQueryService: DiaryQueryService, private router: Router) { }\r\n\r\n /**\r\n * Allows/denies access to the diary pages\r\n *\r\n * @param {ActivatedRouteSnapshot} route contains the information about a route associated with a component\r\n * @param {RouterStateSnapshot} state represents the state of the router at a moment in time.\r\n * @returns {Observable}\r\n * @memberof DiaryDetailGuard\r\n */\r\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n const diaryId = route.parent.params['diaryId'];\r\n const diaryType = route.parent.params['diaryType'];\r\n const diaryQuery = new DiaryQuery();\r\n diaryQuery.DiaryId = diaryId;\r\n diaryQuery.DiaryType = diaryType;\r\n\r\n return this.diaryQueryService.getDiaryData(diaryQuery).pipe(map(diary => {\r\n const _diary = diary[0];\r\n const medias: any[] = _diary.Images\r\n .concat(_diary.Audios, _diary.Videos, _diary.Transcriptions as any)\r\n // in the odd case where media does not have a title it will add Untitled\r\n .filter(d => d.Title = !d.Title ? 'Untitled' : d.Title)\r\n .sort((a, b) => a.Title != null ? (a.Title.toLowerCase() > b.Title.toLowerCase()) ? 1 : -1 : -1);\r\n if (medias.length) {\r\n this.router.navigate([state.url, medias[0].Type, medias[0].MediaReferenceId]);\r\n }\r\n return true;\r\n }));\r\n }\r\n}\r\n","\r\nimport { map } from 'rxjs/operators';\r\n\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { SiteDetailQueryService } from '../services/site-detail-query.service';\r\nimport { CustomersQueryService } from 'app/core/services/customers-query.service';\r\n\r\n// Route guard for ensuring that a site has no contracts before navigating to the route.\r\n@Injectable()\r\nexport class NoSiteContractsGuard implements CanActivate {\r\n\r\n constructor(\r\n private siteDetailQueryService: SiteDetailQueryService,\r\n private router: Router,\r\n private customersQueryService: CustomersQueryService,\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n const siteReference = route.parent.parent.params['siteReference'];\r\n return this.siteDetailQueryService.siteDetailQuery(true, siteReference).pipe(map(site => {\r\n if (site.Contracts.length) {\r\n const custObs$ = this.customersQueryService.customersDataChanges();\r\n let customers;\r\n custObs$.subscribe(customer => customers = customer);\r\n const customerIds = site.Contracts.map(c => c.CustomerId);\r\n const siteCustomers = customers.filter(c => customerIds.includes(c.CustomerId));\r\n this.router.navigate([state.url, siteCustomers[0].CustomerReference]);\r\n }\r\n return !site.Contracts.length;\r\n }));\r\n }\r\n}\r\n","import { ContractData, ContractContactData, SiteWebAppData } from 'app/core/hub-api';\r\n\r\n\r\nexport class AddEditBccContactModalContext {\r\n editMode: boolean;\r\n contract?: ContractData;\r\n contractContact?: ContractContactData;\r\n site: SiteWebAppData;\r\n}\r\n","import { SiteWebAppData, ContractData, ContractContactData, CustomerData, ConfigurationData } from 'app/core/hub-api';\r\n\r\nexport class AddEditCompanyContactModalContext {\r\n editMode: boolean;\r\n chooseContractMode: boolean;\r\n site: SiteWebAppData;\r\n contract?: ContractData;\r\n contractContact?: ContractContactData;\r\n customers: CustomerData[];\r\n configuration: ConfigurationData;\r\n}\r\n","import { SiteWebAppData, ContractData, ContractContactData, CustomerData, ConfigurationData } from 'app/core/hub-api';\r\n\r\nexport class AddEditContractContactModalContext {\r\n editMode: boolean;\r\n chooseContractMode: boolean;\r\n site: SiteWebAppData;\r\n contract?: ContractData;\r\n contractContact?: ContractContactData;\r\n customers: CustomerData[];\r\n configuration: ConfigurationData;\r\n}\r\n","import { ContractData, SiteWebAppData, CustomerWebAppData, StaffDetailsWebAppData } from 'app/core/hub-api';\r\n\r\n\r\nexport class InspectionStatusModalContext {\r\n site: SiteWebAppData;\r\n contract: ContractData;\r\n customers: CustomerWebAppData[];\r\n loggedInStaff: StaffDetailsWebAppData;\r\n pauseMode?: boolean;\r\n stopMode?: boolean;\r\n resumeMode?: boolean;\r\n}\r\n","\r\nimport { ContractData, CustomerWebAppData, SiteWebAppData } from 'app/core/hub-api';\r\n\r\nexport class OpenCloseContractModalContext {\r\n openMode: boolean;\r\n contract: ContractData;\r\n customers: CustomerWebAppData[];\r\n site: SiteWebAppData;\r\n}\r\n","import { SiteImportScaffoldItem } from './site-import-scaffold-item';\r\nimport {\r\n ContractData,\r\n CreateContractCommand,\r\n CreateContractContactCommand,\r\n CreateCustomerCommand,\r\n CreateQuoteWebConsoleCommand,\r\n CreateScaffoldWebConsoleCommand,\r\n CreateSiteCommand,\r\n CustomerWebAppData,\r\n ImportData,\r\n SiteAreaData,\r\n SiteAreaDetails,\r\n SiteWebAppData,\r\n} from 'app/core/hub-api';\r\n\r\nimport { SiteImportFileV1 } from './site-import-v1/site-import-file-v1';\r\nimport { ToggleButtonPanelEnum } from 'app/shared/components/toggle-button-panel/toggle-button-panel.component';\r\nimport { SiteImportModalContext } from './site-import-modal-context';\r\n\r\nexport interface SiteImportModalData {\r\n siteImportFile: SiteImportFileV1;\r\n importData: EstimateImportData; \r\n wizard: SiteImportWizard;\r\n allSites: SiteWebAppData[];\r\n // context: Partial;\r\n isFirstLoad: boolean // indicates if this is the first time the modal is loaded from the button\r\n}\r\n\r\nexport class SiteImportWizard{\r\n\r\n selectedSitePanel: ToggleButtonPanelEnum;\r\n existingSite?: SiteWebAppData;\r\n newSite?: CreateSiteCommand;\r\n\r\n selectedCustomerPanel: ToggleButtonPanelEnum;\r\n existingCustomer?: CustomerWebAppData;\r\n newCustomer?: CreateCustomerCommand;\r\n\r\n selectedContractPanel: ToggleButtonPanelEnum;\r\n existingContract?: ContractData;\r\n newContract?: CreateContractCommand;\r\n\r\n areas: SiteAreaData[] = [];\r\n\r\n // scaffold items \r\n scaffoldItems: SiteImportScaffoldItem[];\r\n\r\n // the actual data that will be imported\r\n estimateImportData: EstimateImportData\r\n\r\n loggedInStaffId: string; \r\n}\r\n\r\n// Represents the data required to import an estimate into smart manager\r\n// at each step of the wizard, the data is updated to here\r\nexport class EstimateImportData {\r\n site: CreateSiteCommand;\r\n customer: CreateCustomerCommand;\r\n contract: CreateContractCommand;\r\n contacts: CreateContractContactCommand[];\r\n scaffoldItems: SiteImportScaffoldItem[];\r\n scaffoldCommands: CreateScaffoldWebConsoleCommand[]; // this does not have a type in the original code\r\n quote: CreateQuoteWebConsoleCommand;\r\n sites?: SiteWebAppData[];\r\n estimateId: string; \r\n };\r\n","import { CreateScaffoldWebConsoleCommand } from 'app/core/hub-api';\r\n\r\n// Model for scaffold used in the scaffolds step of the import site modal.\r\nexport class SiteImportScaffold extends CreateScaffoldWebConsoleCommand {\r\n selected: boolean;\r\n IsVariation: boolean;\r\n // ScaffoldDescription: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { ScaffoldWebAppData } from 'app/core/hub-api';\r\n\r\nimport { ScaffoldDetailQueryService } from '../services/scaffold-detail-query-service';\r\n\r\n@Injectable()\r\nexport class ScaffoldDetailResolver implements Resolve {\r\n\r\n constructor(private scaffoldDetailQueryService: ScaffoldDetailQueryService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n const id = route.params['scaffoldId'];\r\n return this.scaffoldDetailQueryService.scaffoldDetailQuery(false, id);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { DiaryData } from 'app/core/hub-api';\r\n\r\nimport { DiaryQueryService } from '../services/diary-query-service';\r\n\r\n@Injectable()\r\nexport class ScaffoldDiaryResolver implements Resolve {\r\n\r\n constructor(private diaryQueryService: DiaryQueryService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n const id = route.params['scaffoldDiaryId'];\r\n return this.diaryQueryService.diaryQuery(true, id);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { ScaffoldTimelineData } from 'app/core/hub-api';\r\n\r\nimport { ScaffoldTimelineQueryService } from '../services/scaffold-timeline-query-service';\r\n\r\n@Injectable()\r\nexport class ScaffoldTimelineResolver implements Resolve {\r\n\r\n constructor(private scaffoldTimelineQueryService: ScaffoldTimelineQueryService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n const id = route.params['scaffoldId'];\r\n return this.scaffoldTimelineQueryService.scaffoldTimelineQuery(true, id);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { SiteScaffoldDiaryData } from 'app/core/hub-api';\r\nimport { SiteScaffoldDiaryQueryService } from 'app/core/services/site-scaffold-diary-query.service';\r\n\r\n@Injectable()\r\nexport class SiteScaffoldDiaryResolver implements Resolve {\r\n\r\n constructor(private siteDiaryQueryService: SiteScaffoldDiaryQueryService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n const reference = route.parent.parent.params['siteReference'];\r\n return this.siteDiaryQueryService.siteScaffoldDiaryQuery(false, reference);\r\n }\r\n}\r\n","import { SiteDetailQueryService } from '../services/site-detail-query.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { SiteEndpointService, SiteDetailQuery, SiteWebAppData } from 'app/core/hub-api';\r\n\r\n@Injectable()\r\nexport class SiteResolver implements Resolve {\r\n\r\n constructor(private siteDetailQueryService: SiteDetailQueryService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n const reference = route.params['siteReference'];\r\n return this.siteDetailQueryService.siteDetailQuery(true, reference);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ContractData, SiteContractInspectionStatusQuery, SiteEndpointService } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n@Injectable()\r\nexport class ContractInspectionStatusQueryService extends QueryService {\r\n\r\n constructor(private siteEndpointService: SiteEndpointService) { super(); }\r\n\r\n contractInspectionStatusQuery(useCached: boolean, siteId: string): Observable {\r\n return super.query(useCached, siteId);\r\n }\r\n\r\n contractInspectionStatusDataChanges(siteId: string): Observable {\r\n return super.cachedDataChanges(siteId);\r\n }\r\n\r\n protected getDataFromServer(siteId: string): Observable {\r\n const query = Object.assign(new SiteContractInspectionStatusQuery(), { SiteId: siteId });\r\n return this.siteEndpointService.SiteContractInspectionStatusQuery(query);\r\n }\r\n}\r\n","\r\nimport { map } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DiaryData, DiaryQuery, HubApiSettingsService, ScaffoldEndpointService } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\n// Queries scaffold/site diary data from the server (or in memory cache where specified) and allows\r\n// consumer to subscribe to scaffold diary data changes.\r\n@Injectable()\r\nexport class DiaryQueryService extends QueryService {\r\n\r\n constructor(\r\n private scaffoldEndpointService: ScaffoldEndpointService,\r\n private http: HttpClient,\r\n private settingsService: HubApiSettingsService,\r\n ) { super(); }\r\n\r\n diaryQuery(useCached: boolean, diaryId: string): Observable {\r\n return super.query(useCached, diaryId);\r\n }\r\n\r\n diaryDataChanges(diaryId: string): Observable {\r\n return super.cachedDataChanges(diaryId);\r\n }\r\n\r\n protected getDataFromServer(diaryId: string): Observable {\r\n const query = Object.assign(new DiaryQuery(), { DiaryId: diaryId });\r\n return this.scaffoldEndpointService.DiaryQuery(query).pipe(map(data => data[0]));\r\n }\r\n\r\n getDiaryData(queryData): Observable {\r\n const token = this.settingsService.getAccessToken();\r\n const data = {\r\n QueryData: JSON.stringify(queryData),\r\n QueryType: 'Cads.SmartScaffolder.Hub.Business.Query.DiaryQuery'\r\n };\r\n const headers = new HttpHeaders(\r\n {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Authorization': `Bearer ${token}`\r\n });\r\n const options = {\r\n headers: headers,\r\n };\r\n\r\n return this.http.post(this.settingsService.getApiServiceBaseUrl() + 'webQuery', data, options);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HandoverHistoryTypeEnum } from 'app/core/hub-api';\r\nimport { environment } from 'environments/environment';\r\nimport { HandoverTypeOption } from '../models/handover-type-option';\r\n\r\n@Injectable()\r\nexport class HandoverTypeService {\r\n private variation: boolean;\r\n private handover: boolean;\r\n featureFlags = (environment.featureFlags as any);\r\n\r\n constructor() { }\r\n\r\n private createHandoverTypes(): HandoverTypeOption[] {\r\n return [\r\n {\r\n name: 'Initial Handovers',\r\n type: HandoverHistoryTypeEnum.FullHandover,\r\n display: this.handover\r\n },\r\n {\r\n name: 'Re-Handovers',\r\n type: HandoverHistoryTypeEnum.PartialHandover,\r\n display: this.handover\r\n },\r\n {\r\n name: 'Full Off-Hires',\r\n type: HandoverHistoryTypeEnum.FullOffHire,\r\n display: this.handover\r\n },\r\n {\r\n name: 'Partial Off-Hires',\r\n type: HandoverHistoryTypeEnum.PartialOffHire,\r\n display: this.handover\r\n },\r\n {\r\n name: 'Variations',\r\n type: HandoverHistoryTypeEnum.Variation,\r\n display: this.variation\r\n },\r\n {\r\n name: 'Adaptions',\r\n type: HandoverHistoryTypeEnum.Adaption,\r\n display: this.variation\r\n }\r\n ];\r\n }\r\n\r\n getHandoverTypes(): HandoverTypeOption[] {\r\n this.handover = this.featureFlags.handover;\r\n this.variation = this.featureFlags.variation;\r\n return this.createHandoverTypes();\r\n }\r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ScaffoldDetailQuery, ScaffoldEndpointService, ScaffoldWebAppData } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries scaffold data from the server (or in memory cache where specified) and allows consumer to subscribe to scaffold data changes.\r\n@Injectable()\r\nexport class ScaffoldDetailQueryService extends QueryService {\r\n\r\n constructor(private scaffoldEndpointService: ScaffoldEndpointService) { super(); }\r\n\r\n scaffoldDetailQuery(useCached: boolean, scaffoldId: string): Observable {\r\n return super.query(useCached, scaffoldId);\r\n }\r\n\r\n scaffoldDetailDataChanges(scaffoldId: string): Observable {\r\n return super.cachedDataChanges(scaffoldId);\r\n }\r\n\r\n protected getDataFromServer(scaffoldId: string): Observable {\r\n const query = Object.assign(new ScaffoldDetailQuery(), { ScaffoldId: scaffoldId });\r\n return this.scaffoldEndpointService.ScaffoldDetailQuery(query).pipe(map(data => data[0]));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ScaffoldEndpointService, ScaffoldTimelineData, ScaffoldTimelineQuery } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries scaffold timeline data from the server (or in memory cache where specified) and allows\r\n// consumer to subscribe to scaffold timeline data changes.\r\n@Injectable()\r\nexport class ScaffoldTimelineQueryService extends QueryService {\r\n\r\n constructor(private scaffoldEndpointService: ScaffoldEndpointService) { super(); }\r\n\r\n scaffoldTimelineQuery(useCached: boolean, scaffoldId: string): Observable {\r\n return super.query(useCached, scaffoldId);\r\n }\r\n\r\n scaffoldTimelineDataChanges(scaffoldId: string): Observable {\r\n return super.cachedDataChanges(scaffoldId);\r\n }\r\n\r\n protected getDataFromServer(scaffoldId: string): Observable {\r\n const query = Object.assign(new ScaffoldTimelineQuery(), { ScaffoldId: scaffoldId });\r\n return this.scaffoldEndpointService.ScaffoldTimelineQuery(query);\r\n }\r\n}\r\n","import { ScheduleTypeEnum } from 'app/core/hub-api';\r\nimport { Injectable } from '@angular/core';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class ScheduledReportsStartGeneratorService {\r\n\r\n getStartDate(scheduleTypeEnum: ScheduleTypeEnum, currentDatetime = moment()): string {\r\n switch (scheduleTypeEnum) {\r\n case ScheduleTypeEnum.Daily:\r\n return currentDatetime.startOf('day').add(1, 'days').format('YYYY-MM-DD HH:mm');\r\n case ScheduleTypeEnum.Weekly:\r\n return currentDatetime.startOf('isoWeek').add(1, 'weeks').add(9, 'hour').toISOString();\r\n case ScheduleTypeEnum.Monthly:\r\n return currentDatetime.startOf('month').add(1, 'months').add(9, 'hour').toISOString();\r\n }\r\n }\r\n}\r\n","\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { SiteDetailQuery, SiteEndpointService, SiteWebAppData } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries site data from the server (or in memory cache where specified) and allows consumer to subscribe to site data changes.\r\n@Injectable()\r\nexport class SiteDetailQueryService extends QueryService {\r\n\r\n constructor(private siteEndpointService: SiteEndpointService) { super(); }\r\n\r\n siteDetailQuery(useCached: boolean, siteReference: string): Observable {\r\n return super.query(useCached, siteReference);\r\n }\r\n\r\n siteDetailCachedData(siteReference: string): Observable {\r\n return super.cachedDataChanges(siteReference);\r\n }\r\n\r\n /**\r\n * Gets the site data from the server or in memory cache.\r\n * @param siteReference - The reference of the site to retrieve data for.\r\n * @returns An observable of SiteWebAppData.\r\n */\r\n siteDetailDataChanges(siteReference: string): Observable {\r\n return super.cachedDataChanges(siteReference).pipe(\r\n switchMap((site) => {\r\n if (site) {\r\n return of(site);\r\n } else {\r\n return super.query(false, siteReference);\r\n }\r\n })\r\n );\r\n }\r\n\r\n protected getDataFromServer(siteReference: string): Observable {\r\n const query = Object.assign(new SiteDetailQuery(), { SiteReference: siteReference });\r\n return this.siteEndpointService.SiteDetailQuery(query).pipe(map(data => data[0]));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of, switchMap } from 'rxjs';\r\nimport { ScaffoldWebAppData, SiteEndpointService, SiteScaffoldQuery } from 'app/core/hub-api';\r\n\r\nimport { QueryService } from '../../core/services/query.service';\r\n\r\n// Queries scaffold data from the server (or in memory cache where specified) and allows consumer to subscribe to scaffold data changes.\r\n@Injectable()\r\nexport class SiteScaffoldQueryService extends QueryService {\r\n\r\n constructor(private siteEndpointService: SiteEndpointService) { super(); }\r\n\r\n siteScaffoldQuery(useCached: boolean, siteId: string): Observable {\r\n return super.query(useCached, siteId);\r\n }\r\n\r\n siteScaffoldDataCached(siteId: string): Observable {\r\n return super.cachedDataChanges(siteId);\r\n }\r\n\r\n /**\r\n * Gets the scaffold data from the server or in memory cache.\r\n * @param siteId - The reference of the scaffold to retrieve data for.\r\n * @returns An observable of ScaffoldWebAppData[].\r\n */\r\n siteScaffoldDataChanges(siteId: string): Observable {\r\n return super.cachedDataChanges(siteId).pipe(\r\n switchMap((site) => {\r\n if (site) {\r\n return of(site);\r\n } else {\r\n return super.query(false, siteId);\r\n }\r\n })\r\n );\r\n }\r\n\r\n protected getDataFromServer(siteId: string): Observable {\r\n const query = Object.assign(new SiteScaffoldQuery(), { SiteId: siteId });\r\n return this.siteEndpointService.SiteScaffoldQuery(query);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { CustomersResolver } from '../core/resolvers/customers.resolver';\r\nimport { SitesResolver } from '../core/resolvers/sites.resolver';\r\nimport { SiteContractComponent } from './components/site-detail/contracts/site-contract/site-contract.component';\r\nimport {\r\n SiteContractsWelcomeComponent,\r\n} from './components/site-detail/contracts/site-contracts-welcome/site-contracts-welcome.component';\r\nimport { SiteContractsComponent } from './components/site-detail/contracts/site-contracts/site-contracts.component';\r\nimport {\r\n SiteDashboardContractComponent,\r\n} from './components/site-detail/dashboard/site-dashboard-contract/site-dashboard-contract.component';\r\nimport { SiteDashboardComponent } from './components/site-detail/dashboard/site-dashboard/site-dashboard.component';\r\nimport { SiteDetailComponent } from './components/site-detail/detail/site-detail/site-detail.component';\r\nimport { HandoversListComponent } from './components/site-detail/handovers/handovers-list/handovers-list.component';\r\nimport { ScaffoldDetailComponent } from './components/site-detail/scaffolds/scaffold-detail/scaffold-detail.component';\r\nimport { ScaffoldListComponent } from './components/site-detail/scaffolds/scaffold-list/scaffold-list.component';\r\nimport {\r\n SiteDetailContainerComponent,\r\n} from './components/site-detail/site-detail-container/site-detail-container.component';\r\nimport { SitesListComponent } from './components/sites-list/sites-list/sites-list.component';\r\nimport { SitesSectionContainerComponent } from './components/sites-section-container/sites-section-container.component';\r\nimport { NoSiteContractsGuard } from './guards/no-site-contracts.guard';\r\nimport { ScaffoldDetailResolver } from './resolvers/scaffold-detail.resolver';\r\nimport { ScaffoldTimelineResolver } from './resolvers/scaffold-timeline.resolver';\r\nimport { SiteResolver } from './resolvers/site.resolver';\r\nimport { DiaryListComponent } from 'app/sites/components/site-detail/diary/diary-list/diary-list.component';\r\nimport { DiaryDetailComponent } from 'app/sites/components/site-detail/diary/diary-detail/diary-detail.component';\r\nimport { DiaryMediaViewerComponent } from 'app/sites/components/site-detail/diary/diary-media-viewer/diary-media-viewer.component';\r\nimport { DiaryDetailGuard } from 'app/sites/guards/diary-detail.guard';\r\nimport { DiaryMediaViewerPlaceholderComponent } from 'app/sites/components/site-detail/diary/diary-media-viewer-placeholder/diary-media-viewer-placeholder.component';\r\nimport { ConfirmLeaveGuard } from 'app/core/guards/confirm-leave.guard';\r\nimport { AuthenticatedGuard } from '../core/guards/authenticated-guard';\r\nimport { AuthorisedGuard } from '../core/guards/authorised-guard';\r\nimport { ConfigurationResolver } from '../core/resolvers/configuration.resolver';\r\nimport { DepotsResolver } from 'app/core/resolvers/depots.resolver';\r\nimport { StaffsResolver } from '../core/resolvers/staffs.resolver';\r\nimport { EulaSlaGuard } from 'app/core/guards/eula-sla.guard';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: SitesSectionContainerComponent,\r\n canActivate: [EulaSlaGuard],\r\n resolve: {\r\n customers: CustomersResolver,\r\n configuration: ConfigurationResolver,\r\n depots: DepotsResolver,\r\n site: SiteResolver,\r\n staffs: StaffsResolver\r\n },\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'list',\r\n },\r\n {\r\n path: 'list',\r\n component: SitesListComponent,\r\n resolve: {\r\n sites: SitesResolver\r\n }\r\n },\r\n {\r\n path: ':siteReference',\r\n component: SiteDetailContainerComponent,\r\n canActivate: [AuthenticatedGuard, AuthorisedGuard],\r\n data: {\r\n claims: ['AddEditSites']\r\n },\r\n resolve: {\r\n site: SiteResolver\r\n },\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'details'\r\n },\r\n {\r\n path: 'dashboard',\r\n component: SiteDashboardComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: SiteDashboardContractComponent\r\n },\r\n {\r\n path: ':customerReference',\r\n component: SiteDashboardContractComponent\r\n }\r\n ]\r\n },\r\n {\r\n path: 'details',\r\n component: SiteDetailComponent,\r\n },\r\n {\r\n path: 'contracts',\r\n component: SiteContractsComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: SiteContractsWelcomeComponent,\r\n canActivate: [NoSiteContractsGuard]\r\n },\r\n {\r\n path: ':customerReference',\r\n component: SiteContractComponent,\r\n canDeactivate: [ConfirmLeaveGuard]\r\n }\r\n ]\r\n },\r\n {\r\n path: 'scaffolds',\r\n children: [\r\n {\r\n path: '',\r\n component: ScaffoldListComponent,\r\n },\r\n {\r\n path: ':scaffoldId',\r\n component: ScaffoldDetailComponent,\r\n resolve: {\r\n scaffold: ScaffoldDetailResolver,\r\n scaffoldTimeline: ScaffoldTimelineResolver\r\n },\r\n }\r\n ]\r\n },\r\n {\r\n path: 'handovers',\r\n component: HandoversListComponent,\r\n },\r\n {\r\n path: 'diary',\r\n children: [\r\n {\r\n path: '',\r\n component: DiaryListComponent,\r\n },\r\n {\r\n path: ':diaryId/:diaryType/:id',\r\n component: DiaryDetailComponent,\r\n\r\n children: [\r\n {\r\n path: '',\r\n canActivate: [DiaryDetailGuard],\r\n component: DiaryMediaViewerPlaceholderComponent\r\n },\r\n {\r\n path: ':mediaType/:mediaReferenceId',\r\n component: DiaryMediaViewerComponent,\r\n canDeactivate: [ConfirmLeaveGuard],\r\n },\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\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 SitesRoutingModule { }\r\n","/**\r\n* @license\r\n* Copyright © Computer and Design Services Ltd.\r\n* All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n* electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n*/\r\n\r\nimport '../../rxjs-imports';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ClickOutsideModule } from 'ng4-click-outside';\r\nimport { CarouselConfig, CarouselModule } from 'ngx-bootstrap/carousel';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { DiaryTypeComponent } from './components/diary-type/diary-type.component';\r\nimport { HandoverTypeComponent } from './components/handover-type/handover-type.component';\r\nimport {\r\n ScaffoldInspectionStateComponent,\r\n} from './components/scaffold-inspection-state/scaffold-inspection-state.component';\r\nimport {\r\n AddEditContractContactModalComponent,\r\n} from './components/site-detail/contracts/add-edit-contract-contact-modal/add-edit-contract-contact-modal.component';\r\nimport {\r\n AddEditContractModalComponent,\r\n} from './components/site-detail/contracts/add-edit-contract-modal/add-edit-contract-modal.component';\r\nimport {\r\n InspectionStatusModalComponent,\r\n} from './components/site-detail/contracts/inspection-status-modal/inspection-status-modal.component';\r\nimport {\r\n OpenCloseContractModalComponent,\r\n} from './components/site-detail/contracts/open-close-contract-modal/open-close-contract-modal.component';\r\nimport {\r\n SiteContractContactsComponent,\r\n} from './components/site-detail/contracts/site-contract-contacts/site-contract-contacts.component';\r\nimport { SiteContractComponent } from './components/site-detail/contracts/site-contract/site-contract.component';\r\nimport {\r\n SiteContractsWelcomeComponent,\r\n} from './components/site-detail/contracts/site-contracts-welcome/site-contracts-welcome.component';\r\nimport { SiteContractsComponent } from './components/site-detail/contracts/site-contracts/site-contracts.component';\r\nimport {\r\n SiteDashboardContractComponent,\r\n} from './components/site-detail/dashboard/site-dashboard-contract/site-dashboard-contract.component';\r\nimport { SiteDashboardComponent } from './components/site-detail/dashboard/site-dashboard/site-dashboard.component';\r\nimport {\r\n AddEditAreaModalComponent,\r\n} from './components/site-detail/detail/add-edit-area-modal/add-edit-area-modal.component';\r\nimport {\r\n AddEditSiteStaffModalComponent,\r\n} from './components/site-detail/detail/add-edit-site-staff-modal/add-edit-site-staff-modal.component';\r\nimport { SiteDetailAreasComponent } from './components/site-detail/detail/site-detail-areas/site-detail-areas.component';\r\nimport {\r\n SiteDetailOverviewComponent,\r\n} from './components/site-detail/detail/site-detail-overview/site-detail-overview.component';\r\nimport { SiteDetailStaffComponent } from './components/site-detail/detail/site-detail-staff/site-detail-staff.component';\r\nimport { SiteDetailComponent } from './components/site-detail/detail/site-detail/site-detail.component';\r\nimport {\r\n DiaryMediaViewerPlaceholderComponent,\r\n} from './components/site-detail/diary/diary-media-viewer-placeholder/diary-media-viewer-placeholder.component';\r\nimport { DiaryMediaViewerComponent } from './components/site-detail/diary/diary-media-viewer/diary-media-viewer.component';\r\nimport {\r\n RenameScaffoldMediaModalComponent,\r\n} from './components/site-detail/diary/rename-diary-media-modal/rename-diary-media-modal.component';\r\nimport {\r\n ScaffoldDiaryCategoriesComponent,\r\n} from './components/site-detail/diary/diary-categories/diary-categories.component';\r\nimport {\r\n DiaryDetailComponent,\r\n} from './components/site-detail/diary/diary-detail/diary-detail.component';\r\nimport {\r\n DiaryListComponent,\r\n} from './components/site-detail/diary/diary-list/diary-list.component';\r\nimport { HandoversListComponent } from './components/site-detail/handovers/handovers-list/handovers-list.component';\r\nimport {\r\n AddEditScaffoldDetailComponent,\r\n} from './components/site-detail/scaffolds/add-edit-scaffold-detail/add-edit-scaffold-detail.component';\r\nimport {\r\n AddEditScaffoldModalComponent,\r\n} from './components/site-detail/scaffolds/add-edit-scaffold-modal/add-edit-scaffold-modal.component';\r\nimport {\r\n AddEditScaffoldSpecificationComponent,\r\n} from './components/site-detail/scaffolds/add-edit-scaffold-specification/add-edit-scaffold-specification.component';\r\nimport {\r\n DismantleScaffoldModalComponent,\r\n} from './components/site-detail/scaffolds/dismantle-scaffold-modal/dismantle-scaffold-modal.component';\r\nimport {\r\n FixScaffoldNumbersModalComponent,\r\n} from './components/site-detail/scaffolds/fix-scaffold-numbers-modal/fix-scaffold-numbers-modal.component';\r\nimport {\r\n GroupScaffoldsModalComponent,\r\n} from './components/site-detail/scaffolds/group-scaffolds-modal/group-scaffolds-modal.component';\r\nimport { ScaffoldDetailComponent } from './components/site-detail/scaffolds/scaffold-detail/scaffold-detail.component';\r\nimport { ScaffoldListComponent } from './components/site-detail/scaffolds/scaffold-list/scaffold-list.component';\r\nimport {\r\n SiteDetailContainerComponent,\r\n} from './components/site-detail/site-detail-container/site-detail-container.component';\r\nimport { SiteImportContactsComponent } from './components/site-import/site-import-contacts/site-import-contacts.component';\r\nimport { SiteImportContractComponent } from './components/site-import/site-import-contract/site-import-contract.component';\r\nimport { SiteImportModalComponent } from './components/site-import/site-import-modal/site-import-modal.component';\r\nimport {\r\n SiteImportScaffoldsComponent,\r\n} from './components/site-import/site-import-scaffolds/site-import-scaffolds.component';\r\nimport { SiteImportSiteComponent } from './components/site-import/site-import-site/site-import-site.component';\r\nimport { AddEditSiteModalComponent } from './components/sites-list/add-edit-site-modal/add-edit-site-modal.component';\r\nimport { SitesListComponent } from './components/sites-list/sites-list/sites-list.component';\r\nimport { SitesSectionContainerComponent } from './components/sites-section-container/sites-section-container.component';\r\nimport { NoSiteContractsGuard } from './guards/no-site-contracts.guard';\r\nimport { DiaryDetailGuard } from './guards/diary-detail.guard';\r\nimport { ScaffoldDetailResolver } from './resolvers/scaffold-detail.resolver';\r\nimport { ScaffoldDiaryResolver } from './resolvers/scaffold-diary-resolver';\r\nimport { ScaffoldTimelineResolver } from './resolvers/scaffold-timeline.resolver';\r\nimport { SiteResolver } from './resolvers/site.resolver';\r\nimport { ContractInspectionStatusQueryService } from './services/contract-inspection-status-query.service';\r\nimport { ScaffoldDetailQueryService } from './services/scaffold-detail-query-service';\r\nimport { DiaryQueryService } from './services/diary-query-service';\r\nimport { ScaffoldTimelineQueryService } from './services/scaffold-timeline-query-service';\r\nimport { ScheduledReportsStartGeneratorService } from './services/scheduled-reports-start-generator.service';\r\nimport { SiteDetailQueryService } from './services/site-detail-query.service';\r\nimport { SiteScaffoldQueryService } from './services/site-scaffolds-query.service';\r\nimport { SitesRoutingModule } from './sites-routing.module';\r\nimport { SiteStatusComponent } from './components/site-status/site-status.component';\r\nimport { SiteCameraComponent } from './components/site-camera/site-camera.component';\r\nimport { ContractsInfoTextComponent } from './components/site-detail/contracts/contracts-info-text/contracts-info-text.component';\r\nimport { AgreedRatesComponent } from './components/agreed-rates/agreed-rates.component';\r\nimport { UndismantleScaffoldModalComponent } from './components/site-detail/scaffolds/undismantle-scaffold-modal/undismantle-scaffold-modal.component';\r\nimport { LastInspectionComponent } from './components/site-detail/scaffolds/last-inspection/last-inspection.component';\r\nimport { OffHireScaffoldModalComponent } from './components/site-detail/scaffolds/off-hire-scaffold-modal/off-hire-scaffold-modal.component';\r\nimport { DefectResultComponent } from './components/site-detail/scaffolds/defect-result/defect-result.component';\r\nimport { DismantleCardComponent } from './components/site-detail/scaffolds/dismantle-card/dismantle-card.component';\r\nimport { AddScaffoldDiaryMediaModalComponent } from './components/site-detail/diary/add-diary-media-modal/add-diary-media-modal.component';\r\nimport { DeleteScaffoldDiaryMediaModalComponent } from './components/site-detail/diary/delete-diary-media-modal/delete-diary-media-modal.component';\r\nimport { HandoverTypeService } from './services/handover-type-service';\r\nimport { QuotesQueryService } from '../core/services/quotes-query-service';\r\nimport { ScaffoldImportModalComponent } from './components/site-detail/scaffolds/scaffold-import-modal/scaffold-import-modal.component';\r\nimport { ImportSpreadsheetComponent } from './components/site-detail/scaffolds/scaffold-import-modal/import-spreadsheet/import-spreadsheet';\r\nimport { SelectContractComponent } from './components/site-detail/scaffolds/scaffold-import-modal/select-contract/select-contract';\r\nimport { SiteStockComponent } from './components/site-stock/site-stock.component';\r\nimport { AddEditCompanyContactModalComponent } from './components/site-detail/contracts/add-edit-company-contact-modal/add-edit-company-contact-modal.component';\r\nimport { SiteCompanyContactsComponent } from './components/site-detail/contracts/site-company-contacts/site-company-contacts.component';\r\nimport { AddEditBccContactModalComponent } from './components/site-detail/contracts/add-edit-bcc-contact-modal/add-edit-bcc-contact-modal.component';\r\nimport { AddMeAsContactModalComponent } from './components/site-detail/contracts/add-me-as-contact-modal/add-me-as-contact-modal.component';\r\nimport { SiteScaffoldDiaryResolver } from './resolvers/site-scaffold-diary.resolver';\r\nimport { AddSiteDiaryModalComponent } from './components/site-detail/diary/add-site-diary-modal/add-site-diary-modal.component';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { FroalaEditorModule, FroalaViewModule } from 'angular-froala-wysiwyg';\r\n\r\n/**\r\n * Controls all modules, imports, providers and declarations for the sites route\r\n *\r\n * @export\r\n * @class SitesModule\r\n */\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n SitesRoutingModule,\r\n NgxDatatableModule,\r\n CarouselModule,\r\n ClickOutsideModule,\r\n FormsModule,\r\n FroalaEditorModule,\r\n FroalaViewModule,\r\n ],\r\n declarations: [\r\n SitesSectionContainerComponent,\r\n SitesListComponent,\r\n AddEditSiteModalComponent,\r\n SiteDetailContainerComponent,\r\n SiteDashboardComponent,\r\n SiteDashboardContractComponent,\r\n SiteDetailComponent,\r\n SiteDetailStaffComponent,\r\n SiteDetailOverviewComponent,\r\n SiteDetailAreasComponent,\r\n AddEditAreaModalComponent,\r\n AddEditSiteStaffModalComponent,\r\n SiteContractsComponent,\r\n SiteContractComponent,\r\n SiteContractsWelcomeComponent,\r\n AddEditContractModalComponent,\r\n SiteContractContactsComponent,\r\n AddEditContractContactModalComponent,\r\n InspectionStatusModalComponent,\r\n OpenCloseContractModalComponent,\r\n ScaffoldListComponent,\r\n AddEditScaffoldModalComponent,\r\n AddEditScaffoldDetailComponent,\r\n AddEditScaffoldSpecificationComponent,\r\n FixScaffoldNumbersModalComponent,\r\n GroupScaffoldsModalComponent,\r\n ScaffoldDetailComponent,\r\n ScaffoldInspectionStateComponent,\r\n DiaryTypeComponent,\r\n DismantleScaffoldModalComponent,\r\n HandoversListComponent,\r\n HandoverTypeComponent,\r\n SiteImportModalComponent,\r\n SiteImportSiteComponent,\r\n SiteImportContractComponent,\r\n SiteImportContactsComponent,\r\n SiteImportScaffoldsComponent,\r\n SelectContractComponent,\r\n SiteStatusComponent,\r\n SiteCameraComponent,\r\n ContractsInfoTextComponent,\r\n AgreedRatesComponent,\r\n UndismantleScaffoldModalComponent,\r\n LastInspectionComponent,\r\n DefectResultComponent,\r\n OffHireScaffoldModalComponent,\r\n DismantleCardComponent,\r\n OffHireScaffoldModalComponent,\r\n DiaryListComponent,\r\n DiaryDetailComponent,\r\n DiaryMediaViewerComponent,\r\n ScaffoldDiaryCategoriesComponent,\r\n DiaryMediaViewerPlaceholderComponent,\r\n RenameScaffoldMediaModalComponent,\r\n AddScaffoldDiaryMediaModalComponent,\r\n DeleteScaffoldDiaryMediaModalComponent,\r\n ScaffoldImportModalComponent,\r\n ImportSpreadsheetComponent,\r\n SiteStockComponent,\r\n AddEditCompanyContactModalComponent,\r\n SiteCompanyContactsComponent,\r\n AddEditBccContactModalComponent,\r\n AddMeAsContactModalComponent,\r\n AddSiteDiaryModalComponent,\r\n ],\r\n providers: [\r\n // GUARDS\r\n NoSiteContractsGuard,\r\n DiaryDetailGuard,\r\n\r\n // RESOLVERS\r\n ScaffoldDetailResolver,\r\n ScaffoldTimelineResolver,\r\n ScaffoldDiaryResolver,\r\n SiteScaffoldDiaryResolver,\r\n SiteResolver,\r\n\r\n // SERVICES\r\n { provide: CarouselConfig, useValue: { interval: 0 } },\r\n SiteDetailQueryService,\r\n ScheduledReportsStartGeneratorService,\r\n ContractInspectionStatusQueryService,\r\n SiteScaffoldQueryService,\r\n ScaffoldDetailQueryService,\r\n ScaffoldTimelineQueryService,\r\n DiaryQueryService,\r\n HandoverTypeService,\r\n QuotesQueryService\r\n ]\r\n})\r\nexport class SitesModule { }\r\n","import { claddingIds } from '../../shared/values/cladding-ids';\r\n\r\nexport const claddings = {\r\n 'Brick Guards': claddingIds.brickguards,\r\n 'Debris Netting': claddingIds.netting,\r\n 'Sheeting': claddingIds.sheeting\r\n};\r\n","export const customerContactsHelpPanelData = [\r\n {\r\n name: 'Handover Certificates',\r\n text: 'Sent shortly after they are submitted on the SMART Handover app. Please note you will need an active internet connection.',\r\n featureFlag: 'handover'\r\n },\r\n {\r\n name: 'Detailed/Summary Inspection Reports',\r\n text: 'Sent daily if inspections were completed the previous day. Please ensure that you sync the device at the end of the day.',\r\n featureFlag: 'inspection'\r\n },\r\n {\r\n name: 'Inspection Status',\r\n text: 'Sent every Monday.',\r\n featureFlag: 'inspection'\r\n }\r\n];\r\n\r\n\r\n","import { loadingLimitIds } from '../../shared/values/loading-limit-ids';\r\n\r\nexport const loadClasses = {\r\n 'Load Class 1': loadingLimitIds.veryLight,\r\n 'Load Class 2': loadingLimitIds.light,\r\n 'Load Class 3': loadingLimitIds.general,\r\n 'Load Class 4': loadingLimitIds.heavy,\r\n 'Load Class Loading Bay 10': loadingLimitIds.loadingBay10,\r\n 'Load Class Loading Bay 20': loadingLimitIds.loadingBay20\r\n};\r\n","export const mediaTypes = {\r\n audio: 'audio',\r\n video: 'video',\r\n image: 'image',\r\n transcription: 'transcription',\r\n pdf: 'pdf'\r\n};\r\n","/**\r\n * @license\r\n * Copyright © Computer and Design Services Ltd.\r\n * All rights are reserved. Reproduction or transmission in whole or in part, in any form or by any means,\r\n * electronic, mechanical or otherwise, is prohibited without the prior written consent of the copyright owner.\r\n */\r\n/**\r\n * Enum representing the validation status of a quote and item.\r\n */\r\nexport enum QuoteAndItemValidationStatus {\r\n NoQuoteNoItem = 0,\r\n NewQuoteNewItem = 1,\r\n ExistingQuoteNoItem = 2,\r\n ExistingQuoteNewItem = 3,\r\n ExistingQuoteExistingItem = 4\r\n}\r\n","export const siteImportScaffoldIntroSteps = [{\r\n element: '#scaffold-ref',\r\n intro: `\r\n

Scaffold Reference

\r\n

The unique reference number for the scaffold.

`,\r\n position: 'bottom'\r\n}, {\r\n element: '#scaffold-name',\r\n intro: `\r\n

Scaffold Name

\r\n

To help identify the scaffold.

`,\r\n position: 'bottom'\r\n},\r\n{\r\n element: '#scaffoldingSystems',\r\n intro: `\r\n

Scaffolding Systems

\r\n

The scaffolding system used for the scaffold.

`,\r\n position: 'bottom'\r\n}, {\r\n element: '#scaffold-type',\r\n intro: `\r\n

Scaffold Type

\r\n

The type of scaffold. For example \"Birdcage\" scaffold.

`,\r\n position: 'bottom'\r\n}, {\r\n element: '#scaffold-loading',\r\n intro: `\r\n

Scaffold Loading

\r\n

The loading classification of the scaffold.

`,\r\n position: 'bottom'\r\n}, {\r\n element: '#scaffold-cladding',\r\n intro: `\r\n

Scaffold Cladding

\r\n

The type of cladding to be used on the scaffold.

`,\r\n position: 'bottom'\r\n}, {\r\n element: '#scaffold-design',\r\n intro: `\r\n

Scaffold Design

\r\n

The scaffold design type or design number.

`,\r\n position: 'bottom'\r\n}];\r\n","export enum TableHeadersEnum {\r\n ScaffoldName = 0,\r\n ScaffoldDescription = 1,\r\n Area = 2,\r\n ScaffoldType = 3,\r\n LoadingLimits = 4,\r\n MethodCladding = 5,\r\n MethodTying = 6,\r\n QuoteNumber = 7,\r\n ItemNumber = 8,\r\n ItemName = 9,\r\n ScaffoldingSystem = 10,\r\n MaximumTonnage = 11,\r\n HirePeriod = 12,\r\n DesignType = 13,\r\n DateNextInspection = 14,\r\n OnHireDate = 15,\r\n AdverseWeather = 16,\r\n}\r\n","export enum taskIdsEnums {\r\n erect = '952f484a-bf75-4c89-8c2c-4a89fee5a5e1',\r\n modify = '129d57f3-d1e5-45ed-8ec7-2c4fd0ec7534',\r\n other = '8196fa49-cab5-4d74-88e6-86ca515bc433',\r\n dismantle = '836387fc-558a-4851-b626-2546fb0624ab'\r\n}\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --configuration=stage` then `environment.stage.ts` will be used instead.\r\n// The list of which environment maps to which file can be found in `.angular.json`.\r\nexport const environment = {\r\n production: true, // This is a setting currently required by angular. If true it disables angular's development mode. Set this to true for all environments since we are testing them as if they are production\r\n apiServiceBaseUri: 'https://stage-console.smartscaffolder.services/api/v1/',\r\n appUrl: '',\r\n multiTenantUrl: 'https://stage-console.smartscaffolder.services/api/v1/',\r\n multiTenantAppName: 'sitemanager',\r\n clientVersion: require('../../package.json').version + '.' + require('../../package.json').build + '-STAGE',\r\n featureFlags: {},\r\n insightsKey: '',\r\n froalaKey: 'XAG4eF3J3A7A6C5E5C3A-9UJHAEFZMUJOYGYQEa1c1ZJg1RAeF5C4C3A3E2B2B6D6D4C2==',\r\n youtubeApi: 'AIzaSyAcUDNX7CWAejROxfNb2whTntHP3oGhWXY',\r\n googleMapsApiKey: 'AIzaSyBljGrraQCqtCV2-eRcA0U527WGb0-FWs8',\r\n userflowKey: 'ct_6lh436qes5ctjj6fkbr4vgwksa',\r\n adalB2C: {\r\n tenantName: 'stagesitemanager.onmicrosoft.com',\r\n // redirectUri: 'http://localhost:9001/', // Uncomment this if you want SMART Manager front end running in debug\r\n redirectUri: 'https://stage-console.smartscaffolder.services/',\r\n clientId: '91cbb3eb-fb59-4e24-9a8f-4d12b03e989c', // the app id for \"b2cngappsitemanagerWebAPP (should be renamed SMART Manager app)\" in stage\r\n policy: 'B2C_1_SmartManager18Aug2023v1SignIn',\r\n appResourceURI: 'openid https://stagesitemanager.onmicrosoft.com/b2cngappsitemanagermobileWebAPI/user_impersonation',\r\n adb2cBaseOAuthUri: 'https://stagesitemanager.b2clogin.com/'\r\n },\r\n appInsights: {\r\n instrumentationKey: 'ebd7cf9b-eb8b-42f2-8d9a-1c9ee4fa8527',\r\n ingestionEndpoint: 'https://northeurope-0.in.applicationinsights.azure.com/',\r\n liveEndpoint: 'https://northeurope.livediagnostics.monitor.azure.com/',\r\n }\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\nimport './app/shared/extensions/extensions';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n\r\n// this will register all the extensions\r\ndeclare const require: any;\r\nrequire('./app/shared/extensions/extensions');\r\n","// All rxjs observable operators and static methods should be imported here - never import the entire library as it is huge.\r\nimport { map, filter, startWith, tap, mergeMap, catchError, take, publishReplay } from 'rxjs/operators';\r\nimport { of, throwError, combineLatest, forkJoin } from 'rxjs';\r\n","var map = {\n\t\"./locale\": 86333,\n\t\"./locale.js\": 86333\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 11748;","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["NavigationCancel","NavigationEnd","NavigationError","NavigationStart","Router","LoadingSpinnerService","setTheme","environment","LoadingBarService","userflow","LoggedInStaffService","UserflowService","CompanySettingsService","combineLatest","i0","AppComponent","constructor","router","loadingSpinner","loader","loggedInStaffService","userflowService","companySettingsService","ngOnInit","startUserflow","loadApplicationInsights","show","loading","subscribe","state","script","document","createElement","src","googleMapsApiKey","body","appendChild","scrollExceptions","ref","useRef","events","event","start","complete","hide","some","e","test","urlAfterRedirects","window","scrollTo","results$","getCompanyDetailsFromServer","loggedInStaffChanges","next","res","clientData","loggedInStaff","_this","identifyUser","StaffId","name","ContactName","email","EmailAddress","signed_up_at","Date","toISOString","company_id","clientId","company_name","clientName","error","console","init","userflowKey","selectors","decls","vars","consts","template","HttpClient","moment","forkJoin","tap","map","flatMap","catchError","JwtHelperService","UserIdentityService","StaffEndpointService","AUTHENTICATION_SETTINGS_TOKEN","AUTH_SERVICE_TOKEN","AuthResponseErrorType","OnlineSessionService","userIdentityService","authService","staffEndpointService","settings","http","initialise","updateUser","undefined","initRequest","pipe","authResponse","expired","expires","type","ExpiredResponse","message","configureLoggedInUser","login","requirePassword","loginRequest","r","logout","accessTokenData","jwtHelper","decodeToken","access_token","extension_ClientName","extension_ClientId","tokenExpiryTime","userDetails","roles","claims","accessToken","expiryTime","updateClientSettings","GetSingle","oid","user","Roles","Claims","username","deviceId","lastLogin","displayName","userId","navigate","queryParams","errorCode","status","errorMessage","getCompanyDetailsForceFetchFromServer","data","factory","DatatableComponent","AutoUnsubscribe","EstimatesService","BsModalRef","BsModalService","cloneDeep","SiteImportModalComponent","SSModalConfig","ActivatedRoute","ConfigurationQueryService","CustomersQueryService","DepotsQueryService","SitesQueryService","EstimatesRequest","ToasterService","siteStatusIds","roleIds","ModalDialogComponent","EstimatesContainerComponent","bsModalRef","modalService","estimatesService","route","sitesQueryService","customersQueryService","configurationQueryService","depotsQueryService","toastService","Array","prop","sortable","title","okBtnClass","okBtnText","cancelBtnText","pagination","CurrentPage","HasNext","HasPrevious","PageSize","TotalPages","TotalRecords","detectEstimatesQueryAndRemove","manageEstimatesAccess","filtersDropdownOptions","unshift","allColumnsDefault","filtersDropdownValue","obs$","sitesDataChanges","customersDataChanges","configurationDataChanges","depotsDataChanges","subscriptionsToCleanup","push","latest","refreshComponent","setPage","offset","featureFlags","estimates","snapshot","import","relativeTo","queryParamsHandling","sites","customers","configuration","depots","allDepots","RoleId","siteSupervisor","columns","filter","column","d","SiteDepotIds","includes","SiteDepotId","sort","a","b","DepotName","toLowerCase","allCustomers","allSites","site","tableSite","depotName","customerList","customer","Customers","CustomerId","CustomerName","join","getSelectedFilters","selectedFilters","searchInputValue","forEach","Field","Operator","Value","pageInfo","customSorting","toast","defaultSorting","matchingColumn","length","find","toaster","tapToDismiss","progressBarDirection","pop","isLoading","selectedPage","payload","PageNumber","toJson","requestEstimates","pagedData","Pagination","rows","Items","filteredData","allEstimates","columnsWithSearch","Object","keys","clear","toastId","log","getEstimateStatus","statuses","allStatuses","onExportToCSV","timeout","exportCsv","importSite","estimateId","exportEstimate","estimate","context","selectedEstimate","toasterId","config","id","configs","generate","class","modal","content","that","onHide","siteReference","errorObj","JSON","parse","Message","onStart","$event","isEstimateLocked","Id","isLocked","contextProjectLockedModal","onHidden","modalData","onClose","result","onInProgress","openSite","onCompleted","SiteId","SiteReference","pageChanged","sorts","Direction","dir","page","applyFilter","clearFilter","onSort","statusChanged","StatusDescription","EstimateId","changeStatus","projectIndex","findIndex","row","originalEstimate","StatusCode","StatusId","updateStatus","ngOnDestroy","sub","unsubscribe","viewQuery","ctx","ChangeDetectorRef","EventEmitter","forwardRef","UntypedFormControl","UntypedFormGroup","NG_VALUE_ACCESSOR","isString","_isString","isNumber","_isNumber","DropdownSettings","DropdownTexts","NgSelectComponent","SELECT_WITH_INPUT_COMPONENT_VALUE_ACCESSOR","provide","useExisting","DropdownComponent","multi","cdr","_defaultItemsToDisplay","ngOnChanges","ngSelect","searchedTerm","searchTerm","searchTermMatchesList","items","x","titleProperty","filteredItems","textOverrides","settingsOverrides","itemsToDisplay","idFormControl","form","valueChanges","_propagateChanges","setValue","emitEvent","texts","defaultTitle","placeholder","checkAll","checkAllText","uncheckAll","uncheckAllText","allSelected","allSelectedText","searchEmptyResult","searchEmptyResultText","idProperty","icon","titleReferenceProperty","multiselect","closeOnSelect","clearable","groupIcon","groupBy","descriptionIcon","description","selectableGroupAsModel","selectableGroup","searchable","clearSearchOnAdd","clearItemOption","readonly","addTag","addTagText","ngAfterViewChecked","detectChanges","onChange","selectedValues","values","v","emit","onFocus","focus","writeValue","value","registerOnChange","fn","registerOnTouched","_propagateTouched","setDisabledState","isDisabled","onSelectAll","selected","item","onClearAll","getLengthSelected","formValues","get","toString","clearSelectedValue","QuoteData","ItemData","ItemStatusEnum","ContractCommandService","ItemTypeEnum","Validators","MultiStepModalFormComponent","ScaffoldCommandService","ScaffoldDetailQueryService","SiteDetailQueryService","SiteScaffoldQueryService","QuotesQueryService","ItemDetailsQueryService","GenerateDefaultsService","mustNotExistValidator","errorMessages","CustomValidator","ScaffoldTimelineQueryService","QuoteAndItemValidationStatus","UUID","AddEditScaffoldSpecificationComponent","scaffoldCommandService","siteScaffoldQueryService","siteDetailQueryService","scaffoldDetailQueryService","contractCommandService","quotesQueryService","itemDetailsQueryService","generateDefaultsService","scaffoldTimelineQueryService","quoteDropdown","required","itemDropdown","quoteNumber","mustNotExist","quoteNumberMustBeUnique","itemNumber","itemNumberMustBeUnique","itemName","scaffoldingSystem","maximumTonnage","invalidValue","standingTonnage","initialState","quotes","editMode","scaffoldTypeOptions","ScaffoldTypes","designTypeOptions","DesignTypes","loadingLimitOptions","LoadingLimits","methodOfTyingOptions","MethodOfTyings","methodOfCladdingOptions","MethodOfCladdings","scaffoldingSystemOptions","ScaffoldingSystems","scaffold","ScaffoldSpecification","ScaffoldingSystemData","Deleted","defaultScaffoldingSystem","scaffoldingsystem","IsDefault","existingQuoteQuestionEnabled","getExistingQuoteQuestionEnabled","existingItemQuestionEnabled","getExistingQuoteItemQuestionEnabled","addToExistingQuoteQuestionFormControl","addToExistingItemQuestionFormControl","allQuoteNumbersValidation","assign","q","QuoteNumber","itemNumberFormControl","quoteNumberFormControl","itemNameFormControl","ItemNumber","ItemName","scaffoldTypeFormControl","ScaffoldTypeId","furtherInfo","ScaffoldTypeFurtherInformation","descriptionFormControl","Description","MaximumTonnage","toFixed","StandingTonnage","maximumTonnageFormControl","negativeDecimalValidator","standingTonnageFormControl","designTypeFormControl","DesignTypeId","DesignTypeFurtherInformation","loadingLimitFormControl","LoadingLimitId","LoadingLimitFurtherInformation","methodOfTyingFormControl","MethodOfTyingId","MethodOfTyingFurtherInformation","methodOfCladdingFormControl","MethodOfCladdingId","MethodOfCladdingFurtherInformation","scaffoldingSystemFormControl","ScaffoldingSystemId","ScaffoldingSystemFurtherInformation","quoteDropdownFormControl","itemDropdownFormControl","QuoteId","onQuoteDropdownValueChanged","onItemDropdownValueChanged","ItemId","removeExistingQuoteValidation","removeExistingItemValidation","scaffoldType","designType","loadingLimit","methodOfTying","methodOfCladding","addToExistingQuoteQuestion","addToExistingItemQuestion","controls","scaffoldingSystemRequiredMessage","setErrors","itemAndQuote","itemId","addExistingQuoteOption","removeNewQuoteValidation","removeNewItemValidation","updateExistingQuoteValidation","updateExistingItemValidation","updateNewItemValidation","addExistingItemOption","itemDropdownSelected","quoteItems","qi","onPrevious","saveSpecificationData","getRevisedSpecificationData","previousStep","selectedQuoteId","quoteDropdownSelected","selectedQuote","i","quoteId","selectedItemId","getQuoteNumber","isManageStockControlEnabled","stockControl","IsManageStockControl","updateNewQuoteValidation","setValidators","updateValueAndValidity","clearValidators","itemRequiredMessage","validateScaffoldingSystem","selectedItem","ActualHours","AllocatedHours","ContractId","Estimator","ItemStatus","Open","revisedValues","setNoQuoteNoItem","validateQuoteAndItem","existingQuote","existingItem","quoteAndItemValidationStatus","NoQuoteNoItem","ExistingQuoteExistingItem","ExistingQuoteNewItem","NewQuoteNewItem","onSubmit","_data","validateForm","saveInProgress","command","OffsetFromUtc","utcOffset","commandFunction","EditScaffoldWebConsoleCommand","CreateScaffoldWebConsoleCommand","createItem","newQuote","quote","newItem","newItemId","call","siteScaffoldQuery","siteDetailQuery","scaffoldTimelineQuery","ScaffoldId","setDismissReason","serverErrorCallback","serverError","createItemCommand","_this2","ScaffoldIds","Tasks","timesheet","generateDefaultTasks","ItemType","Quoted","commandResult","CreateItemWebConsoleCommand","quotesQuery","scaffoldDetailQuery","Promise","resolve","reject","val","quoteToUpdate","existingItemIndex","features","ImportEndpointService","scaffoldStatusIds","sortBy","_sortBy","_map","uniq","_uniq","uniqWith","_uniqWith","isEqual","_isEqual","uniqBy","_uniqBy","TableHeadersEnum","ImportColumnIndexes","Editors","FieldType","Formatters","ReferenceGeneratorService","ImportSpreadsheetComponent","referenceGeneratorService","changeDetectorRef","importEndpointService","max100","number","args","maxCharacters","requiredFieldMessage","maxCharactersMessage","colName","field","openValidationModal","initialisationData","prepareGrid","checkForSavedData","dialogClass","ngAfterViewInit","dataset","savedScaffolds","clearAllRows","areas","SiteAreas","areaNames","AreaName","configurationQuery","scaffoldTypes","Code","Title","designTypes","loadingLimits","methodCladdings","methodTyings","scaffoldingSystems","ScaffoldginSystemId","errorValidation","validationErrors","copyPaste","generateData","deletedRow","deletedRows","angularGridReady","angularGrid","gridObj","slickGrid","dataView","verifyGrid","highlightCell","colId","cssClass","cssCellStyle","gridService","_grid","setCellCssStyles","removeQuoteAndItemVal","rowIndex","removeCellHighlight","cell","header","columnDefinitions","t","indexOf","removeAllRowHighlights","removeRowHighlight","scaffoldName","trim","addUniqueValidation","area","defaultAreaName","quoteNumberObj","itemNameObj","itemNumberObj","Number","maximumTonnageObj","setData","updateRowCount","render","disableSaveBtn","removeCellCssStyles","removeInvalid","removeDeleted","headers","c","handleOnBeforeEditCell","excludeFromHeaderMenu","formatter","deleteIcon","exportWithFormatter","minWidth","maxWidth","width","onCellClick","string","editor","model","text","validator","validationChecker","titleTooltips","onCellChange","dataContext","grid","updateCell","scaffoldDescription","filterable","autocompleter","editorOptions","minLength","forceUserInput","source","checker","columnDef","collection","st","label","collectionSortBy","property","customStructure","singleSelect","matchedValue","matchRules","s","ll","mc","methodCladding","mt","optionLabel","methodTying","qt","refresh","it","internalColumnEditor","itemNameSelected","float","params","decimalPlaces","hirePeriod","Math","round","dt","dateTimeIso","dateIso","date","dateNextInspection","flatPickerFormat","isValid","onHireDate","boolean","checkmark","checkbox","affectedAdverseWeather","cellValue","cellValueIsTrue","gridOptions","forceFitColumns","enableAutoResize","autoHeight","enableColumnReorder","asyncEditorLoading","autoEdit","isAutoEdit","autoCommitEdit","enableGridMenu","enableHeaderMenu","autoResize","container","headerRowHeight","rowHeight","editable","enableCellNavigation","enableColumnPicker","enableExcelCopyBuffer","enableFiltering","editCommandHandler","editCommand","_commandQueue","execute","userValue","arrayToCheck","arrayVal","textFormatterPattern","userVal","convertedValue","replace","showOnlyCloseBtn","cancelBtnClass","valid","msg","scaffoldData","scaffoldImportFile","shift","scaffoldTypesChecker","ScaffoldType","scaffoldTypesMatchedValue","designTypeChecker","DesignType","designTypeMatchedValue","loadingLimitChecker","loadingLimitMatchedValue","methodCladdingChecker","MethodCladding","methodCladdingMatchedValue","methodTyingChecker","MethodTying","methodTyingMatchedValue","affectedAdverseWeatherChecker","AdverseWeather","dateNextInsp","DateNextInspection","momentDateFormat","hirePeriodDate","OnHireDate","structure","ScaffoldName","ScaffoldDescription","ScaffoldingSystem","HirePeriod","format","changeAutoCommit","setOptions","setAutoEdit","undo","Slick","GlobalEditorLock","cancelCurrentEdit","gotoCell","onSave","getEditorLock","commitCurrentEdit","generateAreas","createAreas","generatedScaffolds","createScaffolds","createQuotesAndItems","importData","CreateAreaCommand","CreateQuoteCommands","quoteCommands","CreateItemCommands","itemsCommands","CreateScaffoldCommands","ImportScaffold","ImportData","stringify","response","quoteNumbersNames","allQuotes","quotesToExculde","quotesDuplicatesChecker","qc","selectedContract","existingItems","scaffoldIds","extQuote","newQuotes","None","gs","matchingQuote","quoteIdToAssign","getExistingDefaultArea","createDefaultArea","defaultArea","newDefaultArea","SiteAreaId","newAndExistingAreas","concat","newAreas","allAreas","sc","newAreasNames","updateAreasCommand","Areas","getAreaId","areaChecker","scaffoldCommand","scaffoldNumbers","allScaffolds","ScaffoldNumber","existingQuoteNumber","existingItemNumber","existingItemName","existingItemId","newQuoteNumber","newItemNumber","newItemName","scaffoldNumber","incrementalReference","ScaffoldReferenceLength","contract","nextInspDate","ss","ScaffoldStatusId","onHire","incomplete","SpecificLocationDetails","AdverseWeatherIndicator","DateOfNextInspection","scaffoldingSystemId","rowsToCreate","bypassModalConfirm","createEmptyRows","len","onCellChanged","valueLength","compact","flow","partialRight","pick","CreateContractCommand","InspectionStatusEnumEnum","EditCustomerCommand","CustomerCommandService","CustomerDetailWebAppData","CreateCustomerCommand","SiteAreaData","customerStatusIds","CustomerDetailQueryService","SimilarityService","ToggleButtonPanelEnum","_flatMap","ReportSitesQueryService","emailAddressRegex","contractStatusIds","SiteImportContractComponent","customerCommandService","customerDetailQueryService","toasterService","similarityService","reportSitesQueryService","customerName","customerReference","customerReferenceMustBeUnique","pattern","emailInvalid","contractName","contractReference","contractReferenceMustBeUnique","mainContractor","oneMainContractor","submitWithoutSignature","agreedScheduleOfRates","inspectionStatusFormControl","tooltip","customersInProgress","reportSitesQuery","selectedSite","wizard","selectedSitePanel","Panel1","existingSite","newSite","isExistingSite","isNewSite","Panel2","updatedSite","siteArea","IsDefaultArea","customerAdded","showCustomerForm","localeCompare","otherCustomerReferences","CustomerReference","filteredCustomers","CustomerStatusId","active","contracts","Contracts","ContractStatusId","open","allContracts","SiteName","getSiteName","otherContractReferences","ContractReference","contractTypes","ContractTypes","isExistingCustomer","isNewCustomer","importCustomerCheck","createContractForm","createCustomerForm","existingCustomer","selectedCustomerPanel","newCustomer","isExistingContract","existingContract","selectedContractPanel","isNewContract","newContract","selectedPanelCustomers","selectedPanelContracts","hideExistingContractPanel","applyPanelLogic","pageLoaded","siteId","onSelectedPanelCustomersChange","selectedPanel","customerForm","patchValue","onSelectedPanelContractsChange","contractForm","onSelectedCustomerChange","onSelectedContractChange","hideExistingCustomerPanel","hideNewCustomerPanel","filteredContractsForCustomer","hideNewContractPanel","whichPanel","createNewContractCommand","tryGetCustomerId","createNewCustomer","customerFormControl","CustomerReferenceLength","siteImportFile","CustomerAddress","AddressName","PhoneNumber","TelephoneNumber","MobileNumber","Website","IsPrincipalContract","CanSubmitDocumentsWithoutSignature","IsScheduleRatesAgreed","ContractInspectionStatus","Normal","ContractReferenceLength","AllowDismantleWithoutOffhire","IsCameraAllowed","customerNameFormControl","customerReferenceFormControl","customerAddressFormControl","telephoneFormControl","emailFormControl","websiteFormControl","customerAddress","telephone","website","contractNameFormControl","ContractName","contractTypeFormControl","ContractTypeId","contractDescriptionFormControl","contractReferenceFormControl","mainContractorFormControl","submitWithoutSignatureFormControl","agreedScheduleOfRatesFormControl","camerasAllowedFormControl","dismantleWithoutOffhireFormControl","contractType","contractDescription","inspectionStatus","camerasAllowed","dismantleWithoutOffhire","onNext","passedValidation","validateThisForm","customerErrorMessages","contractErrorMessages","siteDetailChanges","fullSite","thisContractDetails","saveFormValues","nextStep","saveContractFormValues","saveCustomerFormValues","estimateImportData","wizardCustomer","wizardContract","thisCustomer","addressName","addressGroup","AddressGroup","similarityGroup","calculateSimilarity","similarityName","similarity","max","inactive","deletedCustomer","customerId","onAddCustomer","customerEditMode","onReactivateCustomer","customerDetailQuery","customersQuery","onSelectedCustomer","contractsInProgress","selectedCustomerItems","selectedContractItems","refreshContractList","setTimeout","siteImportScaffoldIntroSteps","UntypedFormArray","flatten","times","_forEach","ScaffoldSpecificationWebConsoleData","designTypeIds","SiteImportScaffold","claddings","loadClasses","introJs","ImportEstimateDataService","AddEditAreaModalComponent","DOCUMENT","SiteImportScaffoldsComponent","bsModalService","default","allScaffoldsSelected","refreshUiLoading","Scaffolds","existingScaffoldNumbers","methodOfCladdings","newDefaultSiteArea","defaultAreasForExistingAreas","defaultWizardArea","scaffoldItems","tasks","Pricing","TotalTenderedPrice","PreTaxTenderedPrice","TotalCost","DirectCost","Labour","OutputPay","allTasks","ScheduleItemId","quantity","Quantity","hirePeriodInWeeks","HirePeriodInWeeks","tenderedPrice","TenderedPrice","allocatedHours","TenderedHours","scaffolds","QuotationNumber","QuoteItemNumber","getScaffoldType","getDesignType","IsVariation","LoadClass","CladdingList","getScaffoldSystemType","expanded","itemsFormArray","createItemFormGroup","showRows","setConditionalValidation","itemGroup","updateScaffoldSelectionStatus","selectItem","scaffoldSelectionStatus","_","index","onAllScaffoldsSelected","someSelected","someScaffoldsSelected","selectedCount","selectedScaffoldsCount","onSelectedItemChange","selectedItems","trackByIndex","formArray","scaffoldsArray","scaffoldGroup","createScaffoldFormGroup","anyScaffoldsInFile","specificLocationDetails","siteAreaId","scaffoldTypeId","designTypeId","isVariation","loadingLimitId","methodOfCladdingId","isScaffoldCommandsValid","createScaffoldCommands","scaffoldCommands","generateImportEstimateData","CreateSiteCommand","Import","sitesQuery","quoteItemNumber","firstWordOfType","split","importedScaffoldType","importedScaffoldSystemType","systemScaffold","onStartTour","introJS","steps","toggleAllScaffolds","isScaffoldsLoading","detach","allCollapsed","globalScaffoldState","selectedItemScaffolds","reattach","selectedItemIndex","at","toggleLabels","labelsVisible","onAddArea","doNotCommitToServer","closeAreaModalEvent","Map","siteAreas","reduce","acc","siteAreaDetail","key","siteAreaData","onToggleImportAll","isItemsLoading","newValue","toggleSelectAllScaffolds","itemIndex","scaffoldsLength","every","itemScaffolds","toggleScaffoldExpansion","scaffoldIndex","classList","add","remove","isModalLoading"],"sourceRoot":"webpack:///","x_google_ignoreList":[903,904]}